Tuesday, March 8, 2016

Pasif Tarama (Idle Scan)


Bu yazımızda "idle scan" diye bilinen bir tarama çeşidinden bahsetmeyi düşünüyorum. Türkçe'ye çevirmekte çok zorlandım "idle scan" tamlamasını. Çok güzel bir tercüme olmadığının farkındayım fakat "pasif tarama" şeklinde çevirdim. Fakat yazı boyunca "idle scan" olarak yazacağım.
 
"Idle scan"i anlamadan önce bazı kavramların bilinmesinde fayda var:
 

IP ID

Ağda iletilen paketlerin bir IP ID numarası vardır. IP ID numarasının ne olduğuna bu yazıda değinmeyeceğiz. Bu yazı kapsamında bu IP ID numarasının, her bir paket için işletim sistemi tarafından her paket için "1" artırıldığını bilmemiz yeterli olacaktır. Bazı işletim sistemlerinin IP ID numarasını "1" değil de daha fazla artırabildiğinin de altını çizelim. (bkz. https://tools.ietf.org/html/rfc6864) IP ID numarasının bu özelliği kullanarak, bir saldırgan hedefinde yer alan bilgisayara gelip giden paketlerin IP ID değerine bakarak bu hedef bilgisayara kaç adet paket geldiğini tespit edebilmektedir.
 

TCP Bayrakları

TCP başlığında yer alan bayrakların durumuna göre hedef bilgisayarların verdiği cevaplar da değişmektedir. "Idle scan"in anlaşılabilmesi için aşağıdaki durumların bilinmesi gereklidir:
 
1) Bir bilgisayar SYN ve ACK (SYN/ACK) bayrakları "1" yapılmış bir TCP segmenti aldığı zaman buna RST bayrağını "1" yaparak cevap verir.
2) Bir bilgisayar açık olan portuna SYN bayrağı "1" yapılmış bir TCP segmenti aldığı zaman buna SYN ve ACK (SYN/ACK) bayraklarını "1" yaparak cevap verir.
3) Bir bilgisayar kapalı olan portuna SYN bayrağı "1" yapılmış bir TCP segmenti aldığı zaman buna RST bayrağını "1" yaparak cevap verir.
 4) Bir bilgisayarın filtrelenmiş olan portuna SYN bayrağı "1" yapılmış bir TCP segmenti gönderilirse hedefteki bilgisayar bu TCP segmentini almayacağı için buna cevap veremeyecektir. Çünkü hedefteki bilgisayarın önünde bir güvenlik duvarı ya da bu bağlantıyı engelleyen bir cihaz bulunmaktadır ve gönderdiğimiz bu segment hedefteki bilgisayara ulaşmamaktadır.
 
Özetlemek gerekirse. Hedef bilgisayara bir SYN segmenti gönderilirse:
1) Hedef bilgisayardaki port açıksa hedef bilgisayar SYN/ACK döner
2) Hedef bilgisayardaki port kapalıysa hedef bilgisayar RST döner
3) Hedef bilgisayardaki port filtrelenmişse hedef bilgisayar cevap dönmez.

"Idle scan"i üç farklı senaryo için düşünmek durumundayız. Hedefteki bilgisayarın tarayacağımız portu; "açık" iken, "kapalı" iken ve "filtrelenmiş" iken.

"Idle scan"i gerçekleştirmek için genellikle "zombi" diye isimlendirilen bir köle bilgisayara ihtiyacımız olacaktır. Bu bilgisayarın üzerinde çok fazla trafik olmaması "Idle scan" için önemlidir. (Yazının sonunda ve satır aralarında bunun sebebine değinilecektir.) Burada bilgisayar yerine ağa bağlı herhangi bir cihaz da olabilir. Bu yazıda, yazım kolaylığı açısında "bilgisayar" olarak niteleyeceğiz.

"Idle Scan" (Hedef Port Açık)

Bu bilgiler ışığında şimdi hedef portun açık olması durumunda "idle scan"in nasıl gerçekleştirildiğini anlatmaya çalışalım:

1) "Idle scan"de ilk olarak ağ trafik yoğunluğu düşük olan bir bilgisayar (köle) tespit edilir. Bu bilgisayara SYN/ACK segmenti gönderilir.
2) SYN/ACK segmentini alan köle bilgisayar bu segmente RST segmentiyle cevap verir. Bu arada IP ID numarasını da "1" artırır.
Saldırgan bu ikinci adımdan sonra köle bilgisayarın IP ID değerini (6162) de öğrenmiş olur.
 
3) Köle bilgisayarın IP ID değerini öğrenmiş olan saldırgan bu sefer hedef bilgisayara bir SYN segmenti gönderir. Göndermiş olduğu bu segmentin kaynak IP adresi kısmında köle bilgisayarın IP adresi yazılıdır. Yani saldırgan, köle bilgisayarın IP adresini taklit etmiştir (spoofed IP).
4) SYN segmentini alan hedef bilgisayarın ilgili portu açıksa bu segmente SYN/ACK segmenti ile cevap verecektir. Fakat cevabı saldırganın bilgisayarına değil de 192.168.34.34 IP adresine sahip olan köle bilgisayara gönderecektir. Çünkü kendisine gelen segmentin IP adresi köle bilgisayarın IP adresiydi.
5) Böylece köle bilgisayar herhangi bir TCP bağlantısı kurmamış olduğu bir bilgisayardan bir SYN/ACK segmenti almıştır. Köle bilgisayar bu segmente RST segmentiyle cevap verecektir ve IP ID numarasını da bir artırarak 6163 yapacaktır. 
6) Bundan sonra saldırgan bilgisayar, köle bilgisayara tekrar bir SYN/ACK segmenti gönderir.

7) Köle bilgisayar bu segmente RST segmentiyle cevap verecek ve IP ID değerini de yine "1" artırarak 6164 yapacaktır. Saldırgan bilgisayarın köle bilgisayardan almış olduğı ilk IP ID değeri 6162 idi. Bu sefer almış olduğu değer 6164 olacaktır. IP ID değeri "2" artmış olduğu için saldırgan bilgisayar, hedef bilgisayarın ilgili portunun "AÇIK" olduğu sonucuna varacaktır.
Dikkat edilecek olursa hedef bilgisayarın portu köle bilgisayar IP ID değeri kullanılarak tespit edilmiştir. Bu tarama türünde hedef bilgisayar üzerinde saldırgan bilgisayarına ait herhangi bir kayıt düşme olasılığı da yoktur. Çünkü tüm bağlantı işlemlerini köle bilgisayar yapmıştır. Burada altı çizilmesi gereken husus şudur: Bu işlemler sırasında köle bilgisayar, üçüncü başka bir bilgisayarla haberleşme yaparsa IP ID değeri değişeceği için tarama sonucumuzda hatalar olabilecektir. Bundan dolayı köle bilgisayarımızı ağ trafiği az olan bir bilgisayar olarak seçmemiz bu tarama türü için önemlidir. Bu tarama türüne bundan dolayı "idle scan" denilmiştir. Köle bilgisayarımızın "idle" yani boş olması önemlidir.
 

"Idle Scan" (Hedef Port Kapalı)

Şimdi de hedef bilgisayarındaki portun kapalı olması durumunu inceleyelim:
 
Bu durumda ilk üç adım aynı olacaktır.
 
1) Saldırgan bilgisayar, köle bilgisayara SYN/ACK segmenti gönderir.
2) SYN/ACK segmentini alan köle bilgisayar bu segmente RST segmentiyle cevap verir. Bu arada IP ID numarasını da "1" artırır.
3) Köle bilgisayarın IP ID değerini öğrenmiş olan saldırgan bu sefer hedef bilgisayara bir SYN segmenti gönderir. Göndermiş olduğu bu segmentin kaynak IP adresi kısmında köle bilgisayarın IP adresi yazılıdır. Yani saldırgan, köle bilgisayarın IP adresini taklit etmiştir (spoofed IP).
4) Hedef bilgisayar kapalı olan portuna bir SYN segmenti almış olduğu için bu segmente RST segmenti ile cevap verecektir. Cevabı da 192.168.34.34 IP adresine sahip olan köle bilgisayara göndrecektir. Köle bilgisayar herhangi bir bağlantı başlatmamış olduğu bir IP adresinden RST segmenti alınca da bu segmenti dikkate almayacaktır. Dolayısıyla IP ID değeri de değişmemiş olacaktır.
Bu adımdan sonraki adımlar da oldukça benzerdir.
 
5) Saldırgan bilgisayar, köle bilgisayara tekrar bir SYN/ACK segmenti gönderir.
6) Köle bilgisayar bu segmente RST segmentiyle cevap verecek ve IP ID değerini de yine "1" artırarak 6163 yapacaktır. Saldırgan bilgisayarın köle bilgisayardan almış olduğı ilk IP ID değeri 6162 idi. Bu sefer almış olduğu değer 6163 olacaktır. IP ID değeri "1" artmış olduğu için saldırgan bilgisayar, hedef bilgisayarın ilgili portunun "KAPALI" ya da "FİLTRELENMİŞ" olduğu sonucuna varacaktır.

"Idle Scan" (Hedef Port Filtrelenmiş)

Son olarak da hedef portun filtrelenmiş olduğu durumu inceleyelim. Yani saldırgan bilgisayarıyla hedef bilgisayarı arasında bir güvenlik duvarı olduğunu düşünelim. Bu durumda elde edeceğimiz sonuç hedef portun kapalı olduğu durumdakiyle aynıdır. Yani "idle scan" ile hedef portun "KAPALI" ya da "FİLTRELENMİŞ" olduğunun ayrımına varabilmek mümkün olmamaktadır.
 
İlk üç adım yine aynıdır:
 
1) Saldırgan bilgisayar, köle bilgisayara SYN/ACK segmenti gönderir.
2) SYN/ACK segmentini alan köle bilgisayar bu segmente RST segmentiyle cevap verir. Bu arada IP ID numarasını da "1" artırır.
3) Köle bilgisayarın IP ID değerini öğrenmiş olan saldırgan bu sefer hedef bilgisayara bir SYN segmenti gönderir. Göndermiş olduğu bu segmentin kaynak IP adresi kısmında köle bilgisayarın IP adresi yazılıdır. Yani saldırgan, köle bilgisayarın IP adresini taklit etmiştir. Fakat hedef bilgisayara gönderilen bu trafik güvenlik duvarı tarafından engellenmiştir. Saldırgan bilgisayardan gönderilen trafik hedef bilgisayara ulaşmamıştır.
4) Diğer durumlarda olduğu gibi saldırgan bilgisayar, köle bilgisayara tekrar bir SYN/ACK segmenti gönderir.
5) Köle bilgisayar bu segmente RST segmentiyle cevap verecek ve IP ID değerini de yine "1" artırarak 6163 yapacaktır. Saldırgan bilgisayarın köle bilgisayardan almış olduğı ilk IP ID değeri 6162 idi. Bu sefer almış olduğu değer 6163 olacaktır. IP ID değeri "1" artmış olduğu için saldırgan bilgisayar, hedef bilgisayarın ilgili portunun "KAPALI" ya da "FİLTRELENMİŞ" olduğu sonucuna varacaktır.
 

Monday, March 7, 2016

Türkilizce #4


Bilişim sistemleri eğitimlerinde eğitimi veren hocaların dilleri, Türkçe açısından gerçekten felaket ötesi oluyor. Benim gibi Türkilizce'ye alerjisi olanlar için aşırı kulak tırmalayıcı bir durum. Lakin ne eğitimi veren ne de eğitimi alan bunun farkında.

Yakınlardaki bir eğitimde geçen bir cümleyi buradan paylaşmak istiyorum:

"O requirementmeet etmek için developer'in yapması gereken actionlar şunlar."

E şimdi bunu duyunca gel de uyuz olma. Türkçe desen Türkçe değil. İngilizce desen İngilizce değil. Adı üstünde Türkilizce işte. Sinir bozucu.

TDK ne yapıyor bu arada? Ağalar uyumakla meşgul. Uyanıklarsa da bundan kimsenin haberi yok. Olan "Türkçe"ye oluyor.

Dilimizi koruyamıyoruz. Bundan daha kötüsü de dilimizi koruma adına bir niyetimiz yok. Bunun farkında bile değiliz. Devletiyle, halkıyla, müesseseleriyle, özetle tüm üniteleriyle türlü türlü komplekslere sahip, oldukça klasik bir Orta Doğu ülkesiyiz. Eldeki malzeme bu işte. Neylersin?...