Penetrační test
Penetrační test (, někdy pentest) je v informatice metoda hodnocení zabezpečení počítačových zařízení, systémů nebo aplikací. Provádí se testováním, simulací možných útoků na tento systém jak zevnitř tak zvenčí. Cílem penetračního testu není vyřešit bezpečnostní problémy, ale jistým způsobem prověřit, zhodnotit úroveň zabezpečení a podat souhrnnou zprávu, a to jak na úrovni technických (nastavení otevřených portů, verze systému), tak i organizačních opatření (podvod a sociální inženýrství skrze zaměstnance).

Tento proces zahrnuje podrobnou analýzu systému se zaměřením na případně bezpečnostní nedostatky vycházející z chybného nastavení systému, známých či neznámých hardwarových a softwarových nedostatků, nebo nedostatečných funkčních protiopatření. Analýza je prováděna z pohledu potenciálního útočníka a může (měla by) vést k odhalení výše zmíněných nedostatků. Výsledky získané během analýzy jsou prezentovány vlastníkovi systému. Důkladné testy by měly k výsledkům přikládat také informace o reálných důsledcích jednotlivých nedostatků jak na systém samotný, tak na jeho vlastníka a měly by také doporučit možná protiopatření pro zmírnění rizika prolomení systému.

Využití penetračních testů:
 Určují reálnou zneužitelnost určité skupiny vektorů útoku.
 Odhalují velké bezpečnostní nedostatky, které mohou vzniknout nahromaděním menších nedostatku dosažených v určité sekvenci.
 Odhalují nedostatky které mohou být nezjistitelné pomocí automatické detekce systémových chyb.
 Posuzují možné dopady na firmu jako takovou a na její ekonomiku v případě, že by k prolomení došlo.
 Testují schopnost obranných prvků systému odhalovat aktuální útoky a náležitě na ně reagovat.
 Poskytují podklady podporující zvýšené náklady na vývoj zabezpečení systému.

Penetrační testy jsou součástí kompletního bezpečnostního auditu. Například Payment Card Industry Data Security Standard (PCI DSS) vyžadují opakování penetračních testů pravidelně každý rok nebo pokaždé, když dojde ke změně systému.

Nástroje

Specializované distribuce operačních systémů 
Existuje několik operačních systémů, které jsou v základu vybaveny nástroji pro provádění penetračních testů. Obsahují potřebné knihovny, balíčky a aplikace, a není tak potřeba tyto nástroje shánět jednotlivě. Navíc jsou tyto jednotlivé nástroje odladěny tak, že
mezi sebou nekolidují. Populární je například Kali Linux (odvozená verze BackTrack, který již není podporován). Dále BlackArch založený na Arch Linuxu.

Softwarové frameworky 
 Metasploit
 w3af

Automatické testování 
Procesy automatického testování lze rozdělit do dvou základních skupin:
 Zjištění možných kombinací legálních kroků pro dosažení nelegálního výsledku, jako například podstrčení vlastního kódu do SQL dotazu, změna statických bezpečnostních opatření u aplikací s viditelným kódem, zneužití znalosti osobních údajů, nebo zneužití zastaralých, již prolomených hashovacích a šifrovacích funkcí, které systém může stále využívat.
 Jedna samostatná chyba nemusí stačit na vážné prolomení systému. Kombinování více známých nedostatků a postupné upravování přenášených dat tak, aby se operace zdály validní je potřeba téměř vždy.
 Metasploit obsahuje knihovnu pro běžné úlohy a uchovává si databázi známých nedostatků.
 S ohledem na co nejnižší finanční a časové náklady se pro testování běžně využívá tzv. fuzzing. Zaměřuje se na vyvolání chyby systému vložením neplatných vstupních dat. Generování náhodných vstupů dovoluje testujícímu využít málo používané průchody kódem, protože standardně funkční jsou pravděpodobně zabezpečeny. Vyvolané chyby pak lze využít. Například využití přetečení bufferu nebo získání tracebacku a dalších informací z HTTP serveru. Cílem je vygenerování neošetřené chyby a poté zjistit, co a jak chybu způsobilo a hlavně co dovolilo, aby k ní došlo. A poté napsat automatický kód využívající této chyby pro její potvrzení. Po přesném zjištění chování systému by mělo být zřejmé, jak vstup zformátovat k útoku. Pokud tato chyba nepovede k možnému prolomení systému, je potřeba zkusit jinou.
 Druhou možností je využití ilegálních metod jako jsou nástroje pro vzdálené ovládání periferií, sledování monitoru nebo webkamery, vyskakovací reklamy se skripty, sledovací roboty, odchytávání hashe atd. Metasploit opět obsahuje databázi takovýchto útoků

Literatura 
 Hunt, Edward (2012). "US Government Computer Penetration Programs and the Implications for Cyberwar", IEEE Annals of the History of Computing 34(3)
 Long, Johnny (2007). Google Hacking for Penetration Testers, Syngress
 MacKenzie, Donald (2001). Mechanizing Proof: Computing, Risk, and Trust. The MIT Press
 MacKenzie, Donald and Garrell Pottinger (1997). "Mathematics, Technology, and Trust: Formal Verification, Computer Security, and the U.S. Military", IEEE Annals of the History of Computing 19(3)
 McClure, Stuart McClure (2009)  Hacking Exposed: Network Security Secrets and Solutions, McGraw-Hill
 Russell, Deborah and G. T. Gangemi, Sr. (1991). Computer Security Basics. O'Reilly & Associates
 Yost, Jeffrey R. (2007)."A History of Computer Security Standards," in The History of Information Security: A Comprehensive Handbook, Elsevier

Počítačová bezpečnost