検索
ニュース

OSSが抱えるリスクトップ10 OWASPが発表「既知の脆弱性」「正規パッケージの侵害」など

非営利団体のOWASPは、OSSが抱えるリスクトップ10をまとめた文書「Top 10 Open Source Software Risks」を公開した。

Share
Tweet
LINE
Hatena

 Webアプリケーションセキュリティなどの改善活動を推進する非営利団体「The Open Web Application Security Project」(OWASP)は、オープンソースソフトウェア(OSS)が抱えるリスクトップ10をまとめた「Top 10 Open Source Software Risks」のバージョンv0.1を発表した。

 OWASPは「ソフトウェアサプライチェーンにおいてOSSへの依存度が高いにもかかわらず、OSSのリスクを理解し測定する方法が不足している。OSSにおけるリスク管理は、ライセンス管理から始まり、CVE(共通脆弱〈ぜいじゃく〉性識別子)へと発展してきたが、セキュリティ、法律、運用を包含する全体的なアプローチは不十分だ。この文書は、運用およびセキュリティ上のトップリスクを見つけることを目指すものだ」と述べている。

 OWASPが明らかにした、OSSが抱えるリスクトップ10は次の通り。

OSSが抱えるリスクトップ10

(1)既知の脆弱性

 コンポーネントのバージョンに、開発者が誤って導入した脆弱なコードが含まれている可能性がある。これらはCVEやGitHubのセキュリティアドバイザリなどを通じて公開されている。エクスプロイトやパッチは、利用できる場合もあれば、利用できない場合もある。

(2)正規パッケージの侵害

 攻撃者は、正規のプロジェクトメンテナーのアカウントを乗っ取るなどの方法により、悪意のあるコードをコンポーネントに注入する。これにより、既存の正規プロジェクトやディストリビューションインフラストラクチャの一部であるリソースが侵害される可能性もある。

(3)名称混同攻撃

 攻撃者は、正規のオープンソースやシステムコンポーネントに似た名前のコンポーネントを作成したり(タイポスクワッティング)、信頼できる作者を示唆したり(ブランドジャッキング)する他、異なる言語やエコシステムにおける共通の命名パターンを悪用する(コンボスクワッティング)こともある。

(4)保守されていないソフトウェア

 ソフトウェアがもはや活発に開発されていない場合、バグに対するパッチが元のオープンソースプロジェクトから適切なタイミングで提供されない可能性がある。

(5)古いソフトウェア

 新しいバージョンが存在するにもかかわらず、プロジェクトが古いバージョンのコンポーネントを使うことがある。

(6)追跡されていない依存関係

 プロジェクトの開発者が、特定コンポーネントの依存性を全く認識していないケースがある。理由としては、上流コンポーネントのSBOM(ソフトウェア部品表)に含まれていない、SCA(ソフトウェア構成分析)ツールの未実行あるいは未検知、パッケージマネジャーを使用した依存関係の確立などが挙げられる。

(7)ライセンスリスク

 コンポーネントやプロジェクトに、ライセンスが全くないか、意図された使用と互換性がないケースや、ライセンスが存在する場合でも、要件が満たされていないケースがある。

(8)未熟なソフトウェア

 オープンソースプロジェクトが、開発のベストプラクティスを適用していないこともある。標準的なバージョン管理スキームを使用していないケースや、回帰テスト、レビューガイドライン、ドキュメントがないケースなどだ。

(9)未承認の変更

 ダウンロードリンクにバージョン管理されていないリソースが指定されていたり、バージョン管理されたリソースが変更、改ざんされていたりする他、安全でないデータ転送が行われるケースもある。

(10)過小/過大な依存

 非常に小さなコンポーネント(数行のコードしか含まないもの)や非常に多くの機能を提供するコンポーネント(その内の一部しか使用されていないもの)が存在する。どちらであっても、アカウント乗っ取り、悪意のあるPull Request、CI/CDにおける脆弱性などのサプライチェーンリスクにさらされる。少数行のコンポーネントは、アップストリームプロジェクトのリスクへの依存度が高い。多機能なコンポーネントでは、未使用の機能や依存関係が攻撃対象となる可能性もある。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る