シンプルな処理チェイン
• 月ごとに分けて処理
• いくつかの
AS
を監視するには充分な速度すべてを一緒にする
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のデータを生成
•
11 536 345 959
の競合より速い競合の検知
コアを追加してスケールさせる
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
データへのアクセス
http://discoproject.org
ディスコ?
• 自動データ配信と分配
• HDFSのように
•
データへのアクセス
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"},
"conflict_with": {"prefix": "192.50.44.0/24", "asn": 7500}}
競合のクラスタ分類 - 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
ANSSI -2014年におけるBGPハイジャックの検出 27/53
競合のクラスタ分類 - 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
ルートオブジェクトを使用
7000
万の競合の検証• 全てが検証されなければならない
• オンラインクエリーは遅すぎる
• WHOISデータベースは毎日PostgreSQLにロードされる
• ip4rタイプは高速プレフィックス検索に使用される
>>> client = Client("ripe")
>>> client.check("210.158.206.0/24", 17676, "2014/07/28")
True0.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-AS
descr: 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
Percentageofconflicts
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 }
"conflict_with": {"prefix": "1.6.0.0/18", "asn": 1000 } }ANSSI -2014年におけるBGPハイジャックの検出 31/53
計算期間
競合からイベントまで
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
ANSSI -2014年におけるBGPハイジャックの検出 32/53
イベントの可視化
日本の
AS
10/28/2014 localhost:2807/timeslots/AS2706
2014 February March April May June July August September October
ANSSI -2014年におけるBGPハイジャックの検出 32/53
イベントの数を減らす
自動的に
簡単なルール
• カテゴリを変更するイベントを削除
•
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
閉会挨拶
もしかすると