更新: Aqua Nautilus によると、約 1 年前に Microsoft に報告された 3 つの PowerShell ギャラリー設計上の欠陥は未修正のままであり、レジストリ ユーザーはタイポスクワッティングやサプライ チェーン攻撃に対して脆弱な状態のままとなっています。
水曜日に発表された報告書の中で、セキュリティ企業のソフトウェアエンジニアであるモル・ワインバーガー氏と欠陥発見者のヤキル・カドコダ氏およびイレイ・ゴールドマン氏は、9月下旬にマイクロソフトに通報したと述べた。
IT大手のAqua社が脆弱性の存在を認め、Aquaチームに修正プログラムを適用し問題は解決済みだと二度も伝えたにもかかわらず、今日現在もバグは再現可能だとのことです。Aqua社3社は、3つのセキュリティ問題のうち2つについて、概念実証用のエクスプロイトを作成したと述べています。
この Windows の巨人はThe Registerの問い合わせにすぐには応答しなかったが、返答があった場合、または返答があった場合はこの記事を更新します。
「調査結果を公表する前にマイクロソフトに何度か連絡を取りましたが、アップデートについては一切知らされていませんでした」とワインバーガー氏はThe Register紙に語った。「もしマイクロソフトが追加のセキュリティ対策を講じているのであれば、詳細を知りたいと思います。」
MicrosoftのPowerShellギャラリーは、スクリプト、モジュール、そしてDCS(Deferred State Configuration)リソースの巨大なリポジトリです。これまでに100億回近くのパッケージダウンロード数を誇っています。これは、悪意のあるユーザーにとって魅力的な標的となっています。もしギャラリーを悪用して悪意のあるコードをユーザーの環境に侵入させることができれば、情報セキュリティの侵害やデータの盗難が広範囲に及ぶ可能性があります。
最初の問題は、PowerShell Gallery のモジュール名ポリシーに関係しています。誰かが正規のパッケージに近い名前でギャラリーにパッケージを作成し、その偽物にマルウェアを仕込み、開発者、パワーユーザー、管理者が不正な依存関係をプルするのを待つというのは、非常に簡単だと言われています。
「npm などの他の一般的なパッケージ マネージャーとは異なり、PowerShell ギャラリーにはモジュールのタイプミス スクワッティングに対する保護がまったくないことがわかっています」と Aqua の 3 人の担当者は指摘しました。
例えば、ほとんどの公式Microsoft Azureパッケージは「Az[ドット]パッケージ名」という特定の命名パターン(Az.Accountsなど)を使用していると説明されています。しかし、Microsoft社員がメンテナンスし、1,000万回以上ダウンロードされている人気モジュール「Aztable」は、「Az」の後にドットがないため、このパターンに従っていません。
これにより、悪意のある攻撃者がAz.Table(ドットに注意)という新しいパッケージをアップロードし、ユーザーを騙して攻撃者の管理下にある悪意のあるPowerShellモジュールをインストールさせることで、比較的簡単にタイポスクワッティング攻撃を実行できるようになります。この点を証明するために、チームは、パッケージがインストールされたマシンからホームアドレスに通信する概念実証モジュールを用いて、まさにその攻撃を実行しました。
アナリストらは、数時間以内に「さまざまなクラウドサービスの複数のホストから、タイポスクワッティングの有効性を強調し、こうしたセキュリティ上の欠陥に伴う危険性を強調する回答」を受け取ったと書いている。
この欠陥は大規模なサプライチェーン攻撃を実行し、複数のクラウドに侵入し、多くの組織に危険を及ぼす可能性があると彼らは述べ、「その影響の深刻さは致命的となるだろう」と付け加えた。
面白いことに、Microsoft はこの問題 (他のコード ウェアハウスでも問題となっている) を認識しているに違いありません。同社のエンジニアの 1 人が AzTable のタイプミスを検出するために Az.Table を作成したにもかかわらず、このパッケージはリストに載っておらず、検索から隠されているからです (これについては後で詳しく説明します)。
- 米政府、中国のマイクロソフトメール侵害を調査へ
- マイクロソフト:Codesys PLCのバグを悪用され「発電所を停止」される可能性がある
- 今月のセキュリティ修正排出量はマイクロソフトとインテルがトップ
- マイクロソフト、自社の情報セキュリティ慣行に関するTenableの批判に反論
2 番目の問題は、PowerShell モジュールのランディング ページ (たとえば、このページ) に存在し、誰が実際にリソースを作成してアップロードしたかがすぐにはわかりません。
Aqua が言うように、「PowerShell ギャラリーにある PowerShell モジュールの実際の作成者を特定するのは困難な作業です」。つまり、悪意のあるパッケージを、正当で信頼できる開発者のコードであるかのように偽装することが、犯罪者にとって容易になるということです。
3 番目の欠陥により、干し草の山から針を見つけるほどの十分な調査を行えば、誰でもリストに載っていないパッケージや隠されたパッケージ (機密データを含むパッケージなど) にアクセスできるようになります。
リストにないパッケージはギャラリーの検索 API には表示されないはずですが、Aqua チームは/api/v2/Packages
リストにないパッケージも含め「PowerShell ギャラリー内のすべてのパッケージに関する包括的な情報」を含む XML ファイルを発見しました。
Microsoft Azure開発者が200以上のデータ窃盗npmパッケージの標的に
続きを読む
形式のXMLファイルの末尾にはURLがあります/api/v2/Packages?$skip=[number]
。URLを変更することで[number]
、リストされているかリストされていないかを問わず、すべてのパッケージとその特定のバージョンを調べることができます。研究者らは、この種のアクセスは、恐喝やスパイ活動のために機密性の高いデータを盗もうとする犯罪者にとって特に有用である可能性があると推測しています。
「この制御されていないアクセスにより、悪意のある攻撃者は、リストに載っていないパッケージ内の潜在的に機密性の高い情報を検索する能力を得てしまいます」とAquaチームは述べています。「その結果、機密データを含むリストに載っていないパッケージは、侵害される可能性が非常に高くなります。」
彼らはさらにこう続けた。「GitHubのAPIキーを含む.git/configファイル、またはAPIキーを含むモジュールの公開スクリプトをギャラリー自体に誤ってアップロードしたパブリッシャーを見て、私たちは驚きました。」
Aqua によると、これら 3 つの欠点はすべて依然として存在するため、研究者は「Microsoft が欠陥を修正するまで」PowerShell Gallery を使用する際には注意するよう呼びかけています。
犯罪者がタイポスクワッティングやその他のパッケージ リポジトリの調査を利用して開発者やアプリケーションにマルウェアを感染させることがわかっています。犯罪者が GitHub、NPM、PyPI などから PowerShell Gallery に移動しないことを祈ります。®
追加更新
Microsoft は私たちに連絡し、Aqua の調査結果を踏まえていくつかの調整を加えたと言いました。
「当社はこの報告を認識しており、これがソーシャルエンジニアリングを利用して成功していると判断しましたが、これらのパッケージを識別して削除できるようにいくつかの変更を実施しました」とマイクロソフトの広報担当者は語った。
悪意のあるパッケージと思われる場合は、パッケージモジュールの「報告」リンクからご報告ください。これまで通り、悪意のある活動を監視し、お客様の保護を強化するために多層防御策を講じていきます。
マイクロソフトに具体的に何が変わったのか尋ねたが、このIT大手はそれ以上のコメントを控えた。