You are on page 1of 52

Prevent BGP Hijacking

With RPKI
(Resource Public Key Infrastructure)

Bandung, 20 November 2019

David Aditya Yoga Pratama



david@apjii.or.id
ig @davidstefando

Indonesia Network Infomation Center
AWS DNS network hijack turns
MyEtherWallet into
ThievesEtherWallet

How 3ve’s BGP hijackers


eluded the Internet—and
made $29M

Pakistan Cuts Access to


YouTube Worldwide
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

From > 1700 IDNIC Members

Internet Exchange in indonesia

IIX OpenIXP CDIX And


64.23%

ID Prefix

88.33%

ID Prefix

75.28%

ID Prefix

Many
Advertised Advertised Advertised
More
Routing problems caused by wrong advertisement
happened nearly everyday. Caused internet outages.
13,935 routing incidents happened in 2017

Source : https://blog.apnic.net/2018/01/24/14000-incidents-routing-security-2017/
?
Mengapa hal tersebut bisa
terjadi?
1
Tidak ada satu
sumber data
terpercaya untuk
mengetahui tabel
routing yang benar
RADB APNIC

IDNIC RIPE NCC

LEVEL 3 RGNET
2 Routing BGP
menerapkan
prinsip “Saling
Percaya”

I Trust You!
Please Advertise

203.119.13.0/24
 I Trust You!
via
 You have
AS4622 203.119.13.0/24

via

AS4622
?
Bagaimana kita mengatasi
masalah routing saat ini?
1 LoA (Letter of Authority) check

Melakukan filtering berdasarkan LoA

LoA Check match

Peering / Transit Request Filter in / out

203.119.13.0/24

via

AS4622
2 Using IRR (Internet Routing
Registry)

BGPQ3

Internet Routing Registry Filter in / out

203.119.13.0/24

RADB APNIC via

AS4622

JPIRR LEVEL 3

RGNET ARIN

And many more IRR..


!
Masalah yang terjadi
dengan solusi saat ini.
203.119.13.0/24
 203.119.13.0/24

via
 via

AS4622 AS12122

RADB APNIC

203.119.13.0/24
 203.119.13.0/24

1 Ada banyak IRR
via
 via

AS7812 AS12345 2 Data inconsistency antar IRR

RGNET ARIN
3 Sulit mengidentifikasi siapa
yang paling benar

Not Found Not Found

JPIRR LEVEL 3

And many more IRR..


Pembajakan Route (Tanpa RPKI)

Router Pembajak
 Router Tujuan



ISP Router
AS1122
 AS15169

Saya Memiliki
 Saya Pemilik

8.8.8.0/24 8.8.8.0/23

Akses 8.8.8.8
Overview of
 Apa itu

RPKI RPKI?
(Resource Public Key
Infrastructure)

1
RPKI Training

1. Apa itu RPKI? 2. Issuing Party 3. Relying Party (RP)


(CA)

Latar belakang
 Single Trust Anchor
 RPKI Validator




 
 

Pengenalan RPKI
 Routing Origin Konfigurasi Router
Authorization (ROA) (RTR Protocol)

Keuntungan 

menggunakan RPKI
 Validation State


 

Trust Anchor


4. Route Origin Validation (ROV)

1 Apa itu RPKI?


RPKI (Resource Public Key Infrastructure)

RFC6480 (An Infrastructure to Support Secure Internet Routing)

Issuing Party (CA)


203.119.13.0/24
ROA
AS7597

Metode kriptografi untuk memastikan route (prefix) yang diadvertise ke BGP hanya
dari AS number yang diperbolehkan.
Pembajakan Route (Tanpa RPKI)

Router Pembajak
 Router Tujuan



ISP Router
AS1122
 AS15169

Saya Memiliki
 Saya Pemilik

8.8.8.0/24 8.8.8.0/23

Akses 8.8.8.8
Pembajakan Route (Dengan RPKI)

Hanya AS15169

ROA Diperbolehkan mengadvertise
prefix 8.8.8.0/24 - 23

Router Pembajak
 Router Tujuan



ISP Router
AS1122
 AS15169

Saya Memiliki
 Saya Pemilik

8.8.8.0/24 8.8.8.0/23

Akses 8.8.8.8
2 Manfaat RPKI

Mencegah pembajakan route

Mencegah prefix diadvertise bukan oleh pemiliknya

Mencegah routing bocor

Mencegah kesalahan routing akibat kesalahan konfigurasi (fat-


finger)

Karena hanya pemilik IP yang dapat


mengadvertise IP tersebut di BGP
4 Bagaimana RPKI Bekerja?
Apakah RPKI Dapat Dipercaya?

IANA Single Trust Anchor


CA

ARIN APNIC AFRINIC LACNIC RIPE-NCC

CA

IDNIC (NIR) ISP


CA
CA
CA CA

ISP ISP
4 RPKI Single Trust Anchor

Sejak 30 September 2017, semua RIR wajib memindahkan


Trust Anchor ke Trust Anchor IANA.
5 Apa bedanya RPKI dengan SSL &
TLS?

X.509 CERT

RFC 3779
 RFC 3779



Extension


Membungkus IP & ASN didalam X.509
IP Resources

(ASN & IP)

SIA (Subject Information Access)



Berisi URL yang mengidentifikasikan
SIA lokasi dimana resource tersebut
(URI WHERE THIS PUBLISHED) disertifikasi

Owner 

Public Key
6 Komponen RPKI

1. Issuing Party (CA)

Internet Registries (RIR, NIR, LIR)



Mensertifikasi resource (ROA)

Memberikan layanan kepada user untuk membuat ROA

2. Relying Party (RP)

Software yang mengambil data ROA dari CA.




Terhubung dengan Perangkat Router yang didukung untuk
melakukan validasi route
7 RFC Tentang RPKI

RFC 6810 – The Resource Public Key Infrastructure (RPKI)


to Router Protocol (January 2013) - Standard

RFC 6480 – An Infrastructure to Support Secure


Internet Routing (Feb 2012) - informational

RFC 6481 – A Profile for Resource Certificate


Repository Structure (Feb 2012) - standard

RFC 6491 – RPKI Objects Issued by IANA

RFC 6493 – The RPKI Ghostbusters Record

RFC 6487 – A Profile for X.509 PKIX Resource Certificate


Cara Kerja RPKI

A B

Certificate Authority (CA) Relying Party (RP)

ARIN AFRINIC
RTR
rsync Protocol
RPKI

APNIC LACNIC Validator

Software
ISP Router
RIPE-NCC IDNIC

RPKI VALIDATOR
Issuing 

Party (CA)

2
1 Apa itu Issuing Party?

Merupakan Internet Registries (RIR, NIR, LIR)



Contoh: APNIC, RIPE-NCC, IDNIC

Mensertifikasi resource (ROA)

Memberikan layanan kepada user untuk membuat ROA

(myIDNIC ROA Dashboard)
2 Hirarki Issuing Party (CA)

IANA Single Trust Anchor


CA

ARIN APNIC AFRINIC LACNIC RIPE-NCC

CA

IDNIC (NIR) ISP


CA
CA
CA CA

ISP ISP
3 System RPKI IDNIC
Publik Internal

IDNIC CA APNIC CA
Akses

Rsync
Member Rsync

IDNIC Repository
RPKI DB

RPKI

Service

Akses 

myIDNIC
Web
4 Route Origin Authorisation (ROA)

Objek tersertifikasi yang berisi list prefix yang boleh diadvertise


oleh suatu AS Number

Only AS4622

ROA Allowed to advertise prefix
203.119.13.0/24

ROA adalah komponen utama RPKI


5 Bagaimana 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 (hostmaster@idnic.net)


- Menggunakan versi beta ROA dashboard IDNIC (Ready
Oktober 2019)
6 Melakukan Pengecekan ROA

whois -h whois.bgpmon.net "--roa ASN PREFIX”


Melakukan Pengecekan ROA

https://bgp.he.net
Relying 

Party (RP)

3
1 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
2 Gambaran Relying Party (RP)

Trust Anchor Locator (TAL)

ARIN APNIC AFRINIC LACNIC RIPE-NCC

RSYNC

VALIDATOR
VALIDATOR
 

(RP)
(RP)

Relying Party

(RP) RPKI To Router Protocol
(RTR Protocol)

Router
3 Trust Anchor Locator (TAL)

Trust Anchor URL


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

Setiap RIR memiliki TAL yang dapat didownload untuk dipasang di RPKI Validator. Kecuali TAL
ARIN dapat didownload setelah menyetujui syarat & ketentuan
4 Software Relying Party

RCYNIC (rpki.net)


Octo RPKI (cloudflare.com)


RIPE NCC RPKI Validator (ripe ncc)


Routinator 3000 (nlnetlabs.nl)


RPSTIR (ZDNS)


Route Origin

Validation
(ROV)

4
1 RPKI Validation

ROA

AS4622

203.119.13.0/24


Valid Invalid Not Found

AS4622
 AS2345
 AS2345



203.119.13.0/24
 203.119.13.0/24
 103.12.13.0/24

2 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


Drop Invalid route
3 Router yang mendukung RPKI

Hardware


Juniper (Junos >v12.2)


Cisco (IOS XR >v4.2.1 & XE >v3.5)


Nokia (SR OS >v12.0.R4)



Software

Bird ( >v2.0.0)


Quagga
Motivasi

5
1 Tingkat Adopsi RPKI

Source :

https://www.nlnetlabs.nl/projects/rpki/
rpki-analytics/
2 Perusahaan yang sudah mulai
menggunakan RPKI

And many more…


So what are you
waiting for?
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
set local-preference 110
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;
};
}
Bird Router

IP : 202.182.57.57

user : training

password : training2019

/usr/local/etc/bird.conf
GNS 3 LAB

SERVER 119.82.224.57

port 3080

https://github.com/GNS3/gns3-gui/releases/tag/v2.2.0b1

You might also like