Príručka nášho zákazníka I - Nethemba

BLOG

Príručka nášho zákazníka I

Všetko, čo ste chceli vedieť o našich IT bezpečnostných službách

Cieľom nasledujúceho dokumentu je na základe našich 14-ročných skúseností v oblasti etického hackovania (vykonaných stovky penetračných testov a bezpečnostných auditov pre množstvo našich zákazníkov) vysvetliť ako si vybrať vhodný penetračný test alebo bezpečnostný audit a to tak, aby bol v súlade s vašimi očakávaniami, bol vykonaný najviac profesionálne a za najlepšiu cenu. Dokument je rozdelený na tri časti, ktoré budú postupne zverejnené na našom blogu.

Prvá časť: 

Aký penetračný test alebo bezpečnostný audit potrebujem (RFI)

Druhá časť: 

Chcem ponuku, čo odo mňa potrebujete? (RFP)
Rozhodol som sa pre vaše služby, poďme do toho!
Ako pripravím testovacie prostredie a testovacie účty?
Testovanie úspešne prebieha, čo mám čakať?
Výsledná správa

Tretia časť:

Opakované testy a bug bounty program
Aké technologické certifikáty by mali mať etickí hackeri?
Prečo práve testy u “slobodnej” firmy?

Aký penetračný test alebo bezpečnostný audit potrebujem? (RFI)

Testy webových aplikácií

Ak ste malá firma bez vlastnej internej infraštruktúry, tak zrejme vás bude zaujímať penetračný test vášho webu alebo vašej webovej aplikácie. Ak máte malý alebo stredne veľký web bez komplexnej dynamickej funkcionality, tak vám postačí náš najpopulárnejší štandardný penetračný test. Jeho cieľom je behom fixného času (3 dni) odhaliť čo najviac kritických alebo iných vážnych zraniteľností. Ide o “blackbox” simuláciu reálneho hackerského útoku, kedy potenciálny útočník má na vyhackovanie vašej aplikácie fixný čas tri dni. Odpovedá teda na otázku – čo všetko dokáže profesionálny hacker odhaliť a zneužiť behom uvedeného času?

Bohužiaľ tri dni obvykle nestačia na odhalenie väčšiny zraniteľností, obzvlášť v zložitejších a komplexnejších aplikáciách. Na toto je vhodný detailný bezpečnostný audit, ktorý vykonávame podľa OWASP bezpečnostnej testovacej príručky (momentálne vo verzii 4.2). Ide o najdetailnejší webový test, ktorý vykonávame striktne podľa tejto otvorenej metodológie. 

V prípade záujmu zákazníka realizujeme aj audit zdrojových kódov aplikácie. Keďže zdrojový kód je obvykle rozsiahly, sústreďujeme sa špeciálne na z hľadiska bezpečnosti kritické časti kódu – autentifikáciu, autorizáciu a session management.

Pri detailnom bezpečnostnom audite prechádzame a testujeme všetky formuláre webovej aplikácie na všetky druhy známych webových útokov. Preto je tento audit aj výrazne pracnejší (potrebujeme cca 2-4 týždne na detailné otestovanie jednej aplikácie). Súčasťou tohto testu je aj tvorba (programovanie) exploitov, čo sú špecializované programy, ktorými prakticky demonštrujeme zneužitie odhalených kritických zraniteľností. Detailný bezpečnostný audit odporúčame pre všetky z hľadiska bezpečnosti kritické aplikácie, ktoré disponujú citlivými osobnými alebo finančnými údajmi, či umožňujú finančné prevody. Tento test je preto vhodný pre finančný sektor, stredne veľké či veľké spoločnosti. Odporúčame ho realizovať pred nasadením akejkoľvek novo vyvinutej aplikácie do produkčného prostredia.

Testy mobilných aplikácií

Mať peknú a funkčnú mobilnú aplikáciu je v súčasnej dobe pre veľké množstvo firiem už nevyhnutnosť a štandard súčasne. Mobilné aplikácie pre Android alebo iPhone môžu obsahovať také druhy zraniteľností, ktoré sa vo webových aplikáciách nenachádzajú. Preto odporúčame každú takúto mobilnú aplikáciu pred jej oficiálnym spustením dôkladne otestovať.

V rámci služby bezpečnostný audit mobilnej aplikácie vykonávame ako testovanie serverovej časti webových služieb (REST/SOAP), tak klientskej časti (frontend) samotnej aplikácie (Android aplikácie napísané v Jave dekompilujeme, iOS aplikácie napísané v Objective C reverzujem a disassemblujeme). Súčasť testovania je tiež aktívne sledovanie a intervencia do komunikácie medzi samotnou mobilnou aplikáciou a jej serverovou stranou (pri tejto komunikácii upravujeme ako žiadosti aplikácie, tak odpovede zo strany servera s cieľom identifikovať zraniteľnosti). Využívame na to rôzne tzv. “fault injection” nástroje. Dokážeme obísť rôzne bezpečnostné ochrany, ktorými sa aplikácia chráni (napríklad SSL pinning, detekcia roota/jailbreaku, obfuskácia kódu atd). Otestovanie jednej mobilnej aplikácie na jednej platforme trvá rádovo 1-3 týždne.

Externé penetračné testy

Ak ste už väčšia firma, tak pravdepodobne už disponujete vlastnou sieťovou infraštruktúrou (externá a interná firemná sieť), ktorú je potrebné udržiavať a zabezpečovať. Na to vám pomôže náš externý penetračný test. Ten dokáže byť realizovaný v kompletnej “blackbox” forme, kedy nám ako zákazník neposkytnete žiadne informácie o vašej sieťovej infraštruktúre. V rámci fázy, ktorá sa nazýva “information gathering” sa tieto potrebné informácie pokúsime získať z verejne dostupných registrov či databáz. Našim cieľom je identifikovať vaše potenciálne sieťové IP rozsahy alebo IP adresy. Táto fáza je pasívna, čo znamená, že vašich serverov či sieťových prvkov sa “nedotýkame”, len zhromažďujeme dostupné informácie o vašej infraštruktúre. Následne, keď získame zoznam vašich potenciálnych IP adries alebo IP rozsahov, tak vás kontaktujeme a necháme si od vás explicitne potvrdiť, že ide skutočne o vaše reálne IP adresy. Pokračovať v aktívnom testovaní IP adries, ktoré vám nepatria, je totiž nelegálne. 

Druhá, zhruba o jeden deň rýchlejšia alternatíva je  nám rovno poslať vaše IP rozsahy alebo zoznamy IP adries, ktoré si želáte otestovať. Následne sa dokážeme pustiť do penetračného testovania. Externý penetračný test trvá rádovo pár dní až týždňov (podľa veľkosti testovanej infraštruktúry).

Interné penetračné testy

60% všetkých bezpečnostných incidentov pochádza vraj od interných zamestnancov z internej siete. Preto je dôležité dbať aj o bezpečnosť internej sieťovej infraštruktúry. Na jej otestovanie ponúkame penetračný test intranetu. Ten môže byť realizovaný buď z pohľadu náhodného anonymného útočníka (človek, ktorý prišiel do firmy na pohovor a pripojil si laptop v zasadačke), tak z pohľadu bežného zamestnanca (napríklad sekretárky, ktorá má prístup do firemného doménového servera). Obvykle nám stačí anonymný prístup do internej siete, aby sme dokázali obísť ochrany ako MAC security, 802.1x či iné ochrany na linkovej vrstve. Útokmi ako ARP poisoning a vydávaním sa za “oficiálny” sieťový router dokážeme relatívne rýchlo získať oprávnenia iných interných používateľov (takže častokrát oficiálny účet sekretárky nakoniec ani nepotrebujeme). Pokým to nemáme špecifikované inak, tak najväčším cieľom interného penetračného testu je kompromitovať hlavný doménový server (AD) a hlavný sieťový router, ktorý smeruje všetku sieťovú prevádzku z vašej firmy do Internetu. Toto de facto znamená, že sa nám podarilo získať plnú kontrolu nad vašou internou sieťou. V minulosti sme väčšinu interných penetračných testov realizovali “onsite”, teda fyzicky u zákazníka. V súčasnej pandemickej dobe sme sa prakticky úplne “prepli” do testovania na diaľku cez zákazníkmi vytvorené VPN spojenie. Ak sa nájdu korporácie, ktoré majú veľa pobočiek na celom svete s oddelenými internými sieťami, tak na ich kompletné otestovanie potrebujeme VPN spojenie do každej jednej lokality.

Lokálny bezpečnostný audit

Pri “potulkách” po internej sieti častokrát objavíme z pohľadu zákazníka kľúčový alebo kritický server, ktorý vyžaduje detailné otestovanie a to z pohľadu ako neprivilegovaného, tak privilegovaného používateľa. V tomto prípade zahájime lokálny bezpečnostný audit, ktorého cieľom je odhaliť všetky možné zraniteľnosti v danom lokálnom systéme a nainštalovaných aplikáciách. A pomôcť následne pri jeho ďalšom zabezpečení (tzv. hardening). Pri tomto systémovom audite napríklad overujeme všetky možné spôsoby neautorizovanej eskalácie neprivilegovaných používateľov na privilegovaných (administrátor / root).

Sociálne inžinierstvo

Všetky vyššie uvedené testy sa týkali hľadania zraniteľností, ktoré umožňujú útoky na technológie. Bohužiaľ častokrát sa stáva, že aj napriek tomu, že používate vysoko bezpečné technológie (systémy, aplikácie), tak sa stanete obeťou hackerského útoku. V tomto prípade hovoríme o tzv. útokoch sociálneho inžinierstva, kedy predmetom útoku nie sú technológie, ale samotní ľudia. Útočník pri sociálnom inžinierstva využíva typické ľudské vlastnosti ako altruizmus, dôverčivosť, potreba pomáhať, ale aj sebectvo či strach z autorít. 

Sociálne inžinierstvo, ktoré vykonávame, pozostáva z troch častí.

Prvá časť predstavuje internetový cielený phishing (tzv. spear-phishing), kedy sa snažíme obvykle e-mailami alebo instantnou komunikáciou zmanipulovať vašich zamestnancov. A to tak, aby nám poskytli zvolené citlivé informácie alebo nám umožnili vykonať inak nepovolené operácie.

Druhá časť prebieha telefonicky alebo SMS správami, kedy využívame metódy impersonifikácie (vydávanie sa za inú osobu) či caller ID spoofing (voláme pre obeť z vopred známych podvrhnutých čísel, ktorým dôveruje).

Tretia fáza predstavuje samotnú fyzickú infiltráciu do budovy zákazníka. Na to obvykle potrebujeme tzv. “Get Out Of Jail Letter”, teda dokument podpísaný vedením firmy, prehlasujúci, že ide len o test, aby sme sa vyhli prípadnej fyzickej konfrontácii.

Každý zákazník je iný a vyžaduje iné scenáre sociálne inžinierstva. Niektorí zamestnanci zákazníkov majú vyššie bezpečnostné povedomie a preto sú imúnni na triviálne útoky sociálneho inžinierstva (ako napríklad na phishing e-maily či rozsypané USB kľúče s malvérom). Preto vypracuvávame sofistikovanejšie scenáre, ktoré následne za radom skúšame.  

Dobre realizované sociálne inžinierstvo je častokrát veľmi úspešné. Aj v dnešnej dobe môžeme vidieť, ako výborne fungujú podvodníci vydávajúci sa za zamestnancov Microsoftu, ktorí vám zavolajú cez telefón a snažia sa získať prístup k vášmu počítaču a citlivým osobným údajom.

Špecializované testy

Ak ste zákazník, ktorý má záujem o špecifické testy nejakej konkrétnej technológie alebo platformy, tak nám dajte vedieť. Máme expertov a skúsenosti s bezpečnosťou nasledujúcich technológií:

Bezpečnostný audit smart kontraktov – ak potrebujete otestovať decentralizované aplikácie v Solidity nad Ethereum (či iným) blockchainom, ktorý umožnuje smart kontrakty. Téme zraniteľností v smart kontraktoch sme sa venovali v tomto dlhšom článku.

Bezpečnostný audit SAP systémov – ak chcete otestovať bezpečnosť vašich SAP systémov a aplikácií. Keďže SAP je veľmi zložitý robustný systém, tak máme veľmi vysokú úspešnosť jeho kompromitovania.

Bezpečnostný audit čipových kariet – v minulosti sme demonštrovali prelomenie najrozšírenejších čipových kariet na svete (Mifare Classic) a tiež sme ako prví publikovali open-source nástroj na ich prelomenie (mfoc, dostupný napríklad v hackerskej distribúcii Kali). Tieto skúsenosti sme opakovane využili na auditovanie rôznych technológií bezdrôtových čipových kariet (spĺňajúce štandardy ISO 15693 a ISO/IEC 14443).

Bezpečnostný audit bezdrôtových (WiFi) sietí – podvrhnuté wifi hotspoty (tzv. “Rogue APs”) môžu predstavovať neželaný spôsob úniky citlivých informácii z vašej internej siete. Podobne nedostatočne zabezpečená interná wifi sieť znamená, že útočník kompromituje vás, vašich zamestnancov alebo zákazníkov. Toto všetko dokáže odhaliť bezpečnostný audit bezdrôtových (WiFi) sietí, ktorý radi realizujeme fyzicky vo vašich priestoroch.

Bezpečnostný audit SCADA a IoT – ak vyrábate vlastný hardvér alebo ste podnik s kritickou priemyselnou infraštruktúrou, tak môžete využiť naše špecializované SCADA a IoT bezpečnostné audity, ktoré dokážu odhaliť zraniteľnosti vo vašom hardvéri či v priemyselnej infraštruktúre. Tieto zraniteľnosti môžu mať často fatálne dôsledky v prípade zneužitia – napríklad zlyhanie výrobnej linky, generátora, znefunkčnenie kardio stimulátora atď.

V našej firme máme skúseností s testovaním bezpečnosti proprietárnych VoIP telefónov, WiFi routrov, palubných jednotiek do áut, mobilných BTS staníc či priemyselnej infraštruktúry.

V druhej časti článku si vysvetlíme, aké presne informácie potrebujeme od vás na vytvorenie vhodnej ponuky, podpísanie zmlúv, vytvorenie testovacieho prostredia a testovacích účtov a spustenie samotného testovania.