3 ポイント 投稿者 GN⁺ 2024-05-06 | 1件のコメント | WhatsAppで共有

OpenJSとOpenSSF、オープンソースプロジェクトのソーシャルエンジニアリング攻撃リスクに関する警報を発令

  • 最近のXZ Utilsバックドア試行(CVE-2024-3094)は、単発の事件ではない可能性がある
  • OpenJS Foundationが類似した信頼獲得型の乗っ取り試行を阻止したことからも、これも単発の事件ではない可能性がある
  • OpenSSFとOpenJS Foundationは、すべてのオープンソース管理者に対し、ソーシャルエンジニアリング型乗っ取りの試行を警戒し、初期の脅威パターンを認識し、オープンソースプロジェクトを保護するための対策を講じるよう求めている

失敗した乗っ取りの試み

  • OpenJS Foundation Cross Project Councilは、同様の内容を含む疑わしいメールの連続を受け取った
  • メール送信者は「重要な脆弱性を解決するため」と称して、人気のあるJavaScriptプロジェクトの1つを更新するためOpenJSに行動を促したが、具体的な点は示されなかった
  • メール送信者は、以前にほとんどコードに関与していなかったにもかかわらず、プロジェクトの新しい管理者に指定してほしいと求めた
  • このアプローチは、XZ/liblzmaバックドア事件で「Jia Tan」が自身を位置づけた方法と非常に似ている
  • OpenJSがホスティングするプロジェクトには、これらの人物へのアクセス権限は与えられていなかった
  • このプロジェクトには、財団セキュリティ実務グループで概説された内容を含めたセキュリティポリシーが整備されている
  • OpenJSチームは、ファウンデーションがホスティングしていない他の2つの人気JavaScriptプロジェクトでも同様の疑わしいパターンを確認し、それぞれのOpenJSリーダーと米国国土安全保障省(DHS)のサイバーセキュリティ・インフラセキュリティ局(CISA)に即時報告した

ソーシャルエンジニアリング型乗っ取り(テイクオーバー)の疑わしいパターン

  • パターン
    • 比較的知られていないコミュニティ構成員が、友好的に見えるが攻撃的かつ執拗に、管理者またはホスティング機関(ファウンデーションまたは企業)へ働きかける
    • 新しい人物や不明な人物を管理者の地位へ昇格させるよう要求する
    • 偽名を用いた別のコミュニティ構成員の支持を受ける可能性がある(いわゆる「sock puppets」)
    • Blobを含むPR
    • 意図的に難読化された、または理解しにくいソースコード
    • 徐々に深刻化するセキュリティ問題
    • 一般的なプロジェクトのコンパイル、ビルド、配布慣行から外れ、Blob、Zip、またはその他のバイナリアーティファクトへ外部の悪意あるペイロードを挿入できる
    • 特に、管理者が期限的に緊迫感を煽られることでレビューの厳密さを下げたり、制御を迂回することを強要される場合に顕著
  • こうしたソーシャルエンジニアリング攻撃は、プロジェクトとコミュニティに対する管理者の使命感を悪用して、彼らを操る
  • 交流がどのような印象を与えるかに注意すること。
    • 自己疑念、不快感、プロジェクトへ十分に貢献できていないという感覚などを生むような交流は、ソーシャルエンジニアリング攻撃の一部である可能性がある
  • XZ/liblzmaで見られたのと同様のソーシャルエンジニアリング攻撃は、OpenJSコミュニティにより成功裏に防がれた
  • この種の攻撃は、ソーシャルエンジニアリングを介した信頼の侵害を利用するため、プログラム的に検知や防御を行うのが難しい
  • 短期的には、上で述べたような疑わしい活動を明確かつ透明に共有することが、他のコミュニティが警戒を維持するのに役立つだろう
  • メンテナを適切に支援することが、この種のソーシャルエンジニアリング攻撃に対する主な抑止策である

オープンソースプロジェクトのセキュリティ向上のステップ

  • 業界標準のセキュリティベストプラクティスであるOpenSSFガイドの採用を検討する
  • 強固な認証を使用する: 2FA、パスワードマネージャ、リカバリーコードを安全な場所に保管、パスワード/クレデンシャルを異なるサービス間で使い回さない
  • Coordinated disclosure」プロセスを含むセキュリティポリシーを作成する
  • 新しいコードをマージする際にベストプラクティスを適用する
    • ブランチ保護および署名付きコミットを有効化する
    • 可能であれば、PRが管理者からのものであっても、マージ前に別の開発者によるコードレビューを実施する
    • 可読性要件を適用し、新しいPRが難読化されないようにし、不透明なバイナリの使用を最小化する
    • npm公開権限を持つ人物を制限する
    • コミッターと管理者を把握し、定期的にレビューする。たとえば、ワーキンググループ会議で彼らを見かけたことがあるか、イベントなどで面会したことがあるか
  • オープンソースパッケージリポジトリを運営している場合は、Package Repository Securityの原則採用を検討する
  • CISAの「ソーシャルエンジニアリングおよびフィッシング攻撃防止」および/またはENISAの「ソーシャルエンジニアリングとは何か」を確認する

主要オープンソースインフラのセキュリティのための産業界と政府の取り組み

  • 安定で安全なオープンソースプロジェクトを維持するための圧力は、管理者にプレッシャーを与える
  • 官民の国際協力を通じて大規模な資源が必要
  • Open Source Foundations、Sovereign Tech Fundなど、すでに多くの団体で優れた取り組みが進んでいる
  • オープンソースプロジェクトへのセーフティネット提供のため、Linux Foundationファミリー系団体に類する組織の取り組みが必要である
  • ドイツ政府のSovereign Tech Fundイニシアチブが重要なオープンソースインフラに投資していることは心強い
  • 世界的な公的投資拡大のため、ドイツのSovereign Tech Fundのようなイニシアチブに対して、さらに多くのグローバルな公的投資を支援するべきである

GN⁺の意見

  • 攻撃者は管理者の使命感を巧みに利用して開発者を攪乱している。したがって、プロジェクトについて管理者が感じる感情の変化にも注意を払う必要がある。
  • セキュリティに投資を増やすべきだという点には同意するが、最終的には開発文化そのものがセキュリティを優先する方向へ変わるべきだと思う。開発のあらゆる段階でセキュリティが自然に浸透するようにすべきだ。
  • 攻撃者はコミュニティの信頼を利用するため、オープンソースプロジェクトではメンバー間の信頼を継続的に築き、強化する努力も並行して行うべきだ。顔を合わせて対話することがその第一歩になりうる。
  • Alpha-Omegaプロジェクトのように実際に脆弱性改善に投資するプロジェクトをより多く作り、支援を得るべきだ。それによって初めて、実質的にオープンソースプロジェクトのセキュリティレベルが高まるだろう。

1件のコメント

 
GN⁺ 2024-05-06
Hacker News の意見

要約:

  • オープンソースプロジェクトのメンテナーとして、新規コントリビューターのPRをより疑うようになった
    • 表面上はよく見えるが、裏で隠された意図がある可能性を念頭に置く
  • 長年にわたる機能追加で、ソフトウェアが非常に複雑になっている
    • コードが認識しづらくなり、少数の人だけが理解できる状態になる
    • 経験豊富な開発者が退職すると、多くの部分を理解できなくなるだろう
  • 大規模なプロジェクトでは、管理者の変更を報告する仕組みが必要
    • バージョン/リリースとともにnpm.jsやDebianパッケージなどに同期されるべき
    • 欧州銀行の事例のように、複数の国の機関が監視できる必要がある
  • Eve Onlineのゲームのように、価値ある貢献者として信頼を得てから裏切るプロセスを警戒すべき
  • 2FA/MFAは自己ホスティングされたシステムでのみ使用すべき
    • サードパーティのシステムでは、2段階認証手段を失うと永久にロックされる可能性がある
    • プロジェクトを直接ホスティングすれば、統制力を失わずに済む
  • オープンソースではインクルージョンと長期的なセキュリティの間で難しい議論が起こるだろう
    • イラン、ロシア、中国など一部の国出身の開発者はすでに疑いの目を向けられている
    • フォークして同盟国とともに貢献する方が良い選択かもしれない
    • 敵対国はライセンスや著作権の問題を気にせず、オリジナルの変更をマージできる
  • 各プロジェクトは独自の基準を設け、メンテナンスされない依存関係を迅速に削除すべき
    • プロジェクトの機密性を評価することも検討に値する
  • XZ攻撃後、こうした攻撃がどれほど頻繁に起きるか考えてみる
    • オープンソースはクローズドソースのソフトウェアより脆弱である可能性がある
    • 誰でもコードを書け、悪意のある動機が存在するからだ
  • 既存のオープンソースプロジェクトの行動を遡って調べるのは難しそうだ
  • 長年、シンプルなアーキテクチャとコーディング標準の改善に集中すべきだと主張してきた
    • しかし人々はTypeScript、Reactなどを使って不要な依存を増やしている
    • 敵は我々の無知と純粋さを嘲笑っている
    • 業界全体、さらに政治システムまでもが妥協されている可能性がある
  • 人々は最小限のコードと依存関係を持つプロジェクトを選んでおくべきだった
    • まともなプロジェクトは関心と機会を奪われ、過度に設計されたプロジェクトが前面に出てくる
    • いまや彼らは悪意あるアクターの格好の標的となった
    • 複雑性の中に脆弱性を隠すのは非常に簡単だ