29 Ağustos 2018 Çarşamba

BGP Hijacking

BGP Hijacking Saldırısı

Merhaba Arkadaşlar,

Bugün BGP Hijacking atağından bahsedeceğim. İlk olarak BGP nedir neden kullanır kısmından başlayalım.
BGP açılımı Border Gateway Protocol olan ve tüm internet Routerlarının paketleri taşırken, en temelde hangi yoldan taşıyacağına karar vermek için kullandığı Routing
Protokolüdür. Özet olarak internetin koştuğu Routing Protokolü diyebiliriz. Bunu yaparken kendinize ait bir AS numaranız olmalıdır ve tüm internete anons ettiğiniz
yine size ait Public IP Adreslerine sahip olmalısınız.

BGP Hijacking nedir ?
Bir Internet Service Provider (ISP) müşterilerini, kendi altyapısını kullandırarak internete taşır. Bunu yaparken kendi Routerlarına gelen, "8.8.8.8 IP Adresine gitmek
istiyorum" isteklerini en efektif yoldan (Attributes (AS Path, MED vb.)) taşımaya çalışır. Kimi ISP müşterileri internete bakan Routerında default route kullanırken (ip route 0.0.0.0 0.0.0.0 "ISP Node IP Address")
kimisi de BGP koşmaktadır. ISP yedekli yapı kullanılması müşterinin BGP'yi kendi Routerında koşmasını gerektirmektedir ya da sisteminizi DDOS ataklara karşı daha etkili korumak için de BGP koşmamız gerekmektedir.
 
BGP'nin dezavantajlarından birisi diğer BGP koşan sistemlere ya da ISPlere mecburi olarak güvenmek zorunda olmasıdır. Ne gibi diye soracak olursanız Amerika'daki bir servera erişmek
istediğiniz zaman birkaç ISP kullanarak erişmektesiniz. Bu ISPlerden herhangi birisi sizin kullanmış olduğunuz yolu ya da hizmet aldığınız ISP'yi manüple edebilir. Hatta daha da kötüsü
ISP'den Internet hizmeti alan bir şirket, sahip olduğu bir IP Adres bloğunu anons ederken sahibi olmadığı bir bloğu da anons edebilir.(ISP'de önlem alınmadıysa)
Anons ettiği bloğun bir web sitesine ait olduğunu farz edelim.
Legal web sitesine gittiğini sanan internet kullanıcıları (victim) sahte ya da boş bir sayfaya yönlendirilebilir. Bu bir BGP Hijacking örneğidir. Günün sonunda HTTP bir web sitesi
için bu kandırma işlemi gerçekleştiyse kullanıcılar durumun farkında dahi olmayacaktır. (HTTP ve HTTPS'in çalışma farklılıklarından başka bir yazımda bahsedeceğim.)
Yani bir web sitesi kullanılmaz hale getirilmiştir ya da kullanıcılar illegal bir sayfaya yönlendirilmiştir.
BGP Hijacking ile DDOS bir atakta düzenlenebilir. Mesela birkaç farklı IP Bloğuna gelen istekler, Malicious bir BGP Routerı tarafından tüm internet için daha cazip şekilde
anons edilerek bir bankanın web sitesine yönlendirilebilir. (Çeşitli taklalarla bu işlem mümkün.)
Bankanın Internete bakan devreleri,Session, Bandwidth vb. sature edilerek, suncularının banka müşterileriyle olan haberleşmesi önce yavaşlatılır daha sonra da tamamiyle kesilebilir.
Özet olarak BGP Hijacking'in tanımını yapacak olursak, E-BGP Routing Protokolünün doğası gereği Internette yapılan IP Adres anonslarını doğru kabul eder ve Attributelerine ya da temel Routing özelliklerine
bakarak en efektif yolu seçer. Ancak art niyetli kişiler sahibi olmadığı bir bloğu anons edip daha cazip gösterek trafiği üzerine çeker. Bu olayı BGP Hijacking olarak adlandırız.

BGP Hijacking'in nasıl yapıldığı ile ilgili biraz daha ayrıntıya girelim. 11.0.0.0/28 bloğuna sahip olan şirket BGP'de bu bloğu 11.0.0.0/28 şeklinde tek bir blok olaraka anons ediyor. Ancak atak yapmak isteyen kişi 11.0.0.0/24,
11.0.1.0/24, 11.0.2.0/24 ve 11.0.3.0/24 olarak anons ediyor. Daha specific şekilde anons ettiği için tüm dünyadaki BGP konuşan routerlar atak yapan kişiyi daha cazip kabul ederler. Sonuç olarak atak yapan kişi gelen istekleri bir yere yönlendirerek DDOS
atağıyla istediği bir sisteme zarar verebilir ya da kullanıcıları kendi oluşturmuş olduğu klon web sayfasına yönledirebilir. Peki bunu engellenmenin bir yolu var mı ? İş burada ağırlıklı olarak ISP'ye düşmektedir. ISPler
hizmet verdiği müşteriler ile kurmuş olduğu BGP komşuluğunda sadece sahip oldukları network anonslarına izin vermelidir. Yani müşteri sadece 7.7.7.0/24 IP Adres bloğuna sahip ise sadece bunu anons edebilirler. 11.0.0.0/24 IP Bloğunu
anons etmek istese de ISP bunu engellemelidir.(Prefix-List)

2008 Yılında Pakistan Telekom Youtube erişimini kısıtlamak için 208.65.153.0/24 IP Bloğunu null0'a (Black Hole) a yönlendirdi. Ancak Youtube kendi Routerlarında bu anonsu /22 olarak yapıyordu ve daha
specific blok olan /24 tüm dünya routerları tarafından Routing Table'a yazıldı. Sonuç olarak dünya üzerindeki Youtube'a gitmek isteyen herkes Pakistan Telecom aracılığıyla null0'a gönderildi.
Youtube bu durumu aşmak için bloğunu /24'e çekip alt bloklar halinde anons etti, daha sonra diğer ISPlerin de konu ile ilgili olarak yaptığı prefix-list tanımlaması Youtube erişimini yeniden açtı. 2 saat civarında bir süre kesintiden
bahsedilmektedir. Bu olay Pakistan Telecom'un yapmış olduğu BGP Hijacking'e bir örnektir.

DNS: Domain Name Server - İsimden IP Adres çözümlemesi yapan servistir. Yani www.google.com'u browser a yazdığımız zaman bilgisayarımız bir şey anlamaz :) Gider bir DNS Servera sorar "bu www.google.com'un IP Adresi nedir?"
Daha sonra aldığı yanıta gider ve aldığı yanıt bir IP Adresidir. Internet IP Adresleri üzerine kuruludur. Hatta haberleşmelerin çoğu öyle.

2014 yılında Türkiye'de bazı siteler Türk Telekom DNSlerinden "İletişim Daire Başkanlığı Tarafından engellenmiştir." yazısının olduğu bir web servera yönlendiriliyordu. Bunun üzerine, Türk Telekom 8.8.8.8, 4.4.2.2 gibi
IP Adreslerini müşterilerine kendisi anons etti. Ancak Pakistan Telecom'un yapmış olduğu acemiliğin aksine Prefix-List ile bu anonsun diğer ISPlere yapılmasını engelledi. Bu DNSlere gelen istekleri kendi Turk Telekom DNS Serverına
yönlendirerek kullanıcılarının yasaklı sitelere gitmesini engelledi ve diğer gitmek istedikleri sayfaları da engellememiş oldu. Yani kullanıcı DNS'ini değiştirse bile yasaklı sitelere girememiş oldu. Turk  Telekom'un almış
olduğu bu aksiyon yine BGP Hijacking olarak adlandırılmakta.

BGP Hijacking yapılarak bir networkun anonsu, networkun sahibi olmayan kişilerce(hacker vb.) yapılıp kendisini "Transit Area" yaparak bütün trafiği kendi üzerinden geçirir ve doğru hedefe yönlendirir. Ancak tüm trafiği dinlediği
için cleartext trafiğin tamamını çıplak halde görmektedir. Bu da bilgi çalımına sebep verecektir. 



BGP Hijacking ataklardan korunmanın bir takım yolları söz konusu.

Looking Glass Serverlar ile BGP'deki değişilikler gözlenebilir. LG Server ınternet üzerindeki bütün anonsların duyulduğu ISPlere ait gerçek routerlardır ve kişişler erişip belli başlı bilgilere erişebilir, hangi networkler mevcut
hangi AS-Path ile bu networklere ulaşılıyor ya da benim yapmış olduğum network anonsları Internete ulaşıyor mu gibi.

ISPler Prefix-List kullanarak müşterilerinin sahibi olmadığı networklerin anonsunu yapmasını engeller.

ISPler sadece /24 ve altındaki networklerin anonsuna izin verir. (/16, /17... vb)

ISPler AS-Path'i limitler.

BGP Hijacking'in korunma yöntemleri arasında olan BGPSec ve RPKI'dan başka yazılarımda bahsedeceğim.




 

   

25 Ağustos 2018 Cumartesi

BGP / SYNCRONIZATION - NO SYNCRONIZATION

BGP  / SYNCRONIZATION - NO SYNCRONIZATION

Merhaba Arkadaşlar,

Güncel version Cisco Routerlarda BGP Routing Protokolünü enable ettiğiniz zaman, "Router BGP "AS Number""
Section'ı altında "no syncronization" komutu default olarak gelmektedir. Tabiki bahsettiğimiz gibi güncel routerlarda bu durum söz konusu.
Peki bu syncronization komutunun görevi tam olarak ne ? Geçmiş versiyona sahip routerlarda neden "syncronization" enable durumdaydı.
Bugün bundan bahsedeceğiz.
İlk olarak bir takım temel terimlerden bahsedelim. EGP Internette kullanılan routing protokollerinin genel adıdır.(BGP) IGP ise lokal networklerde routerlar arasında kullanılan
routing protokollerinin genel adıdır. (OSPF, EIGRP vb.)

Aşağıdaki topoloji üzerinden konuyu anlatmaya çalışalım;

AS 100'de bulunan R4 routerı 100.1.1.0/24 networkunu anons etmektedir. 100.1.1.0/24 networku Transit Area olan AS 200 üzerinden R1, R2 ve R3 routerları aracılığıyla
AS 300'de bulunan R5 routerına ulaştırılmak istenmektedir.
Transit Area'dan bahsedecek olursak; R1, R2 ve R3 routerından oluşmaktadır. AS 200'e dahil olan R1 ve R3, internete bakan tarafta E-BGP ve birbileri arasında da I-BGP koşmaktadır.
Yani R1 ile R3 arasında I-BGP, R1 ile R4 arasında E-BGP, R3 ile R5 arasında da E-BGP koşmaktadır. R1 ve R3 arasında komşuluğun kurulabilmesi için R1'in R3'e lokal olarak
erişebilmesi gerekmektedir. Ayrıca lokaldeki sistemlerin de iç networkte haberleşebilmesi IGP bir protokolun içeride aktif olması ile mümkün olabilir.
R5 Routerının arkasındaki bir network Transit Area'ı kullanarak R4'ün arkasında bulunan 100.1.1.0/24 networkune erişmek istemektedir. Transit Area'ya geldiği zaman
R3 Routerı packeti alıp R2'ye iletiyor. R2 ise sadece local networklerin bulunduğu Routing Table'a sahip. Sonuç olarak paketler drop ediliyor.
Router BGP "AS Number" komutu altında bulunan "syncronization" komutu burada önem kazanıyor. Şöyle ki IGP olarak R1,R2 ve R3 arasında OSPF koşsun. OSPF'e BGP'den öğrenilen
routingler anons edilmemişse yani OSPF'in Routing Table'ında 100.1.1.0/24 ya da 0.0.0.0/0 yok ise R1 ve R3'ün BGP Routing Table'ındaki 100.1.1.0/24 Network'ü silinir. Sonuç olarak
bir routerda "Syncronization" komutu IGP ile BGP'nin öğrenmiş olduğu networklerin paralel olmasını bekler, olmadığı taktirde Routing Table'ına yazmaz. Amaç "Black Hole" un engellenmesidir.

Aklımıza şöyle bir soru gelebilir, "no syncronization" komutunu kullandığımız durum hangisidir. Aşağıdaki topolojide R1,R2 ve R3 routerlarının tamamı I-BGP koşuyorsa
ve bunu FULL-MESH komşuluk kuracak şekilde yapıyorsa "no sycnronization" komutu ile 100.1.1.0/24 networkune, R5 routerından sorunsuz şekilde erişilebilir.