complete penetration testing guide with sample test cases
Jedná sa o proces identifikácie bezpečnostných nedostatkov v aplikácii vyhodnotením systému alebo siete pomocou rôznych škodlivých techník. Slabé stránky systému sa v tomto procese využívajú prostredníctvom autorizovaného simulovaného útoku.
Účelom tohto testu je zabezpečiť dôležité údaje od cudzincov, ako sú hackeri, ktorí môžu mať neoprávnený prístup do systému. Akonáhle je zraniteľnosť identifikovaná, používa sa na zneužitie systému na získanie prístupu k citlivým informáciám.
Penetračný test je tiež známy ako test perom a tester penetrácie sa označuje aj ako etický hacker.
Čo sa dozviete:
- Čo je to penetračné testovanie?
- Príčiny zraniteľností
- Nástroje a spoločnosti na testovanie prieniku
- Odporúčané nástroje na testovanie penetrácie
- Odporúčaná spoločnosť na testovanie prieniku
- Prečo testovanie penetrácie?
- Čo by sa malo testovať?
- Typy testovania prieniku
- Techniky testovania perom
- Testovacie prípady penetračného testovania (testovacie scenáre)
- Záver
Čo je to penetračné testovanie?
Pomocou penetračného testovania môžeme zistiť zraniteľnosť počítačového systému, webovej aplikácie alebo siete.
Test penetrácie hovorí, či sú súčasné obranné opatrenia použité v systéme dostatočne silné, aby zabránili narušeniu bezpečnosti. Správy o penetračných testoch tiež naznačujú protiopatrenia, ktoré je možné prijať na zníženie rizika napadnutia systému.
Príčiny zraniteľností
- Chyby pri návrhu a vývoji : V dizajne hardvéru a softvéru môžu byť nedostatky. Tieto chyby môžu vystaviť vaše kritické obchodné údaje riziku vystavenia.
- Zlá konfigurácia systému : Toto je ďalšia príčina zraniteľnosti. Ak je systém zle nakonfigurovaný, môže zaviesť medzery, cez ktoré môžu útočníci vstúpiť do systému a ukradnúť informácie.
- Ľudské chyby : Ľudské faktory, ako napríklad nesprávna likvidácia dokumentov, ponechanie dokumentov bez dozoru, chyby kódovania, interné hrozby, zdieľanie hesiel cez phishingové stránky atď., Môžu viesť k narušeniu bezpečnosti.
- Pripojiteľnosť : Ak je systém pripojený k nezabezpečenej sieti (otvorené pripojenia), prichádza do dosahu hackerov.
- Zložitosť : Zraniteľnosť zabezpečenia stúpa úmerne so zložitosťou systému. Čím viac funkcií má systém, tým väčšia je šanca na jeho napadnutie.
- Heslá : Heslá sa používajú na zabránenie neoprávnenému prístupu. Mali by byť dostatočne silné, aby nikto nemohol uhádnuť vaše heslo. Heslá by sa nemali s nikým zdieľať za každú cenu a heslá by sa mali pravidelne meniť. Napriek týmto pokynom občas ľudia prezradia svoje heslá ostatným, niekde si ich zapíšu a ponechajú si ľahké heslá, ktoré je možné uhádnuť.
- Vstup používateľa : Určite ste už počuli o vstrekovaní SQL, pretečení vyrovnávacej pamäte atď. Dáta prijaté elektronicky týmito metódami je možné použiť na útok na prijímajúci systém.
- Zvládanie : Správa zabezpečenia je ťažká a nákladná. Niekedy organizácie zaostávajú v správnom riadení rizík, a preto sa v systéme indukuje zraniteľnosť.
- Nedostatočné školenie zamestnancov : To vedie k ľudským chybám a ďalším zraniteľnostiam.
- Komunikácia : Kanály ako mobilné siete, internet, telefón otvárajú priestor pre prípad krádeže zabezpečenia.
Nástroje a spoločnosti na testovanie prieniku
Na identifikáciu niektorých štandardných chýb zabezpečenia v aplikácii je možné použiť automatické nástroje. Nástroje Pentest skenujú kód a kontrolujú, či sa v ňom nenachádza škodlivý kód, ktorý môže viesť k možnému narušeniu bezpečnosti. Nástroje Pentest môžu overovať medzery v zabezpečení v systéme preskúmaním techník šifrovania údajov a zisťovaním pevne zakódovaných hodnôt, ako sú používateľské meno a heslo.
Kritériá pre výber najlepšieho penetračného nástroja:
- Nasadenie, konfigurácia a použitie by malo byť jednoduché.
- Mal by prehľadať váš systém ľahko.
- Mal by kategorizovať zraniteľné miesta na základe závažnosti, ktorá si vyžaduje okamžitú opravu.
- Mal by byť schopný automatizovať overovanie zraniteľností.
- Malo by to znova overiť predtým nájdené exploity.
- Mal by generovať podrobné správy a protokoly o zraniteľnosti.
Keď viete, aké testy musíte vykonať, môžete si zaškoliť svoje zdroje pre interné testy alebo si najať odborných konzultantov, aby za vás vykonali úlohu prieniku.
Odporúčané nástroje na testovanie penetrácie
# 1) Acunetix
Acunetix WVS ponúka bezpečnostným profesionálom aj softvérovým inžinierom množstvo ohromujúcich funkcií v ľahkom, priamočiarom a veľmi robustnom balení.
=> Vyskúšajte tu najlepší nástroj na testovanie perom
# 2) Votrelec
Votrelec je výkonný skener zraniteľnosti, ktorý zisťuje slabiny kybernetickej bezpečnosti vo vašom digitálnom majetku, vysvetľuje riziká a pomáha s ich nápravou skôr, ako dôjde k narušeniu. Je to dokonalý nástroj, ktorý pomáha automatizovať vaše úsilie pri penetračnom testovaní.
Kľúčové vlastnosti :
- Viac ako 9 000 automatických kontrol v celej vašej IT infraštruktúre.
- Kontroly infraštruktúry a webových vrstiev, ako napríklad vkladanie SQL a skriptovanie medzi webmi.
- Keď zistíte nové hrozby, automaticky prehľadá vaše systémy.
- Viaceré integrácie: AWS, Azure, Google Cloud, API, Jira, Teams a ďalšie.
- Intruder ponúka 30-dňovú bezplatnú skúšobnú verziu svojho plánu Pro.
Odporúčaná spoločnosť na testovanie prieniku
# 1) ImmuniWeb®
ImmuniWeb® je spoločnosť na testovanie penetrácie so sídlom v Ženeve vo Švajčiarsku. Jeho platforma na testovanie prieniku aplikácií s podporou DevSecOps kombinuje ľudí s umelou inteligenciou a prichádza s nulovou falošne pozitívnou SLA, najvyššou detekciou zraniteľnosti a aktívnym hlásením.
ImmuniWeb ponúka komplexné testovanie penetrácie aplikácií interných a externých webových a mobilných aplikácií, rozhraní API a webových služieb, poštových serverov, zariadení internetu vecí a ďalších.
Kľúčové vlastnosti:
- Neustála detekcia nového kódu.
- Rýchle a nákladovo efektívne manuálne testovanie.
- Virtuálne možnosti opravy jedným kliknutím.
- 24/7 prístup k bezpečnostným analytikom.
- Integrácia DevSecOps a CI / CD.
- Okamžitá objednávka a rýchle dodanie.
- Viacúčelová palubná doska.
Ostatné bezplatné nástroje:
Obchodné služby:
Môžete sa tiež zmieniť o zozname nižšie, ktorý je k dispozícii na STH a ktorý hovorí o 37 výkonných nástrojoch na penetračné testovanie => Výkonné nástroje na testovanie penetrácie pre každý penetračný tester
ako postaviť java projekt v zatmení
Prečo testovanie penetrácie?
Určite ste už počuli o útoku ransomvéru WannaCry, ktorý sa začal v máji 2017. Zamkol viac ako 2 počítače lakh po celom svete a požadoval výkupné v kryptomene bitcoin. Tento útok zasiahol mnoho veľkých organizácií po celom svete.
S takými obrovskými a nebezpečnými kybernetickými útokmi, ktoré sa v dnešnej dobe dejú, sa stalo nevyhnutným robiť v pravidelných intervaloch penetračné testy na ochranu informačných systémov pred narušením bezpečnosti.
Penetračné testovanie sa teda vyžaduje hlavne pre:
- Finančné alebo kritické údaje musia byť zabezpečené pri ich prenose medzi rôznymi systémami alebo cez sieť.
- Mnoho klientov žiada o testovanie perom ako súčasť cyklu vydania softvéru.
- Na zabezpečenie údajov používateľa.
- Vyhľadanie bezpečnostných chýb v aplikácii.
- Objaviť medzery v systéme.
- Posúdiť obchodný dopad úspešných útokov.
- Za účelom dosiahnutia súladu s informačnou bezpečnosťou v organizácii.
- Implementovať efektívnu bezpečnostnú stratégiu v organizácii.
Každá organizácia musí identifikovať bezpečnostné problémy prítomné vo vnútornej sieti a počítačoch. Pomocou týchto informácií môže organizácia naplánovať obranu proti hackerským pokusom. Ochrana súkromia používateľov a bezpečnosť údajov sú v súčasnosti najväčšími problémami.
Predstavte si, že sa nejakému hackerovi podarí získať podrobnosti o používateľoch na stránkach sociálnych sietí, ako je Facebook. Organizácia môže čeliť právnym problémom v dôsledku malej medzery v softvérovom systéme. Preto veľké organizácie hľadajú certifikáty súladu s PCI (Payment Card Industry) skôr, ako začnú obchodovať s klientmi tretích strán.
Čo by sa malo testovať?
- Softvér (operačný systém, služby, aplikácie)
- Hardware
- Sieť
- Procesy
- Správanie koncového používateľa
Typy testovania prieniku
# 1) Test sociálneho inžinierstva: V tomto teste sa človek snaží odhaliť citlivé informácie, ako sú heslo, údaje dôležité pre podnikanie atď. Tieto testy sa väčšinou uskutočňujú prostredníctvom telefónu alebo internetu a zameriavajú sa na určité helpdesky, zamestnancov a procesy.
Ľudské chyby sú hlavnými príčinami zraniteľnosti zabezpečenia. Všetci zamestnanci by mali dodržiavať bezpečnostné štandardy a politiky, aby sa zabránilo pokusom o penetráciu do sociálneho inžinierstva. Príkladom týchto štandardov je nehovoriac o citlivých informáciách v e-mailovej alebo telefonickej komunikácii. Môžu sa vykonať bezpečnostné audity na identifikáciu a nápravu nedostatkov procesu.
# 2) Test webových aplikácií: Pomocou softvérových metód je možné overiť, či je aplikácia vystavená bezpečnostným zraniteľnostiam. Kontroluje zraniteľnosť webových aplikácií a softvérových programov umiestnených v cieľovom prostredí.
# 3) Test fyzickej penetrácie: Na ochranu citlivých údajov sa používajú silné metódy fyzického zabezpečenia. Spravidla sa používa vo vojenských a vládnych zariadeniach. Všetky fyzické sieťové zariadenia a prístupové body sú testované na možnosti akéhokoľvek narušenia bezpečnosti. Tento test nie je príliš relevantný pre rozsah testovania softvéru.
# 4) Test sieťových služieb : Toto je jeden z najčastejšie vykonávaných penetračných testov, pri ktorých sú identifikované otvory v sieti, podľa ktorých sa vstupuje do systémov v sieti, aby sa skontrolovalo, aké druhy zraniteľností sa tam nachádzajú. Môže sa to robiť lokálne alebo vzdialene.
# 5) Test na strane klienta : Jeho cieľom je hľadať a využívať zraniteľné miesta v softvérových programoch na strane klienta.
# 6) Diaľkové dial-up vojnové vytáčanie : Vyhľadáva modemy v prostredí a pokúša sa prihlásiť do systémov pripojených prostredníctvom týchto modemov pomocou hádania hesla alebo hrubou silou.
# 7) Test zabezpečenia bezdrôtovej siete : Objavuje otvorené, neoprávnené a menej zabezpečené hotspoty alebo siete Wi-Fi a pripája sa cez ne.
Vyššie uvedených 7 kategórií, ktoré sme videli, je jedným zo spôsobov kategorizácie typov testov perom. Môžeme tiež usporiadať typy penetračných testov do troch častí, ako je vidieť nižšie:
Poďme diskutovať o týchto testovacích prístupoch jeden po druhom:
- Testovanie prieniku čiernej skrinky : V tomto prístupe tester hodnotí cieľový systém, sieť alebo proces bez znalosti jeho detailov. Majú iba veľmi vysokú úroveň vstupov, ako je adresa URL alebo názov spoločnosti, pomocou ktorých prenikajú do cieľového prostredia. V tejto metóde sa neskúma žiadny kód.
- Testovanie prieniku do bielej skrinky : V tomto prístupe je tester vybavený úplnými podrobnosťami o cieľovom prostredí - systémy, sieť, OS, IP adresa, zdrojový kód, schéma atď. Skúma kód a zisťuje chyby pri návrhu a vývoji. Je to simulácia útoku vnútornej bezpečnosti.
- Testovanie prieniku šedej skrinky : V tomto prístupe má tester obmedzené podrobnosti o cieľovom prostredí. Je to simulácia externých bezpečnostných útokov.
Techniky testovania perom
- Ručný penetračný test
- Používanie automatizovaných penetračných testovacích nástrojov
- Kombinácia manuálneho aj automatizovaného procesu
Tretí proces je bežnejší pri identifikácii všetkých druhov zraniteľností.
Ručný penetračný test
Je ťažké nájsť všetky chyby zabezpečenia pomocou automatizovaných nástrojov. Existujú niektoré chyby zabezpečenia, ktoré je možné identifikovať iba pomocou manuálneho skenovania. Testéri penetrácie môžu vykonávať lepšie útoky na aplikácie na základe svojich schopností a znalostí prenikaného systému.
Metódy ako sociálne inžinierstvo môžu robiť iba ľudia. Ručná kontrola zahŕňa dizajn, obchodnú logiku aj overenie kódu.
Proces penetračného testu:
Pozrime sa na skutočný proces, ktorý nasledujú testovacie agentúry alebo testéri penetrácie. Identifikácia slabých miest v systéme je prvým dôležitým krokom v tomto procese. Pri tejto zraniteľnosti sa prijmú nápravné opatrenia a opakujú sa rovnaké penetračné testy, až kým systém nebude voči všetkým týmto testom negatívny.
Tento proces môžeme kategorizovať do nasledujúcich metód:
# 1) Zhromažďovanie údajov: Na získanie údajov cieľového systému sa používajú rôzne metódy vrátane vyhľadávania Google. Môžete tiež použiť techniku analýzy zdrojového kódu webovej stránky a získať viac informácií o verziách systému, softvéru a doplnkov.
Na trhu je k dispozícii veľa bezplatných nástrojov a služieb, ktoré vám môžu poskytnúť informácie, ako sú názvy databáz alebo tabuliek, verzie DB, verzie softvéru, použitý hardvér a rôzne doplnky tretích strán použité v cieľovom systéme.
# 2) Hodnotenie zraniteľnosti: Na základe údajov zhromaždených v prvom kroku možno nájsť slabiny zabezpečenia v cieľovom systéme. To pomáha testerom penetrácie zahájiť útoky pomocou identifikovaných vstupných bodov v systéme.
# 3) Skutočné využitie: Toto je zásadný krok. Vyžaduje špeciálne zručnosti a techniky na zahájenie útoku na cieľový systém. Skúsení testéri penetrácie môžu využiť svoje schopnosti na útok na systém.
# 4) Výsledok analýzy a prípravy správy: Po dokončení penetračných testov sa pripravia podrobné správy o vykonaní nápravných opatrení. V týchto správach sú uvedené všetky identifikované chyby zabezpečenia a odporúčané nápravné metódy. Formát správ o zraniteľnosti (HTML, XML, MS Word alebo PDF) môžete prispôsobiť podľa potrieb vašej organizácie.
Testovacie prípady penetračného testovania (testovacie scenáre)
Pamätajte, že nejde o funkčné testovanie. V Penteste je vaším cieľom nájsť bezpečnostné diery v systéme. Ďalej uvádzame niekoľko všeobecných testovacích prípadov, ktoré sa nemusia nevyhnutne vzťahovať na všetky aplikácie.
- Skontrolujte, či je webová aplikácia schopná identifikovať spamové útoky na kontaktné formuláre použité na webe.
- Proxy server - Skontrolujte, či je sieťový prenos monitorovaný proxy zariadeniami. Proxy server sťažuje hackerom získanie interných podrobností o sieti, čím chráni systém pred externými útokmi.
- Filtre nevyžiadanej pošty - Skontrolujte, či je filtrovaný prenos prichádzajúcich a odchádzajúcich e-mailov a či sú nevyžiadané e-mailové správy blokované.
- Mnoho e-mailových klientov má zabudované filtre spamu, ktoré je potrebné nakonfigurovať podľa vašich potrieb. Tieto konfiguračné pravidlá je možné použiť na hlavičky, predmety alebo telo e-mailov.
- Brána firewall - ubezpečte sa, že celá sieť alebo počítače sú chránené bránami firewall. Firewall môže byť softvér alebo hardvér, ktorý blokuje neoprávnený prístup do systému. Firewall môže zabrániť odosielaniu údajov mimo sieť bez vášho súhlasu.
- Pokúste sa využiť všetky servery, stolové systémy, tlačiarne a sieťové zariadenia.
- Skontrolujte, či sú všetky používateľské mená a heslá šifrované a prenášané cez zabezpečené pripojenia, ako je https.
- Overte informácie uložené v priečinku súbory cookie webových stránok . Nemal by byť v čitateľnom formáte.
- Overte predtým nájdené chyby zabezpečenia a skontrolujte, či oprava funguje.
- Skontrolujte, či v sieti nie je otvorený port.
- Skontrolujte všetky telefónne zariadenia.
- Overte zabezpečenie siete WIFI.
- Overte všetky metódy HTTP. Na webovom serveri by nemali byť povolené metódy PUT a Delete.
- Skontrolujte, či heslo spĺňa požadované štandardy. Heslo by malo mať najmenej 8 znakov a obsahovať najmenej jedno číslo a jeden špeciálny znak.
- Používateľské meno by nemalo byť ako „správca“ alebo „správca“.
- Prihlasovacia stránka aplikácie by mala byť uzamknutá po niekoľkých neúspešných pokusoch o prihlásenie.
- Chybové správy by mali byť všeobecné a nemali by uvádzať konkrétne podrobnosti o chybe, ako napríklad „Neplatné používateľské meno“ alebo „Neplatné heslo“.
- Skontrolujte, či sú špeciálne znaky, značky HTML a skripty správne spracované ako vstupná hodnota.
- Detaily interného systému by nemali byť zverejnené v žiadnej z chybových alebo výstražných správ.
- Vlastné chybové správy by sa mali koncovým používateľom zobrazovať v prípade zlyhania webovej stránky.
- Overte použitie záznamov v registri. V registri by sa nemali uchovávať citlivé informácie.
- Pred nahraním na server musia byť všetky súbory skontrolované.
- Pri komunikácii s rôznymi internými modulmi webovej aplikácie by sa do adries URL nemali odosielať citlivé údaje.
- V systéme by nemalo byť žiadne pevne zakódované užívateľské meno alebo heslo.
- Overte všetky vstupné polia s dlhým vstupným reťazcom s medzerami a bez nich.
- Skontrolujte, či je funkcia obnovenia hesla zabezpečená.
- Overiť žiadosť o SQL Injection .
- Overiť žiadosť o Cross-Site Scripting .
- Dôležité kontroly vstupov by sa mali robiť na strane servera namiesto kontrol JavaScriptu na strane klienta.
- Kritické zdroje v systéme by mali byť k dispozícii iba oprávneným osobám a službám.
- Všetky prístupové protokoly by mali byť udržiavané so správnymi prístupovými povoleniami.
- Skontrolujte, či sa relácia používateľa končí po odhlásení.
- Skontrolujte, či je na serveri zakázané prehľadávanie adresárov.
- Skontrolujte, či sú všetky aplikácie a verzie databázy aktuálne.
- Overte manipuláciu s URL a skontrolujte, či webová aplikácia nezobrazuje nežiaduce informácie.
- Skontrolujte únik pamäte a pretečenie medzipamäte.
- Overte, či je skenovaný prichádzajúci sieťový prenos, aby sa našli útoky trójskych koní.
- Overte, či je systém bezpečný pred Brute Force Attacks - metódou pokusu a omylu na vyhľadanie citlivých informácií, ako sú napríklad heslá.
- Skontrolujte, či je systém alebo sieť zabezpečená pred útokmi DoS (denial-of-service). Hacker môže zacieliť na sieť alebo na jeden počítač s nepretržitými požiadavkami, kvôli ktorým dôjde k preťaženiu zdrojov v cieľovom systéme, čo vedie k odmietnutiu služby pre legitímne požiadavky.
- Overte aplikáciu pre útoky vkladania skriptov HTML.
- Overte proti útokom COM a ActiveX.
- Overte si, či nedochádza k podvodným útokom. Spoofing môže byť viacerých typov - spoofing IP adresy, spoofing e-mailu,
- ARP spoofing, spoofing sprostredkovateľa, spoofing ID volajúceho, Otrava sietí na zdieľanie súborov, spoofing GPS.
- Skontrolujte útok na nekontrolovaný formátovací reťazec - bezpečnostný útok, ktorý môže spôsobiť zlyhanie aplikácie alebo na nej spustiť škodlivý skript.
- Verify XML injection attack - slúži na zmenu zamýšľanej logiky aplikácie.
- Overte proti útokom na kanonizáciu.
- Overte, či sa na chybových stránkach zobrazujú nejaké informácie, ktoré by mohli hackerovi pomôcť pri vstupe do systému.
- Skontrolujte, či sú nejaké dôležité údaje, ako je heslo, uložené v tajných súboroch v systéme.
- Skontrolujte, či aplikácia vracia viac údajov, ako je potrebné.
Toto sú iba základné testovacie scenáre, ako začať s Pentestom. Existujú stovky pokročilých penetračných metód, ktoré je možné vykonať ručne alebo pomocou automatizačných nástrojov.
Ďalšie čítanie:
Normy pre testovanie perom
- PCI DSS (Štandard zabezpečenia údajov odvetvia platobných kariet)
- OWASP (Otvoriť projekt zabezpečenia webových aplikácií)
- ISO / IEC 27002 , OSSTMM (Open Method Security Security Metodical Manual)
Certifikácie
- GPEN
- Tester pridruženej bezpečnosti ( AST )
- Tester vyššej bezpečnosti (SST)
- Certifikovaný penetračný tester ( CPT )
Záver
Nakoniec by ste ako tester penetrácie mali zhromaždiť a zaznamenať všetky chyby zabezpečenia v systéme. Neignorujte žiadny scenár vzhľadom na to, že ho koncoví používatelia nevykonajú.
otázky a odpovede na pohovor s podporou desktopu pre úroveň l2 pdf
Ak ste testerom penetrácie, pomôžte našim čitateľom s vašimi skúsenosťami, tipmi a ukážkami testovacích prípadov, ako efektívne vykonávať Penetračné testovanie.
Odporúčané čítanie
- 19 výkonných nástrojov na testovanie prieniku, ktoré profesionáli používali v roku 2021
- Sprievodca pre začiatočníkov k testovaniu penetrácie webových aplikácií
- Alfa testovanie a beta testovanie (kompletný sprievodca)
- Testovanie zabezpečenia siete a najlepšie nástroje zabezpečenia siete
- Sprievodca testovaním bezpečnosti webových aplikácií
- Kompletný sprievodca zostavením Verification Testing (BVT Testing)
- Funkčné testovanie vs. Nefunkčné testovanie
- Najlepšie nástroje na testovanie softvéru 2021 (QA Test Automation Tools)