VRPおよび生成元情報の履歴を活用したROVにおけるNotFound経路の原因分析

>100 Views

October 15, 26

スライド概要

2026/9/15の電子情報通信学会のIA研究会にて発表したスライドです

profile-image

情報系の大学院生、RPKIに興味あり。NOCにちょこちょこ顔出したり。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

VRPおよび生成元情報の履歴を 活用したROVにおける NotFound経路の原因分析 2026.09.15 奈良先端科学技術大学院大学 谷崎文那

2.

BGPのセキュリティ問題 • インターネット上の通信ではAS間の経路制御にBGP が用いられる • AS間でIP prefixの到達可能性を示す経路情報を広告する • BGP単体では広告が正しいかを検証できない • 誤設定や攻撃により,prefixを本来とは異なるASが広告する場合 があるが,それを検知できない • 実際に,YouTubeへの経路ハイジャックや仮想通貨関連サービスを 標的とした経路ハイジャックが発生している 出典:RFC 4271;RIPE NCC, “YouTube Hijacking: A RIPE NCC RIS case study,” 2008;Cloudflare, “BGP leaks and cryptocurrencies,” 2018 2

3.

RPKI上の経路広告元の検証 • Resource Public Key Infrastructure(RPKI): IPアドレスなどのインターネット番号資源の利用権 限を証明する公開鍵基盤 • Route Origin Authorization(ROA): 特定のprefixの広告を許可されたASを示す署名付きオブジェクト • RPKI validator(validator): ROAなどのRPKIオブジェクトを取得・検証し,利用可能な許可情 報であるValidated ROA Payload(VRP)を作成 • Route Origin Validation(ROV): BGPでの広告内容とVRPを照合し,広告元AS(origin AS)の正当性 を判定する仕組み 出典:RFC 6480, Sec. 1;RFC 6483 3

4.

ROVの判定結果 4 判定結果 意味 一般的な経路の扱い Valid VRPの情報と経路広告が一致 受け入れる Invalid VRPの情報と経路広告が矛盾 拒否 or 優先度低下 NotFound 対象経路のprefix対象をカバーするVRP (以下カバーVRP)が存在しない Validと同様に受け入れられることが多い 出典:RFC6811, RFC7115

5.

NotFoundに至る原因は様々 • カバーVRPが存在しないとき4つの状況が考えられる • それぞれの状況に至る原因も多数考えられる NotFoundという1つの判定に様々な状況・原因がまとめられている 5

6.

NotFound経路の取り扱いの理想と現実 • NotFoundの原因によって,運用者の対応は異なりうる 状況 原因 運用者の行動例 過去にカバーVRP未観測 ROA未発行 基本的に追加対応不要 オブジェクト検証失敗 ROA有効期間外 validatorログ等を確認→ 必要に応じて管理者へ連絡 • しかし,現状NotFoundに至った原因を特定する仕組みがない • NotFoundという結果だけでは,原因に応じて対応を判断できない • 我々の研究はNotFoundに至った原因を推定することを目的とする • 今回は短期間のデータ収集と一部事例の分析を通じて,提案手法の適用可能性を確認 6

7.

NotFoundの原因を分析するための要素 • VRP履歴 • 過去にカバーVRPが存在し たもの(2, 3, 4)とそうでな いもの(1)の区別のため • 検証情報・リポジトリ 取得情報 • validatorの動作中にどんな 異常があったかを確認す るため(3,4関係) 7 • 各VRPの生成元情報 • 左記2つの情報の対応づけ のためと生成元の期限情 報など(4関係)について知 るため

8.

原因分析のための事前データ収集 8 • 生成元情報付きVRPおよびその履歴データは見つからなかったため, 自前で収集 • Routinatorというvalidatorを用いると各VRPについて生成元情報(source)も取得可能 • sourceにはROAのURIに加え,validityやchainValidity,staleなどが含まれる • これを継続的に保存することで,生成元情報付きVRP履歴を構築 • 各検証回の情報をVRP履歴DBとraw archiveの2形式で保存 • VRP履歴DBには,各VRPの初回存在確認,最終存在確認,初回不在確認など,消失前後を追跡 しやすい情報を保存 • raw archiveは各検証回の元データを保存

9.

原因分析は大きく2段階 9 • 第1段階: ROV状態とVRP履歴による状況分類 • VRP履歴と観測時刻のVRP集合を用いて対象経路の状況を分類 • 第2段階: VRP消失前後の情報照合による根拠抽出 • VRP消失前後の生成元情報や検証情報を照合し,確認された背景事象 や情報間の対応に基づいて根拠を抽出 • 情報抽出・照合の多くは自動化済み,原因の技術的解釈は一部人手 ←実装済みCLIの出力例 状況分類・原因候補・ 判断根拠を出力

10.

第1段階: ROV状態とVRP履歴による状況分類 • “原因分析のための情報が適切か”と “カバーVRPが存在していたか”を確認する段階 1. 観測時刻以前の収集データが存在するか • 履歴情報が不足していないかを判定 2. 当該snapshotにおいてROV状態はNotFoundとなるか • 入力情報の前提であるNotFound判定と不整合がないかを判定 3. 過去にカバーVRPが存在するか • ROA未発行的は観測期間内でVRP未観測かを判定 • 過去に観測したVRPが消失している場合は第2段階へ 10

11.

第2段階: VRP消失前後の情報照合による根拠抽出 • 過去にカバーVRPが存在していた場合に消失前後の情報を照合 • 生成元の状態 • VRP初回不在snapshotにて生成元情報の変化(出現・消失・変更)の有無を確認 • 検証メッセージ • 生成元のURIとメッセージ中のURIの対応を確認 • リポジトリ取得状態 • 消失前後のRRDP, rsyncの状態を確認 • 生成元の有効期限など RRDP(RPKI Repository Delta Protocol) RPKIリポジトリからオブジェクトの取得を 効率的に行うためのプロトコル • validity・chainValidity・staleの時刻がVRP消失区間内か確認 • chainValidity・staleはraw archiveを参照 11

12.

提案手法検証のためのデータ収集 12 • 今回の提案手法の適用可能性を確認するために VRPを継続的に保存し,VRP履歴を構築した • 6日間程度の観測を実施 • Routinatorから生成元情報付きVRPやリポジトリ取得状況やオブジェクト検証情報が記載され たstatus,ログなどのファイルを各検証回ごとに1つのsnapshotとして保存 • VRPごとの出現・消失のタイミングなど一部の情報はVRP履歴DBに保存 • 同時にVRPの変化があることも確認

13.

VRPの変化 13 • 718検証回分のsnapshotを保存した • 1検証回でVRPは97万件程度 • 観測期間中の新規VRP出現やVRPの消失,再出現を観測した 集計項目 総snapshot数 件数 718 観測期間中に初めて出現した一意なVRP 6,385 VRPの再出現回数 1,060 1回以上消失した一意なVRP 4,162 VRPの消失回数 4,869 1件以上のVRP消失を含む連続snapshotの組 613

14.

NotFound原因の個別事例分析の進め方 14 • 収集したVRPデータから観測された消失事例について,提案手法によ る原因分析を行なった • VRP消失前後に対応するBGP経路が観測されたかどうかも併せて確認した • 分析する事例は,異なる種類の根拠や分析結果を提示することを目 的として複数個選定 • 以降の事例分析で示す時刻は全てUTC

15.

事例分析A 検証メッセージと消失時刻の対応推定 15 manifest: • AS265919をorigin ASとする17件のVRPが同一のsnapshot 境界で消失 • 17件全てが同一公開ポイントのROAから生成されたVRPだと推定 • 17件全てのVRPが7/22 5:41の検証回で最終確認,5:52には消失 • 生成元ROAのchainValidity.notAfterとstaleの時刻が5:44で消失区間内 • VRP消失を確認した検証回で当該公開ポイントのmanifestの証明書の有効 期限切れを示すメッセージを確認 ➢原因候補: manifestの署名に関する証明書の有効期限切れ 公開ポイントに存在すべき RPKIオブジェクトの一覧と ハッシュ値を保持する 署名付きオブジェクト

16.

事例分析B VRP消失の時間的対応のみ確認 • AS10753をorigin ASとするVRP • 7/21の7:50に存在を最終確認,8:01で消失を確認 • VRP消失のタイミングで生成元情報の消失も確認 • 消失直前の生成元情報 • chainValidity.notAfterとstale: 7/27 • validity.notAfter: 2027/7/30 • 全てVRP消失のタイミングの7/21より後 • 生成元に関係する検証メッセージなどは確認されなかった ➢生成元情報の消失とVRP消失の時間的な対応は確認 できたが,技術的な要因は特定できない事例 16

17.

事例分析C 同一消失区間でも得られる根拠が異なる 17 • 6件のVRPが同一のVRP消失区間(7/21 13:25〜13:36) で消失 • AS263283をorigin ASとする5件のVRPについて • 同一公開ポイントのROAが生成元 • 事例Aと同様にmanifestの証明書の有効期限切れを示す検証メッセージとの対応を推定 • AS263767をorigin ASとする1件のVRPについて • VRP消失と生成元情報消失の時間的対応を確認 • 事例Bと同様にVRPに対応するURIでの検証メッセージは確認されず ➢同一のVRP消失区間でも得られる判断根拠の種類が異なる場合が存在

18.

事例分析D VRP消失による経路への影響を確認できない 18 • 対象期間・観測点で経路広告を確認できなかった事例 • 199.36.120.0/24 AS400098のVRPは7/22 13:19で最終確認,13:30で消失,13:41で再出現 • しかし,AS問わず199.36.120.0/24に関係するBGP経路広告は確認できなかったのでこの経路が NotFoundと判定されたとは言えない • 他にカバーVRPが存在した事例 • 7/24 2:57と3:08のsnapshot間で180件のVRPが消失 • しかし,それらのVRPのIP prefixとorigin ASを仮想的な経路としてROVを行うとNotFoundはなし • 177件はValid,3件はInvalid(180件全てについて対象prefixをカバーするVRPが存在) ➢VRPの消失だけではNotFoundと判定されたと言えない

19.

考察: 履歴情報を用いたNotFound原因分析の意義と限界 19 • 提案手法について今回確認できたこと • VRP履歴により,観測期間内に対象経路を許可するVRPを未観測の場合と,過去に観測した許 可VRPが消失した場合を区別可能 • 生成元・検証・リポジトリ取得情報も併せて用いることで原因候補を提示可能 • 現時点での限界 • 検証メッセージ等とVRP消失の因果関係を断定できない • 実環境では実際の原因の把握が困難であり,分析手法や結果の妥当性は未評価

20.

今後の取り組み 20 • 観測期間の延長 • 分析手法の妥当性の評価 • 実験環境において既知の原因によるVRP消失を発生させ,分析によって提示された原因候補と 実際の原因を比較 • raw archiveのみに記録されている情報の抽出・照合処理の自動化 • 運用者が実際に使用できるツール化 • prefixやorigin ASを入力することで原因候補とその根拠を取得できるツールを想定 • 分析に要する時間などの運用上の有用性の評価も必要

21.

発表内容まとめ 21 • VRPの出現・消失と生成元情報を追跡できる履歴を構築 • validatorが生成したVRP集合・生成元情報・検証情報などを検証回ごとに保存 • 約6日間で718検証回分を収集し,VRPの新規出現・消失・再出現を確認 • VRP履歴による状況分類と、消失前後の情報照合による原因分析を実施 • 過去のカバーVRPの有無を確認し,消失前後の生成元・検証・取得情報を照合 • 個別事例で原因候補と判断根拠を整理 • manifestの証明書の期限切れを示す検証メッセージや,期限と消失区間の対応を確認 • その他,生成元情報の消失との時間的対応のみが得られ技術的原因を特定できない事例等も確認

22.

Appendix

23.

システムへの入力例(事例分析A) 23

24.

現在分析システムから出力される結果(事例分析A) confidence・scoreは確認条件に応じたルールによる評価値であり、原因の推定確率ではない。評価値の妥当性は未評価。 24

25.

RIPE RISを用いたBGP経路状態の再現とROV状態の確認 • 目的:VRP消失前後に対象経路が観測されていたかを事後的に確認 • 観測期間中、BGP経路のROV判定結果は継続収集していなかった • 選定したRRCのRIBとUPDATEから、各peerの経路状態を再現 • 対象時刻以前で最も新しいRIBを初期状態とする • 対象時刻までの経路広告・撤回を時刻順に反映する • 再現した経路を、同時刻の収集済みVRP集合と照合 • 各経路のprefix・origin ASからROV状態を算出 • 消失前後で同一peer・同一prefix・同一origin ASの経路を比較 • 評価結果は、選定したRRCの観測範囲と収集したVRP集合に基づく • RRC00・RRC25を事例ごとに使用 • RRC25の事例では、RIPEstat BGP State APIで事前確認を実施 25

26.

事例別のBGP観測・ROV再計算結果 発表の事例 RISでの観測・再計算結果 A:AS265919 RRC00で前後比較できた16組、620件のpeer別経路でValid→NotFound B:AS10753 RRC00の44件のpeer別経路でValid→NotFound C:6組 RRC25の6組、246件のpeer別経路でValid→NotFound D:199.36.120.0/24 RRC00の対象3時点で経路を観測できず (ROV状態は収集したVRP集合による再計算結果) 26