BGPのセキュリティ問題はよく知られている。その修正は現在も進行中である。

Table of Contents

BGPのセキュリティ問題はよく知られている。その修正は現在も進行中である。

システム アプローチ私は、ネットワーク セキュリティ ブックのインフラストラクチャ セキュリティに関する章の執筆に取り組んでいます。

インターネットの中核は攻撃に対して脆弱であることがよく知られており、特にボーダーゲートウェイプロトコル(BGP)とDNSは弱点となっています。そこで私は、インターネットの「中核インフラ」を構成するこれらの構成要素のセキュリティを確保するために、これまでどのような対策が講じられてきたのかを徹底的に学び、本書に役立つ情報をまとめようと決意しました。

今回の投稿では、BGPセキュリティについてのみお話ししたいと思います。BGPセキュリティに関しては、賛否両論あると言っても過言ではありません。DNSのセキュリティ確保についても同様ですが、「賛否両論」という言葉は、この場合は少し肯定的すぎるかもしれません。

BGPのセキュリティ(そしてその欠如)を理解するための良い出発点は、シャロン・ゴールドバーグ氏が2014年に発表した記事「なぜインターネットルーティングのセキュリティ確保にこれほど時間がかかるのか?」です。この記事が10年以上経った今でも時宜を得ているという事実は、この問題がいかに難しいかを物語っています。2020年のルーティングセキュリティの現状に関するテスタート氏とクラーク氏によるこの論文は、その後数年間で状況がほとんど改善されていないことを示しています。私はこれを、BGPが複雑であること、セキュリティを適切に実現するのが難しく、成功を宣言できないこと、そしてインターネットの中核が硬直化していることという3つの難題が重なった結果だと考えています。そのため、BGPのセキュリティ向上が困難であるのは当然と言えるでしょう。

しかし、少なくとも朗報もありますルーティングセキュリティの一側面は、2014年以降劇的に改善されました。リソース公開鍵基盤(RPKI)を基盤とするルート発信元検証(ROV)が、実用的に導入されるようになったのです。これらの技術が何を意味し、ルーティングセキュリティにどのような影響を与えるのかを見ていきましょう。

RPKIは、自律システム(AS)の運営者など、ルーティングに関わるエンティティがルーティングに関するアサーションを行う手段を提供します。これらのアサーションは、解決しようとする問題の部分に応じて様々な形式をとります。ROVの場合、ASは特定のアドレスプレフィックスへのルーティングアドバタイズメントの発信を許可されていることをアサートできます。ルートオリジン認証(ROA)には、証明書、AS番号、およびASがアドバタイズメントを許可されているプレフィックスのセットが含まれます。ROAは、この認証を提供することが信頼されているエンティティ(通常は、このアドレスプレフィックスが割り当てられたAS)によって暗号的に署名されます。

BGPは複雑で、セキュリティを正しく実現するのは難しく、成功を宣言することは決してできない。

アドレス割り当ては階層的なプロセスです。例えば、地域インターネットレジストリ(RIR)はISPにアドレス空間の一部を割り当て、ISPはその一部を顧客に割り当てることができます。そして、このアドレス割り当て階層に従って証明書の階層構造を構築することができます。RIRは「トラストアンカー」を形成し、そこから信頼の連鎖を構築します。これは、現代のブラウザが信頼できるルート証明機関(CA)のセットを標準装備し、CAによって署名されたウェブサイトが発行する証明書の有効性を確認できるのと似ています。

ここでの違いは、ウェブサイトを認証するのではなく、アドレスの割り当てを認証している点です。この場合、アドレスプレフィックスはRPKIにおける「リソース」に相当します。このような証明書のチェーンは、ルート(RIR)からローカルインターネットレジストリ(LIR)、そしてISPへと続きます。ISPは、顧客のいずれかに特定のプレフィックスが割り当てられたことを証明し、BGPでそのプレフィックスの広告を発信することができます。

証明書のチェーン

クリックして拡大

RPKIシステムの興味深い点の一つは、BGPとは完全に独立して動作し、プロトコル自体に変更を加える必要がないことです。アドレス割り当てはルーティングに比べて変更頻度が非常に低いため、RPKIはルーティングのような動的な更新を必要としません。RPKI証明書は、RIRなどの組織によって運営されるリポジトリに保存され、リポジトリの内容を取得およびキャッシュするためのRPKIプロトコルが存在します。

BGPに参加するルーターは、ローカルキャッシュの内容を読み取り、それを用いて、どのASが様々なプレフィックスをアドバタイズする権限を持っているかを事前に判断できます。そのルーターはBGPアドバタイズを受信すると、送信元ASがRPKIで承認されているものと一致するかどうかを確認できます。

  • DNSセキュリティは重要だが、DNSSECは失敗した実験かもしれない
  • エンジニアとしてキャリアアップするには、優れたコミュニケーション能力を身につける
  • 根本からセキュリティを組み込むとはどういう意味ですか?
  • 一部の人とは異なり、トレースルートは非常に現実的です。私はそれが機能するのを手伝ったのでよく知っています。

注目すべきは、BGPメッセージ処理時に暗号計算が行われないため、コアルーターの実装への影響が最小限に抑えられることです。RPKIとROVの実際の動作については、CiscoとJuniperのBGP実装での設定方法を含め、分かりやすい説明がこちらに掲載されています。

測定可能な進歩

NISTが運営する追跡サイトによると、インターネットコアでBGPによって流通する100万以上の経路のうち、現在約56%に有効なROAが関連付けられています。無効な経路は2%未満、残りの42%は「不明」、つまり該当するプレフィックスにROAが存在しない状態です。これを肯定的に捉えるか否定的に捉えるかは、見方次第です。特に有効経路の割合が継続的に増加していることを考えると、これは称賛に値する素晴らしい成果だと私は考えています。

セキュリティは難しいものです。ISPルーティング(CiscoやJuniperの機器の機能を含む)の動作を変更するのは、おそらくさらに困難です。そのため、バックボーンルーティングのセキュリティを大幅に向上させることは、私にとって真の勝利と言えるでしょう。

大手ルーターベンダーはROVの導入を可能にするためにBGPスタックに必要な機能を追加していますが、RPKI自体が大部分をオープンソースコンポーネントで構築されていることは注目に値します。これが導入を容易にした要因の一つかもしれません。

ROV により、プレフィックスを所有していると主張するだけでプレフィックスへのトラフィックをハイジャックすることはもはや容易ではなくなりました。これは過去には故意にも偶発的にも繰り返し行われてきました。しかし、ROV によって阻止されない BGP への攻撃方法は依然として多く残っており、そのほとんどは偽のパスの広告を伴います。過去 20 ~ 30 年間、BGP 自体に暗号署名を追加することでこのかなり困難な問題に対処しようとする取り組みが複数行われてきました。BGPsec 標準では、BGP で広告されるパス沿いのすべての AS に暗号署名が適用されます。パスにK個の AS がある BGP 広告にはK 個の署名があります。各署名は、このポイントまでのパスにある ASと、この広告のターゲット AS をカバーしているため、AS は、広告されたパスの意図された受信者である場合にのみ、既存のパスに自身を追加できます。

これにより、相当数の攻撃をある程度防ぐことができますが、それでもすべての攻撃を防げるわけではありません。さらに、BGPアドバタイズメントの処理と生成に複数の暗号化操作が組み込まれているため、ROVと比較してコストは高くなります。 

ASPAは、より重いBGPsecでは捕捉できないルーティングの問題を実際に捕捉します。

「BGPセキュリティの部分導入」で述べたように、ROVと比較すると、こうした暗号化作業による増分的なメリットはごくわずかです。また、ROVと同様に集団行動の問題がありますが、パス検証においてはさらに深刻です。BGPsecを最初に実装したISPは、複雑さの増加とルーターのアップグレードという代償を払う一方で、実質的にメリットを享受できません(メリットを得るにはパス全体に同じアップグレードを実施する必要があるにもかかわらず、まだ誰も同じアップグレードを実施していないため)。そのため、BGPsecの実装は(2014年と同様に)行き詰まっているように見えます。

最近の取り組みは「AS Provider Authorization(ASPA)」に重点的に取り組んでいます。こちらはNANOGによる2023年ASPAに関する有益なプレゼンテーションです。ASPAはROVと同様の魅力的な特性を持ち、BGP自体に暗号化操作が追加されません。

ROVが(RPKI内に)広告の発信を許可されているASのデータベースを構築するのと同様に、ASPAはどのASが他のASへのトランジットを提供しているかを示すデータベースを構築します。これもRPKIを使用しますが、証明書の種類が異なります。ASPAから、AS XがAS Yのプロバイダーであり、その逆は成り立たないことを知ったとします。その後、YがXのプロバイダーであると主張するルートが広告され始めたら、何か問題があることが分かり、広告を破棄できます。

興味深いことに、ASPAは、よりヘビーウェイトなBGPsecでは検出されないルーティングの問題(経路の偶発的な漏洩など)を実際に検出します。まだ初期段階ですが、このアプローチが普及する勢いは良好のようです。

このトピックについてはまだまだ語りたいことがたくさんありますが、本書の章を終える際に改めて触れたいと思います。このプロジェクトを開始した当時と比べて、ルーティングセキュリティの現状についてはより楽観的な見方をしています。ROVの導入率が50%を超え、ASPAが将来性を示していることに感銘を受けています。BGPが攻撃や設定ミスから完全に防御できるようになることは決してないでしょうが、数年前と比べるとはるかに堅牢性を高めるための確かな進歩が見られるようです。®

Discover More