HN 日本語サマリー

← 一覧へ戻る
セキュリティ

BGPハイジャックによるネットワーク感染、一連のミスが原因

BGP hijack infecting networks caused by a comedy of errors (arstechnica.com)

9 pointsby jnord2 コメント

要約

ハッカーがBGP(ボーダーゲートウェイプロトコル)ハイジャックを利用し、クラウド管理ソフトウェアのアップデートを装ってマルウェアを感染させるサプライチェーン攻撃を実行しました。この攻撃は、ホスティングプロバイダーであるHetzner OnlineとSoftaculousのセキュリティ設定の不備、およびTLS証明書発行プロセスの弱点が複合的に作用した結果、発生しました。攻撃者は乗っ取ったIPアドレス空間を通じて、正規のアップデートに見せかけた悪意のあるパッケージを配布しました。

全文翻訳

BGPハイジャックが原因でネットワークが感染、一連の単純なミスが招いた悲劇

HACKING INTERNET ROUTING

クラウド管理ソフトウェアのアップデートを介してネットワークを感染させたBGPハイジャックから何を学べるか?それはたくさんある。

Credit: Getty Images

ハッカーは、クラウド管理ソフトウェアのアップデートが行われるインターネット空間の一部を乗っ取るという珍しい手法を用いて、サプライチェーン攻撃を実行し、マルウェアをネットワークにインストールしました。このソフトウェアは、ホスティングプロバイダー、データセンター、その他の大規模インフラ企業で使用されています。

巧妙に連携された作戦の中で、正体不明の攻撃者は、ホスティングプロバイダーであるHetzner Onlineのルーティングセキュリティ設定の弱点と、有効なTLS証明書を取得するプロセスを悪用しました。これらの欠陥により、攻撃者はBGP(Border Gateway Protocol)ハイジャックを成功させ、Softaculousに割り当てられたIPアドレスを制御下に置くことができました。アラブ首長国連邦に拠点を置くSoftaculousは、Webソフトウェアのインストールと管理を行うプラットフォームのメーカーであり、仮想化環境の管理プラットフォームであるVirtualizorの開発者でもあります。

SoftaculousはこのIPアドレスを使用して、アップデートを発行し、クライアントおよび請求サイトをホストしていました。乗っ取られた空間の制御を握った攻撃者は、これらのアドレスを使用して、疑いを持たないユーザーにアップデートを装ったマルウェアを配布していました。

馬鹿げていて、防げたはずのミス

ハッキングの主な原因は、SoftaculousのホスティングプロバイダーであるHetzner Onlineにおけるルーティングセキュリティ設定の甘さにありました。他にも多くのエラーが攻撃の成功に寄与しました。特に注目すべきは、Softaculousがソフトウェア開発における最も一般的な安全策の一つ、すなわちコード署名によるソフトウェアアップデートの検証を怠っていたことです。

「インシデント発生中、トラフィックが迂回されたVirtualizorのインストールは、攻撃者のサーバーから悪意のあるアップデートパッケージを受け取った可能性があります」とSoftaculousは月曜日に警告しました。「当社の製品アップデートクライアントは、まだアップデートパッケージを暗号学的に検証していなかったため、改変されたパッケージはこの基準では拒否されませんでした。影響を受けたサーバーはごく少数だと考えていますが、確定的なリストを作成できないため、以下のチェックの対象となるすべてのVirtualizorサーバーを範囲内とみなしてください。」

Hetzner Onlineによる緩い設定により、攻撃者は33時間の間に2つの期間、断続的にトラフィックを誤誘導することができました。Hetzner Onlineは、ハイジャック開始から12時間後に正しい経路をアナウンスすることで、アドレス空間を奪還しました。その後、Hetzner Onlineは経路のアナウンスを停止し、攻撃者は同じハイジャックを2度目に実行しました。この時、Hetznerが対応するのに10時間近くかかりました。その間、ハイジャックは有効でした。

Hetzner Onlineと同様に、SoftaculousとHetzner Onlineの下流にあるトランジットピアであるZet.netも、システムの監視を適切に行わず、結果として22時間にもわたって断続的に続いていたハイジャックを検知できませんでした。また、Nexon Hostという別のホストプロバイダーも、そのインフラがどのようにして悪意のあるアナウンスを助長したのか、疑問が残ります。

BGPの専門家でBGP Toolsスイートの作成者であるBen Cartwright-Cox氏は、これらの欠陥を「馬鹿げていて、防げたはずのミス」と評しました。Softaculous、Hetzner、Zet.netは、電子メールでの質問にすぐには回答しませんでした。

BGPの簡単な歴史

BGP攻撃は、インターネットを統一された世界的なネットワークたらしめている基盤を標的とします。インターネットは多くのAS(Autonomous System)に分割されています。各ASは、IPv4プロトコル下で公開されている37億のIPアドレスの一部を割り当てられた独立したネットワークです。BGPは、これらのASをすべて結びつけ、各ASが他のASと接続できるようにする接着剤として機能します。

例えば、ドイツのASに割り当てられたアドレスを北米のIPに到達させるために、ASは指定されたIP範囲がたどるべき経路を「アナウンス」する必要があります。これらのルーティングアナウンスは、すべてのASおよびそれらにサービスを提供するホスティングプロバイダーが使用するグローバルルーティングテーブルのエントリとして行われる宣言です。インターネットの初期の頃、BGPは信頼に基づいて運用されていました。プロバイダーは、アナウンスが有効で誠実に行われたと単純に仮定していました。

長年にわたり、攻撃者は、正当な権利を持たないIPアドレスのアナウンスを行うことで、この信頼を繰り返し悪用してきました。国家支援のグループと金銭目的のグループの両方とつながりのある攻撃者は、この緩いシステムを利用して、場合によっては、彼らが制御するネットワークを通じて機密データのペタバイト級のデータをルーティングしていました。

最終的に、インターネットアーキテクトは、このようなハイジャックを防ぐための数々の対策を開発しました。その中でも最も著名なのは、RPKI(Resource Public Key Infrastructure)ROV(Route Origin Validation)です。RPKI ROVは、Route Origin Authorization(ROA)と呼ばれる暗号化されたレコードを使用して、BGPにおける経路の適切なオリジンとプレフィックスマスク長を主張します。RPKI ROVを導入したASは、ROAに含まれる情報と一致しない経路を拒否し、ハイジャックがインターネット全体に広がるのを防ぎます。

どのようにして起こったか

攻撃は金曜日のUTC 21時前に数分して始まり、SoftaculousのIPアドレス空間のごく一部がグローバルルーティングテーブルに入りました。この新しいIPプレフィックス(162.55.80.0/24と指定)は、AS6204(Zet.net)、AS62390(Nexon Host)、AS24940(Hetzner Online)の経路でアナウンスされました。

256個のアドレスを含むこのIP範囲には、Softaculousのソフトウェアアップデートエンドポイント、およびクライアントと請求サイトがホストされていました。この空間は、通常AS24940によってオリジンとされていた、はるかに大きな162.55.0.0/16空間の、より具体的な一部でした。InfobloxのBGPエキスパートであるDoug Madory氏の投稿によると、このアナウンスはおそらくNexonHost(AS62390)から発信されたもので、インフラの侵害か、セキュリティのギャップを悪用した顧客によるものと考えられます。

RPKIのようなプロトコルは、大規模オペレーターが不正または誤って作成されたアドレスをルーティングすることを防ぎますが、ルーティングの欠陥とトラフィックの適切な監視の失敗により、ハイジャックは週末の大部分で断続的に発生しました。Infobloxのインターネット分析責任者であるMadory氏は、次のように述べています。

ハイジャックには、偽造されたオリジンを持つASパスも含まれていました。攻撃者は24940をパスの最も右のASNとして追加したため、RPKIで有効と見なされました。その理由は、ROAがオリジンをAS24940にする必要があると同時に、プレフィックス長を24から16の間で任意に許可していたからです。その結果、この経路はRPKIで有効であり、RPKIで無効な経路を拒否するASによってドロップされるリスクはありませんでした。

Cartwright-Cox氏とMadory氏はともに、Hetznerがこれらの設定を、ハイジャックがこれらのセキュリティ対策の網の目をすり抜けるように設定していたと述べています。

IPアドレス範囲はブロック単位で測定され、そのサイズはスラッシュの後に数字を付けて指定されます。やや直感に反しますが、末尾の数字が大きいほどブロックは小さくなります。これは、IPv4標準の基盤となる32ビットに基づいたシステムであるためです。/24ブロックは2(32-24)、つまり256個のアドレスを指定します。/16ブロックは2(32-16)、つまり65,536個のIPを指定します。

Hetzner Onlineは、/24のような小さなサブプレフィックスも有効と見なされるようにRPKIのパラメータを設定しました。ハイジャックされた経路がROAのオリジンと一致するように偽造されたASパスを含んでいたという事実と相まって、攻撃者のより小さなプレフィックスを持つ新しい経路は、RPKI保護を回避することができました。

162.55.80.0/24に対する既存の競合する経路がなかったため、他のルーティングフィルタリングメカニズムが許可する範囲まで伝播しました。そして、それはより具体的な経路であったため、ルーターが最長プレフィックスマッチを優先する性質上、このIP範囲宛てのトラフィックは正規の経路(162.55.0.0/16)よりもこれを優先しました、とMadory氏は書いています。

Cartwright-Cox氏は、この欠陥を簡潔に「Hetznerは、/24のようなより正確なIP範囲(/16であるべきだった)のアナウンスを許可し、これによりハイジャッカーが彼らを偽装し、ルーティング決定で自動的に勝利することを可能にしました」と説明しました。

TLS証明書の検証を回避

より小さなIP範囲は、攻撃者が業界全体で実施されているTLS証明書要求の検証措置を回避することを可能にしました。通常、要求する側は、地理的に分散されたエンドポイントのセットに対してドメインを制御していることを証明する必要があります。ハイジャックで使用された証明書を発行した認証局であるLet's Encryptは、証明書が発行される前に、それらのクォーラムが肯定的な結果を返すことを要求します。

Let's Encryptは電子メールで、「/24という小さな範囲を標的にすることで、ハイジャックはグローバルに広がり、『検証の視点(およびその他のすべてのトラフィック)が正規のドメインオペレーターではなく攻撃者のサーバーに到達する』ことになりました」と述べています。また、「Certification Authority Authorization(CAA)アカウントバインディング、これは許容される発行者と検証方法を制限しますが、『攻撃者にとってこれを大幅に困難にしたでしょう』」とも述べています。

何人のVirtualizorユーザーが悪意のあるアップデートを受け取ったのか、またマルウェアがインストール後に何をしたのかは不明なままです。Softaculousは、すべてのユーザーにシステムに侵害の兆候がないか確認するよう促しています。

このインシデントは、BGPハイジャックがマルウェアを拡散するために使用されたことが知られている数少ない事例の一つです。2015年には、傭兵ハッカー集団Hacking Teamが、感染させる契約を結んだ標的に対してそれを使用しました。別の事例は2022年に発生し、攻撃者はAmazonに属するIPアドレスをハイジャックしました。攻撃者はこれらのIPアドレスを使用して、Celer Bridge仮想通貨取引所を訪問しようとした人々から約23万5千ドルのビットコインを詐取したスマートコントラクトをホストしました。

幸いなことに、RPKIの普及により、BGPハイジャックはますます少なくなっています。しかし、今週末の出来事は、これらの保護措置が脱線するために、たった一つのミスで十分であることを示しています。

[画像: Photo of Dan Goodin]

Dan GoodinはArs Technicaのシニアセキュリティエディターであり、マルウェア、コンピュータ諜報活動、ボットネット、ハードウェアハッキング、暗号化、パスワードに関する報道を監督しています。余暇には、ガーデニング、料理、インディーズ音楽シーンを追うことを楽しんでいます。Danはサンフランシスコを拠点としています。Mastodonではこちらで、Blueskyではこちらで彼をフォローしてください。SignalではDanArs.82で連絡できます。

68 Comments

  1. [画像: Listing image for first story in Most Read: The Internet goes on high alert after discovery of 8 compromised TLS certs]