Bezpečnost webových aplikací: SSDLC

Bezpečnost by měla být součástí životního cyklu vývoje software, protože čím později je bezpečnostní slabina odhalena, tím nákladnější je pak její odstranění.

Bezpečný životní cyklus vývoje software (Secure Software Development Life Cycle, zkr. SSDLC) je pak takový cyklus vývoje software, kdy je bezpečnost nedílnou součástí celého vývojového cyklu a nachází se v každé jeho fázi. Bohužel dost často se setkáváme s tím, že spousta firem o SSDLC jen mluví a jejich aplikace obsahují spoustu zranitelností. Pojďme si společně projít jednotlivé fáze SSDLC a podívejme se, jak je v nich řešena bezpečnost. Životní cyklus vývoje software se zpravidla skládá z těchto fází: analýza, návrh, kódování, nasazení a provoz.

SSDLC secure software development life cycle

Analýza

Již ve fázi analýzy (analysis) by měly být definovány minimální bezpečnostní požadavky, měly by být známy legislativní požadavky, které by měly vycházet z účelu dané aplikace, typu zpracovávaných dat, které se později promítnou do návrhu konkrétního řešení. Je zřejmé, že pokud nebudou získány veškeré relevantní požadavky, nemohou být zohledněny ve fázi návrhu ani v jakékoliv další fázi.

Návrh

V okamžiku, kdy je k dispozici HW a SW návrh (design), měl by být proveden konceptuální test tohoto návrhu z pohledu bezpečnosti. Pokud je v rámci návrhu použit jazyk UML, bývají zpravidla k dispozici i odpovídající UML diagramy, takže je možné provést jejich analýzu. Pečlivé prostudování jednotlivých případů užití, diagramů tříd a sekvenčních diagramů může mnohdy odhalit chybu už v samotném návrhu. Zapomínat bychom také neměli ani na ER-diagramy a data-flow diagramy. HW a SW architekturu můžeme též prověřit co do použití správných architektonických a návrhových vzorů. Na škodu také není provést modelování hrozeb (threat modeling), kdy se provede dekompozice aplikace, ocenění aktiv, a analýza potenciálních hrozeb a možných zranitelností.

Kódování

Ve fázi kódování (coding) jde o to používat správné návrhové vzory, programátorské techniky a správně implementovat bezpečnostní požadavky. Chyby v této fázi lze odhalit pomocí revize kódu (code review) a unitní testů (unit test), kdy již mohu ověřit, jak je implementovaná identifikace a autentizace uživatele, jak je řízen přístup, jak jsou ošetřovány vstupy od uživatele, jakým způsobem je zacházeno s výjimkami, jak je spravováno sezení uživatele, jak funguje šifrování, a zda probíhá logování. Občas se stává, že programátor zcela ignoruje návrh a požadovanou funkcionalitu implementuje po svém. Na tenhle problém jsme narazili již v příspěvku, ve kterém jsme se věnovali otázce, kdo by měl dělat návrh, a kdo by měl podle specifikace vyvíjet.

Nasazení

Ve fázi nasazení (deployment) je vhodné kromě mnoha jiných testů provést i penetrační test. Ovšem pozor, ten nemůže v žádném případě odhalit všechny zranitelnosti. Jsou případy, kdy jedině pomocí revize kódu lze odhalit např. backdoor. V OWASP je uveden krásný příklad, vývojář umožnil přístup k administračnímu rozhraní na adrese http://www.host/application?magic= sf8g7sfjdsurtsdieerwqredsgnfg8d. To penetrační tester nemá šanci odhalit, stejně jako jakékoliv další stránky, na které nevede z aplikace odkaz a zároveň není možné procházet adresáře na serveru. Zatímco backdoor lze odhalit v podstatě jedině pomocí code review, tak druhý případ zase pomocí configuration review a manuální inspekce stránek, které se nacházejí v adresáři. Penetrační test zase může odhalit, že heslo se třeba zobrazuje na obrazovce, což v zadání nebylo.

Provoz

Ve fázi provozu a údržby (maintenance) bychom pak měli dbát na důsledné řízení změn a provádění regresních testů, aby do zabezpečené aplikace nebyla zavlečena nějaká zranitelnost atd.

Závěr: Bezpečnost v rámci  SDLC má smysl a její opomenutí nebo podcenění v jakékoliv fázi může mít negativní dopad nejen na kvalitu a termín dodání díla, ale i na celkové náklady vyčleněné na jeho vývoj.


Pokud vás tento příspěvek zaujal, sdílejte ho!
Share on FacebookShare on LinkedInTweet about this on TwitterShare on Google+Email this to someonePrint this page

Štítky: ,


K článku “Bezpečnost webových aplikací: SSDLC” se zde nenachází žádný komentář - buďte první.

Diskuse na tomto webu je moderována. Pod článkem budou zobrazovány jen takové komentáře, které nebudou sloužit k propagaci konkrétní firmy, produktu nebo služby. V případě, že chcete, aby z těchto stránek vedl odkaz na váš web, kontaktujte nás, známe efektivnější způsoby propagace.

Přihlášeným uživatelům se tento formulář nezobrazuje - zaregistrujte se.

Jméno:(požadováno)
E-mail:(požadováno - nebude zobrazen)
Web:

Text vaší reakce: