Je zaručené, že softvér obsahuje chyby. Softvér môže obsahovať tisícky riadkov kódu a ľudská omylnosť znamená, že aspoň niektoré z nich nebudú celé podľa predstáv. Životný cyklus vývoja softvéru je proces navrhnutý tak, aby sa tieto problémy minimalizovali pravidelným testovaním.
Problém je v tom, že testovanie často vykonávajú vývojári, ktorí sa možno naučili, ako niečo kódovať, ale nemusia sa naučiť postupy bezpečného kódovania. Dokonca aj v dôkladne testovaných systémoch môže pohľad vonkajšieho pozorovateľa a nový pohľad pomôcť identifikovať nové problémy.
Bežným spôsobom, ako sa to robí, je penetračný test, zvyčajne skrátený na pentest. To zahŕňa získanie profesionálneho, etického hackera, pentestera, aby sa pozrel na systém a našiel akékoľvek bezpečnostné problémy.
Tip: Je to „pentest“ a „pentester“, nie „test perom“. Pentester netestuje perá. „Test perom“ je o niečo prijateľnejší ako „test perom“, ale vo všeobecnosti by sa mu malo tiež vyhnúť.
Cieľ Letnice
Cieľom každého pentestu je identifikovať všetky bezpečnostné slabiny v testovanom systéme a nahlásiť ich klientovi. Zvyčajne sú však zákazky do určitej miery časovo obmedzené na základe nákladov. Ak má spoločnosť interný tím pentester alebo pentest, môžu pre spoločnosť pracovať natrvalo. Napriek tomu má mnoho spoločností s takým rozsahom široké portfólio systémov, ktoré musia byť testované. To zahŕňa tak predávané produkty, ako aj obchodné systémy spoločnosti.
Ako takí nemôžu tráviť všetok svoj čas testovaním jednej veci. Mnoho spoločností uprednostňuje najatie externej spoločnosti na vykonanie zákazky. Toto je stále časovo obmedzené na základe nákladov. Náklady sú spôsobené skutočnosťou, že pentest je veľmi manuálny proces a že súbor zručností je nedostatok.
Obyčajne bude letný test zameraný na konkrétny časový rámec. Robí sa to na základe daného cieľa a toho, ako dlho by malo trvať, kým si budete dostatočne istí, že ste našli všetko. Časová os na nájdenie zraniteľných miest je vo všeobecnosti zvonová krivka. Okamžite sa toho veľa nenájde, keď sa pentester rozhliadne po aplikácii. Potom sa dá veľká väčšina zistení dosiahnuť v určitom časovom rámci pred znižovaním. V určitom bode náklady na viac času stráveného hľadaním nestoja za šancu, že už nie je možné nájsť nič iné.
Niekedy je dokonca aj uvedená cena za odporúčaný čas príliš vysoká. V tomto prípade môže byť test „časovo ohraničený“. To je miesto, kde klient akceptuje, že netestuje toľko, ako sa odporúča, ale chce, aby pentesteri urobili to najlepšie, čo môžu v skrátenom časovom rámci. Zvyčajne je to zahrnuté ako upozornenie v správe.
Manuálny proces
Niektoré nástroje sú k dispozícii na automatické testovanie bezpečnosti. Tieto môžu byť užitočné. Často však majú vysokú mieru falošne pozitívnych a falošne negatívnych výsledkov. To znamená, že musíte stráviť čas prehrabávaním sa v overovaní problémov s vedomím, že to nemusí byť komplexné. Väčšina týchto nástrojov hľadá špecifické indikátory, ako sú známe zraniteľné verzie softvéru alebo známe zraniteľné funkcie. Existuje však veľa spôsobov, ako to nemôžu byť skutočné problémy alebo ich v praxi zmierniť.
Bezpečnostné chyby sa môžu spájať z množstva zdanlivo neškodných kúskov. Najlepším spôsobom, ako to zistiť, je manuálne ľudské úsilie. Pentestri používajú nástroje, ale vedia, ako interpretovať výsledky, manuálne ich overovať a vykonávať nezávislé manuálne akcie. Toto manuálne úsilie oddeľuje pentest od kontroly zraniteľnosti alebo hodnotenia zraniteľnosti.
Druhy letníc
Pentest zvyčajne zahŕňa testovanie celého produktu tak, ako by bol nasadený. V ideálnom prípade sa to deje v reálnom produkčnom prostredí. To však nie je vždy praktické. Po prvé, existuje obava, že by pentest mohol zraziť cieľ offline. Vo všeobecnosti je tento strach v podstate neopodstatnený. Pentesty vo všeobecnosti negenerujú príliš veľa sieťovej prevádzky, možno ekvivalent niekoľkých ďalších aktívnych používateľov. Pentesters tiež nebudú zámerne testovať problémy typu odmietnutia služby, najmä v produkčnom prostredí. Namiesto toho zvyčajne nahlásia podozrenie na problémy s odmietnutím služby, aby umožnili klientovi, aby to sám prešetril.
Okrem toho stojí za zmienku, že ak je systém pripojený k internetu, neustále podlieha „bezplatným testom“ od skutočných black hat hackerov a ich robotov. Ďalším dôvodom, prečo sa vyhnúť produkčným prostrediam, sú problémy so súkromím pri živých používateľských dátach. Pentesters sú etickými hackermi v rámci NDA a zmlúv, ale ak existuje testovacie prostredie a je podobné, možno ho použiť.
Tip: „Bezplatná pentest“ je vtipný spôsob, ako odkázať na útok čiernych klobúkov na internete.
Pentesty možno vykonávať v podstate proti akémukoľvek technologickému systému. Webové stránky a sieťová infraštruktúra sú najbežnejšími typmi testov. Získate tiež testy API, testy „hrubého klienta“, testy mobilných zariadení, testy hardvéru a ďalšie.
Variácie na tému
V skutočnosti phishing, OSINT a červené tímové cvičenia spolu súvisia, ale mierne sa líšia. Pravdepodobne ste si vedomí hrozby phishingu. Niektoré testy zahŕňajú testovanie, aby ste zistili, ako zamestnanci reagujú na phishingové e-maily. Sledovaním toho, ako používatelia interagujú – alebo nie – s phishingom, je možné naučiť sa, ako prispôsobiť budúce phishingové školenia.
OSINT je skratka pre Open Source INTelligence. Test OSINT sa točí okolo zoškrabovania verejne dostupných informácií, aby sa zistilo, ako sa dajú zhromaždiť cenné údaje a ako sa dajú použiť. To často zahŕňa generovanie zoznamov zamestnancov z miest, ako je LinkedIn a webové stránky spoločnosti. To môže útočníkovi umožniť identifikovať vyššie postavené osoby, ktoré by mohli byť dobrým cieľom pre spear-phishingový útok, phishing špecificky prispôsobený jednotlivým príjemcom.
Zapojenie červeného tímu je zvyčajne oveľa hlbšie a môže zahŕňať niektoré alebo všetky ďalšie zložky. Môže zahŕňať aj testovanie fyzickej bezpečnosti a dodržiavanie bezpečnostnej politiky. Z hľadiska politiky to zahŕňa sociálne inžinierstvo. To sa snaží presvedčiť vašu cestu do budovy. Môže to byť také jednoduché, ako vystrájať sa v fajčiarskej zóne a vrátiť sa s fajčiarmi po fajčiarskej prestávke.
Môže to byť vystupovanie ako úradník alebo žiadosť niekoho, aby vám zaobstaral dvere, zatiaľ čo nesiete podnos na šálku kávy. Na strane fyzickej bezpečnosti to môže dokonca zahŕňať pokus o fyzické vlámanie, testovanie pokrytia kamerou, kvalitu zámkov a podobne. Zapojenie červeného tímu zvyčajne zahŕňa tím ľudí a môže prebiehať v oveľa dlhších časových intervaloch ako bežné pentesty.
Červené tímy
Cvičenie v červenom tíme sa môže zdať menej etické ako štandardný pentest. Tester aktívne loví nič netušiacich zamestnancov. Kľúčom je, že majú povolenie od vedenia spoločnosti, zvyčajne od predstavenstva. To je jediný dôvod, prečo je v poriadku, ak sa červený tímový hráč skutočne pokúsi vlámať dovnútra. Nič však nedovolí, aby to bolo násilné. Cvičenie červeného tímu sa nikdy nepokúsi zraniť alebo podmaniť si strážcu, obísť ho alebo oklamať.
Aby sa zabránilo zatknutiu červeného člena tímu, vo všeobecnosti budú mať pri sebe podpísanú zmluvu s podpismi od schvaľujúcich členov predstavenstva. Ak ich chytia, môže sa to použiť na preukázanie, že mali povolenie. Samozrejme, niekedy sa to používa ako dvojitý bluf. Červený tím môže mať pri sebe dva potvrdenia o povolení, jeden skutočný a jeden falošný.
Keď ich chytia, najprv odovzdajú falošný lístok, aby zistili, či môžu presvedčiť bezpečnosť, že je to legitímne, aj keď to tak nie je. Na tento účel bude často používať skutočné mená predstavenstva spoločnosti, ale bude obsahovať overovacie telefónne číslo, ktoré dostane iný červený tím, ktorý bude informovaný o overení úvodného príbehu. Samozrejme, ak to bezpečnosť prehliadne, odovzdá sa skutočný list s povolením. S tým sa však môže zaobchádzať s veľkým podozrením.
V závislosti od toho, ako bol červený tímový člen chytený, môže byť možné pokračovať v teste za predpokladu, že obišli jednotlivého ochrankára, ktorý ich chytil. Je však možné, že identita testera môže byť „prezradená“, čo ho v podstate odstráni z akéhokoľvek ďalšieho osobného testovania. V tomto bode sa môže vymeniť iný člen tímu s informovaním bezpečnosti alebo bez nej.
Záver
Pentest je zákazka, pri ktorej je odborník na kybernetickú bezpečnosť požiadaný, aby otestoval bezpečnosť počítačového systému. Test zahŕňa manuálne vyhľadávanie a overenie prítomnosti zraniteľností. Ako súčasť môžu byť použité automatizované nástroje. Na konci testu je poskytnutá správa s podrobnosťami o zistených problémoch a poskytnutím rady na nápravu.
Je dôležité, aby táto správa nebola len automatizovaným výstupom z nástroja, ale bola ručne otestovaná a overená. Testovať možno akýkoľvek počítačový systém, hardvér, sieť, aplikáciu alebo zariadenie. Zručnosti potrebné pre každého sa líšia, ale často sa dopĺňajú.