Translate

8 Haziran 2014 Pazar

ICMP Keşif ("Reconnaissance") Saldırıları - I

ICMP mesajlarını değiştirip, mesajın başlık (“header”) kısmında bulunan belirli alanlarda oynamalar yaparak veya bu mesajları asıl amaçları dışında kullanarak, hedef olarak seçilen sistemlere keşif (“reconnaissance”) saldırıları düzenlenebilir.
Keşif saldırılarının amacı, yapılacak asıl saldırılar öncesinde, hedef sistemler hakkında gerekli bilgileri elde etmek ve bu bilgileri kullanarak hedef sistemlere etkin saldırılar düzenlemektir. 
Bu ilk yazıda üç ve takip edecek olan ikinci yazıda ise dört olmak üzere, toplamda ICMP mesajları kullanılarak yapılabilecek 7 farklı keşif saldırısından söz edilecektir.


ICMP Nedir?

ICMP (Internet Control Message Protocol) protokolü, IP protokol takımının bir parçasıdır. Hedef ve özellikleri RFC 792'de belirtilmiştir. ICMP protokolünün temelde iki çeşit görevi bulunmaktadır. Bu görevler;
  • Sürekli hata durumlarının bildirilmesi ve
  • Ağ ile ilgili genel özellikleri saptamak üzere, istek ve cevap mesajlarıyla ağın araştırılmasıdır.
Bu sebeple, ICMP mesaj çeşitleri de yerine getirdikleri görevleri yansıtacak şekilde ikiye ayrılmaktadır;
  • ICMP Hata Mesajları (Örneğin; "Destination Unreachable", "Source Quench", "Redirect", vs.)
  • ICMP Sorgu Mesajları (Örneğin; "Echo Request & Reply", "Timestamp Request & Reply", vs.)
ICMP mesajları, IP paketleri içinde gönderilseler de, bu ICMP’nin daha üst seviye bir protokol olduğu için değil, IP'nin bir iç parçası olduğu içindir. ICMP mesajları aşağıdaki şekildeki gibi sarmalanarak gönderilirler.
icmp-pr555.png
Şekil-1 ICMP Mesajları gönderimi 

ICMP Keşif Saldırıları

ICMP mesajlarını değiştirip, mesajın başlık (“header”) kısmında bulunan belirli alanlarda oynamalar yaparak veya bu mesajları asıl amaçları dışında kullanarak, hedef olarak seçilen sistemlere keşif (“reconnaissance”) saldırıları düzenlenebilir. Keşif saldırılarının amacı, yapılacak asıl saldırılar öncesinde, hedef sistemler hakkında gerekli bilgileri elde etmek ve bu bilgileri kullanarak hedef sistemlere etkin saldırılar düzenlemektir. Bu yazıda toplamda yedi çeşit keşif türü incelenecektir;
  1. Sunucu Tespiti
  2. Ağ Topolojisinin Tespiti
  3. Güvenlik Duvarı Kuralları Tespiti ("Firewalk")
  4. Ters Eşleme (“Inverse Mapping”)
  5. Erişim Kontrol Listesi ("Access Control List") Tespiti
  6. Protokol/Port Taraması
  7. İşletim Sistemi Tanıma (“OS Fingerprinting”)

1. Sunucu Tespiti

ICMP mesajları kullanılarak sunucu tespiti yapılması iki farklı yöntemle mümkün olmaktadır. Bu yöntemler; gönderilen ve alınan mesajlar olarak aynı olmakla birlikte, mesaj içeriğindeki hedef sunucu adresleri olarak farklılık göstermektedir.

ICMP/Ping  Taraması ("ICMP/Ping Sweep")

ICMP mesaj çeşitlerinden "Echo Request" mesajı gönderilip, cevap olarak "Echo Reply" mesajı alınarak (daha bilinen bir şekilde "ping" komutuyla), yerel ağ veya İnternet üzerinden erişilebilir ve çalışmakta olan sunucuların tespit edilmesi mümkün olmaktadır. Bu yöntemde, ICMP mesajı doğrudan hedef sunucunun IP adresine gönderilir. Bu işlemin tek bir IP adresi yerine, belirli bir IP adres aralığı için yapılması ve bu aralıktaki sunucuların tespit edilmesi mümkün olmaktadır.

ICMP Yayınlama ("Broadcast ICMP")

Bu yöntem, her bir sunucunun IP adresine tek tek "ICMP Echo Request" mesajı göndermekle uğraşmak yerine, hedef ağın yayın ("broadcast") adresine bir tek "ICMP Echo Request" mesajı gönderilerek gerçekleştirilir. Bu sayede, toplu olarak ağdaki canlı sunucuların mesajı gönderen bilgisayara/saldırgana "ICMP Echo Reply" mesajları göndermesi sağlanılarak, tüm bir ağdaki çalışan sunucuların tespit edilmesi mümkün olmaktadır. Bu şekilde, tek bir mesajla tüm ağdaki çalışan sunucuların tespiti yapılabilmektedir.
Tüm kolaylığına rağmen, bazı Unix (Linux Kernel 2.2.x ve 2.4.x) ve Unix benzeri işletim sistemleri (Solaris 2.5.1, 2.6, 2.7 ve HP-UX v10.20) dışındaki diğer bir çok işletim sisteminin yayın adresinden gelen mesajlara cevap göndermemesi sebebiyle, bu tespit yöntemi yaygın olarak kullanılamamaktır (Örneğin, Windows işletim sistemi).
ICMP mesajları kullanarak sunucu tespiti yapılmasını engellemek üzere, dışarıdan içeriye ("inbound") doğru başta "ICMP Echo Request" mesajı olmak üzere, "Timestamp Request", "Address Mask Request" ve "Information Request" gibi ICMP sorgu mesajlarının gelmesi engellenmelidir. Tam olarak durum denetimli ("stateful") çalışan bir güvenlik duvarı kullanılmıyorsa, dışarıdan içeriye  gelen "ICMP Echo Reply" mesajı gibi ICMP sorgu cevap mesajlarının, sunucu tespitine imkan verecek şekilde başka ICMP hata mesajlarının oluşmasını tetikleyebildiği için engellenmesi önerilmektedir. İçeriden dışarıya ("outbound") doğru ise, "ICMP Echo Reply" başta olmak üzere, "Timestamp Reply" ve "Address Mask Reply" mesajlarının gönderilmesi engellenmelidir. İnternetten kurumun yayın ("broadcast") ve ağ ("network") adreslerine erişime izin verilmemelidir. 
Sunucu tespiti dışarıdan yapılabileceği gibi, iç ağda zararlı yazılım ("malware") bulaşarak ele geçirilmiş bir istemci/sunucu yoluyla içeriden de yapılabilir. Bu sebeple, iç ağda yönetim amaçlı bir veya birkaç sunucu dışındaki sunucu/istemci bilgisayarların ICMP sorgu mesajları göndermesi ve bu mesajlara cevap dönülmesi, iç ağdaki güvenlik duvarı üzerinden ve sunucu/istemcilerde yer alan kişisel güvenlik duvarı üzerinden engellenmelidir.

2. Ağ Topolojisinin Tespiti

Hedef sunucunun ağ topolojisindeki yerinin tespitinde "traceroute" (Windows işletim sistemleri için "tracert") komutu kullanılmaktadır. Bu komutun gerçekleştiriminde (Windows işletim sistemi için), "ICMP Echo Request" mesajları ve ICMP paketi içerisinde yer alan TTL (Time-to-Live) alanı kullanılır. TTL değeri, paketin hedefe giderken yol boyunca uğradığı her bir yönlendirici tarafından bir azaltılarak bir sonrakine iletilir. Bu iletim sırasında TTL değeri sıfıra ulaşır ise, paket düşürülür ve gönderen sunucuya "ICMP Time Exceeded" mesajı gönderilerek paketin hedefe ulaşamadan düşürüldüğü bildirilir. Bu komut ile yapılan ise, hedefe giderken yol boyunca, ilk olarak TTL değeri bir olan ICMP paketinin gönderilmesi ve sonrasında ise ICMP paketindeki TLL değerinin sırayla birer arttırılarak yollanması, böylece her bir adımdaki sunucudan dönecek "ICMP Time Exceeded" mesajlarıyla yol üzerindeki sunucuların tespit edilebilmesidir.
Hedef sistemin bulunduğu ağ topolojisi bilgisinin elde edilmesi ise, anlatılan yöntemin bir ağdaki bütün bilgisayarlar için gerçekleştirilmesi sonucu olabilmektedir.
Bu yolla ağ topolojisinin tespitini engellemek üzere, içeriden dışarıya "ICMP Time Exceeded" hata mesajının gönderilmesi engellenmelidir ("ICMP Time-to-Live Exceeded in Transit"). Aynı şekilde iç ağda yönetim amaçlı bir veya birkaç sunucu dışındaki sunucu/istemci bilgisayarlarına "ICMP Time Exceeded" hata mesajı gönderilmesi, iç ağdaki güvenlik duvarı üzerinden ve sunucu/istemcilerde yer alan kişisel güvenlik duvarı üzerinden engellenmelidir.

3. Güvenlik Duvarı Kuralları Tespiti ("Firewalk")

Paket filtreleyen bir güvenlik duvarı üzerindeki açık olan portların tespit edilmesi, ağ topolojisinin tespitinde kullanılan yöntemin daha ileri götürülmesiyle mümkün olmaktadır. Bu sayede, güvenlik duvarı üzerindeki kurallar tespit edilebilmektedir.
Bu işlem, iki aşamada yapılmaktadır. İlk aşamada, saldırganla güvenlik duvarı arasındaki sunucu/yönlendiricilerin ("hop") sayısı "traceroute" yapılarak tespit edilir. İkinci aşama olan tarama aşamasında ise, güvenlik duvarı arkasındaki bilinen bir sunucuya, TTL değeri güvenlik duvarından bir büyük olan TCP veya UDP segmentleri gönderilir. Bu işlem sonrası cevap olarak "ICMP Time Exceeded" mesajı geliyorsa, bu segmentin güvenlik duvarını geçebildiği anlaşılır (Segmentler güvenlik duvarını geçtikten sonra TTL değerleri sıfıra düşeceğinden dolayı). Cevap olarak herhangi bir mesajın geri dönmediği durumda ise segmentin güvenlik duvarı tarafından engellendiği sonucu çıkarılır. Bu işlemin olası bütün TCP/UDP port kombinasyonları için gerçekleştirilmesi durumunda, güvenlik duvarı üzerindeki açık olan portlar tespit edilebilir.
Güvenlik duvarı kurallarının tespiti genellikle dışarıdan yapıldığı için, içeriden dışarıya doğru "ICMP Time Exceeded" hata mesajının gönderilmesi engellenmelidir ("ICMP Time-to-Live Exceeded in Transit").

Hiç yorum yok:

Yorum Gönder

Yorumunuz için teşekkür ederiz..