ASN ハイジャック:IP ジオロケーションが遅れる理由
ASN ハイジャック、より正確には BGP 経路ハイジャックは、あるネットワークが、発信する権限のない IP プレフィックスを広告したり、他のネットワークが自分のほうにトラフィックを送るような形で広告したりすると発生します。IP ジオロケーションや ASN のデータセットは定期的なスナップショットを基に作られているため、ハイジャックが進行している最中にそれを示すことは通常ありません。
BGP ハイジャックの仕組み
インターネット上のすべてのネットワークは自律システム番号(ASN)で識別され、Border Gateway Protocol(BGP)を使って、到達可能なプレフィックスを隣接ネットワークに伝えます。BGP は信頼を前提に設計されています。デフォルトでは、広告を受け取った隣接ネットワークには、広告元が本当にそのプレフィックスを所有しているかを確認する組み込みの手段がありません。ルーターは、最短 AS パスなどのルール、とりわけ最長プレフィックス一致のルールを使って最良の経路を選びます。
攻撃者や設定ミスが突くのはこの最後のルールです。正規のネットワークが /22 を広告し、別の誰かがその内側のより具体的な /24 を広告した場合、/24 を受け入れたルーターは、より具体的な経路が優先されるためそちらを選びます。その256個のアドレス宛のトラフィックは、誤ったネットワークに流れます。バリエーションとして、他者のプレフィックスをそのまま起点として広告する、AS パスの一部を偽造する、内部にとどめるべき経路を漏らす、などがあります。実際のインシデントの多くは、顧客が全経路テーブルを上流に漏らしてしまうといった事故ですが、トラフィックへの影響は同じです。
トラフィックはどうなるか
トラフィックを引き寄せた攻撃者は、それを破棄(ブラックホール)したり、内容を調べたり、本来の宛先に転送したりできます。転送された場合、ユーザーはわずかな遅延以外には何も気づきません。TLS で保護された内容については暗号化が被害を抑えますが、ドメイン検証のトラフィックを傍受して証明書を取得したり、DNS を傍受したりするためにハイジャックが使われた例もあります。継続時間は数分から数時間までさまざまで、だからこそ検知の速さが重要になります。
ジオロケーションと ASN のデータセットが遅れる理由
ジオロケーションや ASN とプレフィックスの対応データセットは、レジストリデータ、ルーティングのスナップショット、その他のソースから編集され、バージョンとして公開されます。これらが答えるのは「この瞬間に誰が広告しているか」ではなく、「通常このレンジを保有しているのは誰か」です。ipto では、IP と ASN のデータセットは毎日、脅威フィードは6時間ごとに更新されるため、1時間続いたハイジャックは、通常は更新と更新の間に始まって終わっています。インシデントの最中に影響を受けたアドレスをルックアップしても、おそらく正規の所有者が表示されますが、これはデータセットが想定している問いに対しては正しい答えです。
遅れにはさらに2つの要因があります。1つは、レジストリの記録はゆっくりとしか変わらないため、ルーティング上の事象でアドレスブロックの所属組織が変わることはないことです。もう1つは、プレフィックスから都市を推定しているジオロケーションデータベースは、経路が変わるたびに推定をやり直すわけではないことです。むしろ、安定したデータは基準として役立ちます。そのプレフィックスを本来誰が発信すべきかがわかり、それがライブのルーティングデータと比較する対象になるからです。
不審なルーティングを確認する方法
- 期待される起点を把握する。ASN ルックアップでは、AS 番号に登録されている所有者、組織、国、レンジ数がわかり、IP レンジディレクトリでは、特定の /8 や /16 ブロックをどのネットワークが保有しているかを閲覧できます。
- 登録情報を確認する。IP whois ルックアップは、通報先となる abuse 連絡先を含むレジストリの記録を RDAP 経由で返します。
- 経路の起点を検証する。RPKI ルックアップは、RIPEstat を通じて、ある IP に対して現在広告されている経路が有効な Route Origin Authorization の対象かどうかをリアルタイムに確認し、valid、invalid、not covered のいずれかを報告します。
RPKI の結果は慎重に解釈してください。「invalid」は、起点 AS またはプレフィックス長が所有者の承認した内容と一致しないことを意味し、調査に値します。「not covered」は ROA が存在しないことを示すだけで、これはよくあることであり、ハイジャックの証拠にはなりません。また、RPKI は、正しい起点を保ったまま AS パスを偽造する攻撃など、すべての攻撃から守れるわけではありません。ROA を公開してそれに基づきフィルタリングする運用者は被害を受けにくくなり、自分のプレフィックスに想定外の起点が現れたときに通知する監視サービスは、どのデータセットの更新よりも早く異常を知らせてくれます。
アプリケーションにとっての意味
アプリケーションが不正スコアリングや地域ルールなどの判断に ASN やジオロケーションのデータを使っている場合は、ゆっくり変化する背景情報として扱い、接続が物理的にどこで終端しているかの証拠とは見なさないでください。ipto の IP ルックアップは asn と org のフィールドを返し、レスポンス形式はAPI ドキュメントで確認できます。既知の顧客が接続してくるネットワークが突然変わることは有用なシグナルですが、ハイジャックは考えられる多くの説明の1つにすぎず、そのような変化の大半は、新しい ISP、モバイルの切り替え、VPN といった日常的なものです。