chkrootkit - tegyünk többet rendszerünk egészségéért

Az elmúlt napok eseményeinek fényében kijelenthetjük, hogy vagy egyre több támadást intéznek nyílt forrású rendszerek ellen, vagy csak megnőtt a sikeres betörések bejelentésének száma.

Így vagy úgy, érdemes több gondot fordítani a rendszereink biztonságára. Természetesen első a prevenció, de az ördög nem alszik! Hasznos lehet néha olyan eszközöket is bevetni, amelyek már a baj megtörténte után segítenek a meglapuló rosszindulatúságokat felfedezni.



Az elmúlt napokban sikeresen törtek be a Debian Projekt szervereire (cikk), a Gentoo rsync szerverére (cikk) és a savannah.gnu.org szerverére (bejelentés). A három támadásban felfedezhető egy közös momentum: mindegyik esetben egy ún. ``rootkit''-et (korábbi cikk) telepítettek az áldozat gépre. Ebből két esetben a ``SucKIT'' (GPL-es) névre hallgató rootkit-et telepítették (a Gentoo-nál is rootkit-et telepítettek, de a típusát nem ismeretették).



Tegyük fel, hogy valamilyen módon feltörték a gépünket, és azon root jogokat szereztek. A támadó szeret visszajárni a feltört gépre, ezért azon egy hátsó kaput (rootkit) helyezett el. A gépünk néha furcsán viselkedik, gyanakszunk arra, hogy esetleg feltörték. Vajon hogyan ellenőrizhetjük le, hogy nincs-e egy módosított ``ls'', ``ps'' vagy egyéb bináris a gépünkön, amely ``gyári'' funkciója mellett valami más káros dolgot is csinál?



Több dologot is tehetünk. Az egyik, hogy a rendszer telepítése után a még szűz gépre valamilyen ``checksum'' készítő- és ellenőrző programot telepítünk. Ezzel rögzítjük a még 100%-ban biztosan nem komprommitált szerver állapotát (binársiok ellenőrzőösszegét), majd a későbbiekben a kezdeti értékeket rendszeresen összehasonlítjuk a jelenlegi értékekkel (így dolgozik pl. a tripwire nevű program is).



De mi van, ha nem voltunk elég okosak, és nem telepítettünk tripwire-t, vagy hasonló programot? Akkor marad az ``eső után köpönyeg'' megoldás, azaz ellenőrizzük a rendszert és fohászkodjunk, hogy nem törték meg.



Mivel ellenőrizzünk? Például a chkrootkit nevű programmal. A chkrootkit egy olyan program, amely átnyálazza a rendszerünket, módosított rootkit binárisokat, és azok létére utaló jeleket keres (pl. a SucKIT-et is).



Miket ellenőriz? Mindent természetesen ez sem tud, de az alábbi gyakran támadott és használt stuffokat ellenőrzi:



aliens asp bindshell lkm rexedcs sniffer wted w55808 scalper slapper z2 amd basename biff chfn chsh cron date du dirname echo egrep env find fingerd gpm grep hdparm su ifconfig inetd inetdconf init identd killall ldsopreload login ls lsof mail mingetty netstat named passwd pidof pop2 pop3 ps pstree rpcinfo rlogind rshd slogin sendmail sshd syslogd tar tcpd tcpdump top telnetd timed traceroute vdir w write



Mely rootkit-ek ismeri fel?

01. lrk3, lrk4, lrk5, lrk6 (and variants); 02. Solaris rootkit; 03. FreeBSD rootkit;
04. t0rn (and variants); 05. Ambient's Rootkit (ARK); 06. Ramen Worm;
07. rh[67]-shaper; 08. RSHA; 09. Romanian rootkit;
10. RK17; 11. Lion Worm; 12. Adore Worm;
13. LPD Worm;
14. kenny-rk; 15. Adore LKM; 16. ShitC Worm; 17. Omega Worm; 18. Wormkit Worm; 19. Maniac-RK; 20. dsc-rootkit; 21. Ducoci rootkit; 22. x.c Worm; 23. RST.b trojan; 24. duarawkz; 25. knark LKM; 26. Monkit; 27. Hidrootkit; 28. Bobkit; 29. Pizdakit; 30. t0rn v8.0; 31. Showtee; 32. Optickit; 33. T.R.K; 34. MithRa's Rootkit; 35. George; 36. SucKIT; 37. Scalper; 38. Slapper A, B, C and D; 39. OpenBSD rk v1; 40. Illogic rootkit; 41. SK rootkit. 42. sebek LKM; 43. Romanian rootkit; 44. LOC rootkit; 45. shv4 rootkit; 46. Aquatica rootkit; 47. ZK rootkit; 48. 55808.A Worm; 49. TC2 Worm; 50. Volc rootkit; 51. Gold2 rootkit; 52. Anonoying rootkit; 53. Shkit rootkit;




Hogyan tudjuk telepíteni?



Debian alatt az ``apt-get install chkrootkit'' parancs kiadásával. Egyéb disztribúcióban meg kell nézi, hogy elérhető-e csomagban (gyanítom, hogy igen).



Ha valaki a legfrissebbet szeretné forrásból telepíteni, az megteheti:



1.) wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz

2.) md5sum chkrootkit.tar.gz

3.) összehasonlítja a signature-rel

4.) kibont

5.) make

6.) igény szerint telepítés (make install)




Futtatása:



gmicsko03:/home/trey/devel/chkrootkit-0.42b# ./chkrootkit

ROOTDIR is `/'

Checking `amd'... not found

Checking `basename'... not infected

Checking `biff'... not found

Checking `chfn'... not infected

Checking `chsh'... not infected

Checking `cron'... not infected

Checking `date'... not infected

Checking `du'... not infected

Checking `dirname'... not infected

Checking `echo'... not infected

Checking `egrep'... not infected

Checking `env'... not infected

Checking `find'... not infected

Checking `fingerd'... not found

Checking `gpm'... not found

Checking `grep'... not infected

Checking `hdparm'... not infected

Checking `su'... not infected

Checking `ifconfig'... not infected

Checking `inetd'... not tested

Checking `inetdconf'... not infected

Checking `identd'... not found

Checking `init'... not infected

[...]



A program kiírja, ha ``rootkit'' binárist, vagy arra utaló jelet talál. Ha talál, utána meg lehet tenni a szükséges intézkedéseket. Szerintem mindenki futtassa le a gépén, aki nem biztos 100%-ban abban, hogy nem törték meg a gépét. Talán elkerülhető, hogy valaki átjáróháznak használja a gépét.

Hozzászólások

Hi!

Nekem egy ilyet irt ki:

Checking `lkm'... You have 4 process hidden for ps command

Warning: Possible LKM Trojan installed

Ezzel most mit lehet kezdeni? Meg hogy lehet egy process hidden?

Antiemes/TBS

testing/unstable? http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=217278

Vagyis ismert hiba, a kernel thread-eket nezi LKM-nek. A biztonsag kedveert azert futtasd le a kovetkezot:

chkrootkit -x lkm

Ha a kernel thread-eket (pid 3,4,5,6) latod, akkor nincs gond.

>Az egyik, hogy a rendszer telepítése után a még szűz gépre valamilyen ``checksum'' készítő- és ellenőrző programot telepítünk.

erre melyik a legjobb prog ?

lkm nekem is megvan... viszont van itt ezen kivul meg egy erdekesseg:

[...]

Checking `sniffer'...

PROMISC mode detected in one of these interfaces: eth0 eth1

[...]

viszont:

# chkrootkit -x sniffer

ROOTDIR is `/'

###

### Output of: ./ifpromisc

###

eth0 is not promisc

eth1 is not promisc

Most akkor hogy is van ez?

normalis rootkitet nem talal meg. hamis biztonsagerzet keltesere tokeletes.

Már rég fel akartam tenni, és most kapóra jön: GrSecurity nincs 2.6-ra?

Felraktam a chkrootkit-et, parancssorból futtatva nem talál semmit.
Berakta magát cron.daily-be is. Azóta naponta küld a cron egy üzit, melyben ez van:
/etc/cron.daily/chkrootkit:
The following suspicious files and directories were found:
/lib/init/rw/.ramfs
Ez gáz? Ha igen, mit csináljak? Ha nem, mit csináljak, h ne jelezze?

'Everybody loves LEDs'