Analýza a testování zabezpečení

Přehled

Bezpečnostní testování kódu ve společnosti Oracle zahrnuje provozní i neprovozní aktivity k ověření funkcí a kvality produktů. Tyto typy testů sice často ověřují stejné funkce produktu, mají však různé cíle a provádějí je jiné týmy. Provozní a neprovozní bezpečnostní testy se navzájem doplňují a poskytují komplexní pokrytí zabezpečení produktů Oracle.

Provozní testování zabezpečení

Provozní testování zabezpečení většinou provádějí týmy kontroly kvality v rámci běžného cyklu testování produktů. Během tohoto testování pracovníci kontroly kvality ověřují, zda se implementované bezpečnostní funkce shodují s dříve dohodnutými funkčními specifikacemi při procesu architektonického návrhu a procházení kontrolního seznamu.

Analýza a testování zajištění zabezpečení

Analýza a testování zajištění zabezpečení ověřuje bezpečnostní vlastnosti produktů Oracle při různých typech útoků. Při testování produktů Oracle jsou využívány dvě základní kategorie testů: statická a dynamická analýza, které budou podrobněji popsány v následujících částech. Tyto testy jsou vhodné v různých fázích vývoje produktů a obvykle odhalují jiné kategorie problémů, proto je týmy vývoje produktů Oracle využívají společně.

Statická analýza

Statická bezpečnostní analýza zdrojového kódu představuje první linii obrany v životním cyklu vývoje produktu. Společnost Oracle využívá nástroj pro statickou analýzu kódu od společnosti Fortify Software ze skupiny HP a také celou řadu interních nástrojů, které mají zachytit problémy ve fázi tvorby kódu. Umožňuje to zkontrolovat produkty vyvíjené s využitím většiny moderních programovacích jazyků (jako C/C++, Java, C#) a platforem (J2EE, .NET) a odhalit potenciální bezpečnostní problémy. Tento typ kontroly dokáže velice dobře zachytit přetečení vyrovnávací paměti a nevrácenou paměť v kódu v jazyce C/C++, problémy se zacházením se zdroji v prostředí J2EE a .NET, odhalit nevhodné zpracování přihlašovacích údajů, různé injekce kódu, nesprávné konfigurace systému a podobně. Jednou z nevýhod tohoto typu analýzy je vysoká míra falešně pozitivních nálezů – tj. značné množství nalezených položek, které nepředstavují skutečný problém. Analýze těchto hlášení se většinou věnují zkušení inženýři z produktových týmů, kteří jsou dobře obeznámeni s příslušným kódem a odliší falešně pozitivní nálezy od skutečných problémů, takže mohou počet falešně pozitivních hlášení snížit.

Dynamická analýza

Dynamická analýza vždy probíhá v pozdějších fázích vývoje produktů: produkty nebo komponenty by minimálně měly být spustitelné. Postup se sice v různých organizacích Oracle může lišit, většinou však tuto činnost provádí tým kontroly kvality zabezpečení (nebo podobná specializovaná skupina), který může spolupracovat s několika produktovými týmy. Dynamická analýza je zaměřena na externě dostupné rozhraní produktu a API a často využívá specializované nástroje pro testování. Ve společnosti Oracle jsou při testování používány ruční i automatické nástroje. Automatické nástroje testují rozhraní produktů a protokoly dostupné prostřednictvím sítě s využitím techniky fuzzingu, zatímco ruční nástroje vyžadují ruční zadání parametrů, zároveň však umožňují dosáhnout větší správnosti a přesnosti.