*intruder - ovako cu zvati hackera/crackera/lamera ili kako god ...
Po mom misljenju, kad se radi o security-u, najbitnije je da razmisljamo kao intruder. Najbitnije je da znamo sta bi mi uradili ako bi dobili root access na nekoj masini, a samim tim bi znali kako i da se odbranimo od toga.
Intruder kada udje kao root, njegov zadatak je da sebe sakrije tako da izgleda kao da nije ni bio logovan, i naravno da ostavi backdoor("zadnja vrata") kako bi ponovo mogao neopazeno da udje na sistem, a pritom da se ne trudi ponovo da dobije root access. Ovo se postize koriscenjem takozvanih RootKit-eva.
Rootkit - to je alatka/skup alatki koje nam omogucavaju da se sakrijemo na sistemu. Koliko sam ja upoznat sa ovim stvarima, postoje dve vrste rootkita. Prvi(losiji) je onaj rootkit koji u sebi sadrzi programe poput ps, ls, du, netstat ...., i kad ga instaliramo na doticnoj masini on samo zameni postojece istoimene programe ali sada ti programi dobijaju dodatne funkcije za koje administrator nije ni svestan da postoje. ps nece prikazati odredjene procese koje navedemo pri njegovom "preuredjivanju". ls nece izlistati fajlove koje navedemo pri njegovom "preuredjivanju".... i tako dalje. Tako da administrator kad izvrsi komandu ps -aux nece primetiti recimo backdoor da je pokrenut, a takodje nece primetiti sa netstat nijednu sumnjivu konekciju.
Nacin da otkrijemo da imamo ove silne programcice zamenjene moze biti na primer koriscenjem md5sum programa. Ovaj program uzima jedinstven otisak fajla koji ne moze biti isti za dva razlicita fajla. Prilikom instaliranja sistema pozeljno je da se pogledaju md5sum-ovi ovih gore navedenih programa i da se zapisu negde na sigurno mesto(papir, file ....). Zatim povremeno(recimo jednom dnevno/nedeljno/mesecno...) pogledaju trenutni md5sum-ovi ovih programa i da se uporede sa onim zapisanim. E tu ima jedna caka koju intruderi koriste a to je da takodje zamene i sam md5sum program tako da on prikazuje prvobitne sumove iako su promenjeni(tacnije ni ne proverava md5sum za te programe nego samo ispise one prvobitne koji su bili pre instaliranja rootkita). Naravno za sve postoji resenje pa i za ovo. Treba samo nakon instalacije linuxa kopirati md5sum na disketu i posle samo njega koristiti pri proveri ovih fajlova.
Druga opcija za resenje koje je korisno u borbi protiv ovih rootkita je to da doticne programe iskopiramo na neko sakriveno mesto na sistemu, i da ih renameujemo(pa mozda cak i da im promenimo velicinu da intruder sa programom find nebi mogao da pronadje ove programe), pa posle da koristimo te programe kad ocemo da proverimo da li ima sumnjivih stvari na sistemu. Pozeljno je takodje da se pri koriscenju ovih stvari koje sam naveo iskljuci logovanje komandi, da intruder nebi mogao da pronadje sta ste vi radili, naravno osim ako nije ostavio sniffer). Ako je u pitanju bash shell, ovo postizemo tako sto ukucamo komandu unset HISTFILE (za ostale shellove nisam siguran, mada mozete pogledati man pages od shella koji vas zanima siguran sam da pise).
Druga vrsta rootkita(naprednija) je preko Kernel Modula.
Jednostavno, napravi se modul koji ce sve ovo da sakriva. Nemoguce ga je pronaci na prethodne nacine jer nista nije menjano vec sve kernel sam radi. Takodje modul kada se ucita nevidi se ni na listi ucitanih modula(komanda lsmod ). Nacin na koji mozemo pronaci ovakav modul je veoma komplikovan, ali jedno je sigurno: modul mora biti nekako ucitan pri bootovanju sistema. Zato mora da se nalazi u nekoj od rc skripti. Ali opet ga nije lako pronaci jer intruder(podrazumevam da je malo pametniji) sigurno nije stavio ime modula da bude hackmodule.so nego je koristio neko standardno ime od nekog modula koji vec postoji i standardno je ucitan, a pritom se ni ne koristi na sistemu, pa vam ovo moze zakomplikovati zivot. Ostaje vam samo da proveravate svaki modul pojedinacno i da iskljucite svaki za koji ste sigurni da vam ne treba. Druga alternativa(mnogo korisnija) je da pri instalaciji linuxa normalno kompajlirate kernel(podrazumevam da je server u pitanju), i da iskljucite Kernel Module Support, i sve sto vam 100% treba ukljucite direktno u kernel, a ostalo iskljucite. Ovim ste se obezbedili od mogucih lkm rootkita koji vas mogu zadesiti.
Takodje, ako je intruder malo gluplji, on ce da izbrise sistemske logove, ali ce ostaviti log na serveru preko koga je upao(tipa wuftpd). Tako da jednostavnim pregledom loga koji sadrzi podatke o logovanju preko ovog servisa, mozete pronaci vaseg intrudera.
Jos jedna varijanta koja je danas sve vise zastupljena, je ta da se syslogd podesi tako da sve logove salje na drugu masinu koja je u mrezi. Tu drugu masinu podesite tako da nema access na internet i otvorite samo port za syslogd, pogasite sve ostale portove sa nekim firewall-om(preporucujem iptables) i resili ste se muka. Logovi su uvek tu.
Jos jedna varijanta koju mozete da koristite je ta da se malo preradi bash shell ili koji shell vec koristitie, tako da pri svakom aktiviranju shella, posalje jedan mail gde vi pozelite, sa listom svih konekcija ili sta god vam padne napamet. (hvala sallletu na ovoj ideji).
Ima jos alternativa(ako ste mozda i paranoicni icon_wink.gif) ili vam je mozda neophodno da sacuvate sistem posto poto)a to je da postavljate raznorazni software tipa IDS (Intrusion Detection System). Nekim od IDS-eva mozete recimo fizicki zabraniti menjanje/brisanje odredjenog fajla/fajlova tako da intruder ne moze da postavi rootkit(onaj prvi sto sam pricao). Da bi sklonio ovakvu zabranu, mora da se unese password pa ako je password neki komplikovaniji(citaj r4diJ4tOr), onda su sanse za intrudera veoma veoma male, mada ima i tu nekih fora oko zaobilazenja ovih stvarcica ali je mnoooogo mala verovatnoca da ce te uspeti.
A u ostalom zasto se maltretirati sa ovako necim, kad na raspolaganju imate vasu mastu koja ide do beskraja dok je software ogranicen. Videli ste kako mozete da se zastitite koriscenjem samo svoje maste i stavljanjem u polozaj intrudera(sto je najbitnije u svemu ovome).
Eto toliko od mene za sada. Svaki komentar(pohvala/kritika) na ovaj post je dobrodosao.