Linux E X P R E S

Facebook

Recenze knihy: Python pro hackery a reverzní inženýrství

python_hacker.jpg

Kniha Python pro hackery a reverzní inženýrství od bezpečnostního experta Justina Seitze se zabývá bezpečností, debuggováním, analýzou programů... Příliš se však nezabývá Pythonem samotným, jak by se z názvu mohlo zdát.


Jazyk Python je tu s námi již dvacet let. Koncem osmdesátých let Holanďan Guido van Rossum vytvořil jazyk, který si svoji oblibu získal především díky své flexibilitě. Python je proto vhodný nejen k využití v prototypování (rychlé vytvoření softwarového prototypu obvykle kvůli ověření funkčnosti nebo proveření konceptu), ale také k psaní produkčního kódu. To uživatelé Linuxu asi dobře vědí, protože velké množství programů v Linuxu je psáno právě v Pythonu. Jazyk se ale začíná prosazovat i v komerční sféře a také na jiných operačních systémech.

Justin Seitz, autor knihy Python pro hackery a reverzní inženýrství, je bezpečnostním expertem, který si Python vybral právě kvůli zmíněné flexibilitě. Umožňuje mu vytvářet skripty a programy určené k bezpečnostním analýzám či aktivnímu hledání softwarových chyb. Jazyk následně využívá i pro psaní programů, které využijí nalezené chyby a cílový software naruší. V knize, kterou vydalo nakladatelství Zoner Press, se čtenář dozví mnoho zajímavých praktik ladění programů, hledání chyb a psaní exploitů. Měl bych upozornit, že kniha se v žádném případě nevěnuje jazyku Python, ani jeho základům. Velmi stručně alespoň nastíní, jakým způsobem se dá Python rozšiřovat v jazyce C.

Kniha má dvanáct kapitol, ale dala by se rozdělit také do několika částí. V té první autor vysvětluje teorii ladění (debuggingu) na platformě x86 v systému Windows. Postupně probere (či spíše zopakuje - čtenář by měl znát alespoň základy assembleru pro PC) registry procesoru, paměťový model a body přerušení. Na kapitolu pak navazuje povídání o nástroji PYDBG - knihovnu pro Python umožňující vytváření háků (hooks) na přerušení, ukládání stavu procesu na disk, prohledávání paměti a podobně. Musím říct, že autor si vždy vymyslí pěkné příklady a nastíní jejich řešení. Například se v knize dočtete, jak pomocí Pythonu naprogramovat skript, který se napojí na běžící Firefox a "vytáhne" z něj všechna uložená hesla.

V další částí autor představuje svoje dílo - Immunity Debugger, který značně rozšiřuje možnosti zmiňovaného PYDBG. V další fázi se věnuje pokročilejším technikám, jako je injektáž DLL kódu (DLL injection) a fuzzyingu (technika hledání zranitelnosti kódu). Další část knihy (dvě kapitoly) se věnují frameworku Sulley a knihovně Driverlib. Obě díla nabízejí podobné možnosti a techniky také pro ovladače systému Windows. Lze takto například monitorovat síťový provoz či napadat softwarové služby.

Poslední část knihy pak popisuje nástroje IDA Python, PyEmu a IDA PyEmu. První jmenovaný představuje rozšíření známého komerčního disassembleru IDA v jazyce Python, druhý a třetí pak nabídne programátorovi (či crackerovi) možnost analýzy programu pomocí emulace. Program se tak vlastně nespouští a lze tak bezpečně analyzovat například Malware (aniž by se skutečně spouštěl).

Popravdě mě kniha nalákala svým názvem, kdy jsem měl na mysli původní význam slova "hacker" a mylně jsem se domníval, že se látka bude týkat spíše programování v jazyce Python. Kniha je vlastně takovou sbírkou různých návodů týkajících se analýzy kódu a bezpečnosti. Jednotlivé kapitoly na sebe někdy navazují, jindy nikoli - takže si můžete vybrat ke čtení jen některé části. Materiál představuje nebezpečné hrátky, které lze s Pythonem ve Windows provádět a je vhodný pro všechny bezpečnostní nadšence či experty.

Název: Python pro hackery a reverzní inženýrství
Autor: Justin Seitz
Překlad: RNDr. Jan Pokorný
Rozměry: 168x230
Vydal: Zoner Press v roce 2009
Počet stran: 216
Typ vazby: brožovaná
ISBN: 978-80-7413-048-9
Běžná cena: 290 Kč

Diskuze (1) Nahoru