
Şekil 1'de de görüldüğü üzere IP adres uzayının gidererek daralması ile daha fazla parçalanmış alt ağların kullanılması nedeniyle günümüzdeki mevcut tam BGP tablo büyüklüğü 500.000 kayıta yaklaşmıştır.
Şekil 1 - BGP Tablo Büyüklüğü
İSS'lerin büyük çoğunun yönlendirme yapabilmesi için BGP kullanma zorunluluğu olması, her ne kadar internet kullanıcılarının büyük bir kısmı birinci dereceden kullanmasa dahi bu protokolü ve güvenliğinin sağlanmasını önemli kılmaktadır. Dolayısıyla İnternet'in çalışmasını sağlayan bu derece önemli bir protokolün güvenliğini sağlamak İnternet'in çalışır durumda kalmasını sağlamakla eşdeğerdir. Bu sebeple bu yazıda BGP protokolüne yönelik tehditler ve bu tehditlerden korunma yolları ele alınacaktır. S-BGP ve SoBGP gibi güvenlik merkezli BGP geliştirmeleri konu haricinde tutulmuştur.
BGP'ye Yönelik Tehditler
Öncelikle kendi taşıma katmanı protokolünü kullanan diğer yönlendirme protokollerinin aksine BGP, TCP 179.port üzerinden çalışmaktadır. Düğümler arasındaki haberleşmeyi TCP ile sağladığı için, kendi üzerinde herhangi bir yeniden iletme veya hata düzeltme fonksiyonu barındırmasına gerek görülmemiştir. Dolayısıyla TCP tabanlı diğer protokollerin maruz kalabileceği bütün saldırı çeşitlerine karşı zafiyet barındırmakta ve aynı şekilde güvenliği de sağlanabilmektedir. Bu tehditlerden bazıları şu şekildedir[1]:
Route Manipulation: Kötü niyetle yapılandırılmış bir cihaz tarafından BGP yönlendirme tablosunun içeriği değiştirilerek mevcut trafiğin hedefe ulaşmasının engellenmesi sağlanır.
Route (Prefix) Hijacking: Kötü niyetli bir BGP eşi tarafından zarar vermek amacıyla kurbana ait prefikslerin anons edilmesi ile trafiğin bir kısmının veya bütününün yeniden yönlendirilmesi ve trafiğinin içeriğinin görülmesidir.
Servis Dışı Bırakma (Denial of Service-DoS): Zararlı bir düğümün, beklenmeyen veya istenmeyen BGP trafiğini kurbanın CPU vb. gibi kaynaklarını tüketmek amacıyla yönlendirmesi suretiyle hedefi servis dışı bırakmasıdır.
Yapılandırma hataları: BGP eşleri arasındaki sürecin bozulması; atanmamış, rezerve ASN kullanımı; İnternet üzerinde yönlendirilmeyen prefikslerin anonsu olarak gösterilebilir.
Yakın Tarihteki Bazı BGP Atakları
2008 yılında gerçekleşen olayda Pakistan Telekom (AS17557) tarafından yasaklanmak amacıyla Youtube'a ait IP bloğunun (/22) içerisinde yer alan daha spesifik (/24) anons edilerek kara deliğe yönlendirilmiş ve bunun sonucunda global ölçekte İnternet üzerindeki noktalardan Youtube'a gitmek isteyen paketler Pakistan'a gönderilmiş ve bu şekilde yaklaşık 2 saat süren bir kesinti yaşanmıştı [2].
Şekil 2 - Pakistan Telekom-Youtube BGP Olayı
Yine 2010 yılında Çin İnternet Servis Sağlayıcısının diğer İSS ve kurumlara ait 40.000 rotayı (mevcut prefikslerin %15'i) anons etmesi ile birlikte dünya çapında etki oluşturan ve BGP hijack olarak adlandırılan olay gerçekleşmiştir [3].
Şekil 3 - Çin Kaynaklı İnternet Kesintisi
Konuya ait en güncel örnek 6 Kasım 2012 tarihinde Google'a ait hizmetlerin 27 dakika civarında kesilmesidir. Google'a ait servislere ve 8.8.8.8 IP adresine sahip açık DNS sunucusuna belirli yerlerden erişilememiştir. Endonezya'lı bir İSS olan Moratel (AS23947) tarafından bu adres bloklarının anons edildiği görülmüştür. Olay yaşandığı sırada yapılan bir yönlendirme tablosu sorgusu şekilde görüldüğü gibidir [4].
tom@edge01.sfo01> show route 8.8.8.8
inet.0: 422196 destinations, 422196 routes (422182 active, 0 holddown, 14 hidden)
+ = Active Route, - = Last Active, * = Both
8.8.8.0/24 *[BGP/170] 00:27:02, MED 18, localpref 100
AS path: 4436 3491 23947 15169 I
> to 69.22.153.1 via ge-1/0/9.0
Güven ilişkisine dayanan BGP komşuluğu, adı geçen İSS ve ona güvenen diğer komşularını dolayısıyla İnternet'in bir bölümünü etkilemiştir. Diğer taraftan sürekli mevcut olan kararsız ASN'lerde İnternet sürekliliği açısından dikkat edilmesi gereken bir durumdur [5].
Şekil 4 - Haftalık Kararsız ASN Grafiği
BGP’ye Yönelik Tehditlerden Korunma
MD5 ile Komşu Yetkilendirmesi
BGP komşu oturumları iki eş arasında kurulur ve aralarında rota değişimleri gerçekleşir. MD5 mekanizması ile sadece yetkili eşler ile oturum kurularak Route Manipulation saldırısı engellenebilir. Bu mekanizma simetrik bir teknik olduğu için iki tarafta da etkinleştirilmesi gerekmektedir. BGP oturumunun parçası olarak, gönderilen her bir paket için MD5 özeti oluşturulmakta ve TCP içerisinde özel bir alanda saklanmaktadır. Özet değeri, alıcıda hesaplanan değer ile karşılaştırılır. Eşleşmesi durumunda BGP tarafından işlenmeye devam ederken aksi durumda paket düşürülür.
Var olan BGP oturumları üzerinde de oturum kesilmeden bu teknik uygulanabilir veya uygulanan parola değiştirilebilir. Bunun için iki tarafta da değişikliğin varsayılan 180 saniyelik zaman aşımı içerisinde gerçekleştirilmesi gerekir. Önerilen bu parolanın belirli aralıklarla değiştirilmesidir.
router bgp 65000
no synchronization
bgp log-neighbor-changes
network 192.168.200.0
neighbor 192.0.2.2
remote-as 65100
neighbor 192.0.2.2 password PaR0!a
no auto-summary
!
TTL Kontrolü
Bu önlem, başta belirtilen CPU vb. sistem kaynaklarının kullanımını artıracak DoS ve rota manipülasyonu saldırıları için kullanılabilir. eBGP varsayılan olarak yapılandırıldığında bütün oturum paketleri için IP başlığındaki TTL değeri 1 olarak ayarlanır. Böylelikle eBGP oturumunun bir düğümden ilerisine kurulması engellenmiş olur. Fakat saldırgan tarafından bu değer değiştirilerek 255 düğüm ötesindeki BGP noktalarına sahte paketler gönderilebilir. Örneğin büyük miktarlarda TCP SYN paketi gönderilerek BGP süreci çalışmaz duruma getirilebilir. MD5 yetkilendirmesinin bu noktada faydasız kalması hatta saldırının şiddetini artırması nedeniyle TTL kontrolü mekanizması geliştirilmiştir. TTL kontrolü, eBGP oturumlarının büyük çoğunluğunun sınırdaş yönlendiriciler arasında olduğu gerçeğinden hareket eder.
Etkinleştirildiğine, eBGP paketinin başlangıç değeri 1 yerine 255 olarak ayarlanır ve eBGP oturumundaki bütün BGP paketleri için minimum TTL değeri uygulanır. TTL değeri hedefe kadar her düğümde 1 azalacağından dolayı saldırının yarıçapı doğrudan bağlantıda olunan yönlendiriciler ile sınırlı kalacaktır.Aşağıdaki örnekte komşu (192.0.2.2) tarafından gönderilen paketlerin kabul edilmesi için TTL değerinin 254'e eşit ya da büyük olması gerekmektedir. Aksi halde paketler düşürülecektir.
router bgp 65000
!
no synchronization bgp
log-neighbor-changes
network 192.168.200.0
neighbor 192.0.2.2
remote-as 65100
neighbor 192.0.2.2 ttl-security hops 1
no auto-summary
!
Maksimum Prefiks Yapılandırılması
Yanlış yapılandırılmış güvenilir eBGP eşi tarafından yönlendirme tablosuna çok fazla sayıda kayıt eklenmesi girişimi durumunda da BGP zarar görebilir. Yönlendirme tablosuna aşırı kayıt eklenmesi hem bellek hem CPU'yu zorlayarak yönlendiriciyi servis dışı bırakabilir. Bunun için her komşudan alınabilecek en fazla prefiks sayısının belirlenmesi önerilmektedir. Bu yöntem eBGP komşuları haricinde iBGP için de uygulanabilir. Aşağıdaki komut ile yönlendirici, BGP eşinden 5 prefiks alacak şekilde yapılandırılmıştır. %70'inden fazla olan 4 prefiks alınması durumunda uyarı mesajı gönderilecek, 5.nin alınması durumunda BGP oturumu kesilerek 30 dk. içinde yeniden başlatılacaktır.
neighbor 192.0.2.2 maximum-prefix 5 70 restart 30
Prefiks Filtrelenmesi
Prefiks filtreleme ile her bir BGP eşinden alınacak veya gönderilecek spesifik prefikslerin alınması/düşürülmesi sağlanabilir. Böylelikle trafiğin istenilen yoldan girmesi garanti altına alınabilir. Prefiks listeleri her bir eBGP eşi için giriş ve çıkış yönlü olarak uygulanmalıdır. Böylelikle oluşturulacak bir beyaz liste üzerinden yönlendirmeye izin verilir. Bu listenin çok uzun olması durumunda sadece yasaklanacak prefikslerin bulunduğu bir kara liste uygulanmalı ve bu liste rezerve IP bloklarını (RFC3330) içermelidir. Anlık olarak bu tür zararlı anonslar (bogons) ve yapıldıkları ASN'ler [6] adresinden görülebilir.
router bgp 65000
no synchronization bgp
log-neighbor-changes network 192.168.200.0 neighbor 192.0.2.2 remote-as 65100
neighbor 192.0.2.2 prefix-list Ingress-Black in
no auto-summary
!
ip prefix-list Ingress-Black seq 5 deny 10.10.10.0/24
ip prefix-list Ingress-Black seq 10 deny 10.20.20.0/24
ip prefix-list Ingress-Black seq 15 permit 0.0.0.0/0 le 32
!
Örnek IOS Güvenli BGP Şablonu
Cisco ağ cihazları üzerinde uygulanabilecek güvenli bir IOS yapılandırması örneği aşağıda görülebilir [7].
router bgp 64496 !
bgp graceful-restart
!
no synchronization
!
no bgp fast-external-fallover
!
bgp log-neighbor-changes
!
bgp maxas-limit 10
!
network 192.0.2.0 mask 255.255.255.0
!
! eBGP esi
neighbor 10.10.5.1
remote-as 64511
neighbor 10.10.5.1 ttl-security hops 2
neighbor 10.10.5.1 soft-reconfiguration inbound
neighbor 10.10.5.1 description ISP ile eBGP
neighbor 10.10.5.1 password PaR0!aeBGP
neighbor 10.10.5.1 version 4
neighbor 10.10.5.1 prefix-list bogons in
neighbor 10.10.5.1 prefix-list announce out
neighbor 10.10.5.1 maximum-prefix 250000
!
! iBGP esi
neighbor 172.17.70.2 remote-as 64496
neighbor 172.17.70.2 ttl-security hops 2
neighbor 172.17.70.2 soft-reconfiguration inbound
neighbor 172.17.70.2 description iBGP baglantisi
neighbor 172.17.70.2 password PaR0!aiBGP
neighbor 172.17.70.2 update-source Loopback0
neighbor 172.17.70.2 version 4
neighbor 172.17.70.2 next-hop-self
neighbor 172.17.70.2 prefix-list bogons in
neighbor 172.17.70.2 maximum-prefix 250000
!
no auto-summary
!
maximum-paths 2
!
ip route 192.0.2.0 255.255.255.0 Null0
ip route 192.0.2.0 255.255.255.128 192.168.50.5
ip route 192.0.2.128 255.255.255.128 192.168.50.8
ip route 172.17.70.2 255.255.255.255 192.168.50.2
!
access-list 185 permit tcp host 10.10.5.1 host 10.10.5.2 eq 179
access-list 185 permit tcp host 10.10.5.1 eq bgp host 10.10.5.2
access-list 185 permit tcp host 10.10.10.1 host 10.10.10.2 eq 179
access-list 185 permit tcp host 10.10.10.1 eq bgp host 10.10.10.2
access-list 185 permit tcp host 172.17.70.2 host 172.17.70.1 eq 179
access-list 185 permit tcp host 172.17.70.2 eq bgp host 172.17.70.1
access-list 185 deny tcp any any eq 179 log-input
!
ip prefix-list announce description Anonsuna izin verilen bloklar
ip prefix-list announce seq 5 permit 192.0.2.0/24
ip prefix-list announce seq 10 deny 0.0.0.0/0 le 32
!
Sonuç
Günlük hayatta aslında İnternet'e bağlı herkesi dolaylı yoldan ilgilendiren BGP protokolünde mevcut olan güvenlik zafiyetleri yetkilendirme, bütünlük gibi açılardan farklı kriptografik protokollerle sağlanabilse de standart bir BGP kurulumu zararlı ASN'ler vb. tarafından istismara açıktır. Dolayısıyla İnternet sürekliliğinin sağlanması adına bu protokolün işlerliğinin yanı sıra güvenliğine de gerekli hassasiyetin gösterilmesi önem arz etmektedir.
Kaynakça
- http://www.cisco.com/web/about/security/intelligence/protecting_bgp.html
- http://www.ripe.net/internet-coordination/news/industry-developments/youtube-hijacking-a-ripe-ncc-ris-case-study
- http://ddos.arbornetworks.com/2010/11/china-hijacks-15-of-internet-traffic
- http://blog.cloudflare.com/why-google-went-offline-today-and-a-bit-about
- http://www.cymru.com/BGP/inconsistent_asns.html
- http://www.cymru.com/BGP/bogons.html
- http://www.team-cymru.org/ReadingRoom/Templates/secure-bgp-template.html
- http://ix.cs.uoregon.edu/~butler/pubs/bgpsurvey.pdf
0 comments:
Post a Comment