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件のコメント
Hacker News の意見
要約: