original in es Danilo
Lujambio
es to en Iván Rojas
Aguilar
es to en Javier
Palacios
en to en:Lorne Bailey
en to tr:Erdal MUTLU
Ağ güvenliği için tarayıcıların önemi neden bu kadar fazladır? Bunun nedeni, sisteme saldıracak kişilerin vazgeçilmez araçları olduklarındandır. Bir saldırganın sisteme saldırmadan önce yaptığı hazırlıklar aşağıdaki gibidir :
Sistem güvenligine önem veren sistem yöneticilerin, niyetleri iyi olmayanlarin sistem açiklarini kesfetmeden önce kendi sistemlerinde açik olup olmadigini sürekli denetlemeleri çok önemlidir.
Bu is için yazilmis birçok tarayici vardir. Ancak bu makalede nmap adli tarayicidan söz edecegiz. Nmap güvenlik araçlari ve tarayicilari arasinda en yeterli olanidir.
Nmap sayesinde sistem yöneticileri ag üzerinde tarama yaparak, hangi sunucularin hangi hizmetleri sunduklarini ögrenebilmektedirler. Bunun için nmap birçok teknik kullanmaktadir. Bu makalede bunlardan sinirli sayidakiler üzerinde çalisma yapacagiz. Bu arada TCP protokolünün bazi konularini gözden geçirecegiz veya ögretecegiz.
Bu makalenin stratejisi, sistemler hakkinda bilgi toplamak ve bunun paralelinde hedef sistem üzerinde tarama yapilacak yollari bulmak için, nmap programinin en çok kullanilan seklini göstermek olacaktir.
Nmap programini www.insecure.org adresinden edinmek mümkündür. Programi elde ettikten sonra asagidaki komutlari çalistirin:
tar zxvf nmap-2.30BETA17.tgz cd ...../nmap-2.30BETA17/ ./configure make make installve böylece progarmi yüklemis olacaksiniz.
Nmap programinin çiktilari genellikle hedef bilgisayardaki "ilginç" (açik) olan portlarin bir listesi olmaktadir. Sunulan hizmetin adi, durumu ve hangi protokol oldugu bu portlardan ögrenmek mümkündür.
Nmap ile tarama yapmanin en basit yolu -sT seçenegi ile olmaktadir. Bu yöntem TCP protokolündeki baglanti kurma yöntemine dayandirilmaktadir ve buna üçlü elsikisma adi verilmektedir. [1] nin adimlari kabaca asagidaki gibidir :
Bu sekilde tarama yapmanin iki avantaji vardir:
Nmap programinin -sT seçeneginin neler yaptigini hedef bilgisayarda tcpdump komutu yardimiyla görecegiz. Nmap 192.168.255.20 IP numarali bilgisayardan, house2.xxx.xxx.xxx bilgisayarina yöneltilmis olarak Ethernet ag üzerinden çalistirilmaktadir.
1) 08:24:18.393108
192.168.255.20.1024 house2.xxx.xxx.xxx.653: S
2632227152:2632227152(0) win 16060 < mss
1460,sackOK,timestamp 232602[|tcp] (DF) 2) 08:24:18.393167 house2.xxx.xxx.xxx.653 192.168.255.20.1024: R 0:0(0) ack 2632227153 win 0 3) 08:24:18.393227 192.168.255.20.1025 house2.xxx.xxx.xxx.6141: S 2644226118:2644226118(0) win 16060 < mss 1460,sackOK,timestamp 232602[|tcp] (DF) 4) 08:24:18.393258 house2.xxx.xxx.xxx.6141 192.168.255.20.1025: R 0:0(0) ack 2644226119 win 0 5) 08:24:18.453343 192.168.255.20.1298 house2.xxx.xxx.xxx.pop3: S 2640612362:2640612362(0) win 16060 < mss 1460,sackOK,timestamp 232608[|tcp] (DF) 6) 08:24:18.453542 house2.xxx.xxx.xxx.pop3 192.168.255.20.1298: S 1658259980:1658259980(0) ack 2640612363 win 16060 < mss 1460,sackOK,timestamp 243353[|tcp] (DF) 7) 08:24:18.458667 192.168.255.20.1298 house2.xxx.xxx.xxx.pop3:. ack 1 win16060<nop,nop,timestamp 232609 243353 (DF) 8) 08:24:18.461280 192.168.255.20.1298 house2.xxx.xxx.xxx.pop3: F 1:1(0) ack 1 win 16060 < nop,nop,timestamp 232609 243353 (DF) |
Bu sekilde nmap programinin hedef bilgisayarinin 110 (pop3) nolu portunun açik oldugunu nasil yakaladigini görmekteyiz.
Yukarida da belirtildigi gibi bu sekilde yapilan tarama yöntemini /var/log/messages dosyasina 5-8. satirlarindakine karsilik yazmis oldugu (bu tabii syslog.conf'taki ayarlara baglidir) asagidaki satirlardan anlasilmaktadir:
May 6 08:24:01 house2 in.pop3d[205]: connect from root@192.168.255.20
Bu tarama sekli nmap programini -sS seçenegi ile çalistirildiginda olmaktadir. Kullanilan teknik, "yari baglanti" (: biz bir SYN gönderiyoruz ve eger ACK alirsak, hedef bilgisayarin bu portunun aktif oldugunu tespit etmekteyiz. Sonunda RESET göndererek baglantiyi kapatmaktayiz.) açmaktan geçmektedir. Eger, ACK yerine RST (RESET) alirsak, hedef bilgisayarin bu portunun kapali oldugu sonucuna varabiliriz. Bu tarama yönteminin dezavantaji root haklarina sahip olmayi gerektirmesidir. Ancak, karsi tarafin sizi farketmesi zorlasmaktadir.
Nmap programin yaptiklarini yukaridakine benzer bir analiz ile inceleyelim.Yine tcpdump programindan yararlanacagiz ve satirlari anlatim kolayligi açisindan numaralandiracagiz.
1) 22:25:45.856936 192.168.255.20.40175
house2.tau.org.ar.946: S 1292785825:1292785825(0) win
3072 |
3) 22:25:45.970365
192.168.255.20.40175 house2.tau.org.ar.pop3: S
1292785825:1292785825(0) win 3072 4) 22:25:45.976022 house2.tau.org.ar.pop3 192.168.255.20.40175: S 185944428:185944428(0) ack 1292785826 win 16080 < mss 536 (DF) 5) 22:25:45.979578 192.168.255.20.40175 house2.tau.org.ar.pop3: R 1292785826:1292785826(0) win 0 |
house2 bilgisayari üzerinde yapilan bu tarama, /var/log/messages dosyasina daha önce de belirtildigi gibi yansimamistir.
Bu tarama yöntemi, hedef bilgisayarlarin kapali olan portlara FIN paketi gönderildiginde RST ile cevap verme gerçegine dayandirilmaktadir. Böylece, açik olan portlarin listesini, cevap almadigimiz portlardan olusturabiliriz. Microsoft yüklü bilgisayarsayarlarinda bu yöntem geçerli olmamaktadir. Çünkü, Microsoft TCP protokolunü standartlara uygun olarak uygulamamistir.
-sF, -sX ve -sN olmak üzere nmap'in kullandigi üç benzer yöntem vardir. Biz burada -sF seçenegini inceleyecegiz.
1) 06:50:45.643718 192.168.255.20.35600
casahouse.tau.org.ar.864: F 0:0(0) win 2048 |
1. ve 2. satirlarda FIN paketinin hedef bilgisayardaki hareketleri görülmektedir. FIN 1. satirda (864 port numarasindan sonraki F dikkat ediniz) paketine karsilik 2. satirda hedef bilgisayar RST (2. satirdaki 35600 den sonraki R harfine dikkat ediniz.) paketini göndermistir. Böylece nmap programi hedef bilgisayardaki 864 portunun kapali oldugunu anlamaktadir.
3) 06:50:47.933227 192.168.255.20.35600 >
house2.tau.org.ar.pop3: F 0:0(0) win 2048 |
3. ve 4. satirlar house2 bilgisayarindaki pop3 portunu örnek olarak göstermektedir. 3. satirda hedef bilgisayara FIN gönderilmis, ancak cevap alinamamistir. 4. satir ise, bir sürpriz, nmap programi porttan cevap alamayinca bir FIN paketi daha göndermistir, ancak sonuç olarak buna da cevap alamayacaktir. Bunun nedeni ise pop3 portunun açik olmasidir.
"Üçlü elsikisma tarama yöntemi" bölümünde tarama yapildiginda arkasinda iz biraktigini, yani sistem loglarinda kayit tutuldugunu gördük. Daha sonra ise, -sS ve -sF seçenekleri kullanilmasiyla geride hiçbir iz kalmadigini da gördük. Bu sekilde yapilan saldirilari gözleyebilmek için tcpdump programindan yararlanabiliriz. Ancak, tcpdump programinin büyük bir dezavantaji, çok sayida veri üretmesidir ve bunun için çok fazla yere ihtiyaç vardir. Ayrica, bu verileri incelemek de oldukça zor ve zaman alici bir islemdir. Burada, olusan verileri aza indirmek ve incelemeyi kolaylastirici hale getirmek için, filtre özelligi tasiyan bazi ifadeler kullanilmistir.
Ifadelerin kolayca anlasilmasini saglamak için TCP'nin [2] paket yapisi gösterilmistir.
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgement Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Offset | Reserver |U|A|P|R|S|F| Window | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Sekilden de görüldügü gibi, 13. byte SYN, FIN vs. parametrelerin bulundugu
yeri göstermektedir. Bu bilgiden hareketle ve ve (&) operatörü ile, bu parametreleri
yakalayacak ifadeler için maskeler olusturabiliriz. Buna göre
tcpdump ' tcp[13] & 7 != 0 and dst 192.168.255.20 ' >
/tmp/out7
ifadesi, aktif olan R,S ve F bitlerin (00000111 maskesi yardimiyla) yer aldigi 192.168.255.20
(tabi bu IP tespit edildikten sonra) bilgisayarindan gelen paketleri yakalamamizi saglamaktadir.
tcpdump ' tcp[13] & 1 != 0 and dst 192.168.255.20 ' >
/tmp/out1
kullanilarak, nmap programinin -sF seçenegi ile çalistirilmasi halinde,
aktif olan FIN bitlerinin (00000001 maskesi yardimiyla) yer aldigi paketleri yakalayabiliriz.
tcpdump ' tcp[13] & 2 != 0 and dst 192.168.255.20 ' >
/tmp/out2
ifadesi yardimiyla da, nmap programini -sS seçenegi ile kullanilmasi durumunda aktif olan SYN
bitlerinin yer aldigi paketleri yakalayabiliriz.
En son anlatilan (-sS seçenegi) grubu tarama yöntemi için, [3]'de kullanilabilecek çesitli programlar verilmistir.
Nmap gibi programlar sistem güvenligini saglamada çok faydali rol oynamaktadir. Bunlar sayesinde sisteme saldiracak kisilerin gözüyle ag üzerinde inceleme yapilabilmektedir. Nmap programinin kullandigi seçeneklerden çok az bir kismi üzerinde durduk. Ancak umariz ki bu bilgi ag üzerinde tarama yapma konusunda sizlere yardimci olmustur.
[1] W. Richard Stevens Unix Network Programming Volume 1
[2] RFC 793
[3] nmap programiyla birlikte gelen belgelere bakiniz.