IP Spoofing Nedir? Nasıl Çalışır, Nasıl Önlenir?

Yayın tarihi:

13 dk okuma

Acar Diveroli
Yazar: Acar Diveroli
İkiye bölünmüş sahne: sahte kaynaklı paketin yanıtı silik bir figüre gidiyor; sağda istemci mavi proxy ile siteye bağlanıyor

Ofisteki güvenlik duvarının haftalık raporunda iki yüz satır aynı şeyi söylüyor: "IP spoof dropped". Aynı hafta okuduğunuz bir haber, binlerce sıradan sunucudan geliyormuş gibi görünen trafikle erişilemez hâle gelen bir web sitesini anlatıyor; üstelik o sunucuların hiçbiri ele geçirilmemiş. İki olayın arkasında da aynı hile var: nereden geldiği konusunda yalan söyleyen bir paket.

Bu yazıda IP spoofing'in ne olduğunu, sahte bir adresin neden bir sunucuyu trafiğe boğabildiği hâlde bir web sayfasını açamadığını, başlıca saldırı türlerini, o log satırının ne anlama geldiğini ve ağların sahte paketleri nasıl engellediğini anlatıyoruz. Proxy ya da VPN kullanmanın neden IP spoofing sayılmadığını da açıklıyoruz. Yazıda saldırının nasıl yapılacağına dair bir tarif yok; amaç onu tanımak ve önlemek.

IP spoofing nedir?

İnternette gönderilen her şey paketler hâlinde yol alır ve her paket iki adres taşıyan bir başlıkla başlar: nereye gittiği (hedef adresi) ve nereden geldiği (kaynak adresi). Bu adresleri kimin dağıttığını IP Adresi Nedir? yazısında anlattık. Paketi oluşturan bilgisayar iki adresi de kendisi yazar.

IP spoofing, kaynak alanına göndericiye ait olmayan bir adres yazmaktır. İnternet Protokolü'nde bunu denetleyen yerleşik bir mekanizma yoktur. Yönlendiriciler (router) paketi hedef adresine bakarak iletir; yol üzerindeki bir ağ ayrıca doğrulamadıkça kaynak adresine olduğu gibi güvenilir. İngilizcede "spoof" taklit, sahte demektir; sahte gönderici adıyla gelen e-postalar için de aynı sözcük kullanılır. Buradaki fark, taklit edilenin makinenin kendi adresi olmasıdır.

IP spoofing nasıl çalışır?

Sahte kaynak adresli bir paket internette beş adımda yol alır:

  1. Gönderici başlığı elle yazar. Sıradan programlarda kaynak adresini işletim sistemi doldurur; oraya sahte bir adres yazmak makinenin tam denetimini gerektirir. Bu yüzden sahte trafik çoğunlukla sunuculardan ya da ele geçirilmiş cihazlardan gelir.
  2. İlk ağ karar verir. Hangi adreslerin o müşteriye ait olduğunu yalnız göndericinin kendi internet sağlayıcısı bilir. Sağlayıcı kaynak adreslerini denetliyorsa paket daha burada atılır.
  3. Yönlendiriciler paketi iletir; yalnız hedef adresine bakarlar.
  4. Hedef paketi kabul eder ve sahte adresten gelmiş sıradan bir paket gibi işler.
  5. Yanıt, sahte adresin gerçek sahibine gider; göndericiye değil.

Geri kalan her şeyi 5. adım belirler: spoofing yapan kişi gönderebilir ama alamaz.

Sahte IP adresiyle neden bir web sitesi açılamaz?

Web sayfaları, hesap girişleri ve indirmeler TCP üzerinden çalışır. TCP de her bağlantıyı, TCP ve UDP Farkı Nedir? yazısında anlattığımız üçlü el sıkışmayla açar:

  1. İstemci bir başlangıç sıra numarasıyla SYN gönderir ("bağlanmak istiyorum").
  2. Sunucu, rastgele seçtiği kendi başlangıç numarasını taşıyan bir SYN-ACK ile yanıt verir.
  3. İstemci, sunucunun numarasının bir fazlasını içeren bir ACK gönderir. Veri ancak bundan sonra akmaya başlar.

Kaynak adresi sahteyse SYN-ACK o adresin gerçek sahibine gider. Spoofing yapan kişi sunucunun numarasını hiç görmez, geçerli bir 3. adım yazamaz ve bağlantı da açılmaz. İstek gönderilmez, sayfa gelmez.

Eskiden bazı sistemler tahmin edilebilir sıra numaraları kullanıyordu; saldırgan doğru yanıtı görmeden kestirip güvenilen bir adresten sahte bir bağlantı kurabiliyordu. RFC 6528 bu saldırının kökenini Robert Morris'in 1985 tarihli bir makalesine bağlar ve dışarıdan tahmin edilemeyen numaralar kullanılmasını şart koşar.

UDP'de el sıkışma yoktur: tek bir istek tek bir yanıt alır. Bu da UDP'yi sahte trafiğin doğal taşıyıcısı yapar.

IP spoofing saldırı türleri

Tabloda en çok dikkat edilecek sütun, saldırının yanıtları görmesi gerekip gerekmediğini gösteren sütundur.

SaldırıTaklit edilen ne?Kim zarar görür?Yanıt gerekir mi?Temel önlem
SYN floodBağlantı isteklerindeki rastgele kaynak adresleriSunucunun bağlantı tablosuHayırSYN cookie'leri, filtreleme (RFC 4987)
Yansıtma ve yükseltmeHerkese açık sunuculara giden UDP isteklerinde kurbanın adresiKurbanHayırSağlayıcı filtrelemesi, açık UDP servisi bırakmamak
Kör enjeksiyon ya da bağlantı kesmeMevcut bir TCP bağlantısının iki ucuBağlantının iki tarafıHayır, tahmin ederRastgele sıra numaraları, şifreleme
Güveni kötüye kullanmaBir sistemin güvendiği adresYalnız IP'ye güvenen servislerEvet, bu yüzden çoğu zaman tutmazGerçek kimlik doğrulama
ARP spoofingYerel ağdaki IP-MAC eşleşmesiAynı Wi-Fi'deki kişilerEvet, yolun üzerindedirSwitch korumaları, HTTPS, VPN

ARP spoofing (ARP zehirlemesi), IP spoofing'in yakın bir akrabasıdır. Yerel ağda ARP, IP adreslerini donanım adresleriyle eşleştirir (MAC Adresi Nedir?). Aynı Wi-Fi'ye bağlı bir cihaz, modemin IP adresinin kendisine ait olduğunu duyurup başkalarının trafiğini kendi üzerinden geçirebilir; bu yüzden ARP spoofing trafiği gizlice dinlemek için kullanılır. Kurumsal switch'ler bunu Dynamic ARP Inspection gibi özelliklerle engeller. Halka açık Wi-Fi'de ise HTTPS ve VPN trafiğinizi korur; ayrıntıları Halka Açık Wi-Fi Güvenli mi? yazısında bulabilirsiniz.

IP spoofing DDoS saldırılarında nasıl kullanılır?

Dağıtık hizmet engelleme (DDoS) saldırısı, bir servise kaldırabileceğinden fazla trafik göndererek onu erişilemez hâle getirmeye çalışır. Spoofing buna iki yoldan yardım eder.

SYN flood belleği hedef alır. Her SYN, sunucunun bir yer ayırıp 3. adımı beklemesine yol açar; o adım hiç gelmez. Ayrılan yerler dolar, gerçek ziyaretçiler geri çevrilir. Kaynak adresi her pakette değiştiği için adresleri tek tek engellemek bir işe yaramaz.

Yansıtma ve yükseltme bant genişliğini hedef alır. Saldırgan, DNS çözümleyiciler gibi binlerce herkese açık sunucuya küçük UDP istekleri gönderir ve bu isteklere kaynak adresi olarak kurbanın adresini yazar. Her sunucu yanıtını kurbana gönderir ve bu yanıt çoğu zaman istekten kat kat büyüktür. CISA'nın UDP tabanlı yükseltme saldırıları uyarısı bu yükseltme katsayılarını sıralar: DNS için 28 ile 54 arası, NTP için 556,9, internete açık bir memcached sunucusu için 10.000 ile 51.000 arası. Kurban yalnız masum sunucuların adreslerini görür; saldırganın kendi adresi hiçbir yerde geçmez.

Her DDoS saldırısı spoofing kullanmaz. Ele geçirilmiş cihazlardan oluşan bir botnet, gerçek adreslerden gerçek bağlantılar açabilir. Bu tür saldırılar kaynak adresi denetimiyle değil, hız sınırlarıyla ve filtreleme servisleriyle karşılanır.

Güvenlik duvarı logundaki "IP spoof dropped" ne demek?

Bu satırı kaydeden güvenlik duvarı işini yapmıştır: kaynak adresi, geldiği ağ portuna uymayan bir paket görmüş ve onu atmıştır ("dropped", düşürüldü demektir).

SonicWall'un IP spoof mesajlarını anlatan bilgi bankası makalesine göre bu kayıt, güvenlik duvarı bir ağ bölümünde (segment) aslında başka bir bölüme ait olduğunu düşündüğü bir IP adresi gördüğünde oluşur. SonicWall bunu olası bir saldırı girişimi olarak değerlendirir, ama zararsız nedenleri de sayar: hatalı bir yönlendirme kaydı, ofis ağının adres aralığı dışında kalan bir bilgisayar, tanımlanmamış ek bir alt ağ, kablolamada bir döngü, ikinci bir ağ kartı ya da adres alamayınca kendine geçici bir 169.254.x.x adresi veren bir Windows bilgisayar.

WatchGuard aynı denetime Drop Spoofing Attacks (spoofing saldırılarını düşür) adını verir. Ayar Firewall > Default Packet Handling (Güvenlik Duvarı > Varsayılan Paket İşleme) altındadır ve varsayılan olarak açıktır. FortiGate ise buna ters yol iletimi (reverse path forwarding) ya da anti-spoofing der; Fortinet'in teknik notu düşürülen paketin hata ayıklama çıktısında "reverse path check fail, drop" satırıyla göründüğünü gösterir.

İnternetten gelip sizin iç adreslerinizi taşıyan paketler sahtedir ve düşürülmeleri doğrudur. Ağınızın içinden gelen paketler düşürülüyorsa bu çoğu zaman bir kurulum sorununa işaret eder. İki durumda da korumayı açık tutun.

IP spoofing nasıl önlenir?

Sahte bir paketi durdurmanın en kolay yeri ilk duraktır, çünkü hangi adreslerin göndericiye gerçekten ait olduğunu yalnız göndericinin kendi ağı bilir.

  1. Giriş filtrelemesi (BCP 38). 2000'den beri 38 numaralı Best Current Practice (en iyi güncel uygulama) belgesi olan RFC 2827, her internet sağlayıcısını bir müşterinin trafiğini yalnız kaynak adresi o müşterinin adres aralığındaysa kabul etmeye çağırır. Aynı aralık içinde sahte adres kullanmak yine mümkündür, ama sahtecilik bilinen bir ağla sınırlı kalır.
  2. Ters yol denetimi (BCP 84). RFC 3704, birden fazla sağlayıcıya bağlı müşterileri ele alır. Katı (strict) modda paket, yalnız yönlendiricinin o kaynağa ulaşmak için kullanacağı arayüzden geldiyse kabul edilir; gevşek (loose) mod yalnız kaynağa giden bir rotanın var olup olmadığına bakar. Yönlendirici ayarlarında bunun adı uRPF'dir.
  3. Çıkış filtrelemesi (egress filtering). Kendi güvenlik duvarınız, kaynak adresi size ait olmayan paketleri dışarı bırakmamalıdır.
  4. Kamuya açık taahhüt. MANRS girişimi, ağ operatörleri için sıraladığı eylemler arasında sahteciliğe karşı korumayı (anti-spoofing) sayar ve bir ağın sahte paketleri dışarı bırakıp bırakmadığını test eden CAIDA Spoofer aracını önerir.
  5. Güçlendirilmiş sunucular. SYN cookie'leri, sunucunun bir SYN'e yer ayırmadan yanıt verebilmesini sağlar. DNS, NTP ve memcached servisleri bütün internete yanıt vermemelidir.
  6. Gerçek kimlik doğrulama. TLS ve SSH, karşı tarafın kim olduğunu anahtarlarla kanıtlar; sahte bir paket bunu yapamaz. Tek başına bir adres hiçbir şeyi kanıtlamaz.

CISA'nın uyarısı da yansıtma saldırılarına karşı ana savunma olarak BCP 38 ve BCP 84'ü gösterir.

Proxy ya da VPN kullanmak IP spoofing midir?

Hayır; nedeni de el sıkışmadır. Cihazınız proxy'ye bağlanır ve ondan bir sayfayı getirmesini ister. Proxy, web sitesine kendi IP adresinden kendi bağlantısını açar, el sıkışmayı tamamlar, yanıtı alır ve size iletir. Her paket gerçek bir kaynak adresi taşır. VPN aynı işi bütün cihaz için yapar; ikisini Proxy ve VPN Farkı yazısında karşılaştırdık.

Sahte kaynaklı paketProxy ya da VPN bağlantısı
Kaynak adresiSahteGerçek; proxy'nin ya da VPN sunucusunun
Yanıtlar nereye gider?Adresin gerçek sahibineProxy'ye, oradan size
TCP el sıkışmasıTamamlanamazNormal biçimde tamamlanır
Web sayfası açılır mı?HayırEvet

Başka bir ülkeden bağlanıyormuş gibi görünmek için "IP'yi spooflamak"tan söz edenler, aslında proxy ya da VPN üzerinden başka bir gerçek adres kullanmayı kastediyor. Hatta bazı proxy'ler sizin asıl adresinizi bir başlıkla siteye iletir; hangilerinin bunu yaptığını Şeffaf, Anonim ve Elite Proxy Farkları yazısında gösterdik. Residential Proxy ve Datacenter Proxy hizmetlerimiz de böyle çalışır: her istek siteye, proxy'nin kendi adresinden açtığı bir bağlantıyla ulaşır ve o paketlerin kaynak adresini istemci belirlemez.

X-Forwarded-For sahteciliği de aynı şey mi?

Hayır, ama site sahipleri onunla çok daha sık karşılaşır. Pek çok uygulama ziyaretçinin adresini, reverse proxy'lerin eklediği X-Forwarded-For başlığından okur; oysa herhangi bir istemci bu başlığı istediği değerle gönderebilir. TCP bağlantısı yine istemcinin gerçek adresinden gelir; yani bu bir başlık sahteciliğidir ve çözümü uygulamadadır. MDN'in X-Forwarded-For sayfası, hız sınırlama ya da IP'ye dayalı erişim denetimi gibi güvenlik amaçlı kullanımlarda yalnız güvendiğiniz bir proxy'nin eklediği adreslerin kullanılması gerektiğini açıkça yazar. Nginx'teki ayarı Forward Proxy ve Reverse Proxy Arasındaki Fark yazısında gösterdik.

IP spoofing kimleri ilgilendirir?

  • Ev kullanıcıları. Kimse adresinizi taklit ederek sizin yerinize internette gezinemez. Kendinize yeni bir adres almak ayrı bir iştir; IP Adresi Nasıl Değiştirilir? yazısına göz atabilirsiniz.
  • Site ve uygulama sahipleri. Bir TCP servisindeki IP whitelist (izinli IP listesi), tamamlanmış bir bağlantının adresini denetler; körlemesine yapılan spoofing böyle bir bağlantı üretemez. Asıl zayıf noktalar paylaşılan adresler ve unutulmuş kayıtlardır. İki yöntemi Proxy Kimlik Doğrulama: User:Pass ve IP Whitelist yazısında karşılaştırdık.
  • Ağ ve güvenlik ekipleri. Sahteciliğe karşı koruma ve çıkış kuralları, güvenlik duvarı incelemesinin parçasıdır; her cihazın ağda nerede durduğunu Proxy ve Firewall (Güvenlik Duvarı) Farkı yazısı gösteriyor.
  • Test (QA) ekipleri. Bir siteyi başka ülkelerdeki ziyaretçilerin gördüğü gibi görmek için o ülkelerdeki gerçek adreslerden gerçek istekler gönderin; uygulama testi sayfamız bu kurulumu anlatıyor.

Sık yapılan hatalar

  • "Biri IP'mi spoofladı ve hesabıma girdi." Spoofing ile hiçbir yere giriş yapılamaz. Çalınmış bir şifreye ya da ele geçirilmiş bir oturuma bakın; ikincisini Session Hijacking (Oturum Çalma) Nedir, Nasıl Önlenir? yazısında anlattık.
  • Her spoofing log satırını saldırı sanmak ya da logu susturmak için denetimi kapatmak.
  • Proxy ya da VPN kullanımına "IP spoofing" demek.
  • X-Forwarded-For başlığına kimden gelirse gelsin güvenmek.
  • DNS, NTP ya da memcached servislerini internete açık bırakmak.
  • IP whitelist'i tek kilit olarak kullanmak.

Karar rehberi

DurumunuzNe yapmalı?
Ağınızın içindeki adreslerden gelen paketler spoofing gerekçesiyle düşürülüyorAdres aralıklarını, alt ağları ve VPN rotalarını kontrol edin; korumayı açık tutun
İnternetten gelip iç adreslerinizi taşıyan paketler düşürülüyorDüzeltilecek bir şey yok; filtre çalışıyor
Sunucunuz SYN flood saldırısı altındaSYN cookie'lerini açın; barındırma firmanızdan trafiği size ulaşmadan filtrelemesini isteyin
İstemediğiniz DNS ya da NTP yanıtları yağıyorBu bir yansıtma saldırısı: sağlayıcınıza ya da DDoS koruma servisinize başvurun
Müşterileri olan bir ağ işletiyorsunuzBCP 38/84 filtrelemesini uygulayın, CAIDA Spoofer ile test edin, MANRS'e katılmayı düşünün
Uygulamanız X-Forwarded-For başlığını okuyorYalnız kendi proxy'lerinizin eklediği kayıtlara güvenin
Test için başka bir ülkeden bir adrese ihtiyacınız varProxy ya da VPN üzerinden gerçek bir adres kullanın

Sıkça sorulan sorular

Biri benim IP adresimi taklit edebilir mi?

Adresinizi kendi paketlerine yazabilir, ama hiçbir yanıt alamaz; dolayısıyla sizin adınıza internette gezinemez, giriş yapamaz, bir şey indiremez. En kötü ihtimalle adresiniz, birinin loglarında anlamsız bir trafiğin görünürdeki kaynağı olarak yer alır.

IP spoofing'in izi sürülebilir mi?

Ancak ağların iş birliğiyle. Paket nereden çıktığına dair hiçbir kanıt taşımaz; bu yüzden araştırmacıların, trafik hâlâ akarken onu ağ ağ geriye doğru izlemesi gerekir. BCP 38'i uygulayan sağlayıcılarda sahte bir paket yalnız göndericinin kendi aralığından bir adres taşıyabilir; bu da doğru ağı gösterir.

IP spoofing yasa dışı mı?

Bir servisi trafiğe boğmak ya da bir sisteme sızmak için sahte paket göndermek, çoğu ülkenin bilişim suçları mevzuatında suçtur. Kendi ekipmanınızla kurduğunuz kapalı bir laboratuvarda sahte adresli paket göndermek ise ayrı bir konudur. Proxy ve VPN spoofing değildir; yasal durumlarını VPN ve Proxy Kullanmak Yasal mı? yazısında ele aldık.

HTTPS ya da VPN beni IP spoofing'e karşı korur mu?

Ağı değil, verinizi korurlar. HTTPS tamamlanmış bir bağlantı ister ve sunucunun sertifikasını denetler; bu yüzden körlemesine spoofing yapan biri sayfayı okuyamaz ya da değiştiremez. VPN, halka açık Wi-Fi'deki ARP spoofing'e karşı da işe yarar. Ama ikisi de bir sunucuya yöneltilmiş sahte paket selini durduramaz.

LoadRunner gibi yük testi araçlarında IP spoofing ne demek?

Zararsız bir şey: test makinesine çok sayıda gerçek IP adresi tanımlamak, böylece sunucunun sanal kullanıcıları farklı adreslerden geliyormuş gibi görmesini sağlamak. OpenText'in eskiden LoadRunner adını taşıyan test aracı da Multiple IP Address özelliğini "IP spoofing" diye anar. Adresler makinenin kendisine tanımlı olduğu için her bağlantı gerçektir.

IP spoofing ile session hijacking aynı şey mi?

Hayır. Onlarca yıl önce saldırganlar spoofing'i sıra numarası tahminiyle birleştirip TCP oturumlarını ele geçirirdi; tahmin edilemeyen sıra numaraları bunu pratikte imkânsız hâle getirdi. Bugün session hijacking (oturum çalma), bir giriş çerezini ya da token'ı çalıp yeniden kullanmak demektir ve sahte paket gerektirmez.

Özet

IP spoofing, bir pakete sahte kaynak adresi yazmaktır. IP göndericileri doğrulamadığı için mümkündür; yanıtlar sahte adrese gittiği için de sınırlıdır: spoofing yapan biri TCP el sıkışmasını hiçbir zaman tamamlayamaz, bir sayfa açamaz. Bu da onu SYN flood ve yansıtmalı DDoS gibi tek yönlü saldırıların aracı yapar. Çözümlerin çoğu, trafiğin çıktığı ağlardadır: BCP 38 ve BCP 84 filtrelemesi, çıkış kuralları, SYN cookie'leri, internete açık UDP yükselticisi bırakmamak ve bir adrese dayanmayan kimlik doğrulama. Proxy ise spoofing'in tam tersidir: gerçek adresi olan gerçek bir uç nokta. İhtiyacınız buysa proxy hizmetlerimize göz atın.

ChatGPT'ye sorClaude'a sor