2014 年における bgp ハイジャックの検出 - pacsec · update メッセージでip...

109
2014 年における BGP ハイジャックの検出 ギョーム・バラドン - Guillaume Valadon ニコラス・ヴィヴェ- Nicolas Vivet Agence nationale de la sécurité des systèmes d’information http://www.ssi.gouv.fr/en PacSec - November 12th, 2014 ANSSI - 2014 年における BGP ハイジャックの検出 1/53

Upload: others

Post on 08-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

2014 年における BGP ハイジャックの検出ギョーム・バラドン - Guillaume Valadonニコラス・ヴィヴェ- Nicolas Vivet

Agence nationale de la sécurité des systèmes d’informationhttp://www.ssi.gouv.fr/enPacSec - November 12th, 2014

ANSSI - 2014 年における BGP ハイジャックの検出 1/53

Page 2: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

暗号通貨取得のための BGP ハイジャッキング2014/8/7 Dell SecureWorks のレポートより

« 2014 年の 2 月から 5 月で、一人のハイジャック犯によって暗号通貨がマイナーから自分のプールにリダイレクトされた。その金額はおよそ 83,000$ にのぼる »

攻撃要件

• マイナーとプールの間に認証が無い• BGP のプレフィックスハイジャックを利用したトラフィックのリダイレクト

ANSSI - 2014 年における BGP ハイジャックの検出 2/53

Page 3: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP 101

Page 4: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP とは (Border Gateway Protocol) ?すべてのインターネット事業者によって使用されるルーティングプロトコル

いくつかの BGP の特徴• 179/TCP を使用• オペレータが IP プレフィックスを担当していることを通知

• オペレータが嘘をついている場合はそれを保証できない

• インターネット事業者を相互接続

ANSSI - 2014 年における BGP ハイジャックの検出 4/53

Page 5: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP とは (Border Gateway Protocol) ?すべてのインターネット事業者によって使用されるルーティングプロトコル

いくつかの BGP の特徴• 179/TCP を使用• オペレータが IP プレフィックスを担当していることを通知

• オペレータが嘘をついている場合はそれを保証できない

• インターネット事業者を相互接続

ANSSI - 2014 年における BGP ハイジャックの検出 4/53

Page 6: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP とは (Border Gateway Protocol) ?すべてのインターネット事業者によって使用されるルーティングプロトコル

いくつかの BGP の特徴• 179/TCP を使用• オペレータが IP プレフィックスを担当していることを通知

• オペレータが嘘をついている場合はそれを保証できない

• インターネット事業者を相互接続

ANSSI - 2014 年における BGP ハイジャックの検出 4/53

Page 7: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP とは (Border Gateway Protocol) ?すべてのインターネット事業者によって使用されるルーティングプロトコル

いくつかの BGP の特徴• 179/TCP を使用• オペレータが IP プレフィックスを担当していることを通知

• オペレータが嘘をついている場合はそれを保証できない

• インターネット事業者を相互接続

ANSSI - 2014 年における BGP ハイジャックの検出 4/53

Page 8: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

オペレータは数字!

オペレータと BGP:• 自律システム• 固有の番号をもっている

3215 47256939

ANSSI - 2014 年における BGP ハイジャックの検出 5/53

Page 9: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

オペレータは数字!

オペレータと BGP:• 自律システム• 固有の番号をもっている

3215 47256939

ANSSI - 2014 年における BGP ハイジャックの検出 5/53

Page 10: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP を使用するのに何が必要?

• ネットワーク

• AS 番号• IP プレフィックス• BGP ルーター• BGP の相互接続

AS transit

ISP providing BGP

Internet

AS42

AS42

2.0.0.0/16

ANSSI - 2014 年における BGP ハイジャックの検出 6/53

Page 11: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP を使用するのに何が必要?

• ネットワーク• AS 番号• IP プレフィックス

• BGP ルーター• BGP の相互接続

AS transit

ISP providing BGP

Internet

AS42AS42

2.0.0.0/16

ANSSI - 2014 年における BGP ハイジャックの検出 6/53

Page 12: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP を使用するのに何が必要?

• ネットワーク• AS 番号• IP プレフィックス• BGP ルーター

• BGP の相互接続

AS transit

ISP providing BGP

Internet

AS42AS42

2.0.0.0/16

ANSSI - 2014 年における BGP ハイジャックの検出 6/53

Page 13: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP を使用するのに何が必要?

• ネットワーク• AS 番号• IP プレフィックス• BGP ルーター• BGP の相互接続

AS transit

ISP providing BGP

InternetAS42AS42

2.0.0.0/16

ANSSI - 2014 年における BGP ハイジャックの検出 6/53

Page 14: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

インターネットのリソース割り当て

AS とプレフィックスは各地域のインターネットレジストリで割り当てられる:

ヨーロッパ

アジア

アフリカ

北アメリカ

ラテンアメリカ & カリブ海

ヨーロッパでは ASN のコストは年間 50 ユーロか /22 50 ユーロ

ANSSI - 2014 年における BGP ハイジャックの検出 7/53

Page 15: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

インターネットリソース割り当ての確認WHOIS プロトコル

$ whois AS4713

aut-num: AS4713as-name: OCNdescr: NTT Communications Corporation[..]country: JPadmin-c: AY1361JPtech-c: TT10660JPtech-c: TT15086JPchanged: [email protected] 19960911changed: [email protected] 20091113source: JPNIC

ANSSI - 2014 年における BGP ハイジャックの検出 8/53

Page 16: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

インターネットリソース割り当ての確認WHOIS プロトコル

$ whois AS4713

aut-num: AS4713as-name: OCNdescr: NTT Communications Corporation[..]country: JPadmin-c: AY1361JPtech-c: TT10660JPtech-c: TT15086JPchanged: [email protected] 19960911changed: [email protected] 20091113source: JPNIC

ANSSI - 2014 年における BGP ハイジャックの検出 8/53

Page 17: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

インターネットリソース割り当ての確認https://stat.ripe.net

ANSSI - 2014 年における BGP ハイジャックの検出 9/53

Page 18: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

AS 通知 & プレフィックスの削除

BGP では、オペレータが使う:

• UPDATE メッセージで IP プレイフィックスを通知• WITHDRAW メッセージで IP プレフィックスを削除

InternetAS43515 AS4713

AS3215

208.117.252.0/22 61.28.192.0/24

2.0.0.0/16

208.117.252.0/22 61.28.192.0/24

2.0.0.0/16208.117.252.0/22

208.117.252.0/22

ANSSI - 2014 年における BGP ハイジャックの検出 10/53

Page 19: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

AS 通知 & プレフィックスの削除

BGP では、オペレータが使う:• UPDATE メッセージで IP プレイフィックスを通知

• WITHDRAW メッセージで IP プレフィックスを削除

InternetAS43515 AS4713

AS3215

208.117.252.0/22 61.28.192.0/24

2.0.0.0/16

208.117.252.0/22 61.28.192.0/24

2.0.0.0/16

208.117.252.0/22

208.117.252.0/22

ANSSI - 2014 年における BGP ハイジャックの検出 10/53

Page 20: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

AS 通知 & プレフィックスの削除

BGP では、オペレータが使う:• UPDATE メッセージで IP プレイフィックスを通知• WITHDRAW メッセージで IP プレフィックスを削除

InternetAS43515 AS4713

AS3215

208.117.252.0/22 61.28.192.0/24

2.0.0.0/16

208.117.252.0/22 61.28.192.0/24

2.0.0.0/16208.117.252.0/22

208.117.252.0/22

ANSSI - 2014 年における BGP ハイジャックの検出 10/53

Page 21: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

3 つのシンプルな BGP ルール

1. メッセージは、ASN を追加した後に、ネイバー(Neighbor)に転送される

2. 最短のパスのみが転送される3. パケットは最も特徴的なプレフィックスに送信される

AS1 AS2 AS3 Internet

192.0.2.0/24 192.0.2.0/24

192.0.2.0/24 AS1BGP

192.0.2.0/24 AS1 AS2BGP

ANSSI - 2014 年における BGP ハイジャックの検出 11/53

Page 22: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

3 つのシンプルな BGP ルール

1. メッセージは、ASN を追加した後に、ネイバー(Neighbor)に転送される

2. 最短のパスのみが転送される3. パケットは最も特徴的なプレフィックスに送信される

AS1 AS2 AS3 Internet

192.0.2.0/24

192.0.2.0/24

192.0.2.0/24 AS1BGP

192.0.2.0/24 AS1 AS2BGP

ANSSI - 2014 年における BGP ハイジャックの検出 11/53

Page 23: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

3 つのシンプルな BGP ルール

1. メッセージは、ASN を追加した後に、ネイバー(Neighbor)に転送される

2. 最短のパスのみが転送される3. パケットは最も特徴的なプレフィックスに送信される

AS1 AS2 AS3 Internet

192.0.2.0/24 192.0.2.0/24

192.0.2.0/24 AS1BGP

192.0.2.0/24 AS1 AS2BGP

ANSSI - 2014 年における BGP ハイジャックの検出 11/53

Page 24: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

3 つのシンプルな BGP ルール

1. メッセージは、ASN を追加した後に、ネイバー(Neighbor)に転送される

2. 最短のパスのみが転送される3. パケットは最も特徴的なプレフィックスに送信される

AS1 AS2

AS3

AS4 Internet

192.0.2.0/24 AS1192.0.2.0/24 AS1 AS3

BGP

192.0.2.0/24 AS1192.0.2.0/24 AS1 AS3

BGP192.0.2.0/24 AS1 AS2

BGP

192.0.2.0/24

ANSSI - 2014 年における BGP ハイジャックの検出 11/53

Page 25: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

3 つのシンプルな BGP ルール

1. メッセージは、ASN を追加した後に、ネイバー(Neighbor)に転送される

2. 最短のパスのみが転送される3. パケットは最も特徴的なプレフィックスに送信される

AS1 AS2

AS3

AS4 Internet

192.0.2.0/24 AS1192.0.2.0/24 AS1 AS3

BGP192.0.2.0/24 AS1192.0.2.0/24 AS1 AS3

BGP192.0.2.0/24 AS1 AS2

BGP

192.0.2.0/24

ANSSI - 2014 年における BGP ハイジャックの検出 11/53

Page 26: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

3 つのシンプルな BGP ルール

1. メッセージは、ASN を追加した後に、ネイバー(Neighbor)に転送される

2. 最短のパスのみが転送される3. パケットは最も特徴的なプレフィックスに送信される

AS1 AS2

AS3

AS4

Internet

192.0.0.0/16

192.0.2.0/24

192.0.0.0/16 AS4 AS1192.0.2.0/24 AS3 AS1

BGP192.0.0.0/16 AS4 AS1192.0.2.0/24 AS3 AS1

BGP

192.0.2.42

ANSSI - 2014 年における BGP ハイジャックの検出 11/53

Page 27: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

3 つのシンプルな BGP ルール

1. メッセージは、ASN を追加した後に、ネイバー(Neighbor)に転送される

2. 最短のパスのみが転送される3. パケットは最も特徴的なプレフィックスに送信される

AS1 AS2

AS3

AS4

Internet

192.0.0.0/16

192.0.2.0/24

192.0.0.0/16 AS4 AS1192.0.2.0/24 AS3 AS1

BGP192.0.0.0/16 AS4 AS1192.0.2.0/24 AS3 AS1

BGP

192.0.2.42

ANSSI - 2014 年における BGP ハイジャックの検出 11/53

Page 28: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

3 つのシンプルな BGP ルール

1. メッセージは、ASN を追加した後に、ネイバー(Neighbor)に転送される

2. 最短のパスのみが転送される3. パケットは最も特徴的なプレフィックスに送信される

AS1 AS2

AS3

AS4

Internet

192.0.0.0/16

192.0.2.0/24

192.0.0.0/16 AS4 AS1192.0.2.0/24 AS3 AS1

BGP

192.0.0.0/16 AS4 AS1192.0.2.0/24 AS3 AS1

BGP

192.0.2.42

ANSSI - 2014 年における BGP ハイジャックの検出 11/53

Page 29: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

3 つのシンプルな BGP ルール

1. メッセージは、ASN を追加した後に、ネイバー(Neighbor)に転送される

2. 最短のパスのみが転送される3. パケットは最も特徴的なプレフィックスに送信される

AS1 AS2

AS3

AS4

Internet

192.0.0.0/16

192.0.2.0/24

192.0.0.0/16 AS4 AS1192.0.2.0/24 AS3 AS1

BGP192.0.0.0/16 AS4 AS1192.0.2.0/24 AS3 AS1

BGP

192.0.2.42

ANSSI - 2014 年における BGP ハイジャックの検出 11/53

Page 30: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

ハイジャック 101

Page 31: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

プレフィックスのハイジャックとは?アクション上の BGP のルール #2

ハイジャック: BGP アナウンスの競合

AS0 AS1 AS2

AS3

192.0.2.0/23

192.0.2.0/23

192.0.2.0/23 AS1 AS0

192.0.2.0/23 AS3

BGP

192.0.2.0/23 AS1 AS0192.0.2.0/23 AS3

BGP

トラフィックは AS3 にリダイレクト (転送) される!

ANSSI - 2014 年における BGP ハイジャックの検出 13/53

Page 32: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

プレフィックスのハイジャックとは?アクション上の BGP のルール #2

ハイジャック: BGP アナウンスの競合

AS0 AS1 AS2

AS3

192.0.2.0/23192.0.2.0/23192.0.2.0/23 AS1 AS0

192.0.2.0/23 AS3

BGP

192.0.2.0/23 AS1 AS0192.0.2.0/23 AS3

BGP

トラフィックは AS3 にリダイレクト (転送) される!

ANSSI - 2014 年における BGP ハイジャックの検出 13/53

Page 33: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

プレフィックスのハイジャックとは?アクション上の BGP のルール #2

ハイジャック: BGP アナウンスの競合

AS0 AS1 AS2

AS3

192.0.2.0/23192.0.2.0/23192.0.2.0/23 AS1 AS0

192.0.2.0/23 AS3

BGP192.0.2.0/23 AS1 AS0192.0.2.0/23 AS3

BGP

トラフィックは AS3 にリダイレクト (転送) される!

ANSSI - 2014 年における BGP ハイジャックの検出 13/53

Page 34: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

積極的な対策BGP ルール #3 の利用!

AS0 AS1 AS2

AS3

192.0.2.0/23

192.0.2.0/23

192.0.2.0/24192.0.3.0/24

192.0.2.0/23 AS1 AS0192.0.2.0/23 AS3

192.0.2.0/24 AS1 AS0192.0.3.0/24 AS1 AS0

192.0.2.0/23 AS1 AS0192.0.2.0/23 AS3192.0.2.0/24 AS1 AS0192.0.3.0/24 AS1 AS0

BGP

オリジンの AS は特徴的なプレフィックスを通知する

トラフィックは AS0 に送られる!

ANSSI - 2014 年における BGP ハイジャックの検出 14/53

Page 35: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

積極的な対策BGP ルール #3 の利用!

AS0 AS1 AS2

AS3

192.0.2.0/23

192.0.2.0/23

192.0.2.0/24192.0.3.0/24

192.0.2.0/23 AS1 AS0192.0.2.0/23 AS3192.0.2.0/24 AS1 AS0192.0.3.0/24 AS1 AS0

192.0.2.0/23 AS1 AS0192.0.2.0/23 AS3192.0.2.0/24 AS1 AS0192.0.3.0/24 AS1 AS0

BGP

オリジンの AS は特徴的なプレフィックスを通知する

トラフィックは AS0 に送られる!

ANSSI - 2014 年における BGP ハイジャックの検出 14/53

Page 36: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

積極的な対策BGP ルール #3 の利用!

AS0 AS1 AS2

AS3

192.0.2.0/23

192.0.2.0/23

192.0.2.0/24192.0.3.0/24

192.0.2.0/23 AS1 AS0192.0.2.0/23 AS3

192.0.2.0/24 AS1 AS0

192.0.3.0/24 AS1 AS0

192.0.2.0/23 AS1 AS0192.0.2.0/23 AS3192.0.2.0/24 AS1 AS0192.0.3.0/24 AS1 AS0

BGP

オリジンの AS は特徴的なプレフィックスを通知する

トラフィックは AS0 に送られる!

ANSSI - 2014 年における BGP ハイジャックの検出 14/53

Page 37: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

積極的な対策BGP ルール #3 の利用!

AS0 AS1 AS2

AS3

192.0.2.0/23

192.0.2.0/23

192.0.2.0/24192.0.3.0/24

192.0.2.0/23 AS1 AS0192.0.2.0/23 AS3

192.0.2.0/24 AS1 AS0

192.0.3.0/24 AS1 AS0

192.0.2.0/23 AS1 AS0192.0.2.0/23 AS3192.0.2.0/24 AS1 AS0192.0.3.0/24 AS1 AS0

BGP

オリジンの AS は特徴的なプレフィックスを通知する

トラフィックは AS0 に送られる!

ANSSI - 2014 年における BGP ハイジャックの検出 14/53

Page 38: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

10/16 におこった最近の事例フランスの AS に対してのハイジャック

x

ANSSI - 2014 年における BGP ハイジャックの検出 15/53

Page 39: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

10/16 におこった最近の事例フランスの AS に対してのハイジャック

ANSSI - 2014 年における BGP ハイジャックの検出 15/53

Page 40: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

消極的な対策相互接続上の厳格なフィルタ

AS0 AS1 AS2

AS3

192.0.2.0/23

192.0.2.0/23

192.0.2.0/23 64501 64500BGP

• BGP ルータは「UPDATE」メッセージ中のプレフィックスをフィルタリングする

• 便利なフィルタは上位のプロバイダーのみ使用できる

ANSSI - 2014 年における BGP ハイジャックの検出 16/53

Page 41: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

消極的な対策相互接続上の厳格なフィルタ

AS0 AS1 AS2

AS3

192.0.2.0/23

192.0.2.0/23192.0.2.0/23 64501 64500BGP

• BGP ルータは「UPDATE」メッセージ中のプレフィックスをフィルタリングする

• 便利なフィルタは上位のプロバイダーのみ使用できる

ANSSI - 2014 年における BGP ハイジャックの検出 16/53

Page 42: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

消極的な対策フィルタのメンテナンスの自動化

ルートオブジェクト:• IP プレフィックスを担当している AS によって宣言されている

• 誰が BGP のプレフィックスを通知するか問い合わせる• オペレータ, DDoS を緩和させるプロバイダ, クライアント,

$ whois -T route 185.50.64.0/22

route: 185.50.64.0/22descr: Observatory IPv4 prefix.origin: AS202214mnt-by: ASOBS-MNTsource: RIPE # Filtered

ANSSI - 2014 年における BGP ハイジャックの検出 17/53

Page 43: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

オフラインのハイジャック検知

Page 44: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP messages

ANSSI - 2014 年における BGP ハイジャックの検出 19/53

Page 45: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP アーカイブの収集https://www.ris.ripe.net

AS1 AS2 AS3

AS4

AS5

AS6 AS666

192.168.0.0/16 192.168.0.0/24

BGP collector

Routing Information Service (RIS)• 13 の BGP 世界中のコレクター

• 263 の BGP ピア• BGP メッセージをバイナリファイルにダンプ

• 年間 550 GBANSSI - 2014 年における BGP ハイジャックの検出 20/53

Page 46: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP アーカイブの解析https://github.com/ANSSI-FR/parsifal

Raw BGP BGP parser

専用の BGP パーサーが必要• 速く & 信頼できるパーサ

• OCaml で記述されている• BGP メッセージを JSON に変換

• 人間が読み書きできるフォーマット

ANSSI - 2014 年における BGP ハイジャックの検出 21/53

Page 47: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP アーカイブの解析https://github.com/ANSSI-FR/parsifal

{ "timestamp":1409750436, "collector": "rrc07","as_path":"25152 6939 17922 7862 4761 9957 7500 ","announce":[" 192.50.44.0/24 "], "withdraw":[] }

{ "timestamp":1409782437, "collector": "rrc07","as_path":"25152 6939 667 666 ","announce":[" 192.50.44.0/24 "], "withdraw":[] }

専用の BGP パーサーが必要• 速く & 信頼できるパーサ

• OCaml で記述されている• BGP メッセージを JSON に変換

• 人間が読み書きできるフォーマット

ANSSI - 2014 年における BGP ハイジャックの検出 21/53

Page 48: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP アーカイブの解析https://github.com/ANSSI-FR/parsifal

{ "timestamp":1409750436, "collector": "rrc07","as_path":"25152 6939 17922 7862 4761 9957 7500 ","announce":[" 192.50.44.0/24 "], "withdraw":[] }

{ "timestamp":1409782437, "collector": "rrc07","as_path":"25152 6939 667 666 ","announce":[" 192.50.44.0/24 "], "withdraw":[] }

専用の BGP パーサーが必要• 速く & 信頼できるパーサ

• OCaml で記述されている• BGP メッセージを JSON に変換

• 人間が読み書きできるフォーマット

ANSSI - 2014 年における BGP ハイジャックの検出 21/53

Page 49: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP アーカイブの解析https://github.com/ANSSI-FR/parsifal

{ "timestamp":1409750436, "collector": "rrc07","as_path":"25152 6939 17922 7862 4761 9957 7500 ","announce":[" 192.50.44.0/24 "], "withdraw":[] }

{ "timestamp":1409782437, "collector": "rrc07","as_path":"25152 6939 667 666 ","announce":[" 192.50.44.0/24 "], "withdraw":[] }

専用の BGP パーサーが必要• 速く & 信頼できるパーサ

• OCaml で記述されている• BGP メッセージを JSON に変換

• 人間が読み書きできるフォーマット

ANSSI - 2014 年における BGP ハイジャックの検出 21/53

Page 50: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

競合の検出方法は?

1. BGP ルーターのエミュレート

2. フローにそってメッセージを処理

UPDATE WITHDRAW UPDATE UPDATE WITHDRAW

Time

ANSSI - 2014 年における BGP ハイジャックの検出 22/53

Page 51: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP ルータのエミュレートhttps://code.google.com/p/py-radix/

192.0.0.0/8 AS1

192.28.0.0/22 AS2 AS3 192.128.0.0/10 AS4 AS5

192.160.0.0/11 AS7 192.168.128.0/22 AS42

ルーティングテーブルを構築

• 高速に IP を探し出すライブラリ• ルーターと Linux カーネルに似ている

• それぞれの BGP メッセージでツリーが更新される• 重複エントリーが競合のもの

ANSSI - 2014 年における BGP ハイジャックの検出 23/53

Page 52: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP ルータのエミュレートhttps://code.google.com/p/py-radix/

192.0.0.0/8 AS1

192.28.0.0/22 AS2 AS3 192.128.0.0/10 AS4 AS5

192.160.0.0/11 AS7 192.168.128.0/22 AS42

「UPDATE」メッセージの処理{ "timestamp":1409750436, "peer_as":25152,"as_path":"1234 666 ","announce":[" 192.168.128.0/24 "], "withdraw":[] }

ANSSI - 2014 年における BGP ハイジャックの検出 23/53

Page 53: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP ルータのエミュレートhttps://code.google.com/p/py-radix/

192.0.0.0/8 AS1

192.28.0.0/22 AS2 AS3 192.128.0.0/10 AS4 AS5

192.160.0.0/11 AS7 192.168.128.0/22 AS42

「UPDATE」メッセージの処理{ "timestamp":1409750436, "peer_as":25152,"as_path":"1234 666 ","announce":[" 192.168.128.0/24 "], "withdraw":[] }

ANSSI - 2014 年における BGP ハイジャックの検出 23/53

Page 54: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP ルータのエミュレートhttps://code.google.com/p/py-radix/

192.0.0.0/8 AS1

192.28.0.0/22 AS2 AS3 192.128.0.0/10 AS4 AS5

192.160.0.0/11 AS7 192.168.128.0/22 AS42

「UPDATE」メッセージの処理{ "timestamp":1409750436, "peer_as":25152,"as_path":"1234 666 ","announce":[" 192.168.128.0/24 "], "withdraw":[] }

ANSSI - 2014 年における BGP ハイジャックの検出 23/53

Page 55: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

すべてを一緒にする

Raw BGP BGP parser Emulate BGP{ }JSON

シンプルな処理チェイン

• 月ごとに分けて処理• いくつかの AS を監視するには充分な速度

ANSSI - 2014 年における BGP ハイジャックの検出 24/53

Page 56: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

すべてを一緒にする

Raw BGP BGP parser Emulate BGP{ }JSON

5 万の AS を処理する場合• エミュレートしたルータは異なる AS として振る舞う• 8 コアで、1ヶ月分は 10 時間の処理量

13 のコレクタで、年間 156ヶ月分の処理をしなければならない!

ANSSI - 2014 年における BGP ハイジャックの検出 24/53

Page 57: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

より速い競合の検知コアを追加してスケールさせる

Raw BGP BGP parser Emulate BGP{ }JSON

Raw BGP BGP parser Emulate BGP{ }JSON

Raw BGP BGP parser Emulate BGP{ }JSON

Raw BGP BGP parser Emulate BGP{ }JSON

競合検知

• 1 週間分は 5 つのサーバで 120 コアで処理できる• 年間で 130 GB のデータを生成

• 11 536 345 959 の競合

ANSSI - 2014 年における BGP ハイジャックの検出 25/53

Page 58: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

より速い競合の検知コアを追加してスケールさせる

Raw BGP BGP parser Emulate BGP{ }JSON

Raw BGP BGP parser Emulate BGP{ }JSON

Raw BGP BGP parser Emulate BGP{ }JSON

Raw BGP BGP parser Emulate BGP{ }JSON

競合の例

{ "timestamp":1409782437, "collector": "rrc07","announce": { "prefix": " 192.50.44.0/24 ", "asn": 666 ,

"as_path": "25152 6939 667 666"},"conflict_with": {"prefix": " 192.50.44.0/24 ", "asn": 7500 }}

ANSSI - 2014 年における BGP ハイジャックの検出 25/53

Page 59: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

データへのアクセスhttp://discoproject.org

ディスコ?• 自動データ配信と分配

• HDFS のように• Python による MapReduce フレームワーク

• Hadoop のように

ANSSI - 2014 年における BGP ハイジャックの検出 26/53

Page 60: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

データへのアクセスhttp://discoproject.org

ビックデータからスモールデータへ

• 1 時間で 1000 の AS の競合を抽出する• フランスと日本の AS は似ている物がいくつかある

• 7000 万の競合が 1 カ国である• 200MB

ANSSI - 2014 年における BGP ハイジャックの検出 26/53

Page 61: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

競合のクラスタ分類 - 1/3ルートオブジェクトを使用

単一競合の検証

{ "timestamp": 1409782437, "collector": "rrc07","announce": { "prefix": " 192.50.44.0/24 ", "asn": 666 ,

"as_path": "25152 6939 667 666"},"conflict_with": {"prefix": "192.50.44.0/24", "asn": 7500}}

ANSSI - 2014 年における BGP ハイジャックの検出 27/53

Page 62: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

競合のクラスタ分類 - 1/3ルートオブジェクトを使用

単一競合の検証

{ "timestamp": 1409782437, "collector": "rrc07","announce": { "prefix": " 192.50.44.0/24 ", "asn": 666 ,

"as_path": "25152 6939 667 666"},"conflict_with": {"prefix": "192.50.44.0/24", "asn": 7500}}

$ whois -T route 192.50.44.0/24

route: 192.50.44.0/24descr: Example prefixorigin: AS666mnt-by: AS666-MNT

ANSSI - 2014 年における BGP ハイジャックの検出 27/53

Page 63: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

競合のクラスタ分類 - 1/3ルートオブジェクトを使用

単一競合の検証

{ "timestamp": 1409782437, "collector": "rrc07","announce": { "prefix": " 192.50.44.0/24 ", "asn": 666 ,

"as_path": "25152 6939 667 666"},"conflict_with": {"prefix": "192.50.44.0/24", "asn": 7500}}

$ whois -T route 192.50.44.0/24

route: 192.50.44.0/24descr: Example prefixorigin: AS666mnt-by: AS666-MNT

ANSSI - 2014 年における BGP ハイジャックの検出 27/53

Page 64: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

競合のクラスタ分類 - 1/3ルートオブジェクトを使用

7000 万の競合の検証• 全てが検証されなければならない• オンラインクエリーは遅すぎる

• WHOIS データベースは毎日 PostgreSQL にロードされる• ip4r タイプは高速プレフィックス検索に使用される

>>> client = Client("ripe")>>> client.check("210.158.206.0/24", 17676, "2014/07/28")True

0.01% の競合を削除32% の競合を削除

ANSSI - 2014 年における BGP ハイジャックの検出 27/53

Page 65: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

競合のクラスタ分類 - 2/3AS オブジェクト間の関連を使用

$ whois AS15557aut-num: AS15557as-name: LDCOMNETdescr: SFRorg: ORG-LA7-RIPEadmin-c: LD699-RIPEtech-c: LDC76-RIPEstatus: ASSIGNEDmnt-by: LDCOM-MNTmnt-routes: FMCF-MNTmnt-routes: LDCOM-MNTsource: RIPE

$ whois AS41272aut-num: AS41272as-name: MOSELLE-TELE-ASdescr: MOSELLE TELECOMorg: ORG-MT18-RIPEadmin-c: LD699-RIPEtech-c: LDC76-RIPEstatus: ASSIGNEDmnt-by: MOSELLE-TELE-MNT

mnt-routes: MOSELLE-TELE-MNTsource: RIPE

2% の競合を削除54% の競合を削除

ANSSI - 2014 年における BGP ハイジャックの検出 28/53

Page 66: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

競合のクラスタ分類 - 3/3クライアント/プロバイダーの接続性を使用

{ "timestamp": 1409750436,"announce": { "prefix": "192.0.2.0/24", "asn": 666,

"as_path": "... 1000 666" },"conflict_with": {"prefix": "192.0.0.0/16", "asn": 1000 } }

Client/Provider relation

Internet AS1000 AS666

192.168.0.0/16 1000192.0.2.0/24 1000 666

BGP

5% の競合を削除3% の競合を削除

ANSSI - 2014 年における BGP ハイジャックの検出 29/53

Page 67: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

競合のクラスタ分類 - 3/3クライアント/プロバイダーの接続性を使用

{ "timestamp": 1409750436,"announce": { "prefix": "192.0.2.0/24", "asn": 666,

"as_path": "... 1000 666" },"conflict_with": {"prefix": "192.0.0.0/16", "asn": 1000 } }

Client/Provider relation

Internet AS1000 AS666

192.168.0.0/16 1000192.0.2.0/24 1000 666

BGP

5% の競合を削除3% の競合を削除

ANSSI - 2014 年における BGP ハイジャックの検出 29/53

Page 68: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

競合のクラスタ分類 - 3/3クライアント/プロバイダーの接続性を使用

{ "timestamp": 1409750436,"announce": { "prefix": "192.0.2.0/24", "asn": 666,

"as_path": "... 1000 666" },"conflict_with": {"prefix": "192.0.0.0/16", "asn": 1000 } }

Client/Provider relation

Internet AS1000 AS666

192.168.0.0/16 1000192.0.2.0/24 1000 666

BGP

5% の競合を削除3% の競合を削除

ANSSI - 2014 年における BGP ハイジャックの検出 29/53

Page 69: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

競合のクラスタ分類要約

Validated Related Connected Abnormal0 %

30 %

60 %

90 %

32

54

311

0 2 5

93

Perc

enta

geof

confl

icts

France Japan

4200 万の異常な競合800 万の異常な競合

ANSSI - 2014 年における BGP ハイジャックの検出 30/53

Page 70: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

計算期間競合からイベントまで

Time| | | | | | | | | | | |

集約後集約前{ "timestamp": 20141111.0, "collector": "rrc99" ,

"type": "RELATION","announce": { "prefix": "1.6.28.0/24", "asn": 666 }"conflict_with": {"prefix": "1.6.0.0/18", "asn": 1000 } }

{ "timestamp": 20141231.0, "collector": "rrc66" ,type": "RELATION","announce": { "prefix": "1.6.28.0/24", "asn": 666 }"conflict_with": {"prefix": "1.6.0.0/18", "asn": 1000 } }ANSSI - 2014 年における BGP ハイジャックの検出 31/53

Page 71: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

計算期間競合からイベントまで

Time| | | | | | | | | | | |

集約後集約後{ "conflict_with" : { "prefix" : "1.6.0.0/18", "asn" : 1000 },

"origin" : { "prefix" : "1.6.28.0/24", "asn" : 666 },"begin": 20141111.0,"end" : 20141231.0,"peers" : [ "rrc99", "rrc66" ],"type" : "RELATION" }

74 084 イベント73 902 イベントANSSI - 2014 年における BGP ハイジャックの検出 31/53

Page 72: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

イベントの可視化フランスの AS

10/28/2014 localhost:2807/timeslots/AS3215

http://localhost:2807/timeslots/AS3215 1/1

2014 February March April May June July August September October November December

ANSSI - 2014 年における BGP ハイジャックの検出 32/53

Page 73: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

イベントの可視化日本の AS

10/28/2014 localhost:2807/timeslots/AS2706

http://localhost:2807/timeslots/AS2706 1/1

2014 February March April May June July August September October

ANSSI - 2014 年における BGP ハイジャックの検出 32/53

Page 74: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

イベントの数を減らす自動的に

簡単なルール

• カテゴリを変更するイベントを削除• AS が同じ国に属しているイベントを削除• 6ヶ月より長いイベントを削除

2154 のプレフィックスから 557 の競合4519 のプレフィックスから 289 の競合

ANSSI - 2014 年における BGP ハイジャックの検出 33/53

Page 75: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

ハイジャックを探して

ANSSI - 2014 年における BGP ハイジャックの検出 34/53

Page 76: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

イベントの数を減らす手動的に

興味深い結果

• 似たような AS 名• PACNET-MY Pacnet MY や PACNET Pacnet Global Ltd

• DDoS 攻撃から守られた AS• DDoS 攻撃を緩和する会社のアナウンス /24

• AS 番号のミスタイプ• 2208 や 208

• ビットコインを盗むためにハイジャックされたもの• ...

ANSSI - 2014 年における BGP ハイジャックの検出 35/53

Page 77: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

閉会挨拶

もしかすると

69 の疑わしいイベント102 の疑わしいイベント

ANSSI - 2014 年における BGP ハイジャックの検出 36/53

Page 78: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

リアルタイム BGP ハイジャックの検知

Page 79: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

Targeted Internet Traffic MisdirectionRenesys が 2013/11/19 に報告している

ANSSI - 2014 年における BGP ハイジャックの検出 38/53

Page 80: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

リアルタイム検知のゴール

BGP messages Hijacks

Alerts

Measurements

ANSSI - 2014 年における BGP ハイジャックの検出 39/53

Page 81: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

検知に必要なものhttps://github.com/spotify/luigi

{ }

タスク 1/2

• インターネットレジストリ

• すぐに利用できる生のBGP データを取得

タスク 2/2

• WHOIS データベースと同期• BGP データを JSON に整形• IPプレフィックスから ASの位置マップを生成

ANSSI - 2014 年における BGP ハイジャックの検出 40/53

Page 82: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

検知に必要なものhttps://github.com/spotify/luigi

{ }

タスク 1/2

• インターネットレジストリ

• すぐに利用できる生のBGP データを取得

タスク 2/2

• WHOIS データベースと同期• BGP データを JSON に整形• IPプレフィックスから ASの位置マップを生成

ANSSI - 2014 年における BGP ハイジャックの検出 40/53

Page 83: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP ハイジャックの報告

報告

• 疑わしいハイジャックだけ• 50 のイベントについて毎週

< hadron> 2a04:8000::/29 is announced from multiple origins:< hadron> SFR-BUSINESS-TEAM (AS12566)< hadron> Ukraine-AS (AS200000)< hadron> First originated from SFR-BUSINESS-TEAM (AS12566)

ANSSI - 2014 年における BGP ハイジャックの検出 41/53

Page 84: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP ハイジャックの報告IRC は 2014

報告

• 疑わしいハイジャックだけ• 50 のイベントについて毎週

< hadron> 2a04:8000::/29 is announced from multiple origins:< hadron> SFR-BUSINESS-TEAM (AS12566)< hadron> Ukraine-AS (AS200000)< hadron> First originated from SFR-BUSINESS-TEAM (AS12566)

ANSSI - 2014 年における BGP ハイジャックの検出 41/53

Page 85: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP ハイジャックのトラブルシューティング

< hadron> 2a04:8000::/29 is announced from multiple origins:< hadron> SFR-BUSINESS-TEAM (AS12566)< hadron> Ukraine-AS (AS200000)< hadron> First originated from SFR-BUSINESS-TEAM (AS12566)

$ whois 2a04:8000::/29inet6num: 2a04:8000::/29netname: UA-UAHOSTINGdescr: Hosting Ukrainecountry: UAorg: ORG-HUL6-RIPE

$ whois -i org ORG-HUL6-RIPEaut-num: AS200000as-name: Ukraine-ASdescr: Hosting Ukraineorg: ORG-HUL6-RIPE

ANSSI - 2014 年における BGP ハイジャックの検出 42/53

Page 86: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP ハイジャックのトラブルシューティング

< hadron> 2a04:8000::/29 is announced from multiple origins:< hadron> SFR-BUSINESS-TEAM (AS12566)< hadron> Ukraine-AS (AS200000)< hadron> First originated from SFR-BUSINESS-TEAM (AS12566)

$ whois 2a04:8000::/29inet6num: 2a04:8000::/29netname: UA-UAHOSTINGdescr: Hosting Ukrainecountry: UAorg: ORG-HUL6-RIPE

$ whois -i org ORG-HUL6-RIPEaut-num: AS200000as-name: Ukraine-ASdescr: Hosting Ukraineorg: ORG-HUL6-RIPE

ANSSI - 2014 年における BGP ハイジャックの検出 42/53

Page 87: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP ハイジャックのトラブルシューティング

< hadron> 2a04:8000::/29 is announced from multiple origins:< hadron> SFR-BUSINESS-TEAM (AS12566)< hadron> Ukraine-AS (AS200000)< hadron> First originated from SFR-BUSINESS-TEAM (AS12566)

$ whois 2a04:8000::/29inet6num: 2a04:8000::/29netname: UA-UAHOSTINGdescr: Hosting Ukrainecountry: UAorg: ORG-HUL6-RIPE

$ whois -i org ORG-HUL6-RIPE

aut-num: AS200000as-name: Ukraine-ASdescr: Hosting Ukraineorg: ORG-HUL6-RIPE

ANSSI - 2014 年における BGP ハイジャックの検出 42/53

Page 88: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP ハイジャックのトラブルシューティング

< hadron> 2a04:8000::/29 is announced from multiple origins:< hadron> SFR-BUSINESS-TEAM (AS12566)< hadron> Ukraine-AS (AS200000)< hadron> First originated from SFR-BUSINESS-TEAM (AS12566)

$ whois 2a04:8000::/29inet6num: 2a04:8000::/29netname: UA-UAHOSTINGdescr: Hosting Ukrainecountry: UAorg: ORG-HUL6-RIPE

$ whois -i org ORG-HUL6-RIPEaut-num: AS200000as-name: Ukraine-ASdescr: Hosting Ukraineorg: ORG-HUL6-RIPE

ANSSI - 2014 年における BGP ハイジャックの検出 42/53

Page 89: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP ハイジャックのトラブルシューティング

< hadron> 2a04:8000::/29 is announced from multiple origins:< hadron> SFR-BUSINESS-TEAM (AS12566)< hadron> Ukraine-AS (AS200000)< hadron> First originated from SFR-BUSINESS-TEAM (AS12566)

$ whois 2a04:8000::/29inet6num: 2a04:8000::/29netname: UA-UAHOSTINGdescr: Hosting Ukrainecountry: UAorg: ORG-HUL6-RIPE

$ whois -i org ORG-HUL6-RIPEaut-num: AS200000as-name: Ukraine-ASdescr: Hosting Ukraineorg: ORG-HUL6-RIPE

ANSSI - 2014 年における BGP ハイジャックの検出 42/53

Page 90: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP ハイジャックのトラブルシューティング

< hadron> 2a04:8000::/29 is announced from multiple origins:< hadron> SFR-BUSINESS-TEAM (AS12566)< hadron> Ukraine-AS (AS200000)< hadron> First originated from SFR-BUSINESS-TEAM (AS12566)

Analysis Result• 2a04:8000::/29 ウクライナのオペレータのプレフィックス

• 2a04:0800::/29 フランスのオペレータのプレフィックス• フランスのオペレーターからの返事には矛盾があった

とても疑わしいハイジャックイベントはフォールスポジティブであった route6 オブジェクトはウクライナのオペレーターに

よって数日後に作成された

ANSSI - 2014 年における BGP ハイジャックの検出 43/53

Page 91: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP ハイジャックのトラブルシューティング

< hadron> 2a04:8000::/29 is announced from multiple origins:< hadron> SFR-BUSINESS-TEAM (AS12566)< hadron> Ukraine-AS (AS200000)< hadron> First originated from SFR-BUSINESS-TEAM (AS12566)

Analysis Result• 2a04:8000::/29 ウクライナのオペレータのプレフィックス

• 2a04:0800::/29 フランスのオペレータのプレフィックス• フランスのオペレーターからの返事には矛盾があった

とても疑わしいハイジャックイベントはフォールスポジティブであった route6 オブジェクトはウクライナのオペレーターに

よって数日後に作成された

ANSSI - 2014 年における BGP ハイジャックの検出 43/53

Page 92: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

BGP ハイジャックのトラブルシューティング

< hadron> 2a04:8000::/29 is announced from multiple origins:< hadron> SFR-BUSINESS-TEAM (AS12566)< hadron> Ukraine-AS (AS200000)< hadron> First originated from SFR-BUSINESS-TEAM (AS12566)

Analysis Result• 2a04:8000::/29 ウクライナのオペレータのプレフィックス

• 2a04:0800::/29 フランスのオペレータのプレフィックス• フランスのオペレーターからの返事には矛盾があった

とても疑わしいハイジャックイベントはフォールスポジティブであった route6 オブジェクトはウクライナのオペレーターに

よって数日後に作成された

ANSSI - 2014 年における BGP ハイジャックの検出 43/53

Page 93: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

Malicious BGP Hijack

< hadron> 185.73.204.0/22 is announced from multiple origins:< hadron> ALPHALINK-AS (AS25540)< hadron> TEHNOGRUP (AS198596)

ANSSI - 2014 年における BGP ハイジャックの検出 44/53

Page 94: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

https://stat.ripe.net/AS198596

Announces from September to October 2014

ANSSI - 2014 年における BGP ハイジャックの検出 45/53

Page 95: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

Malicious BGP HijackInfected AS_PATH

< hadron> 185.73.204.0/22 is announced from multiple origins:< hadron> ALPHALINK-AS (AS25540)< hadron> TEHNOGRUP (AS198596)< hadron> AS_PATH: 8607 39792 44050 131788 198596

ANSSI - 2014 年における BGP ハイジャックの検出 46/53

Page 96: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

Malicious BGP HijackInfected AS_PATH

< hadron> 185.73.204.0/22 is announced from multiple origins:< hadron> ALPHALINK-AS (AS25540)< hadron> TEHNOGRUP (AS198596)< hadron> AS_PATH: 8607 39792 44050 131788 198596

Definition• コレクターのピアまでアナウンスを転送するすべての ASを含む

• このゾーンから送信されたトラフィックはハイジャックネットワークまで到達しなけれ

ANSSI - 2014 年における BGP ハイジャックの検出 46/53

Page 97: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

Malicious BGP HijackInfected AS_PATH

< hadron> 185.73.204.0/22 is announced from multiple origins:< hadron> ALPHALINK-AS (AS25540)< hadron> TEHNOGRUP (AS198596)< hadron> AS_PATH: 8607 39792 44050 131788 198596

Definition• コレクターのピアまでアナウンスを転送するすべての ASを含む

• このゾーンから送信されたトラフィックはハイジャックネットワークまで到達しなけれ

ばならないどのようにこのゾーンの内側からアクティブな測定ができるか?

ANSSI - 2014 年における BGP ハイジャックの検出 46/53

Page 98: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

RIPE Atlas プロジェクトhttps://atlas.ripe.net/

• 7100 probes in around 2000 ASes• コミュニティがホストする調査• ユーザー定義済みの測定• ping, traceroute, HTTP, TLS and DNS• パブリックな API

ANSSI - 2014 年における BGP ハイジャックの検出 47/53

Page 99: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

ANSSI - 2014 年における BGP ハイジャックの検出 48/53

Page 100: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

Atlas は我々の要件を満たしている

We always found a probe to launch our measurements!• 250 possible hijacks from september to november 2014• AS_PATH are from the London based RIPE collector

Number of probes found in infected ASes:

2 4 6 8 10 12 140 %

5 %

10 %

15 %

20 %

Num of probes

Hija

cks

ANSSI - 2014 年における BGP ハイジャックの検出 49/53

Page 101: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

Atlas は我々の要件を満たしている

We always found a probe to launch our measurements!• 250 possible hijacks from september to november 2014• AS_PATH are from the London based RIPE collector

Number of probes found in infected ASes:

2 4 6 8 10 12 140 %

5 %

10 %

15 %

20 %

Num of probes

Hija

cks

ANSSI - 2014 年における BGP ハイジャックの検出 49/53

Page 102: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

Traceroute Example

< hadron> 185.73.204.0/22 is announced from multiple origins:< hadron> ALPHALINK-AS (AS25540)< hadron> TEHNOGRUP (AS198596)< hadron> AS_PATH: 8607 39792 44050 131788 198596

Traceroute to185.73.204.1

1. 10.10.10.12. 82.118.96.13. 188.124.228.14. 95.215.3.785. * * *

ANSSI - 2014 年における BGP ハイジャックの検出 50/53

Page 103: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

Traceroute Example

< hadron> 185.73.204.0/22 is announced from multiple origins:< hadron> ALPHALINK-AS (AS25540)< hadron> TEHNOGRUP (AS198596)< hadron> AS_PATH: 8607 39792 44050 131788 198596

Traceroute to185.73.204.1

1. 10.10.10.12. 82.118.96.13. 188.124.228.14. 95.215.3.785. * * *

ANSSI - 2014 年における BGP ハイジャックの検出 50/53

Page 104: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

Traceroute Example

< hadron> 185.73.204.0/22 is announced from multiple origins:< hadron> ALPHALINK-AS (AS25540)< hadron> TEHNOGRUP (AS198596)< hadron> AS_PATH: 8607 39792 44050 131788 198596

Traceroute to185.73.204.1

1. 10.10.10.12. 82.118.96.13. 188.124.228.14. 95.215.3.785. * * *

ANSSI - 2014 年における BGP ハイジャックの検出 50/53

Page 105: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

Traceroute Example

< hadron> 185.73.204.0/22 is announced from multiple origins:< hadron> ALPHALINK-AS (AS25540)< hadron> TEHNOGRUP (AS198596)< hadron> AS_PATH: 8607 39792 44050 131788 198596

Traceroute to185.73.204.1

1. 10.10.10.12. 82.118.96.13. 188.124.228.14. 95.215.3.785. * * *

ANSSI - 2014 年における BGP ハイジャックの検出 50/53

Page 106: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

Traceroute Example

< hadron> 185.73.204.0/22 is announced from multiple origins:< hadron> ALPHALINK-AS (AS25540)< hadron> TEHNOGRUP (AS198596)< hadron> AS_PATH: 8607 39792 44050 131788 198596

Traceroute to185.73.204.1

1. 10.10.10.12. 82.118.96.13. 188.124.228.14. 95.215.3.785. * * *

ANSSI - 2014 年における BGP ハイジャックの検出 50/53

Page 107: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

Traceroute Example

< hadron> 185.73.204.0/22 is announced from multiple origins:< hadron> ALPHALINK-AS (AS25540)< hadron> TEHNOGRUP (AS198596)< hadron> AS_PATH: 8607 39792 44050 131788 198596

Closing Remarks• traceroute stops at AS44050 (PIN-AS)• AS131788 and AS198596 are most certainly placeholders• AS44050 (PIN-AS) is already known for previous hijacks

ANSSI - 2014 年における BGP ハイジャックの検出 51/53

Page 108: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

結論

• 大規模な BGP ハイジャックの自動検出• フランスと日本に関しては年間わずかなハイジャック• 早期発見と報告• トラフィックのリダイレクトの識別を継続的に調査

メッセージの窃取

1. インターネット上のパケットはリダイレクト可能2. トラフィックは暗号化と認証される必要がある3. オペレータはプレフィックスを監視し、具体的なアナウンスの準備をする必要がある

4. ネットワーキングのベストプラクティスを実施しなければならない

ANSSI - 2014 年における BGP ハイジャックの検出 52/53

Page 109: 2014 年における BGP ハイジャックの検出 - PacSec · update メッセージでip プレイフィックスを通知 withdraw メッセージでip プレフィックスを削除

質問?

関連研究

• BGP 設定のベストプラクティス (英語とフランス語)

ANSSI - 2014 年における BGP ハイジャックの検出 53/53