Penetračné testy desktopových aplikácií

​​​​​​​​​​​​​​​​​​​​​Penetračné testy desktopových aplikácií​

Pri desktopových aplikáciách sa nebojíme ísť s pomocou dekompilácie až na úroveň zdrojového kódu vrátane jeho úprav, s cieľom identifikovať z pohľadu bezpečnosti rizikové miesta, citlivé dáta alebo iné nedostatky v autorizácii či samotnom prenose medzi klientskou aplikáciou a serverom.

 
 

Náš príbeh 

Boli sme naším klientom oslovení, aby sme vykonali penetračný test rozsiahlej podnikovej aplikácie dodávanej treťou stranou. Existovalo reálne podozrenie na únik citlivých dát, týkajúci sa miezd zamestnancov a neoprávneného prístupu k týmto informáciám. Celá aplikácia sa skladala zo stoviek čiastkových súborov a knižníc, zaisťujúcich komplexné služby pre chod rôznych divízií a bolo nutné vymedziť a zamerať sa na kritické vstupné vektory, predstavujúce potenciálnu cestu k citlivým dátam vrátane častí aplikácie, ktoré by mali byť prístupné iba konkrétnym privilegovaným používateľom. 
Analýzou prebiehajúcej komunikácie v súvislosti s možnosťami dekompilácie, úpravou a spätnou kompiláciou binárnych súborov sa nám podarilo identifikovať hneď niekoľko kritických zraniteľností, bezprostredne ohrozujúcich bezpečnosť celej aplikácie a jej dát. Funkcie pre vzdialený update aplikácie umožňovali vkladanie dodatočných SQL otázok voči databáze, čo umožňovalo externému útočníkovi interakciu s databázou klienta. Takisto bola nájdená možnosť eskalácie bežných oprávnení zamestnanca až na najvyššiu úroveň super používateľa čiastočnou úpravou softvéru na strane útočníka, pretože chýbali dodatočné kontroly aj na serverovej strane aplikácie. 
Všetky naše zistenia pomohli zákazníkovi identifikovať a spoznať možné riziká, čo mu zaistilo aj vhodnú pozíciu pre riešenie nedostatkov s dodávateľom softvérového riešenia a v konečnom dôsledku pomohlo zvýšiť bezpečnostnú úroveň softvéru tretej strany pre ostatných klientov, ktorí sa v budúcnosti stanú ich zákazníkmi. ​

Popis riešenia​​

Penetračné testy desktopových aplikácií sú v porovnaní s penetračnými testami webových aplikácií v mnohých ohľadoch pomerne špecifické. Vyžadujú komplexné znalosti tak z oblasti bezpečnej autentizácie, autorizácie prístupov a práce s citlivými dátami, ako aj hlboké znalosti programovacích jazykov vrátane assemblera, práce v dissambleri, debuggeri s priamym použitím kódov inštrukčnej súpravy (tzv. opcodes). 
Výsledkom je overenie, či je aplikácia bezpečná, vhodná pre produkčné nasadenie a netrpí žiadnou zjavnou bezpečnostnou slabinou, ktorá by mohla predstavovať priame bezpečnostné riziko tak pre samotnú aplikáciu, jej používateľov, ako aj samotné dáta. 
Nasleduje podrobnejší výpočet oblastí, ktoré bývajú z pohľadu bezpečnosti desktopových aplikácií aj na základe našich dlhoročných skúseností, kritické. Uvedený výpočet nie je kompletný, no podáva zreteľnejšiu predstavu o rozsahu a komplexnosti penetračných testov desktopových aplikácií, či už ide o vlastné vyvíjané riešenie alebo riešenie tretej strany, ktoré sa chystáte do svojho prostredia nasadiť. Radi vám s riešením bezpečnosti pomôžeme. ​

Kritické oblasti pre bezpečnosť desktopových aplikácií 

  • Aplikácia ukladá citlivé dáta v nešifrovanej podobe, 
  • vytvorené súbory majú priradené vysoké prístupové práva, 
  • nedostatočná kontrola vstupov na strane servera, 
  • zraniteľnosti komunikačnej brány, 
  • možné DoS testy komunikačnej brány, 
  • citlivé údaje sú posielané cez nešifrovaný komunikačný kanál, 
  • SSL/TLS nedostatky (verzie, algoritmy, dĺžky kľúčov, validita certifikátov), 
  • je použitý proprietárny komunikačný protokol, 
  • nedostatky vzájomnej autentizácie kanála, 
  • dlhé timeouty čakania na odpoveď servera, 
  • nedostatočná kontrola klientskych vstupov, 
  • možnosti obídenia autentizačnej schémy, 
  • absencia použitia viacfaktorovej autentizácie, 
  • možnosti brute-force útoku na autentizačné údaje, 
  • slabá politika hesiel, 
  • spustiteľné súbory nie sú podpísané, 
  • session tokeny nie sú generované s dostatočnou entropiou, 
  • dlhé trvanie používateľskej relácie, 
  • absencia automatického odhlásenia pri neaktivite, 
  • citlivé informácie ukladané v cache pamäti, 
  • ukladanie citlivých informácií do logov súborov, 
  • kryptografia použitá pri ukladaní dát nie je bezpečná, 
  • spustiteľný kód obsahuje citlivé údaje, 
  • citlivá business logika nachádzajúca sa v programe, 
  • vývojárske komentáre v súboroch programu, 
  • nie sú použité žiadne obfuskátory kódu, 
  • v pamäti sa nachádzajú citlivé dáta, 
  • nedostatky business logiky aplikácie.

Analýzy zdrojových kódov 

  • ​Kombinácia statickej analýzy pomocou automatizovaných nástrojov a manuálnej revízie kódu, 
  • jazyky JAVA, C#, prípadne iné, na otázku.

Naše prednosti​​​​

  • Patríme medzi zavedené české security firmy, na trhu úspešne pôsobíme už dlhšie než 30 rokov. 
  • Máme viac než 15 rokov skúseností na poli bezpečnosti desktopových aplikácií. 
  • Náš tím tvoria špecialisti so skúsenosťami zo stoviek čiastkových projektov. 
  • Sme držiteľmi certifikácií eMAPT, CISSP, OSCP, OSCE, CEH a celého radu ďalších. 
  • Prevádzkujeme vlastné hackerské laboratórium na výskum v mnohých oblastiach zaoberajúcich sa bezpečnosťou rôznych riešení. 
  • Načúvame klientom a prispôsobujeme testy ich potrebám a časovým možnostiam. 
  • Sledujeme moderné trendy v oblasti bezpečnosti desktopových aplikácií. 
  • Pri testovaní kladieme dôraz na manuálny prístup, ktorý vedie k odhaleniu väčšieho množstva chýb najmä v business logike aplikácií oproti automatizovaným nástrojom.

Referencie​ 

  • ​Č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.

Radi skonzultujeme vašu konkrétnu situáciu​


Overenie: 

​​