Aktualizace architektury

Dokončeno

Mnoho vývojářů uvažuje o architekturách a knihovnách, které používají k sestavení softwaru, aby se primárně rozhodli pomocí funkcí nebo osobních preferencí. Zvolený rámec je však důležitým rozhodnutím, a to nejen z hlediska návrhu a funkčnosti, ale také z hlediska zabezpečení . Volba architektury, která má moderní funkce zabezpečení a je udržovaná v aktualizovaném stavu, je jedním z nejlepších způsobů, jak zajistit zabezpečení aplikací.

Architekturu zvolte pečlivě

Při výběru architektury je nejdůležitějším faktorem ohledně zabezpečení úroveň její podpory. Nejlepší architektury mají stanovené bezpečnostní postupy a jsou podporované velkými komunitami, které je vylepšují a testují. Žádný software není 100% bezchybný ani zcela neprůstřelný, při zjištění chyby ale chceme mít jistotu, že bude rychle opravena nebo nabídnuto alternativní řešení.

Pojem „dobře podporovaná“ je často synonymem pojmu „moderní“. Starší architektury jsou většinou buď nahrazeny, nebo postupně ztrácejí na popularitě. Přestože máte bohaté zkušenosti s některou starší architekturou (nebo máte aplikace v ní vytvořené), měli byste raději zvolit moderní knihovnu obsahující funkce, které potřebujete. Moderní architektury mají tendenci se stavět na lekcích získaných dřívějšími iteracemi, díky čemuž se pro nové aplikace jedná o formu snížení počtu hrozeb. Pokud se ve starším rozhraní, ve kterém jsou napsané starší aplikace, zjistíte ohrožení zabezpečení, budete mít ještě jednu další aplikaci.

Další informace o zabezpečeném návrhu a omezení prostoru pro hrozby najdete v tématu Microsoft Azure Well-Architected Framework – Zabezpečení.

Udržujte architekturu v aktualizovaném stavu

Architektury pro vývoj softwaru (například Java Spring a .NET Core) pravidelně vydávají aktualizace a nové verze. Součástí těchto aktualizací jsou nové funkce, vyřazení starších funkcí a často také opravy nebo vylepšení zabezpečení. Když umožníme, aby naše architektury byly zastaralé, vytvoří "technický dluh". Čím dál zastaralé, tím těžší a risknější bude vynést náš kód na nejnovější verzi. Při používání starších verzí architektury se navíc vystavujete bezpečnostním hrozbám, které byly v novějších verzích architektury opraveny, což souvisí s prvotní volbou architektury.

Například z roku 2016–2017 bylo nalezeno více než 30 ohrožení zabezpečení v rámci Apache Struts. Vývojový tým tyto chyby zabezpečení rychle vyřešil, ale některé společnosti neplatily opravy a zaplatily cenu ve formě porušení zabezpečení dat. Udržujte architektury a knihovny v aktualizovaném stavu.

Jak můžu architekturu aktualizovat?

Některé architektury, jako Java nebo .NET, vyžadují instalaci a vydávají aktualizace ve známých intervalech. Je proto vhodné sledovat nové verze a naplánovat vytvoření větve kódu, abyste ji po vydání mohli vyzkoušet. Například .NET Core udržuje stránku s zprávami k vydání verze, kterou můžete zkontrolovat a najít nejnovější dostupné verze.

Pomocí správce balíčků můžete aktualizovat specializovanější knihovny, jako jsou javascriptové architektury nebo komponenty .NET. Oblíbenými volbami pro webové projekty jsou NPM a Webpack, které podporuje většina integrovaných vývojových prostředí nebo sestavovacích nástrojů. V rozhraní .NET používáme ke správě závislostí mezi komponentami NuGet. Podobně jako aktualizace základní architektury, větvení kódu, aktualizace komponent a testování je vhodná technika k ověření nové verze závislosti.

Poznámka:

Nástroj dotnet příkazového řádku má add package možnost remove package přidávat nebo odebírat balíčky NuGet, ale nemá odpovídající update package příkaz. Spuštěním příkazu dotnet add package <package-name> v projektu se ale balíček automaticky upgraduje na nejnovější verzi. Jde o snadný způsob aktualizace závislostí bez otevření integrovaného vývojového prostředí.

Využijte integrované zabezpečení

Vždy zjistěte, jaké funkce zabezpečení vaše architektura nabízí. Nikdy nezavádějte vlastní zabezpečení, pokud je k dispozici nějaká integrovaná standardní technika nebo funkce. Kromě toho se spoléhejte na osvědčené algoritmy a pracovní postupy, protože byly často pečlivě prověřeny mnoha odborníky, posouzeny a posíleny, takže můžete mít jistotu, že jsou spolehlivé a bezpečné.

Architektura .NET Core má bezpočet funkcí zabezpečení. Tady je několik základních počátečních míst v dokumentaci:

Každá z těchto funkcí byla napsána odborníky ve svém oboru, pak ztěžovala testy, aby zajistila, že fungují tak, jak mají, a pouze podle očekávání. Jiné architektury nabízejí podobné funkce; obraťte se na dodavatele, který poskytuje architekturu a zjistěte, co má v každé kategorii.

Upozorňující

Psaní vlastních bezpečnostních prvků místo těch, které poskytuje vaše architektura, není jen plýtvání časem, je méně bezpečné.

Microsoft Defender for Cloud

Pokud k hostování webových aplikací používáte Azure, Defender for Cloud vás upozorní, pokud jsou vaše architektury zastaralé jako součást karty doporučení. Nezapomeňte se na ně občas podívat, abyste zjistili, jestli se v souvislosti s vašimi aplikacemi nezobrazují nějaká upozornění.

Snímek obrazovky Microsoft Defenderu pro cloud s doporučením upgradu architektury

Shrnutí

Kdykoli to jde, zvolte k vytváření aplikací moderní architekturu, vždy používejte integrované funkce zabezpečení a udržujte architekturu v aktualizovaném stavu. Tato jednoduchá pravidla vám pomohou zajistit, aby vaše aplikace stála na pevných základech.