Samovyšetrovanie a ochrana proti útokom a útočníkom

linux_server.jpg V pred­chád­za­jú­cej čas­ti sme sa ve­no­va­li spô­so­bom, ako po­ten­ciál­ny útoč­ník skú­ša svo­je šťas­tie na sie­ti a ako za­čí­na sno­re­nie po­mo­cou hro­mad­né­ho pin­gu, ske­no­va­ním po­rtov, prí­pad­ne ske­no­va­ním slu­žieb na týc­hto po­rtoch. Ten­to­raz bu­de­me po­kra­čo­vať v sa­mo­vy­šet­ro­va­ní náš­ho sys­té­mu a uká­že­me si ďal­šie tri­ky, ako za­brá­niť ho­ci­ko­mu len tak „po­be­ho­vať“ po na­šom server­i.

Roz­poz­na­nie ope­rač­né­ho sys­té­mu
Keď sa útoč­ník po­dľa spô­so­bov spo­me­nu­tých v pred­chád­za­jú­cej čas­ti doz­vie, akú IP ad­re­su má po­čí­tač, na kto­rý sa za­me­ria­va, a aké po­rty a služ­by na ňom bež­ia, po­tom ho mô­že za­ují­mať, aký ope­rač­ný sys­tém je na ňom nain­šta­lo­va­ný (ne­bu­de sa po­kú­šať o pre­lo­me­nie sys­té­mu, kto­rý ne­poz­ná). Na to mu sta­čí za­se prí­kaz nmap, ten­to­raz s pa­ra­met­rom O (veľ­ké O, nie nu­la):

nmap –O 192.168.10.1

a dos­ta­ne ta­ký­to vý­pis:

Star­ting Nmap 4.11 ( http://www.in­se­cu­re.org/nmap/ ) at 2009-09-05 15:17 CEST
Inter­es­ting po­rts on server (127.0.0.1):
Not shown: 1668 clo­sed po­rts
PO­RT     STA­TE SERVIC­E
25/tcp   open  smtp
80/tcp   open  http
110/tcp  open  po­p3
111/tcp  open  rpcbind
139/tcp  open  net­bios-ssn
143/tcp  open  imap
443/tcp  open  https
445/tcp  open  mic­ro­soft-ds
631/tcp  open  ipp
993/tcp  open  imaps
995/tcp  open  po­p3s
3128/tcp open  squid-http
No exact OS mat­ches for host (If you know what OS is run­ning on it, see http://www.in­se­cu­re.org/cgi-bin/nmap-sub­mit.cgi).
TCP/IP fin­gerprint:
SIn­fo(V=4.11%P=i686-red­hat-li­nux-gnu%D=9/5%Tm=4AA264F0%O=25%C=1)
TSeq(Class=RI%gcd=2%SI=2605B1%IPID=Z)
TSeq(Class=RI%gcd=1%SI=4C0AE0%IPID=Z)
TSeq(Class=RI%gcd=1%SI=4C02B5%IPID=Z)
T1(Resp=Y%DF=Y%W=8000%ACK=S++%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=8000%ACK=S++%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=C0%IP­LEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)
Nmap fi­nis­hed: 1 IP ad­dress (1 host up) scan­ned in 9.773 se­conds


Z vý­pi­su vi­dieť, že ide o ope­rač­ný sys­tém Red­Hat s jad­rom 686. Oc­hra­na pro­ti to­mu­to spô­so­bu in­filtrá­cie je po­dob­ná ako v prí­pa­de ske­no­va­nia po­rtov. Mô­že­me te­da opä­tov­ne vy­užiť služ­by nás­tro­ja snort.

Vý­pis zdie­ľa­ných ad­re­sá­rov
Ak útoč­ník pri ske­no­va­ní po­rtov zba­dá, že je ot­vo­re­ný po­rt služ­by Network Fi­le Sys­tem (NFS, po­rt 2049), mô­že ľah­ko zis­tiť, aké ad­re­sá­re sú zdie­ľa­né a ka­diaľ by prí­pad­ne mo­hol vstú­piť do sys­té­mu. Mô­že po­užiť nás­troj showmount, kto­rý je sú­čas­ťou ba­lí­ka nfs-utils (http://pr­downloads.sour­ce­for­ge.net/nfs):

showmount –e 192.168.10.1
export list for 192.168.10.1:
/od­loz		(eve­ryo­ne)
/da­ta			(eve­ryo­ne)

Po­znám­ka:
Nás­troj showmount nie je sú­čas­ťou kaž­dej dis­tri­bú­cie, pre­to ho mož­no bu­de tre­ba in­šta­lo­vať.

Vý­pis po­uží­va­te­ľov vzdia­le­né­ho sys­té­mu
Nie­ke­dy je veľ­mi dob­ré ve­dieť, kto je eš­te prih­lá­se­ný k da­né­mu sys­té­mu. Na to mož­no po­užiť prí­kaz fin­ger ale­bo eš­te lep­šie prí­ka­zy rwho a ru­sers.

Lo­gin     Na­me       Tty      Id­le  Lo­gin Ti­me   Of­fi­ce     Of­fi­ce Pho­ne
ora­vec               pts/2          Sep  5 17:02 (211-161-228-1)
root      root       pts/0          Sep  5 15:16 (212-100-228-6)

Ak sa­mi skú­si­me po­dob­ným spô­so­bom zis­tiť, kto je prá­ve prih­lá­se­ný, je to zlé. Dob­rý ad­mi­nis­trá­tor tie­to služ­by vy­pne a ne­do­vo­lí tak zis­ťo­vať po­dob­né in­for­má­cie.

Tel­net , rsh, rlo­gin a ssh
Nik­dy pri na­šej prá­ci ne­pou­ží­vaj­me prog­ra­my, ako je tel­net, rsh ale­bo rlo­gin. Tie to­tiž ko­mu­ni­ku­jú bez aké­ho­koľ­vek za­bez­pe­če­nia, tak­že všet­ky pa­ke­ty sú v po­do­be čis­té­ho textu, kto­rý kaž­dý schop­nej­ší „sys­te­mák“ do­ká­že pre­čí­tať. A po sie­ti sa po­sie­la­jú aj hes­lá, však? Naj­vhod­nej­ší nás­troj je ssh ale­bo openssh, kde ko­mu­ni­ká­cia pre­bie­ha v šif­ro­va­nej po­do­be a ce­lý prin­cíp ko­mu­ni­ká­cie je po­sta­ve­ný na zá­kla­de tak­zva­ných kľú­čov. V prí­pa­de, že chce­me ko­mu­ni­ko­vať s na­ším li­nuxovým server­om zo sta­ni­ce s ope­rač­ným sys­té­mom MS Win­dows, mô­že­me po­užiť vý­bor­ný nás­troj put­ty.

Pro­mis­kuit­né sie­ťo­vé roz­hra­nie
Veľ­ká sku­pi­na sie­ťo­vých ka­riet sa do­ká­že prep­núť do tak­zva­né­ho pro­mis­kuit­né­ho re­ži­mu. Ten spô­so­bí, že roz­hra­nie od­chy­tá­va všet­ky pa­ke­ty na sie­ti, nie­len tie, kto­ré sa ho pria­mo tý­ka­jú. To­to sa vy­uží­va pri sle­do­va­ní pre­vád­zky na sie­ti a na „sno­re­nie“ za in­for­má­cia­mi. Zá­ro­veň je to ne­bez­peč­ná di­era v na­šom sys­té­me, a pre­to pro­mis­kuit­ný mód po­uží­vaj­me len vte­dy, keď je to nao­zaj ne­vyh­nut­né. Ten­to mód zis­tí­me, ak vo vý­pi­se prí­ka­zu, nap­rík­lad

if­con­fig eth1

náj­de­me slo­vo PRO­MISC. Ak áno, po­mo­cou prí­ka­zu if­con­fig eth1 -pro­misc
ho vy­pne­me. Pa­ra­me­ter -pro­misc je pre­pí­nač, te­da raz za­pí­na a dru­hýk­rát vy­pí­na pro­mis­kuit­ný mód sie­ťo­vé­ho roz­hra­nia.

Vý­pis ak­tuál­nych sie­ťo­vých spo­je­ní
Veľ­mi čas­to sa stá­va, že útoč­ník po­uži­je náš server ako zá­klad­ňu na úto­ky na iné server­y. Tak mas­ku­je, od­kiaľ po­chád­za, a v po­dsta­te nec­há­va pad­núť po­doz­re­nie prá­ve na nás. Je te­da dob­ré ob­čas prez­rieť všet­ky sie­ťo­vé spo­je­nia. To do­siah­ne­me prí­ka­zom net­stat –na a na ob­ra­zov­ke vi­dí­me vý­pis spo­je­ní, a tak mô­že­me od­ha­liť po­doz­ri­vú ak­ti­vi­tu a za­brá­niť zneu­ží­va­niu náš­ho sys­té­mu na ne­ka­lé prak­ti­ky nie­ko­ho iné­ho. Pa­ra­me­ter -ta ob­med­zí vý­pis na spo­je­nia TCP/IP.

Sys­té­mo­vé hlá­se­nia – lo­go­va­cie sú­bo­ry
Sys­té­mo­vé lo­go­va­cie sú­bo­ry – lo­gy – sú dob­rý zdroj in­for­má­cií o ak­ti­vi­te útoč­ní­ka. Sa­moz­rej­me, že zdat­ný útoč­ník po se­be dob­re „po­up­ra­tu­je“, ale aj maj­ster te­sár sa ob­čas ut­ne, a tak útoč­ník za­nec­há po se­be ne­patr­né sto­py. Pre­to tre­ba veľ­mi čas­to sle­do­vať vý­pi­sy lo­go­va­cích sú­bo­rov. Med­zi naj­dô­le­ži­tej­šie pa­tria /var/log/mes­sa­ges ale­bo /var/log/maillog a sú­bor las­tlog. Pr­vé dva sú texto­vé, ten po­sled­ný prez­rie­me, ak za­dá­me prí­kaz las­tlog a na ob­ra­zov­ke sa ob­ja­ví vý­pis po­dob­ný to­mu­to:

Po­uží­va­teľ		Po­rt		Z			Na­pos­le­dy
root			pts/0		213-151-238-8.ic 	Ne sep  6 09:37:46 +0200 2009
bin								**Ne­bol nik­dy prih­lá­se­ný**
dae­mon							**Ne­bol nik­dy prih­lá­se­ný**
adm								**Ne­bol nik­dy prih­lá­se­ný**
ora­vec								**Ne­bol nik­dy prih­lá­se­ný**
user								**Ne­bol nik­dy prih­lá­se­ný**
smajl			pts/0		blueice1n1.de.ib 	So sep  5 02:32:31 +0200 2009
ana­nas			pts/0		si­re­ne25.fi.mu­ni 	Po nov 24 10:15:21 +0100 2008
mar­kech							**Ne­bol nik­dy prih­lá­se­ný**
sprav­ca							**Ne­bol nik­dy prih­lá­se­ný**

V prí­pa­de na­pad­nu­tia mô­že­me z lo­gov zis­tiť IP ad­re­su, od­kiaľ útok po­chád­zal, čas tr­va­nia a zá­zna­my o ak­ti­vi­te útoč­ní­ka. Ta­kis­to sa mô­že stať, že v lo­goch bu­dú chý­bať zá­pi­sy z dl­hšie­ho ča­so­vé­ho úse­ku ale­bo bu­de lo­go­va­cí sú­bor prázd­ny, prí­pad­ne v ňom bu­dú evi­den­tne sfal­šo­va­né úda­je. To jed­noz­nač­ne po­uka­zu­je na útok, a ak aj ne­zís­ka­me bliž­šie in­for­má­cie o útoč­ní­ko­vi, as­poň vie­me, že sa nie­čo de­je a mu­sí­me uro­biť proti­opat­re­nia.

Sú­bor /root/.bash_his­to­ry
Ten­to sú­bor za­zna­me­ná­va kom­plet­nú his­tó­riu prí­ka­zov za­dá­va­ných z kon­zo­ly. Ak útoč­ník nez­ma­zal ale­bo neup­ra­vil ten­to sú­bor, mô­že­me veľ­mi pres­ne vi­dieť, čo na na­šom sys­té­me ro­bil. Na­bu­dú­ce si uká­že, ako náš sys­tém za­bez­pe­čiť, ale zá­ro­veň prip­ra­viť tak, aby sme v prí­pa­de po­tre­by bo­li schop­ní spra­vo­vať ho z ľu­bo­voľ­né­ho mies­ta na Ze­mi.

Ďal­šie čas­ti >>

Zdroj: Infoware 10/2009



Ohodnoťte článok:
   
 

24 hodín

týždeň

mesiac

Najnovšie články

Li­nux prak­tic­ky ako server úvod
Linux ako server je pomerne zložitá technológia. Jej výhodou je určitá modularita, keď sa nemusí nastaviť celý server naraz, ale postupne. čítať »
 
Syn­chro­ni­zá­cia ča­su v Li­nuxe
V predchádzajúcich dvoch častiach sme si ukázali, že Linux a všeobecne open source softvér sa nenachádza iba v serveroch a počítačových sieťach, ale aj v iných zariadeniach bežnej domácej potreby a v oblasti hobby. čítať »
 
Za­ria­de­nia za­lo­že­né na Li­nuxe
V predchádzajúcej časti sme si spomenuli definície nie - ktorých pojmov z oblasti nášho záujmu, teda Linuxu. Vysvetlili sme si, čo je to Open Source, Public Domain, proprietárny softvér a GNU GPL. Tentoraz ukážeme, ako sa tieto pojmy využívajú v praxi. čítať »
 
Po­jmy z ob­las­ti
Tentoraz na chvíľu trochu odbočíme od bezpečnosti Linuxu a jeho siete. V tejto neštandardnej časti seriálu sa mu budeme venovať len okrajovo. čítať »
 
Bez­peč­nosť bez­drô­to­vých sie­tí II.
V predchádzajúcej časti sme sa začali zaoberať bezpečnosťou bezdrôtových sietí. Poukázali sme na rôzne faktory zneužitia siete, podstatu rizika a vysvetlili sme základné prvky bezpečnosti. čítať »
 
Bez­peč­nosť bez­drô­to­vých sie­tí I.
V predchádzajúcich častiach sme sa venovali bezpečnosti linuxového servera. Riešili sme firewall, bezpečnosť prístupu na internet, zaoberali sme sa demilitarizovanou zónou a podobne. čítať »
 
Údr­žba lo­gov – kon­fi­gu­rá­cia log­ro­ta­te
V predchádzajúcej časti sme sa venovali rotácii logov. Vysvetlili sme princíp ukladania logov, spôsob, ako sa rotujú, a uviedli sme niečo o tom, čo a ako treba nastaviť čítať »
 
Údr­žba lo­gov – ro­tá­cia
V predošlej časti sme sa zaoberali spôsobom logovania informácií na iný alebo vzdialený počítač a ukázali sme, ako riešiť problém s logovaním uzavretých procesov pomocou chroot. čítať »
 
 
 
  Zdieľaj cez Facebook Zdieľaj cez Google+ Zdieľaj cez Twitter Zdieľaj cez LinkedIn Správy z RSS Správy na smartfóne Správy cez newsletter