Při hledání bezpečnostních děr si každý tester potřebuje utřídit svoje myšlenky a zaznamenávat chování aplikace. V tomto příspěvku si ukážeme základní nástroje, které pomáhají dokumentovat průběh penetračního testu a jeho výsledky.
Tužka, excel a myšlenková mapa
Každý penetrační test je jiný a pro organizaci testů se někdy hodí obyčejný papír a tužka, jindy myšlenková mapa nebo excel. Ve fázi testování je už situace trochu jiná, potřebujeme získané informace hierarchicky ukládat a neustále doplňovat. Tady už narážíme na limity klasických nástrojů a musíme hledat další pomocníky.
Kritéria výběru
Než se slepě pustíme do do výčtu dostupných nástrojů, stanovíme si základní kritéria výběru. Subjektivně jsem dospěl k následujícím požadavkům.
1) Jednouživatelský desktopový software na obvyklých platformách (Linux, Windows, Mac). Nechci instalovat žádný server ani klienta. Chci věřit, že software přežije různé platformy, pokud se rozhodnu pro změnu.
2) Nástroj je dostatečně rychlý a jednoduchý na použití. Nemusím řešit, jak mám informace ukládat a vyplňovat. Očekávám “copy/paste” do hierarchické struktury včetně obrázků a příloh. Samozřejmostí je funkce vyhledávání a export do různých formátů.
3) Open source – je zdarma a je zde naděje, že jeho komunitní vývoj nezemře. Na komerční alternativy můžu vždy přestoupit.
U nástrojů neřešíme, zda podporují šifrování, protože předpokládám, že pentester má šifrovaný disk. A teď se můžeme pustit do popisu jednotlivých nástrojů.
FreeMind
Freemind je software pro tvorbu myšlenkových map napsaný v Javě. Jednotlivé uzly lze strukturovat a graficky propojovat. Nechybí vkládání grafických ikon, obrázků, URL odkazů a formátování textu s různými barvami. Je vhodný pro organizaci myšlenek při testování.
Výstupní mapu lze exportovat jako obrázek PNG/SVG, nebo jako HTML/PDF dokument. Samotný formát myšlenkové mapy je XML.
KeepNote
KeepNote je strukturovaný poznámkový blok se stromovou strukturou, kterou lze dekorovat barvami a ikonkami. Jednotlivé záznamy lze samozřejmě formátovat a vkládat do nich obrázky.
Celý notes vytváří na disku adresářovou strukturu s HTML dokumenty a lze jej číst i bez editoru. Pěkná funkcionalita je také záloha dat do komprimovaného TAR archivu.
Bohužel má tento editor svoje mouchy a jeho vývoj se zastavil kolem roku 2012. Nicméně svojí práci odvede i dnes a pokud nevíte jak začít, určitě jej vyzkoušejte.
CheryTree
CherryTree je stejně jako KeepNote strukturovaný poznámkový blok. K jednotlivým uzlům lze navíc přilepovat „tagy“. Za zmínku stojí zvýrazňování syntaxe a možnost tvorby záložek.
Samotný notes lze uložit do SQLite databáze nebo jako XML dokument. Zvolíme-li úložiště SQLite a prozkoumáme jednotlivé tabulky, zjistíme, že jsou uzly organizované ve formě XML dokumentů. Vnucuje se myšlenka předgenerovat seznam nálezů přes SQL a XPath do budoucího reportu.
CherryTree podporuje řadu importů na úrovni uzlů od jednoduchého HTML až po HTML po složkách. Najdeme zde podporu i specifických formátů, například klasický KeepNote nebo ZIM. Pokud jde o exporty, nechybí zde výstup do PDF a HTML. Podle „ToDo listu“ na stránkách autora má tento nástroj dobře našlápnuto.
Zim
Zim je desktopový wiki editor napsaný v jazyce python, působí stroze a moc funkčních tlačítek zde nenajdete. Umožní vám vytvářet stránky se stromovou strukturou. Texty lze strukturovat do nadpisů, odrážek, vkládat obrázky a odkazy.
Asi tušíte, že každá stránka je interně uložena jako textový soubor s Wiki formátováním, které ale na úrovni editoru neřešíte. Je jasné, že ZIM moc vizuálních prvků nenabídne, ale z hlediska přípravy obsahu to může stačit.
Zim umí transformovat stránky do HTML a LaTexu, což implikuje, že je možné dostat nakonec PDF dokument. Zim dále nabízí podporu šablon s programovými konstrukty a můžete tak do jisté míry korigovat podobu výstupu.
Editor rozšiřuje svoje funkce a přístup k datům pomocí pluginů. Najdeme zde možnost přidat ke stránce přílohu, vkládat snímky obrazovek nebo propojit editor se systémem pro správu verzí (Git, Mercurial). Řadu operací lze spustit z příkazové řádky.
Zdá se, že síla ZIMu je právě v integraci, ale musíte sami posoudit, zda vám to úsilí stojí za to. Pokud o ZIMu uvažujete, dejte si tu práci a prohledejte další existující pluginy, které projekt nezmiňuje.
Závěr
V dnešním příspěvku jsme si na začátku zafilozofovali, proč vlastně dokumentovat výsledky testů. Nastavili jsme laťku s kritérii a představili čtyři nástroje.
- Freemind je nástroj na myšlenkové mapy, který oceníte při organizaci testů a utřiďování svých myšlenek.
- KeepNote je organizovaný poznámkový blok, který má vše podstatné pro dokumentaci testů, ale už nám stárne.
- Nástroj CherryTree má naopak zajímavý formát uložení, zvýrazňuje syntaxi a podporuje „tagy“.
- Poslední ZIM je wiki orientovaný a vizuálně chudý, nabízí však zajímavé možnosti integrace.
To je pro dnešek vše. Pokud vás příspěvek zaujal, napište nám jaké dokumentační nástroje používáte a diskutujte s námi na facebooku.
To je pro dnešek vše. Zvažujete-li cestu etického hackera od začátku, rád uvidím na kurzech hackingu.