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

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

Během bezpečnostních testů webových aplikací jsou naše úkony zaměřené především na manuální činnosti podpořené výstupy z automatizovaných nástrojů.

 
 

Náš príbeh

Jeden z našich významných klientov nás požiadal o penetračné testy webovej aplikácie, ktorá bola nasadená už v produkčnom prostredí, a teda dostupná z internetu. Aplikáciu navyše nevyvíjal klient, ale externý dodávateľ. Bol tu kladený veľký dôraz na vykonanie testov v čo najkratšom možnom čase a zároveň, aby nebola ohrozená dostupnosť či integrita dát – vzhľadom na externého dodávateľa bolo zvýšené riziko v prípadnom zdržaní pri obnove aplikácie/dát.
Pri penetračných testoch sme objavili celý rad veľmi závažných zraniteľností. Autentizovaný bežný používateľ mohol obísť autorizačné schémy a v rámci aplikácie eskalovať svoje privilégiá na úroveň administrátora, inými slovami, obyčajný používateľ bol schopný kompletne prevziať kontrolu nad celou aplikáciou a ľubovoľne ju spravovať, vykonávať modifikácie či útočiť na ďalších používateľov aplikácie. Opísaná zraniteľnosť nebola tá najzávažnejšia, ktorá sa v aplikácii vyskytovala. Funkcionalita pre nahrávanie obrázkov umožňovala, celkom jednoduchým spôsobom, obísť nastavené reštrikcie, a nahrať prakticky ľubovoľný súbor, napr. php súbor (skriptovací jazyk, v ktorom je aplikácia implementovaná) a pomocou neho spúšťať systémové príkazy na danom aplikačnom serveri. Tento nahratý súbor bol navyše voľne dostupný aj pre neautentizovaného používateľa (teda celkom verejne). Opísaným spôsobom sme boli schopní plne kompromitovať aplikačný server.
Ďalšia veľmi kritická zraniteľnosť bola nájdená v neautentizovanej časti aplikácie, opäť voľne dostupná z internetu. Pole pre vyhľadávanie adekvátne neošetrovalo používateľské vstupy, vďaka čomu bolo možné prevolávať priamo otázky v databáze, teda jednak získať neautorizovaný prístup ku všetkým dátam, ale tiež celkom kompromitovať databázový server. 
Opísané zraniteľnosti vo vysokej miere ohrozovali dobrú povesť spoločnosti vrátane možných finančných dopadov pri ďalšom zneužití klientskych dát. Navyše, vzhľadom na fakt, že je aplikácia verejne dostupná, mohol zmienené útoky vykonať (väčšinu z nich) prakticky akýkoľvek návštevník webovej aplikácie.

Popis riešenia​

Při testování aplikací je naším cílem odhalit zranitelnosti, které mohou narušit jejich důvěrnost, integritu či dostupnost. V rámci aplikační bezpečnosti se věnujeme nejen běžně se vyskytujícím útokům zneužívajících typické zranitelnosti a obranu vůči nim, ale také nejnovějším trendům v oblasti bezpečného vývoje – od návrhu, přes architekturu až po samotné nasazení a správu. 

Penetračné testy a skeny zraniteľností​

Nami vykonávané testy sú zamerané, okrem iného, na identifikáciu bezpečnostných slabín, ktoré sa môžu vyskytovať v rámci konfigurácie, počas procesov spracovania dát či nesprávnou implementáciou. Súčasťou je tiež preverenie bezpečnosti všetkých funkcionalít, autentizačných a autorizačných mechanizmov, business logiky, spôsobu zaobchádzania s citlivými informáciami a ďalších oblastí.​

Penetračné testy zahŕňajú predovšetkým nasledujúce kroky:​

  • zber dostupných informácií,
  • kontrolu nastavení bezpečnej komunikácie (napr. pomocou HTTPS, SSL),
  • preverenie bezpečnosti kritických dátových tokov,​
  • únik citlivých informácií,
  • možnosť zneužitia aplikácie neautorizovaným spôsobom a pokus o ovládnutie účtu legitímneho používateľa,
  • kontrolu vstupov zadaných používateľom,
  • bezpečnosť technológií, na ktorých sú systémy postavené (operačné systémy, webové, aplikačné a databázové servery) a ich bezpečná integrácia do zostávajúcej infraštruktúry,
  • možnosti zneužitia dostupných technológií v aplikácii útočníkom a vykonateľné útoky na účty/relácie legitímnych klientov,
  • nedeštruktívna exploitácia všeobecne známych/nájdených zraniteľností a ďalšie.

Podrobný popis

Pri realizácii penetračných testov vychádzame predovšetkým z aktuálnej metodiky OWASP Testing Guide, pričom využívame nižšie uvedené techniky.

Information Gathering 

  • fáza zameraná na zber čo najväčšieho množstva informácií,
  • využitie voľne dostupných nástrojov (vyhľadávače, skenery, jednoduché odosielanie HTTP otázok, alebo špeciálne upravené žiadosti),
  • vyzradenie informácií napríklad vo forme chybových hlásení alebo oznámenie verzií a používaných technológií.

Configuration and Deploy Management Testing 

  • analýza infraštruktúry a architektúry topológie,
  • prieskum technických informácií ako zdrojový kód, povolené HTTP metódy, administračná funkcionalita, autentizačné metódy a informácie o konfigurácii infraštruktúry.

Identity Management Testing 

  • overenie mechanizmu pre správu používateľov a ich rolí,
  • testovanie parametrov, identifikácia bezpečnostných nedostatkov, chyby zabezpečenia vedúce k priamej kompromitácii používateľských účtov.

Authentication Testing 

  • analýza funkčnosti autentizačného procesu a pokusy o jeho obídenie.

Authorization Testing 

  • zisťovanie možností obídenia autorizačných pravidiel a nastavenia práv používateľov,
  • hľadanie cesty k eskalácii pridelených privilégií.

Session Management Testing 

  • analýza možnosti odcudzenia autentizovanej session používateľa,
  • zisťovanie možností a vykonanie útokov typu Man-in-the-Middle a obdobných.

Data Validation Testing 

  • jedna z najdôležitejších častí penetračného testovania – tu je skúmaná odolnosť aplikácie voči útokom typu SQL/Code Injection, Cross-Site Scripting, Local File Inclusion a ďalším.

​Error Handling Testing 

  • test úniku citlivých informácií z často veľmi detailných chybových hlášok,
  • generovanie neštandardných vstupov tak do veľkosti, ako aj obsahu.

Cryptography Testing 

  • overenie, či aplikácia akceptuje zastarané, nefunkčné, alebo pre daný účel celkom nevhodné (žiadne) kryptografické mechanizmy.

Business Logic Testing 

  • skúmanie všetkých workflow funkcionalít a hľadanie možnosti ich zneužitia na vykonanie aktivít, ktoré nie sú v súlade s možnosťami použitia v danej aplikácii.

Client Side Testing 

  • overenie, aké účinné mechanizmy aplikácie používa na ochranu používateľov pred špecializovanými útokmi, ktoré smerujú priamo na používateľa a jeho prehliadač,
  • ​testovanie rôznych druhov injekcií klientskych skriptovacích jazykov a manipulácia s parametrami spravovanými prehliadačom.

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ž 20 rokov skúseností na poli bezpečnosti webových aplikácií a platforiem. 
  • Disponujeme najväčším tímom etických hackerov v ČR, ktorý je zložený z viac než 15 vlastných pracovníkov na hlavný pracovný pomer. 
  • Sme držiteľmi certifikácií CEH, eMAPT, CISSP, OSCP, OSCE a celého radu ďalších. 
  • Náš tím tvoria špecialisti so skúsenosťami zo stoviek webových projektov. 
  • Prevádzkujeme vlastné hackerské laboratórium, kde zdieľame svoje znalosti s komunitou, a to tak v oblasti návrhu, cez architektúru až po samotné nasadenie a správu webových aplikácií. 
  • Načúvame klientom a prispôsobujeme testy ich potrebám a časovým možnostiam.
  • Sledujeme moderné trendy v oblasti webovej bezpečnosti a technológií.
  • 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í.

Referencie

  • I​NG Bank N.V. 
  • MONETA Money Bank, a.s.
  • Komerční banka, a.s. 
  • ŠKODA AUTO a.s. 
  • Česká národní banka 
  • SAZKA, a.s. 
  • T-Mobile Czech Republic a.s. 
  • Raiffeisenbank a.s. 
  • Home Credit a.s. 
  • KBC Group N.V. 
  • AXA Česká republika s.r.o.​

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


Overenie: 

​​