Penetrační testy desktopových aplikací

​​​​​​​​​​​​​​​​​​Penetrační testy desktopových aplikací​

U Desktopových aplikací se nebojíme jít s pomocí dekompilace až na úroveň zdrojového kódu, včetně jeho úprav, s cílem identifikovat z pohledu bezpečnosti riziková místa, citlivá data nebo jiné nedostatky v autorizaci či samotném přenosu mezi klientskou aplikací a serverem.

 
 

Náš příběh 

Byli jsme naším klientem osloveni, abychom provedli penetrační test rozsáhlé podnikové aplikace, dodávané třetí stranou. Existovalo reálné podezření na únik citlivých dat, týkající se mezd zaměstnanců a neoprávněném přístupu k těmto informacím. Celá aplikace se skládala ze stovek dílčích souborů a knihoven, zajišťujících komplexní služby pro chod různých divizí a bylo nutné vymezit a zaměřit se na kritické vstupní vektory, představující potenciální cestu k citlivým datům, včetně částí aplikace, které by měly být přístupné pouze konkrétním privilegovaným uživatelům. 
Analýzou probíhající komunikace v souvislosti s možnostmi dekompilace, úpravou a zpětnou kompilací binárních souborů se nám podařilo identifikovat hned několik kritických zranitelností, bezprostředně ohrožující bezpečnost celé aplikace a jejích dat. Funkce pro vzdálený update aplikace umožňovala vkládání dodatečných SQL dotazů vůči databázi , což umožňovalo externímu útočníkovi interakci s databází klienta. Rovněž byla nalezena možnost eskalace běžných oprávnění zaměstnance až na nejvyšší úroveň super uživatele částečnou úpravou softwaru na straně útočníka, protože chyběly dodatečné kontroly i na serverové straně aplikace. 
Všechna naše zjištění pomohla zákazníkovi identifikovat a poznat možná rizika, což mu zajistilo i vhodnou pozici pro řešení nedostatků s dodavatelem softwarového řešení a v konečném důsledku pomohlo zvýšit bezpečnostní úroveň softwaru třetí strany pro ostatní klienty, kteří se v budoucnu stanou jejich zákazníky. ​

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.

Proč zvolit AEC?​​​

  • ​Patříme mezi zavedené české security firmy, na trhu úspěšně působíme již déle než 30 let. 
  • Máme více než 15 let zkušeností na poli bezpečnosti desktopových aplikací. 
  • Náš tým tvoří specialisté se zkušenostmi ze stovek dílčích projektů. 
  • Jsme držiteli certifikací eMAPT, CISSP, OSCP, OSCE, CEH a celé řady dalších. 
  • Provozujeme vlastní hackerskou laboratoř na výzkum v řadě oblastí, zabývajících se bezpečností různých řešení. 
  • Nasloucháme klientům a přizpůsobujeme testy jejich potřebám a časovým možnostem. 
  • Sledujeme moderní trendy v oblasti bezpečnosti desktopových aplikací. 
  • Při testování klademe důraz na manuální přístup, který vede k odhalení většího množství chyb zejména v business logice aplikací oproti automatizovaným nástrojům.

Reference 

  • ​ČMSS, a.s. 
  • Komerční banka a.s. 
  • Eurowag s.r.o. 
  • Konica Minolta Business Solutions Czech, spol. s r.o. 
  • Quadient Technologies Czech s.r.o.

Rádi zkonzultujeme vaši konkrétní situaci


Ověření: 

​​