2014 年における BGP ハイジャックの検出
ギョーム・バラドン - Guillaume Valadon
ニコラス・ヴィヴェ- Nicolas Vivet
Agence nationale de la sécurité des systèmes d’information
http://www.ssi.gouv.fr/en
暗号通貨取得のための BGP ハイジャッキング
2014/8/7 Dell SecureWorks のレポートより
« 2014 年の 2 月から 5 月で、一人のハイジャック犯によって暗
号通貨がマイナーから自分のプールにリダイレクトされた。そ
の金額はおよそ 83,000$ にのぼる »
攻撃要件
• マイナーとプールの間に認証が無い
• BGP のプレフィックスハイジャックを利用したトラフィック
のリダイレクト
ANSSI -2014 年における BGP ハイジャックの検出 2/53BGP とは (Border Gateway Protocol) ?
すべてのインターネット事業者によって使用されるルーティン
グプロトコル
いくつかの BGP の特徴
• 179/TCP を使用
• オペレータが IP プレフィックスを担当していることを通知
• オペレータが嘘をついている場合はそれを保証できない• インターネット事業者を相互接続
ANSSI -2014 年における BGP ハイジャックの検出 4/53BGP とは (Border Gateway Protocol) ?
すべてのインターネット事業者によって使用されるルーティン
グプロトコル
いくつかの BGP の特徴
• 179/TCP を使用
• オペレータが IP プレフィックスを担当していることを通知
• オペレータが嘘をついている場合はそれを保証できない• インターネット事業者を相互接続
BGP とは (Border Gateway Protocol) ?
すべてのインターネット事業者によって使用されるルーティン
グプロトコル
いくつかの BGP の特徴
• 179/TCP を使用
• オペレータが IP プレフィックスを担当していることを通知
• オペレータが嘘をついている場合はそれを保証できない• インターネット事業者を相互接続
ANSSI -2014 年における BGP ハイジャックの検出 4/53BGP とは (Border Gateway Protocol) ?
すべてのインターネット事業者によって使用されるルーティン
グプロトコル
いくつかの BGP の特徴
• 179/TCP を使用
• オペレータが IP プレフィックスを担当していることを通知
• オペレータが嘘をついている場合はそれを保証できない• インターネット事業者を相互接続
オペレータは数字!
オペレータと BGP:
• 自律システム
• 固有の番号をもっている
3215
6939
4725
ANSSI -2014 年における BGP ハイジャックの検出 5/53オペレータは数字!
オペレータと BGP:
• 自律システム
• 固有の番号をもっている
BGP を使用するのに何が必要?
• ネットワーク
• AS 番号
• IP プレフィックス
• BGP ルーター
• BGP の相互接続
AS transit
ISP providing BGP
Internet
AS42
AS42
2.0.0.0/16 ANSSI -2014 年における BGP ハイジャックの検出 6/53BGP を使用するのに何が必要?
• ネットワーク
• AS 番号
• IP プレフィックス
• BGP ルーター
• BGP の相互接続
AS transit
ISP providing BGP
Internet
AS42
AS42
2.0.0.0/16BGP を使用するのに何が必要?
• ネットワーク
• AS 番号
• IP プレフィックス
• BGP ルーター
• BGP の相互接続
AS transit
ISP providing BGP
Internet
AS42
AS42
2.0.0.0/16 ANSSI -2014 年における BGP ハイジャックの検出 6/53BGP を使用するのに何が必要?
• ネットワーク
• AS 番号
• IP プレフィックス
• BGP ルーター
• BGP の相互接続
AS transit
ISP providing BGP
Internet
AS42
AS42
2.0.0.0/16インターネットのリソース割り当て
AS とプレフィックスは各地域のインターネットレジストリで割
り当てられる:
ヨーロッパ
アジア
アフリカ
北アメリカ
ラテンアメリカ & カリブ海
ヨーロッパでは ASN のコストは年間 50 ユーロか /22 50 ユー
ロ
ANSSI -2014 年における BGP ハイジャックの検出 7/53インターネットリソース割り当ての確認
WHOIS プロトコル
$ whois AS4713
aut-num:
AS4713
as-name:
OCN
descr:
NTT Communications Corporation
[..]
country:
JP
admin-c:
AY1361JP
tech-c:
TT10660JP
tech-c:
TT15086JP
changed:
[email protected] 19960911
changed:
[email protected] 20091113
source:
JPNIC
インターネットリソース割り当ての確認
WHOIS プロトコル
$ whois AS4713
aut-num:
AS4713
as-name:
OCN
descr:
NTT Communications Corporation
[..]
country:
JP
admin-c:
AY1361JP
tech-c:
TT10660JP
tech-c:
TT15086JP
changed:
[email protected] 19960911
changed:
[email protected] 20091113
source:
JPNIC
ANSSI -2014 年における BGP ハイジャックの検出 8/53インターネットリソース割り当ての確認
https://stat.ripe.net
AS 通知 & プレフィックスの削除
BGP では、オペレータが使う:
•
UPDATE
メッセージで IP プレイフィックスを通知
•
WITHDRAW
メッセージで IP プレフィックスを削除
Internet
AS43515
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/53AS 通知 & プレフィックスの削除
BGP では、オペレータが使う:
•
UPDATE
メッセージで IP プレイフィックスを通知
•
WITHDRAW
メッセージで IP プレフィックスを削除
Internet
AS43515
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/22AS 通知 & プレフィックスの削除
BGP では、オペレータが使う:
•
UPDATE
メッセージで IP プレイフィックスを通知
•
WITHDRAW
メッセージで IP プレフィックスを削除
Internet
AS43515
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/533 つのシンプルな 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 AS1
BGP
192.0.2.0/24 AS1 AS2
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 AS1
BGP
192.0.2.0/24 AS1 AS2BGP
ANSSI -2014 年における BGP ハイジャックの検出 11/533 つのシンプルな 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 AS1
BGP
192.0.2.0/24 AS1 AS2
3 つのシンプルな BGP ルール
1. メッセージは、ASN を追加した後に、ネイバー(Neighbor)
に転送される
2. 最短のパスのみが転送される
3.
パケットは最も特徴的なプレフィックスに送信される
AS1
AS2
AS3
AS4
Internet
192.0.2.0/24 AS1 192.0.2.0/24 AS1 AS3BGP
192.0.2.0/24 AS1 192.0.2.0/24 AS1 AS3BGP
192.0.2.0/24 AS1 AS2BGP
192.0.2.0/24 ANSSI -2014 年における BGP ハイジャックの検出 11/533 つのシンプルな BGP ルール
1. メッセージは、ASN を追加した後に、ネイバー(Neighbor)
に転送される
2. 最短のパスのみが転送される
3.
パケットは最も特徴的なプレフィックスに送信される
AS1
AS2
AS3
AS4
Internet
192.0.2.0/24 AS1 192.0.2.0/24 AS1 AS3BGP
192.0.2.0/24 AS1 192.0.2.0/24 AS1 AS3BGP
192.0.2.0/24 AS1 AS2BGP
192.0.2.0/243 つのシンプルな 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 AS1 192.0.2.0/24 AS3 AS1BGP
192.0.0.0/16 AS4 AS1 192.0.2.0/24 AS3 AS1BGP
192.0.2.42
ANSSI -2014 年における BGP ハイジャックの検出 11/533 つのシンプルな BGP ルール
1. メッセージは、ASN を追加した後に、ネイバー(Neighbor)
に転送される
2. 最短のパスのみが転送される
3. パケットは最も特徴的なプレフィックスに送信される
AS1
AS2
AS4
Internet
192.0.0.0/16 192.0.2.0/24 192.0.0.0/16 AS4 AS1 192.0.2.0/24 AS3 AS1BGP
192.0.0.0/16 AS4 AS1 192.0.2.0/24 AS3 AS1BGP
192.0.2.42
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 AS1 192.0.2.0/24 AS3 AS1BGP
192.0.0.0/16 AS4 AS1 192.0.2.0/24 AS3 AS1BGP
192.0.2.42
ANSSI -2014 年における BGP ハイジャックの検出 11/533 つのシンプルな BGP ルール
1. メッセージは、ASN を追加した後に、ネイバー(Neighbor)
に転送される
2. 最短のパスのみが転送される
3. パケットは最も特徴的なプレフィックスに送信される
AS1
AS2
AS4
Internet
192.0.0.0/16 192.0.2.0/24 192.0.0.0/16 AS4 AS1 192.0.2.0/24 AS3 AS1BGP
192.0.0.0/16 AS4 AS1 192.0.2.0/24 AS3 AS1BGP
192.0.2.42
プレフィックスのハイジャックとは?
アクション上の 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 AS3BGP
192.0.2.0/23 AS1 AS0 192.0.2.0/23 AS3BGP
トラフィックは AS3 にリダイレクト (転送) される!
プレフィックスのハイジャックとは?
アクション上の 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 AS3BGP
192.0.2.0/23 AS1 AS0 192.0.2.0/23 AS3BGP
トラフィックは AS3 にリダイレクト (転送) される!
ANSSI -2014 年における BGP ハイジャックの検出 13/53プレフィックスのハイジャックとは?
アクション上の 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 AS3BGP
192.0.2.0/23 AS1 AS0 192.0.2.0/23 AS3BGP
トラフィックは AS3 にリダイレクト (転送) される!
積極的な対策
BGP ルール #3 の利用!
AS0
AS1
AS2
AS3
192.0.2.0/23 192.0.2.0/23 192.0.2.0/24 192.0.3.0/24 192.0.2.0/23 AS1 AS0 192.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 AS0 192.0.2.0/23 AS3 192.0.2.0/24 AS1 AS0 192.0.3.0/24 AS1 AS0BGP
オリジンの AS は特徴的なプレフィックスを通知する
トラフィックは AS0 に送られる!
ANSSI -2014 年における BGP ハイジャックの検出 14/53積極的な対策
BGP ルール #3 の利用!
AS0
AS1
AS2
AS3
192.0.2.0/23 192.0.2.0/23 192.0.2.0/24 192.0.3.0/24 192.0.2.0/23 AS1 AS0 192.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 AS0 192.0.2.0/23 AS3 192.0.2.0/24 AS1 AS0 192.0.3.0/24 AS1 AS0BGP
オリジンの AS は特徴的なプレフィックスを通知する
トラフィックは AS0 に送られる!
積極的な対策
BGP ルール #3 の利用!
AS0
AS1
AS2
AS3
192.0.2.0/23 192.0.2.0/23 192.0.2.0/24 192.0.3.0/24 192.0.2.0/23 AS1 AS0 192.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 AS0 192.0.2.0/23 AS3 192.0.2.0/24 AS1 AS0 192.0.3.0/24 AS1 AS0BGP
オリジンの AS は特徴的なプレフィックスを通知する
トラフィックは AS0 に送られる!
ANSSI -2014 年における BGP ハイジャックの検出 14/53積極的な対策
BGP ルール #3 の利用!
AS0
AS1
AS2
AS3
192.0.2.0/23 192.0.2.0/23 192.0.2.0/24 192.0.3.0/24 192.0.2.0/23 AS1 AS0 192.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 AS0 192.0.2.0/23 AS3 192.0.2.0/24 AS1 AS0 192.0.3.0/24 AS1 AS0BGP
オリジンの AS は特徴的なプレフィックスを通知する
トラフィックは AS0 に送られる!
10/16 におこった最近の事例
フランスの AS に対してのハイジャック
x
10/16 におこった最近の事例
消極的な対策
相互接続上の厳格なフィルタ
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消極的な対策
相互接続上の厳格なフィルタ
AS0
AS1
AS2
AS3
192.0.2.0/23 192.0.2.0/23 192.0.2.0/23 64501 64500BGP
• BGP ルータは「UPDATE」メッセージ中のプレフィックス
をフィルタリングする
• 便利なフィルタは上位のプロバイダーのみ使用できる
消極的な対策
フィルタのメンテナンスの自動化
ルートオブジェクト:
• IP プレフィックスを担当している AS によって宣言されて
いる
• 誰が BGP のプレフィックスを通知するか問い合わせる
• オペレータ, DDoS を緩和させるプロバイダ, クライアント, … $ whois -T route 185.50.64.0/22 route: 185.50.64.0/22descr: Observatory IPv4 prefix.
origin: AS202214
mnt-by: ASOBS-MNT
source: RIPE # Filtered
BGP messages
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 世界中のコレクター
BGP アーカイブの解析
https://github.com/ANSSI-FR/parsifal
Raw BGP
BGP parser
専用の BGP パーサーが必要
• 速く & 信頼できるパーサ
• OCaml で記述されている• BGP メッセージを JSON に変換
• 人間が読み書きできるフォーマット ANSSI -2014 年における BGP ハイジャックの検出 21/53BGP アーカイブの解析
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 に変換
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/53BGP アーカイブの解析
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 に変換
競合の検出方法は?
1. BGP ルーターのエミュレート
2. フローにそってメッセージを処理
UPDATE WITHDRAW UPDATE UPDATE WITHDRAW
Time
BGP ルータのエミュレート
https://code.google.com/p/py-radix/
192.0.0.0/8 AS1192.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 を探し出すライブラリ
BGP ルータのエミュレート
https://code.google.com/p/py-radix/
192.0.0.0/8 AS1192.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/53BGP ルータのエミュレート
https://code.google.com/p/py-radix/
192.0.0.0/8 AS1192.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 ",
BGP ルータのエミュレート
https://code.google.com/p/py-radix/
192.0.0.0/8 AS1192.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すべてを一緒にする
Raw BGP
BGP parser
Emulate BGP
{ }
JSON
シンプルな処理チェイン
• 月ごとに分けて処理
すべてを一緒にする
Raw BGP
BGP parser
Emulate BGP
{ }
JSON
5 万の AS を処理する場合
• エミュレートしたルータは異なる AS として振る舞う
• 8 コアで、1ヶ月分は 10 時間の処理量
13 のコレクタで、年間 156ヶ月分の処理をしなければならな
い!
ANSSI -2014 年における BGP ハイジャックの検出 24/53より速い競合の検知
コアを追加してスケールさせる
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 のデータを生成
より速い競合の検知
コアを追加してスケールさせる
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 }}
データへのアクセス
http://discoproject.org
ディスコ?
• 自動データ配信と分配
• HDFS のように• Python による MapReduce フレームワーク
データへのアクセス
http://discoproject.org
ビックデータからスモールデータへ
• 1 時間で 1000 の AS の競合を抽出する
• フランスと日本の AS は似ている物がいくつかある• 7000 万の競合が 1 カ国である
• 200MB ANSSI -2014 年における BGP ハイジャックの検出 26/53競合のクラスタ分類 - 1/3
ルートオブジェクトを使用
単一競合の検証
{ "timestamp": 1409782437, "collector": "rrc07",
"announce": { "prefix": " 192.50.44.0/24 ", "asn": 666 , "as_path": "25152 6939 667 666"},
競合のクラスタ分類 - 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/24
descr: Example prefix
origin: AS666
mnt-by: AS666-MNT
競合のクラスタ分類 - 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/24
descr: Example prefix
origin: AS666
競合のクラスタ分類 - 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競合のクラスタ分類 - 2/3
AS オブジェクト間の関連を使用
$ whois AS15557 aut-num: AS15557 as-name: LDCOMNET descr: SFR org: ORG-LA7-RIPE admin-c: LD699-RIPE tech-c: LDC76-RIPE status: ASSIGNED mnt-by: LDCOM-MNT mnt-routes: FMCF-MNT mnt-routes: LDCOM-MNT source: RIPE $ whois AS41272 aut-num: AS41272 as-name: MOSELLE-TELE-ASdescr: MOSELLE TELECOM
org: ORG-MT18-RIPE admin-c: LD699-RIPE tech-c: LDC76-RIPE status: ASSIGNED mnt-by: MOSELLE-TELE-MNT mnt-routes: MOSELLE-TELE-MNT source: RIPE
2% の競合を削除
54% の競合を削除
競合のクラスタ分類 - 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 1000 192.0.2.0/24 1000 666
BGP
5% の競合を削除
3% の競合を削除
ANSSI -2014 年における BGP ハイジャックの検出 29/53競合のクラスタ分類 - 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 1000 192.0.2.0/24 1000 666
BGP
5% の競合を削除
3% の競合を削除
競合のクラスタ分類 - 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 1000 192.0.2.0/24 1000 666
BGP
5% の競合を削除
3% の競合を削除
ANSSI -2014 年における BGP ハイジャックの検出 29/53競合のクラスタ分類
要約
Validated Related Connected Abnormal
0 % 30 % 60 % 90 % 32 54 3 11 0 2 5 93 P ercentage of conflicts France Japan
4200 万の異常な競合
計算期間
競合からイベントまで
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 }
計算期間
競合からイベントまで
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" }
イベントの可視化
フランスの 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
イベントの可視化
日本の AS
10/28/2014 localhost:2807/timeslots/AS2706
2014 February March April May June July August September October
イベントの数を減らす
自動的に
簡単なルール
• カテゴリを変更するイベントを削除
• AS が同じ国に属しているイベントを削除
• 6ヶ月より長いイベントを削除
2154 のプレフィックスから 557 の競合
4519 のプレフィックスから 289 の競合
ANSSI -2014 年における BGP ハイジャックの検出 33/53イベントの数を減らす
手動的に
興味深い結果
• 似たような AS 名
• PACNET-MY Pacnet MY や PACNET Pacnet Global Ltd
• DDoS 攻撃から守られた AS
• DDoS 攻撃を緩和する会社のアナウンス /24• AS 番号のミスタイプ
• 2208 や 208• ビットコインを盗むためにハイジャックされたもの
• ...
ANSSI -2014 年における BGP ハイジャックの検出 35/53閉会挨拶
もしかすると
69 の疑わしいイベント
102 の疑わしいイベント
Targeted Internet Traffic Misdirection
Renesys が 2013/11/19 に報告している
リアルタイム検知のゴール
BGP messages
Hijacks
Alerts
Measurements
検知に必要なもの
https://github.com/spotify/luigi
{ }
タスク 1/2
• インターネットレジス
トリ
• すぐに利用できる生の
タスク 2/2
• WHOIS データベースと同期
• BGP データを JSON に整形
• IP プレフィックスから AS の位
置マップを生成
検知に必要なもの
https://github.com/spotify/luigi
{ }
タスク 1/2
• インターネットレジス
トリ
• すぐに利用できる生の
BGP データを取得
タスク 2/2
• WHOIS データベースと同期
• BGP データを JSON に整形
• IP プレフィックスから AS の位
置マップを生成
ANSSI -2014 年における BGP ハイジャックの検出 40/53BGP ハイジャックの報告
報告
• 疑わしいハイジャックだけ
• 50 のイベントについて毎週
< hadron> 2a04:8000::/29 is announced from multiple origins: < hadron> SFR-BUSINESS-TEAM (AS12566)
< hadron> Ukraine-AS (AS200000)
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)
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::/29 inet6num: 2a04:8000::/29
netname: UA-UAHOSTING
descr: Hosting Ukraine
country: UA
org: ORG-HUL6-RIPE
$ whois -i org ORG-HUL6-RIPE
aut-num: AS200000 as-name: Ukraine-AS
descr: Hosting Ukraine
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::/29 inet6num: 2a04:8000::/29
netname: UA-UAHOSTING
descr: Hosting Ukraine
country: UA
org: ORG-HUL6-RIPE
$ whois -i org ORG-HUL6-RIPE
aut-num: AS200000 as-name: Ukraine-AS
descr: Hosting Ukraine
org: ORG-HUL6-RIPE
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::/29 inet6num: 2a04:8000::/29
netname: UA-UAHOSTING
descr: Hosting Ukraine
country: UA
org: ORG-HUL6-RIPE
$ whois -i org ORG-HUL6-RIPE
aut-num: AS200000 as-name: Ukraine-AS
descr: Hosting Ukraine
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::/29 inet6num: 2a04:8000::/29
netname: UA-UAHOSTING
descr: Hosting Ukraine
country: UA
org: ORG-HUL6-RIPE
$ whois -i org ORG-HUL6-RIPE
aut-num: AS200000 as-name: Ukraine-AS
descr: Hosting Ukraine
org: ORG-HUL6-RIPE
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::/29 inet6num: 2a04:8000::/29
netname: UA-UAHOSTING
descr: Hosting Ukraine
country: UA
org: ORG-HUL6-RIPE
$ whois -i org ORG-HUL6-RIPE
aut-num: AS200000
as-name: Ukraine-AS
descr: Hosting Ukraine
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/53BGP ハイジャックのトラブルシューティング
< 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 オブジェクトはウクライナのオペレーターに
よって数日後に作成された
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/53Malicious BGP Hijack
<hadron> 185.73.204.0/22 is announced from multiple origins: < hadron> ALPHALINK-AS (AS25540)
https://stat.ripe.net/AS198596
Announces from September to October 2014
Malicious BGP Hijack
Infected AS_PATH
<hadron> 185.73.204.0/22 is announced from multiple origins: < hadron> ALPHALINK-AS (AS25540)
< hadron> TEHNOGRUP (AS198596)
Malicious BGP Hijack
Infected 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/53Malicious BGP Hijack
Infected 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
を含む
• このゾーンから送信されたトラフィックはハイジャックネッ
トワークまで到達しなけれ
ばならないどのようにこのゾーンの内側からアクティブな測定
RIPE Atlas プロジェクト
https://atlas.ripe.net/
• 7100 probes in around 2000 ASes
• コミュニティがホストする調査
• ユーザー定義済みの測定
• ping, traceroute, HTTP, TLS and DNS
• パブリックな API
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 14 0 % 5 % 10 % 15 % 20 % Num of probes Hijacks ANSSI -2014 年における BGP ハイジャックの検出 49/53
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 14 0 % 5 % 10 % 15 % 20 % Hijacks
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 to
185.73.204.1
1. 10.10.10.1
2. 82.118.96.1
3. 188.124.228.1
4. 95.215.3.78
5. * * *
ANSSI -2014 年における BGP ハイジャックの検出 50/53Traceroute 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 to
185.73.204.1
1. 10.10.10.1
2. 82.118.96.1
3. 188.124.228.1
4. 95.215.3.78
5. * * *
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 to
185.73.204.1
1. 10.10.10.1
2. 82.118.96.1
3. 188.124.228.1
4. 95.215.3.78
5. * * *
ANSSI -2014 年における BGP ハイジャックの検出 50/53Traceroute 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 to
185.73.204.1
1. 10.10.10.1
2. 82.118.96.1
3. 188.124.228.1
4. 95.215.3.78
5. * * *
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 to
185.73.204.1
1. 10.10.10.1
2. 82.118.96.1
3. 188.124.228.1
4. 95.215.3.78
5. * * *
ANSSI -2014 年における BGP ハイジャックの検出 50/53Traceroute 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