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.

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

Ohodnoťte jako ve škole:

Průměrná známka 2,88

Našli jste v článku chybu?
Zasílat nově přidané názory e-mailem
Root.cz: DDoS útoky aneb když vám zahltí dráty

DDoS útoky aneb když vám zahltí dráty

Vitalia.cz: Sója a rakovina

Sója a rakovina

DigiZone.cz: Mafra varuje před stíháním za pomluvu

Mafra varuje před stíháním za pomluvu

DigiZone.cz: Druhá anglická liga pro Digi TV

Druhá anglická liga pro Digi TV

120na80.cz: Tady se vaří padělané léky

Tady se vaří padělané léky

Podnikatel.cz: Šizený guláš na pultě. Jako Lidl to nedělejte

Šizený guláš na pultě. Jako Lidl to nedělejte

Podnikatel.cz: Heureka pod Rockaway? Tohle musí splnit

Heureka pod Rockaway? Tohle musí splnit

Lupa.cz: Válka e-shopů. Alza končí s Heurekou

Válka e-shopů. Alza končí s Heurekou

Vitalia.cz: Před, nebo po snídani? Kdy je lepší čistit si zuby

Před, nebo po snídani? Kdy je lepší čistit si zuby

120na80.cz: Poznáte, který z léků je pravý?

Poznáte, který z léků je pravý?

Lupa.cz: Jak EET vidí ajťák aneb Drahá vražda UX

Jak EET vidí ajťák aneb Drahá vražda UX

120na80.cz: 10 dezinfekcí: Vede „starý dobrý“ peroxid

10 dezinfekcí: Vede „starý dobrý“ peroxid

Podnikatel.cz: Rošáda v živnostech. Týká se vás?

Rošáda v živnostech. Týká se vás?

Vitalia.cz: Taky ji kupujete? Je šizená

Taky ji kupujete? Je šizená

Vitalia.cz: SÚKL: vakcíny jsou bezpečné a s autismem nesouvisí

SÚKL: vakcíny jsou bezpečné a s autismem nesouvisí

DigiZone.cz: Konec geoblokace? Ani náhodou…

Konec geoblokace? Ani náhodou…

Vitalia.cz: 7 nemocí očí, které musíte léčit včas

7 nemocí očí, které musíte léčit včas

DigiZone.cz: Šlágr TV: pokuta 100 tisíc za on-line

Šlágr TV: pokuta 100 tisíc za on-line

120na80.cz: Velký přehled: 7 očkování proti exotickým nemocem

Velký přehled: 7 očkování proti exotickým nemocem

Root.cz: Zákon o hazardu je v rozporu s ústavou

Zákon o hazardu je v rozporu s ústavou