Manažer bezpečnosti: Udržení bezpečnosti vlastního kódu

3. 7. 2012

Sdílet

 Autor: © NLshop - Fotolia.com
Společnost našeho manažera šokujícím způsobem přehlížela otázku bezpečnosti softwarového kódu, jenž je pro ni vytvářen na zakázku.

Trouble Ticket
Co řešit: Kód softwaru od externího dodavatele obsahuje malware.
Akční plán: Zkontrolovat celý proces vývoje softwaru a začlenit automatické kontroly zdrojového kódu. 

Máme velký problém, který je příčinou toho, že právě teď sedím na letišti. Hodlám navštívit některé dodavatele, kteří pro nás vyvíjejí části softwaru.

Potíž spočívá v tom, že část programu, který jsme nedávno interně vyvinuli, byla infikována malwarem a zdroj tohoto škodlivého kódu byl vysledován až do řádků pocházejících od externího dodavatele. Měli jsme štěstí, že byl úspěšně zablokován, ale skutečnost, že se taková věc vůbec mohla stát, přinesla otázky týkající se bezpečnosti našich postupů.

Jakmile jsem se o incidentu dozvěděl, začal jsem zkoumat, jak máme nastaven SDLC (životní cyklus vývoje softwaru), který nám pomáhá vyvíjet aplikace velmi uvážlivým a strukturovaným způsobem. SDLC neobsahující bezpečnostní kontroly nemá podle mého názoru příliš velkou hodnotu.

Po provedeném průzkumu bylo jasné, že nám chybějí robustní kontroly spolehlivosti kódu od externích dodavatelů. Zcela zřejmě došlo k nesprávným domněnkám, které ve výsledku vedly k bezcenným formulacím v našich smlouvách – třeba, že zodpovědnost za ověření veškerého kódu, aby neobsahoval chyby v zabezpečení a další potenciální ohrožující anomálie, bude ležet na samotném dodavateli.

Na svých poradách vyžaduji rozhodnutí vykonaná na základě rolí a zodpovědností, očekávání a metodologie. Samozřejmě nechci, aby vývojáři a inženýři kontrolující kvalitu prověřovali zdrojový kód ručně, takže předpokládám, že budeme muset investovat do technologií, které nám s touto analýzou pomůžou.

Když jsem se připravoval na inspekční cestu, začal jsem se zabývat řešeními, která jsou dnes na trhu nabízena pro automatizované prověření kódu. Zjistil jsem, že pokročilé nástroje tohoto typu poskytuje více firem. Existují produkty, které bychom využívali interně, nebo můžeme využívat nabídku SaaS.

V tento okamžik považuji model SaaS za velmi zajímavý, protože naše společnost používá webový nástroj pro spolupráci, který umožňuje dodavatelům zasílat kód pro začlenění do našeho vlastního softwaru.

Musíme si však odpovědět na otázku, zda chceme dodavatele zatěžovat zodpovědností za provádění analýzy, nebo zda si budeme tento rozbor provádět sami. Pokud tím zaměstnáme dodavatele, může to bránit inovacím. Interní provádění zase zvýší naši režii.

Dynamicky, nebo staticky
Při pátrání po vhodných řešeních jsem se také více dozvěděl o používaných přístupech pro kontrolu kódu.  Existují dva základní – dynamický a statický. Při statické analýze je kontrolován surový zdrojový kód, zda neobsahuje náznaky špatných programátorských zvyků, které by mohly vést k bezpečnostnímu problému – například ponechávání citlivých informací v komentáři ke kódu, neprovádění kontrol mezních hodnot, což může vyústit v útoky s využitím přetečení zásobníku, a nedostatek kontroly vstupů, což může vést k útokům SQL injection.

Dynamická analýza odpovídá svému názvu. Při dynamické analýze dochází k útokům na už zkompilovanou aplikaci a hledají se příznaky zranitelnosti aplikace.

Jedním z našich limitujících parametrů pro výběr je, že musíme najít produkt, který by zvládl všechny námi používané programovací jazyky, protože pro komplexní pokrytí nechceme investovat do více produktů. Pokud jde o začlenění produktu do našich různých procesů SDLC, musíme zkontrolovat licenční model, strukturu podpory, mechanizmus reportování a celkovou flexibilitu. Navíc vyžaduji možnost auditu a řízení procesu pro případ potřeby.

Po dokončení mých inspekčních cest a pravděpodobně mnoha porad zformuluji firemní požadavky a k tomuto procesu vypracuji příslušné dokumenty. Nepředstavuji si, že by ke změně došlo přes noc, ale vzhledem k rizikům k ní pravděpodobně dojde brzy.

Řešíte podobné problémy jako Mathias Thurman? Podělte se o svoje zkušenosti s námi i se čtenáři Computerworldu. Můžete psát na adresu bezpecnost@idg.cz.

Tento příspěvek do Zápisníku manažera pro bezpečnost napsal skutečný manažer bezpečnosti, který zde vystupuje jako Mathias Thurman. Jeho pravé jméno ani jméno zaměstnavatele z pochopitelných důvodů neuvádíme.