Popis řešení
Penetrační testy desktopových aplikací jsou ve srovnání s penetračními testy webových aplikací v mnoha ohledech poměrně specifické. Vyžadují komplexní znalosti jak z oblasti bezpečné autentizace, autorizace přístupů a práce s citlivými daty, tak i hluboké znalosti programovacích jazyků včetně assembleru, práce v dissambleru, debuggeru s přímým použitím kódů instrukční sady (tzv. opcodes).
Výsledkem je ověření, zda je aplikace bezpečná, vhodná pro produkční nasazení a netrpí žádnou zjevnou bezpečnostní slabinou, která by mohla představovat přímé bezpečnostní riziko jak pro samotnou aplikaci, její uživatele, tak samotná data.
Následuje podrobnější výčet oblastí, které bývají z pohledu bezpečnosti desktopových aplikací i na základě našich dlouholetých zkušeností, kritické. Uvedený výčet není kompletní, nicméně podává zřetelnější představu o rozsahu a komplexnosti penetračních testů desktopových aplikací, ať již se jedná o vlastní vyvíjené řešení nebo řešení třetí strany, které se chystáte do svého prostředí nasadit. Rádi vám s řešením bezpečnosti pomůžeme.
Kritické oblasti pro bezpečnost desktopových aplikací
- Aplikace ukládá citlivá data v nešifrované podobě,
- vytvořené soubory mají přiřazena vysoká přístupová práva,
- nedostatečná kontrola vstupů na straně serveru,
- zranitelnosti komunikační brány,
- možné DoS testy komunikační brány,
- citlivé údaje jsou posílány přes nešifrovaný komunikační kanál,
- SSL/TLS nedostatky (verze, algoritmy, délky klíčů, validita certifikátů),
- je použit proprietární komunikační protokol,
- nedostatky vzájemné autentizace kanálu,
- dlouhé timeouty čekání na odpověď serveru,
- nedostatečná kontrola klientských vstupů,
- možnosti obejití autentizačního schématu,
- absence použití více faktorové autentizace,
- možnosti brute-force útoku na autentizační údaje,
- slabá politika hesel,
- spustitelné soubory nejsou podepsány,
- session tokeny nejsou generovány s dostatečnou entropií,
- dlouhé trvání uživatelské relace,
- absence automatického odhlášení při neaktivitě,
- citlivé informace ukládané v cache paměti,
- ukládání citlivých informací do log souborů,
- kryptografie použita při ukládání dat není bezpečná,
- spustitelný kód obsahuje citlivé údaje,
- citlivá business logika obsažena v programu,
- vývojářské komentáře v souborech programu,
- nejsou použity žádné obfuskátory kódu,
- v paměti se nacházejí citlivá data,
- nedostatky business logiky aplikace.
Analýzy zdrojových kódů
- Kombinace statické analýzy pomocí automatizovaných nástrojů a manuální revize kódu,
- jazyky JAVA, C#, případně jiné, na dotaz.