IST-01 lokasyonunda hizmet kesintisi yaşanıyor. Detaylar

Güvenlik RPKI · ROA

RPKI nedir ve neden önemlidir?

RPKI, hangi ASN'nin hangi prefix'i duyurmaya yetkili olduğunu kriptografik olarak doğrulamanızı sağlar. ROA, ROV, maxLength tuzağı, RIPE portalında ROA oluşturma ve validator kurulumu.

Netlojik NOC Ekibi 4 dk okuma

İçindekiler
  1. RPKI'nin temel fikri
  2. ROA: Route Origin Authorization
  3. ROV: Route Origin Validation
  4. maxLength tuzağı
  5. RIPE portalında ROA oluşturma
  6. Kendi validator'ınızı çalıştırmak
  7. Toparlarken

BGP tasarım olarak güvene dayanır: bir ağ "bu prefix bende" dediğinde, komşuları bunu doğrulayacak yerleşik bir mekanizmaya sahip değildir. Yanlışlıkla veya kasıtlı olarak başkasının adres alanını duyuran bir ağ, o trafiği kendine çekebilir. RPKI (Resource Public Key Infrastructure) bu açığın en yaygın biçimini, yani yanlış origin'i, kriptografik olarak tespit etmeyi sağlar.

RPKI'nin temel fikri

IP adresleri ve ASN'ler, IANA'dan RIR'lara (RIPE NCC, ARIN, APNIC vb.), oradan da LIR'lara ve son kullanıcılara dağıtılır. RPKI bu dağıtım zincirini bir sertifika hiyerarşisine dönüştürür: her RIR, kaynak tahsis ettiği üyesine o kaynakları kapsayan bir sertifika verir. Kaynak sahibi bu sertifikayla imzalanmış nesneler yayınlayabilir.

Bu nesnelerin en önemlisi ROA'dır.

ROA: Route Origin Authorization

ROA, "bu prefix'i şu ASN duyurmaya yetkilidir" diyen imzalı bir beyandır. Üç alanı vardır:

Prefix:     203.0.113.0/24
Origin ASN: AS64500
maxLength:  24

Bir prefix için birden fazla ROA olabilir. Örneğin aynı /24'ü iki farklı ASN'den duyuruyorsanız (bir DDoS temizleme sağlayıcısı veya ikincil bir lokasyon için) her ASN için ayrı ROA oluşturursunuz.

ROV: Route Origin Validation

ROA'lar tek başına bir şey değiştirmez; onları kontrol eden ağlar gerekir. Route Origin Validation, router'ın aldığı her BGP rotasını ROA verisiyle karşılaştırması ve üç sonuçtan birini üretmesidir:

  • Valid: prefix'i kapsayan bir ROA var, origin ASN eşleşiyor ve prefix uzunluğu maxLength'i aşmıyor.
  • Invalid: prefix'i kapsayan en az bir ROA var ama hiçbiri eşleşmiyor (yanlış ASN veya fazla spesifik prefix).
  • NotFound: prefix'i kapsayan hiçbir ROA yok.

Yaygın kabul gören politika invalid rotaları reddetmek, diğer ikisini kabul etmektir. Büyük transit sağlayıcıların ve IX route server'larının önemli bir kısmı bugün invalid rotaları düşürüyor. Bu da ROA'nızın yanlış olmasının, prefix'inizin internetin bir kısmından görünmez olması anlamına geldiğini gösterir.

maxLength tuzağı

maxLength alanı, ROA'nın hangi uzunluğa kadar daha spesifik prefix'leri kapsayacağını belirler. İlk bakışta geniş tutmak pratik görünür:

Prefix: 203.0.113.0/24   Origin: AS64500   maxLength: 24   (güvenli)
Prefix: 198.51.100.0/22  Origin: AS64500   maxLength: 24   (riskli)

İkinci satırda sadece /22 duyuruluyorsa sorun vardır. Bir saldırgan, sizin ASN'inizi origin olarak taklit edip (AS_PATH'in sonuna 64500 ekleyerek) 198.51.100.0/24'ü duyurabilir. Bu rota ROA'ya göre valid görünür ve daha spesifik olduğu için trafiği çeker. Bu forged-origin sub-prefix hijack'tir ve RFC 9319 bu yüzden maxLength'in dikkatli kullanılmasını önerir.

Kural basittir: maxLength'i sadece gerçekten duyurduğunuz prefix uzunluğuna ayarlayın. Hem /22'yi hem de bazı /24'leri duyuruyorsanız, her biri için ayrı ROA oluşturun. DDoS müdahalesi için ileride /24 duyurmanız gerekebilecekse ROA'yı o zaman eklemek, önceden geniş maxLength bırakmaktan daha güvenlidir.

RIPE portalında ROA oluşturma

RIPE NCC üyesiyseniz hosted RPKI en kolay yoldur:

  1. my.ripe.net'e LIR hesabınızla giriş yapın ve Resources > RPKI Dashboard bölümüne gidin.
  2. İlk kullanımda sertifika otoritesini (CA) etkinleştirmeniz istenir. Hosted seçeneğini onaylayın.
  3. Dashboard, şu an BGP'de gördüğü duyurularınızı listeler ve her biri için RPKI durumunu gösterir. Burada "Unknown" görünen duyurular henüz ROA'sı olmayanlardır.
  4. Create ROA ile prefix, origin ASN ve maxLength'i girin. Duyuru listesinden seçerek oluşturmak yazım hatası riskini azaltır.
  5. Değişiklikleri gözden geçirin. Portal, oluşturacağınız ROA'nın mevcut duyurulardan birini invalid yapıp yapmayacağını gösterir; bu uyarıyı ciddiye alın.
  6. Onaylayın. ROA, dakikalar içinde yayınlanır; validator'ların onu görmesi genellikle bir saati geçmez.

Değişiklikten sonra durumu dışarıdan kontrol edin:

curl -s "https://stat.ripe.net/data/rpki-validation/data.json?resource=AS64500&prefix=203.0.113.0/24"

Yanıttaki status alanı valid olmalıdır. Aynı bilgiye RIPEstat arayüzünden ya da bgp.tools üzerinden de bakabilirsiniz.

Kendi validator'ınızı çalıştırmak

Kendi ağınızda ROV uygulamak için bir validator'a ihtiyacınız var. Validator, beş RIR'ın trust anchor'larından başlayarak tüm RPKI deposunu indirir, imzaları doğrular ve sonuçta doğrulanmış ROA listesini (VRP) router'lara RTR protokolüyle sunar.

Yaygın seçenekler Routinator (NLnet Labs), rpki-client (OpenBSD) ve FORT'tur. Routinator ile basit bir kurulum:

apt install routinator
routinator-init --accept-arin-rpa
systemctl enable --now routinator

Varsayılan olarak RTR portu 3323, HTTP arayüzü 8323'tür. Router tarafında BIRD veya FRR'ı bu porta bağlarsınız. Birkaç öneri:

  • En az iki validator çalıştırın, mümkünse farklı yazılımlarla. Biri çökerse router elindeki VRP'yi belirli bir süre korur, ama sonsuza kadar değil.
  • Validator'ı izleyin: son başarılı güncelleme zamanı, VRP sayısı ve depo erişim hataları.
  • Router'da invalid rotaları reddetmeden önce bir süre sadece işaretleyin ve loglayın; hangi rotaların düşeceğini görmek sürpriz yaşamayı önler.

Netlojik (AS202294) kendi prefix'leri için ROA yayınlar; ağımızın genel yapısı altyapı sayfasında yer alıyor.

Toparlarken

RPKI, BGP'nin en sık karşılaşılan hatasını, yanlış origin'i, düşük maliyetle yakalar. Kendi prefix'leriniz için doğru maxLength ile ROA oluşturmak, başkalarının sizi korumasına imkân verir; kendi ağınızda ROV uygulamak ise sizin de başkalarını korumanızı sağlar. İkisi birlikte, her ağın katkısıyla büyüyen bir koruma oluşturur. Path doğrulaması gibi konular (ASPA, BGPsec) hâlâ gelişiyor, ama ROA ve ROV bugün uygulanabilir ve etkili olan adımdır.

Diğer yazılar

Tüm yazılar