# IP spoofing
IP spoofing veya IP sahteciliği, sahte kaynak IP adresi ile Internet Protokolü (IP) paketlerinin oluşturulmasıdır. IP spoofing kavramı, ilk olarak 1980'li yıllarda akademik çevrelerde tartışılmıştır.


## Arka plan.
İnternet ağı ve diğer birçok bilgisayar ağları üzerinden veri göndermek için temel protokol Internet Protokolü ("IP") 'dir.Her IP paketinin başlığı, diğer şeyler arasında, sayısal kaynak ve paketin hedef adresini içerir.Kaynak adresi normalde paketin gönderildiği adrestir.Saldırgan, farklı bir adresi içerecek şekilde IP başlığını değiştirilerek, paketin farklı bir makine tarafından gönderilmiş gibi görünmesini sağlayabilir.Sahte ip paketini alan taraf paketin gerçekten gönderilen ip adresinden gelip gelmediğini bilemez.
Ip spoofing teorik olarak tüm protokollerde gerçekleştirilebilir.Pratikte ise UDP kullanan uygulamalarda gerçekleştirilebilirken, TCP kullanan uygulamalarda gerçekleştirilemez.Bunun nedeni TCP'de üçlü el sıkışmanın zorunlu olması ve paket başlık bilgisindeki sıra numarasının tahmin edilemez olmasıdır.


## Uygulamalar.
IP spoofing en sık DoS(Denial of Service)saldırılarında kullanılır.Bu tür saldırılarda amaç, hedef bilgisayarın sorgu trafiğini aşırı miktarda artırmaktır, saldırgan saldırı paketlerine yanıt almayı önemsemez.Sahte adres kullanarak paket göndermek bu yüzden uygundur.Bu amaçlı saldırılar için ip spoofing'in ek avantajları vardır-Her sahte paket farklı bir adresten geliyormuş gibi görünür bu sebeple filtrelemek daha zordur ve saldırının gerçek kaynağı gizlenir.


## Yasal kullanımı.
Sahte IP paketleri, kötü niyetli öncekli delil değildir. Ancak Web siteleri performans testi olarak, yüzlerce "Vusers" (sanal) kullanıcılar hatta binlerce oluşturulabilir, her test edilen web sitesine karşı bir test komut dosyası yürütme, sistemi "live" gider ve çok sayıda kullanıcının en az bir kez oturum açtığında ne olacağını taklit eder. Her kullanıcı normalde kendi IP adresine sahip olacağından, ticari test ürünleri (örneğin HP'nin Loadrunner yazılımı gibi) yanı sıra, her Vuser kendi "dönüş adresi"ni, IP spoofing için kullanabilir.


## IP spoofing olayında kullanılan teknikler.
Sadece IP değiştirme ile Yapılan Aldatmacalar:
Bu olay en basit spoofing tekniği olup, Unix'te "ipconfig" komutuyla, Windows'ta "TCP/IP özellikleri" butonuyla IP adresini değiştirerek
yapılır. Saldırgan bu sayede istediği bir IP'yi kullanarak saldırıları başlatabilir, fakat bu yöntemin bazı dezavantajları vardır. Bunu bir örnekle açıklarsak; Saldırgan 10.2.6.9 no'lu IP'ye sahip makineyle herhangi bir amaç için bağlantı kurmak ve IP'sini saklamak ister.
Bu amaçla IP adresi değiştirme araçlarıyla kendi IP'sini ağdan seçtiği başka bir kullanıcının IP'siyle mesela 10.2.6.5 olan bir SYN bitini, ISN ile birlikte gönderir ve cevap bekler. Ancak burada bir sorun yaşanır. 10.2.6.9 no'lu IP'ye sahip makine, kendisine gelen pakete bakar ve "source address"i 10.2.6.5 olarak görünce,içinde kendi adresi olan ve ACK ile SYN bitlerinin ayarlandığı paketi ISN ile birlikte
cevap olarak yine bu adrese ama gerçek olanına gönderir. Saldırgana dolayısıyla hiçbir paket ulaşmaz. Ayrıca bir TCP oturumunda, bağlantının kurulması için gerekli olan 3 lü el sıkışma da asla gerçekleşmez. Çünkü saldırganın gönderdiği SYN paketlerine, 10.2.6.9 nolu makine SYN/ACK ile cevap verir ve bu cevabı gerçek 10.2.6.5 nolu IP'ye sahip makineye gönderir.Bu makinede gelen bu paketi görünce RST biti ile cevap verir ve bağlantıyı bitirir. Çünkü kendisi 10.2.6.9'a SYN paketleri göndermemiştir.
IP değiştirerek yapılan IP spoofing daha çok port taramalarında yakalanmamak için kullanılır. Nitekim port tarama işini en iyi yapan program olan Nmap'de de IP adresini saklama özelliği vardır.
Kaynak Yönlendirme ile IP Spoofing:
IP değiştirmek suretiyle yapılan spoofing işleminde saldırgana hiçbir cevap paketi gelmediği için yapılan işin etki alanı çok dardır. Bu nedenle saldırganlar tarafından ikinci bir teknik daha geliştirilmiştir:Bu tekniğin temeli,paketlerin bir makineden(kaynaktan), başka bir makineye(hedef) giderken izlediği yolu yönlendirmeye dayanır.
Veri paketleri ağ üzerinde bir yerden başka bir yere giderken, farklı noktalardan ya da yönlendiricilerden geçer. Herhangi bir adrese traceroute ya da tracert komutu ile bakarsanız,paketin gittiği güzergahı görebilirsiniz. TCP/IP protokolünde "kaynak yönlendirme" denilen yerleşik bir opsiyon vardır.Bu opsiyonla bir paketin gideceği güzergâhı belirleyebilirsiniz.İki tip kaynak yönlendirme vardır:
Serbest Kaynak Yönlendirme:Burada paketin gidebileceği IP'lerin listesini verirsiniz ama hangi yoldan gideceğine karışmazsınız. Paket istediği yolu seçmekte serbesttir, yeter ki hedefine ulaşsın.
Güdümlü Kaynak Yönlendirme: Bu yöntemde, paketin gideceği yol için bir rota çizersiniz ve paketin bu rotadan çıkmamasını istersiniz.Eğer paket yolda kaybolursa, paketin hedefine ulaşamadığına dair size bir ICMP mesajı gelecektir.
Güven İlişkileriyle IP Spoofing:
Daha çok Unix tabanlı sistemlerde kullanılan bu spoofing tekniği, Unix sistemleri arasındaki güven ilişkisine bağlıdır. Sistem yöneticilerinin çoğu ağdaki Unix makineleri yönetmek için bu makineler arasında güven ilişkisi kurarlar. Bu sayede uzaktaki bir makineye bağlanırken her defasında şifre yazmak zorunda kalmazlar. Güven ilişkisinin kimlik denetim mekanizması ise IP adresleridir. Bu IP adresleri /etc/hosts.equiv dosyasında ya da kullanıcıların ana klasöründeki(home directory).rhosts dosyasındadır. Uzaktaki bir Unix makineye bağlanmak isteyen sistem yöneticisi, rkomutları olarak da bilinen rlogin(remote login),rsh(remote shell) ya da rcp(remote copy) komutlarından birini kullanarak şifre yazmadan makineye bağlanabilir. Güven ilişkilerini kullanarak spoofing yapmak eski bir tekniktir, ama bu tekniğin meşhur olması sağlayan ünlü hacker Kevin Mitnick'tir. (Kevin Mitnick bu tekniği 1994 yılının noelinde, IBM'de çalışan ve Mitnick'in yakalanmasını sağlayan güvenlik uzmanı Tsutomu Shimomura'ya karşı kullanmıştı.)
Güven ilişkisi yapmış bir makine kendisine gelen bağlantı isteği karşısında öncelikle paketin geldiği IP adresine bakar. Eğer IP adresi güvendiği makinelerin IP adresleri arasında ise bağlantı isteğini kabul eder.


## Spoofing saldırılarına karşı savunma.
IP spoofing olayını önleyebilmek için yönlendiricilerde kaynak yönlendirme opsiyonu pasif hale getirilmelidir. Gerçekte kaynak yönlendirme 
işleminin haklı gerekçelerle kullanıldığı çok az durum vardır. Bu nedenle ağa giren ve çıkan bu tip trafiği engellemek gerekir. 
Bir başka savunma yöntemi ağdaki kullanıcıların IP adreslerini değiştirme hakkı kaldırılmalıdır. Bu işlem farklı güvenlik politikalarıyla
uygulanabilir.
Paket filtrelemede IP spoofing saldırılarına karşı bir savunmadır.Bir ağ için ağ geçidi genellikle ağ içindeki bir kaynak adresi ile ağ dışından gelen paketleri filtreler.Bu bir dış saldırganın, bir iç makinenin adresinine sızmasını önler.
Güven ilişkileriyle yapılan spoofing konusundaki önlemler ise biraz sistem yöneticilerinin dikkatine kalmıştır. Genellikle yeni bir unix makine kurulduğunda sistem yöneticileri, diğer makinelere de güven ilişkisi tanımlarlar, sonra da bunu unuturlar.Oysa sistem yöneticilerinin güven ilişkilerini çok dikkatli kurmaları ve gerekmedikçe bu ilişkiyi kullanmamaları gerekir.