Infikovany pocitac de facto neni mozno povazovat za duveryhodny. Samozrejme v praxi lze udelat ruzne veci, ale pokud je system dostatecne prolezly breberkami, tak je reinstalace jednodussi. Zvlast pokud firma ma hromadu pocitacu, zadny zpusob distribuce SW a zadny SW pro odstraneni malware. Rozinstalovat cisty image je pak efektivnejsi.
1. existuji veci, ktere prolomene nejsou (jinak bychom tezko mohli pouzivat el. podpis, ze :)
2. jestlize utocnik do nejakeho startovaciho skriptu pridal radek
/usr/share/backdoor/run-backdoor :)
myslim, ze je dost nepravdepodobne, ze by ho vymyslel tak, aby MD5 toho skriptu zustalo stejne (jde
vubec nejak rozumne?)
ad 2.
staci pridat (treba na konec) zakomentovany radek more nejakych binarnich dat, ktere zaruci stejny md5 soucet. dneska uz to opravdu vubec tezke neni... md5 je proste out a s ni dnes i treba sha1, atd.
Máte moc bujnou představivost. Dnes umíme najít kolize, tj. dvojice souborů se stejnou hodnotou digestu. Ale tady byste potřeboval najít kolizní soubor k předepsané hodnotě digestu, navíc s předepsaným začátkem. A to zatím nikdo neumí - nebo se k tomu aspoň nikdo nepřiznal. SHA-1 zatím AFAIK prolomena není, a to ani v tom smyslu, v jakém je prolomena MD5.
Pokud mate checksum udelany pomoci dvou a vice hashovacich metod, je moznost zachovani hodnot vsech tech hashu spise teoreticka. Mozna by to slo, ale na to nema pocitace ani CIA, natoz pak nejaky hacker, ktery by k tomu vypoctu nejspis musel pouzit vas napadeny stroj, ktery by to nekolik tisic let chroustal, cehoz by jste si, pravdepodobne vsiml. :-)
Tak je to to same, jakoby hacknul cokoli jineho. V SVN bude existovat starsi verze spravnych hashu, cili da se lehce zjistit okamzik, kdy k podezrele operaci doslo.
Ale nezapomeňte, že ty MD5 hashe musíte ukládat na jiném počítači! A updatovat je po každé změně, a porovnávat jestli se změnilo jen to co má. V praxi je podle mě lepší udržovat konfigurační soubory v archivech podle data, nebo ještě lépe CVS/SVN, a binárky reinstalovat z balíků (pomocí nástrojů z LiveCD, ne pomocí těch na disku!).
Rikal jsem si, ze to s tim "prolomenim" MD5 nemuze byt tak horke :)
Mit konfiguraci v SVN je jiste vyborny napad.
Na solidne udelanem distru by tedy melo stacit mit seznam vsech nainstalovanych baliku a konfiguraci v SVN.
Obnoveni:
0. odpojit od site
1. pomoci RPM (apod.) preinstalovat vsechny nainstalovane baliky ( --replacepkgs ) podle seznamu
2. obnovit konfiguraci pomoci SVN
3. (pripadne) obnovit uziv. data za zalohy
4. rebootovat
Cely to odhaduju na nejakou tu pulhodinku, coz jde...
Prece jenom bych se ale primlouval za MD5 hash vsech relevantnich souboru - pro kontrolu :). Soubor s hashi by se dal pridat do SVN a tim jej mit rychle k dispozici ke kontrole. Prepocitani hashu by na serveru nemel byt mezi treti a ctvrtou hodinou ranni a s vysokou nice-hodnotou problem :) - pochopitelne za predpokladu, ze nehashuju nesmyslnosti typu /var/spool/squid ;)
> Prece jenom bych se ale primlouval za MD5 hash vsech relevantnich souboru - pro kontrolu :).
Jasne! Navicje to uz davno bezna praxe. napriklad v mem Mandrake je na toto (a mnoho jineho) bezpecnostni scaner "msec".
A kazdy spravce toto dela uz davno (a nemusi byt vubec paranoidni) - akoratze sem tam jsem docela vysokovan jak to ze soucet tohoatoho nesedi - a obvykle se nasledne vystopuji k vlastnimu zadku - resp. prijdu na to ze jsem provedl bezp. update a nepoznamenal si to :-)
A co treba mit backdoor na urovni kernelu ktery pri pozadavku na obsah dotycneho souboru vrati jeho starsi verzi? Atd...
Lze udelat kernel ktery bude vypadat navenek naprosto ciste, jedina moznost detekovani bude vzit jeho disk a analyzovat jeho obsah na jinem pocitaci ktery je 100% cisty.
Netusim jestli by si nekdo s takovym backdoorem dal tolik prace, aby to skutecne neslo na zadne malickosti odhalit, ale teoreticka moznost existuje.
Ale na obelhani MD5 staci aby infikovany kod sedel u kazdeho cteni dat z toho souboru (ridil low-level cteni), a vyssi vrstvy se nikdy o zmene v datech nedovi.
Mozna by opravdu paranoidni jedinci mohli zauvazovat o konfiguracich napalenych na CD-R mediu, tam ty data urcite zadny exploit neprepise. :) Nebo vypalit do ROM pameti bez moznosti dalsiho prepisu. Pak staci zjistit ze to bootuje i bez vlozeneho CD/ROM a uz vite ze se nahravaji nejake jine scripty... :)))
Kernel je z principu veci vzdy trusted, takze samozrejme jestlize nekdo pozmeni kernel, muze delat naprosto cokoli. Ovsem je tu par problemu:
1. celou dobu se bavime o tom, ze kontrola MD5 by mela probihat z nabootovaneho live Linuxu. Tim hack jadra postrada ucinnost
2. nedokazu si predstavit, ze by slo kernel takto pozmenit, aniz by byl pocitac resetovan - coz je u serveru DOST podezrela operace... (IMHO bez resetu lze dohrat moduly, ale ne nahradit ty, ktere jsou pouzity napr. pro root FS, navic operace s moduly lze zakazat)
> ale teoreticka moznost existuje.
ano, existuje i teoreticka moznost, ze se nekdo probojuje do serverovny a vymeni procesor za hacknuty :)
bezpecnost je proste otazka ceny chranenych dat a pravdepodobnosti toho ktereho utoku
> Mozna by opravdu paranoidni jedinci mohli zauvazovat o konfiguracich napalenych na CD-R mediu,
> tam ty data urcite zadny exploit neprepise. :)
No, to prave neni pravda, protoze v popsane situaci (o ktere si teda myslim, ze nejde - viz vyse) "hack jadra" neni nic jednodussiho nez zadany modul natahnout z RW adresare a potom misto souboru na CD "vracet" (podvrhnout) soubory uplne jine.
Ma to jedinou nevyhodu - vydrzi to jen do pristiho restartu.
Kazdou operaci, kterou lze provest zmenou jadra, jde provest i pridanim modulu - muze to byt obtiznejsi, ale proveditelne. Konkretne nahrat modul ktery zmeni chovani existujiciho filesystemu prepsanim funkci ve VFS je trivialita. Stejne trivialni je nahrat modul ktery zmeni chovani funkce read bez ohledu na filesystem.
Priznam se, ze nejsem zadny kernel hacker, ale dle meho:
1. existuje patch do jadra, ktery zakaze nahravani modulu
2. neznam zpusob, jak nahradit modul, ktery je natazen pro ROOT (/) FS (jak jsem psal vyse),
bylo by totiz nutne root odmountovat, coz teda fakt nevim jak (na serveru, kde
na 100% alespon jeden soubor na / bude stale otevren - trebas i jen pro cteni)
-- nerikam ale, ze to nejde (snad volba -f? nezkousel jsem)
Ja asi jsem kernel hacker, uspesne jsem obhajil diplomku na tema boje proti virum a rootkitum. Proto dobre vim, ze:
1) Pokud nezakazes navic i zapis do /dev/mem a /proc/kmem (cimz efektivne vypnes XFree, i kdyz nejspis by sel zakazat jen zapis do nekterych oblasti), je ti zakaz nahravani modulu k nicemu. Pravda, i takove patche existuji.
2) Pro zmenu chovani filesystemu nemusis nahrazovat modul ktery ho spravuje. Mnohem uzitecnejsi a snazsi je primo modifikovat data dotycneho modulu (ukazatele na funkce v tabulkach ktere VFS pouziva). Samozrejme bez odmountovani.