Linux - bezpečnost a exploity

Juraj Kubelka 16. 12. 2004

Recenze nové knihy od Miroslava Dobšíčka a Radima Ballnera.

Nedávno jsem se procházel pro pražském Smíchově a trochu z nudy a trochu ze zvědavosti jsem se zašel podívat do knihkupectví, co je nového v počítačové literatuře. Po chvíli hledání tučňákova oddělení mi padla do oka kniha Linux – bezpečnost a exploity od autorské dvojice Miroslav Dobšíček a Radim Ballner. Po letmém prolistování se mi zdála natolik zajímavá, že jsem se rozhodl si ji koupit. Naštěstí cena byla příznivá, takže jsem si ji mohl dovolit i ze svého prvního platu a ještě mi zbylo na svetr na vánoce :-)

Sám se považuji za průměrného dlouholetého uživatele Linuxu. Nějaké to programovaní v C, správa síťových služeb, psaní v Latexu a ve volném čase pomoc s překlady do češtiny různých open source programů. O exploitech jsem vždycky tušil zhruba to, že někde něco přetéká a při troše štěstí to neznamená, že aplikace spadne, ale že vás někdo hackne :-) Místo pádu aplikace tak padne vaše soukromí, ale co.

Kniha je rozdělena do několika kapitol, konkrétně sedmi, ale protože nemám rád moc psaní, tak to shrnu do třech.

Úvod

V úvodních kapitolách se letem světem dozvíme něco o stránkování/seg­mentování na x86 a o tom, jak linuxové jádro tyto radosti (ti, co už to znají, vědí, že spíše strasti) využívá a nastavuje. Potom následují základy programování v assembleru pod Linuxem a seznámení s pár nástroji, bez kterých by život nebyl tak krásně rozmanitý. Nutno říci, že po přečtení těchto kapitol jsem nebyl ze všeho úplně moudrý, ale s dávkou odvahy a kávy jsem se pustil do dalšího čtení.

Shellkódy a exploity

Konečně to začalo. Popis jednoho shellkódu následuje druhý, a protože nechybí obrázky a množství zdrojových příkladů, jsem po pár dnech schopný psát a rozumět zběsilostem ve stylu (pozn. red: lízátko pro toho, kdo předcházející zeugma převede do validní podoby bez ztráty významu :) –Johanka) :

char shellkod[] =
    "\xeb\x1f\x5e\x89\ ....

int main() {
    int *ret;
    *((int *)&ret + 2) = (int) shellkod;
    return 0;
}

Dále jsem se dozvěděl, jakým způsobem se hotový shellkód vloží do paměti, aby byl v pravou chvíli spuštěn. Nepříjemným zjištěním bylo, že možností je opravdu mnoho a šance, že při programování v céčku uděláte osudovou chybu, jsou docela veliké. K závěru jsou zmíněny možnosti, jak staticky a dynamicky ohlídat váš výtvor, případně naučit jádro lepšímu chování. Informace v tomto směru ale považuji spíše za orientační.

Viry a ELF formát

V závěru knihy je popsán binární spustitelný formát ELF, který se používá jak na vašich tučňácích a ďáblících, tak snad na všech klonech Unixů. Znalost tohoto formátu se hodí jak pro exploitovací techniky, tak i pro, pokud vás zajímá, odolnost proti virové nákaze. Zklamáním možná bude, že samotný formát ELF je spíš virus-friendly než cokoliv jiného. Podle uvedeného náčrtu jsem si zkusil napsat injekci „Hello world“ do pár binárek a opravdu to funguje.

Co říci na závěr? Z množství nově získaných informací jsem byl jednoznačně nadšen. Knize lze snad vytknout jen příliš svižné tempo, ale to je diskutabilní. Po prvním zakousnutí jsem stručnost a jasnost ocenil více než omáčku po cestě a tlustou knihu na stole. Za zmínku také stojí, že u obrázku jsou chybné české znaky, ale dá se to přežít. Asi došlo k nějaké tiskařské chybě, která si našla cestu až do finálního výtisku.

widgety

Protože s Mirkem Dobšíčkem jsem se nejen potkával na chodbách pražského FELu, ale pár let se staral i o počítačovou síť na našem bloku na Strahově, dovoluji si ho tímto pozdravovat a pogratulovat mu k úspěšné diplomce, která se dočkala knižního vydání.

Linux – bezpečnost a exploity
Miroslav Dobšíček, Radim Ballner
160 stran, 169,– Kč
ISBN 80–7232–243–5

Našli jste v článku chybu?
Lupa.cz: Proč jsou firemní počítače pomalé?

Proč jsou firemní počítače pomalé?

Vitalia.cz: Tahák, jak vyzrát nad zápachem z úst

Tahák, jak vyzrát nad zápachem z úst

Lupa.cz: Blíží se konec Wi-Fi sítí bez hesla?

Blíží se konec Wi-Fi sítí bez hesla?

Lupa.cz: Jak levné procesory změnily svět?

Jak levné procesory změnily svět?

Vitalia.cz: Vím, co se učíš, ale netuším, co piješ

Vím, co se učíš, ale netuším, co piješ

Vitalia.cz: Voda z Vltavy před a po úpravě na pitnou

Voda z Vltavy před a po úpravě na pitnou

Podnikatel.cz: „Lex Babiš“ Babišovi paradoxně pomůže

„Lex Babiš“ Babišovi paradoxně pomůže

Lupa.cz: Jak se prodává firma za miliardu?

Jak se prodává firma za miliardu?

Vitalia.cz: Test dětských svačinek: Tyhle ne!

Test dětských svačinek: Tyhle ne!

DigiZone.cz: Parlamentní listy: kde končí PR...

Parlamentní listy: kde končí PR...

DigiZone.cz: Digi Slovakia zařazuje stanice SPI

Digi Slovakia zařazuje stanice SPI

Vitalia.cz: Jak Ondra o astma přišel

Jak Ondra o astma přišel

Vitalia.cz: Muž, který miluje příliš. Ženám neimponuje

Muž, který miluje příliš. Ženám neimponuje

DigiZone.cz: Rapl: seriál, který vás smíří s ČT

Rapl: seriál, který vás smíří s ČT

Podnikatel.cz: Tyto pojmy k #EET byste měli znát

Tyto pojmy k #EET byste měli znát

120na80.cz: Galerie: Čínští policisté testují českou minerálku

Galerie: Čínští policisté testují českou minerálku

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

DigiZone.cz: Wimbledon na Nova Sport až do 2019

Wimbledon na Nova Sport až do 2019

120na80.cz: Nejsilnější alergeny jsou pryč

Nejsilnější alergeny jsou pryč

Vitalia.cz: Tradiční čínská medicína a rakovina

Tradiční čínská medicína a rakovina