Prevent
BGP Hijacking
With RPKI
Agustus
2020
David Aditya Yoga Pratama [email protected]
ig @davidstefando
Real Case
BGP Hijacking
AWS DNS network hijack turns
MyEtherWallet into
ThievesEtherWallet
Pakistan Cuts Access to
YouTube Worldwide
How 3ve’s BGP hijackers
eluded the Internet—and
made $29M
Criminals, Nation-States Keep
Hijacking BGP and DNS
Facebook, Instagram and WhatsApp
taken down for 14 hours by
suspected BGP leak from European
ISP
How Verizon and a BGP Optimizer
Knocked Large Parts of the Internet
Offline Today
Indonesia
Case Study
64.23%
ID Prefix
Advertised
OpenIXP
88.33%
ID Prefix
Advertised
CDIX
75.28%
ID Prefix
Advertised
And
Many
More
Permasalahan routing hampir terjadi setiap hari tanpa
kita sadari maupun sadari.
Indonesia Case Study
From > 1900 IDNIC Members
Internet Exchange in indonesia
Global
Routing Incident Case
13,935 routing incidents happened in 2017
Mengapa hal tersebut bisa
terjadi?
Tidak ada satu
sumber data
terpercaya untuk
mengetahui tabel
routing yang benar
1
RADB
APNIC
RIPE NCC
RGNET
LEVEL 3
IDNIC
Routing BGP
menerapkan
prinsip “Saling
Percaya”
2
I Trust You!
You have
203.119.13.0/24 via AS4622I Trust You!
Please Advertise 203.119.13.0/24 via AS4622Bagaimana kita mengatasi
masalah routing saat ini?
1
LoA (Letter of Authority) check
Melakukan filtering berdasarkan LoA
Peering / Transit Request Filter in / out
LoA Check match
203.119.13.0/24 via
2
Using IRR (Internet Routing Registry)
Internet Routing Registry
BGPQ3
Filter in / out
RADB
APNIC
JPIRR
LEVEL 3
RGNET
ARIN
And many more IRR..
203.119.13.0/24 via
Masalah yang terjadi
dengan solusi saat ini.
RADB
APNIC
JPIRR
LEVEL 3
RGNET
ARIN
And many more IRR..
Ada banyak IRR
Data inconsistency antar IRR
Sulit mengidentifikasi siapa
yang paling benar
203.119.13.0/24 via AS4622 203.119.13.0/24 via AS12122 203.119.13.0/24 via AS7812 203.119.13.0/24 via AS12345
Not Found Not Found
1
2
3
RPKI Training
1
Apa Itu RPKI
2
Issuing Party (CA)
3
Relying Party (RP)
Section 1
Apa Itu RPKI?
ROA Issuing Party (CA)
203.119.13.0/24
AS7597
RPKI (Resource Public Key Infrastructure)
RFC6480 (An Infrastructure to Support Secure Internet Routing)
Metode kriptografi untuk memastikan route (prefix) yang diadvertise ke BGP hanya
dari AS number yang diperbolehkan.
BGP Hijacking
Tanpa RPKI
Router Pembajak AS1122 Saya Memiliki 8.8.8.0/24 Router Tujuan AS15169 Saya Pemilik 8.8.8.0/23 ISP Router Akses 8.8.8.8BGP Hijacking
Dengan RPKI
Router Pembajak AS1122 Saya Memiliki 8.8.8.0/24 8.8.9.0/24 Router Tujuan AS15169 Saya Pemilik 8.8.8.0/23 ISP Router ROA Hanya AS15169 Diperbolehkan mengadvertise prefix 8.8.8.0/24 - 23Manfaat RPKI
Mencegah pembajakan route
Karena hanya pemilik IP yang dapat
mengadvertise IP tersebut di BGP
Mencegah routing bocor
Mencegah prefix diadvertise bukan oleh pemiliknya
Mencegah kesalahan routing akibat kesalahan konfigurasi
(fat-finger)
Perkembangan RPKI
Perkembangan RPKI
Apakah RPKI
Dapat Dipercaya?
IANA
ARIN
APNIC
AFRINIC
LACNIC
RIPE-NCC
IDNIC (NIR)
ISP
ISP
ISP
Single Trust Anchor
CA CA CA CA CA CA
Bagaimana RPKI
Menangani Masalah Routing?
1. Membuat ROA (CA)
- Mensertifikasi resource kita agar tidak di hijack
- Memastikan prefix kita tidak di drop oleh upsteram
yang sudah implementasi RPKI
2. Drop RPKI Invalid di Router kita (RP)
- Mengamankan network dari prefix leak / bgp hijacking
- Muncul tanda hijau dan di list di isbgpsafeyet.com :)
Cara Kerja RPKI
ARIN
APNIC
AFRINIC
LACNIC
RIPE-NCC
IDNIC
Certificate Authority (CA)
Issuing Party
Relying Party (RP)
A
B
RPKI
Validator
Software
ISP Router RTR Protocol RPKI VALIDATOR rsyncSection 2
Issuing Party
(CA)
Apa itu
Issuing Party (CA)?
Merupakan Internet Registries (RIR, NIR, LIR)
Contoh: APNIC, RIPE-NCC, IDNIC
Mensertifikasi resource (ROA)
Memberikan layanan kepada user untuk membuat ROA
(myIDNIC ROA Dashboard)
Hirarki
Issuing Party (CA)
IANA
ARIN
APNIC
AFRINIC
LACNIC
RIPE-NCC
IDNIC (NIR)
ISP
ISP
ISP
Single Trust Anchor
CA CA CA CA CA CA
Route Origin Authorization
(ROA)
Objek tersertifikasi yang berisi list prefix yang boleh diadvertise
oleh suatu AS Number
ROA adalah komponen utama RPKI
ROA
Only AS4622
Allowed to advertise prefix
Route Origin Authorization
(ROA)
Objek tersertifikasi yang berisi list prefix yang boleh diadvertise
oleh suatu AS Number
ROA adalah komponen utama RPKI
ROA
Only AS4622
Allowed to advertise prefix
Cara Membuat ROA
1.
Direct Member APNIC
ROA dapat dibuat dari myAPNIC
- Hosted Solution
- Self Hosted
2.
Member IDNIC
- Roa dapat dibuat dengan bantuan hostmaster
email ([email protected])
Cara Cek Validitas ROA
Cara Cek Validitas ROA
Section 3
Relying Party
(RP)
Apa itu Relying Party (RP)
Merupakan software yang mengambil data ROA dari CA
Terhubung dengan router BGP dan melakukan validasi apakah
route valid atau tidak
Gambaran Relying Party
(RP)
ARIN
APNIC
AFRINIC
LACNIC
RIPE-NCC
VALIDATOR
(RP)
Trust Anchor Locator (TAL)
VALIDATOR
(RP)
RPKI To Router Protocol
(RTR Protocol) Router RSYNC
Relying Party
(RP)
VALIDATOR
(RP)
VALIDATOR
(RP)
Trust Anchor Locator
rsync://rpki.apnic.net/repository/apnic-rpki-root-iana-origin.cer MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx9RWSL61YAAYumEiU8z8 qH2ETVIL01ilxZlzIL9JYSORMN5Cmtf8V2JblIealSqgOTGjvSjEsiV73s67zYQI 7C/iSOb96uf3/s86NqbxDiFQGN8qG7RNcdgVuUlAidl8WxvLNI8VhqbAB5uSg/Mr LeSOvXRja041VptAxIhcGzDMvlAJRwkrYK/Mo8P4E2rSQgwqCgae0ebY1CsJ3Cjf i67C1nw7oXqJJovvXJ4apGmEv8az23OLC6Ki54Ul/E6xk227BFttqFV3YMtKx42H cCcDVZZy01n7JjzvO8ccaXmHIgR7utnqhBRNNq5Xc5ZhbkrUsNtiJmrZzVlgU6Ou 0wIDAQAB Public Key Trust Anchor URLSetiap RIR memiliki TAL yang dapat didownload untuk dipasang di RPKI Validator. Kecuali TAL
Trust Anchor Locator
RCYNIC (rpki.net)
Octo RPKI (cloudflare.com)
RIPE NCC RPKI Validator (ripe ncc)
Routinator 3000 (nlnetlabs.nl)
Section 4
Route Origin
Validation
RPKI Validation
Valid
Invalid
Not Found
AS4622
203.119.13.0/24
ROA
AS4622
203.119.13.0/24
AS2345
203.119.13.0/24
AS2345
103.12.13.0/24
Aksi yang dapat dilakukan di
router
Tidak melakukan apapun
(untuk melakukan analisa seberapa banyak route yang invalid)
Tag dengan BGP Community
(Jika anda memiliki downstream atau sebagai IXP)
Ubah local preference
Router yang mendukung
RPKI
Hardware
Juniper (Junos >v12.2)
Cisco (IOS XR >v4.2.1 & XE >v3.5)
Nokia (SR OS >v12.0.R4)
Mikrotik v7 (Beta version)
Software
Bird ( >v2.0.0)
Quagga
Contoh Konfigurasi Cisco
cisco-rpki-rtr#show running-config | begin bgp router bgp 64500
bgp log-neighbor-changes
bgp rpki server tcp 10.1.1.6 port 8282 refresh 5 network 192.0.2.0
neighbor 10.1.1.2 remote-as 64510
neighbor 10.1.1.2 route-map rpki-loc-pref in !
!
route-map rpki-loc-pref permit 10 match rpki invalid
set local-preference 90 !
route-map rpki-loc-pref permit 20 match rpki not-found
set local-preference 100 !
route-map rpki-loc-pref permit 30
match rpki valid
Contoh Konfigurasi Juniper
routing-options { autonomous-system 64511; validation { group rpki-validator { session 10.1.1.6 { refresh-time 120; hold-time 180; port 8282; local-address 10.1.1.5; } } } }Contoh Konfigurasi Bird
roa4 table ROA4; roa6 table ROA6;
protocol rpki VALIDATOR { roa4 { table ROA4; }; roa6 { table ROA6; }; remote 202.182.57.55; port 3323; refresh keep 30; retry keep 30; expire keep 3600; transport tcp; } filter peer_in_v4 {
if (roa_check(ROA4, net, bgp_path.last) = ROA_INVALID) then {
print "Ignore invalid ROA ", net, " for ASN ", bgp_path.last; reject; } accept; } protocol bgp { debug all; local as 10; neighbor 202.182.57.1 as 24213; ipv4 {
import keep filtered; import filter peer_in_v4; export none;
}; }