In this article
オープンソース監査を解説
オープンソース監査では、アプリケーションで使用されているオープンソースソフトウェアを調査し、セキュリティ脆弱性や、オープンソースライブラリ内またはオープンソースソフトウェアと製品企業との間に存在するライセンス違反を確認します。さまざまなサイバーセキュリティ監査の種類についてはこちらをご覧ください。
コードのホスティングや共同作業にGitHubを利用しているチームは、次のGitHubセキュリティのベストプラクティスに必ず従いましょう。
オープンソース監査のメリット
オープンソース監査は面倒で時間のかかる作業ですが、大きなメリットがあります。
可視性
オープンソース監査を行うと、製品で現在使用しているオープンソースソフトウェアの全体像を把握できます。こうした可視性により、ソフトウェアチームは、どの製品コンポーネントがオープンソースソフトウェアに大きく依存しているかを特定できます。そのうえで、重複するオープンソースコンポーネントがないか、ライブラリを一から作成する代わりに既存のライブラリを新機能に活用できないかを判断できます。
分析情報
監査を行うと、dexie health scoreなどの指標を通じて、使用中のオープンソースソフトウェアの健全性に関する分析情報を得られます。評価対象となる指標には、ソフトウェアのメンテナンススコア、最後にコードがコミットされた時期、他のオープンソースソフトウェアとの互換性などがあります。
脆弱性
オープンソース監査では、アプリケーションで使用されているソフトウェアのセキュリティ脆弱性を特定します。ただし、プロジェクトのオープンソースコンポーネントと、オープンソースソフトウェア自体に存在する脆弱性を合わせると、発見される脆弱性の総数が膨大になることがあります。そのため、修正に着手する前に脆弱性の優先順位を付けることが重要です。オープンソース監査は、node-ipcなどの悪意あるパッケージや、オープンソースソフトウェアの悪意あるバージョンを可視化し、どのオープンソースツールを使用すべきかをソフトウェアチームが判断するのに役立ちます。セキュリティの専門家は、次の点を確認する必要があります。
脆弱性の悪用成熟度を評価する。
オープンソースソフトウェアが悪意あるパッケージではないか、悪意あるバージョンが存在しないかを評価する。
ビジネス関係者やソフトウェアチームと協議し、どの脆弱性がビジネスに最も影響する可能性が高いか、また、どれだけ容易に修正できるかを判断する。
組織のDevOps導入が進むにつれて、コードリポジトリへの修正のプッシュなど、脆弱性の自動修正を好む傾向が強まります。こうした修正にはSnykのようなツールを活用できます。
ポリシー
すべてのオープンソースソフトウェアライセンスが商用利用を認めているわけではありません。たとえば、ソフトウェアがGNU General Public License(GPL)の対象となるオープンソースソフトウェアを使用している場合、そのコードも配布する必要があります。これは大企業にとって問題となる可能性があります。オープンソース監査は、オープンソースコンポーネントが社内ポリシーや他のコンポーネントの利用条件に違反していないかを評価するのに役立ちます。
オープンソースセキュリティを始めましょう
登録して、オープンソースソフトウェアのセキュリティとライセンスコンプライアンスを簡単に監査しましょう
オープンソース監査では何を確認するのか?
オープンソース監査を行うと、ソフトウェア開発チームは、システムで使用しているオープンソースソフトウェアの現状をすべて把握できます。一般的に、オープンソース監査には次の項目を含める必要があります。
オープンソースのインベントリ、または ソフトウェア部品表(SBOM):ソフトウェア製品の依存関係の一覧を示すレポート。
オープンソースの依存関係ツリー:オープンソースプロジェクトがどのように相互に入れ子になっているかを示します。たとえば、あるオープンソースコンポーネントが別のオープンソースライブラリに依存するケースは非常によくあり、推移的依存関係とも呼ばれます。
オープンソースの脆弱性:現在のオープンソースの依存関係に存在する既知の脆弱性の一覧です。セキュリティの専門家はこの一覧を使って脆弱性に優先順位を付けるため、開発チームは重大な脆弱性から対処できます。
オープンソースライセンスコンプライアンス監査:オープンソースプロジェクトが抵触する可能性のあるライセンスや、企業の既存のソフトウェアポリシーに違反するオープンソースプロジェクトの一覧です。
オープンソース監査ソリューション
オープンソース監査のメリットと対象範囲を確認したところで、次は、ソフトウェアチームが最大限の投資対効果を得られるよう、監査を適切に実施する方法を学びましょう。オープンソース監査には、さまざまなツールを利用できます。
SBOMを自動作成するSCAツール
ソフトウェア部品表の確認を自動化するオープンソースのSCAツールはいくつもあります。特に広く利用されているものは次のとおりです。
OWASP Dependency Check:ソフトウェアプロジェクトの依存関係にある脆弱性を検出します。
Snyk Open Source:JavaScript、Python、.Netなどのコードをチェックします。
コードベースの拡大に伴い増え続けるオープンソースコンポーネントの管理に、SCAツールが役立ちます。
古いパッケージをチェックするツール
古いパッケージや更新されていないパッケージは、メンテナンスされていない可能性があり、簡単に修正できない脅威となることもあるため、アプリケーションで使用するのは危険です。そのため、使用中の古い依存関係がないか確認することが重要です。該当する依存関係が見つかった場合、一部のSCAツールは更新や代替パッケージを自動で提案するため、時間を節約しながら問題に対処できます。
ライセンスの問題をチェックするツール
ライセンスの問題を確認することで、製品と互換性のないオープンソースソフトウェアコンポーネントを使用することによる法的リスクや責任を回避できます。しかし、必要なオープンソースライブラリが多いと、この作業は大きな負担になりかねません。そのため、ライセンスの問題をチェックする自動化ツールが必要です。
企業はいつオープンソース監査を実施すべきか?
ソフトウェア開発チームは、できるだけ早い段階でオープンソース監査を実施する必要があります。製品コードの開発中、または製品パッケージを継続的インテグレーションパイプラインでビルドする際に実施できます。こうした分析情報は、オープンソースのセキュリティリスクやライセンス上の問題を最小限に抑えるのに役立ちます。これは、開発者を第一に考え、ソフトウェア開発ライフサイクルの早い段階からセキュリティに取り組むDevSecOpsの手法にも沿ったものです。
オープンソースのセキュリティ監査を実施するリソースが不足している場合は?
時間やリソース、オープンソース監査の専門家が不足しているソフトウェアチームにとって、オープンソースのセキュリティ監査は大変な作業に思えるかもしれません。Snyk Open Sourceは開発者を第一に考えたセキュリティツールで、プライベートコードのプロジェクトも含め、これらすべての機能を無料で提供します。具体的には、次のことが可能です。
ソフトウェアインベントリを自動化:既存製品のSBOMを提供し、ライブラリが追加または削除されると自動で更新します。
古いパッケージをチェックする手順を自動化:古くなったパッケージや非推奨のパッケージを自動でチェックして通知するため、新しいバージョンや適切な代替OSSに更新できます。
オープンソースライセンスを自動チェック:オープンソースライセンスを自動で確認し、ビジネスルールへの違反や、選択したライセンスの組み合わせによる問題を指摘します。
SBOMと依存関係ツリーを作成:オープンソースソフトウェアがどのように入れ子になり、相互に依存しているかを可視化し、製品でのOSSの利用状況をより深く把握できるようにします。
継続的なモニタリング:オープンソースコードの違反、古いパッケージ、追加された新しいライブラリがないか、ソフトウェアチームがコードプロジェクトを継続的に監視できるようにします。
Snykは、最新のセキュリティ問題を定期的にチェックし、優先順位を付けた最新の脆弱性リストを提供することで、ソフトウェアチームの修正プロセスを効率化します。
オープンソース監査サービスを提供するSnykのような企業に依頼することもできます。Snykのブラインド監査では、対象企業のソースコードを公開したり、どこかにアップロードしたりする必要がないため、データセキュリティ要件を満たせます。また、Snykのサービスでは、管理対象と非管理対象のコードの両方で、スニペットレベルのライセンスコンプライアンスの問題を特定できます。
オープンソースセキュリティを始めましょう
登録して、オープンソースソフトウェアのセキュリティとライセンスコンプライアンスを簡単に監査しましょう
まとめ
企業は急速に拡大するオープンソースソフトウェアの世界を活用することで、競合他社に先んじることができます。実際、今日のソフトウェアプロジェクトの多くは、オープンソースソフトウェアに依存しています。しかし、アプリケーションに含まれるオープンソースコンポーネントが多いと、その把握が難しくなり、セキュリティ脆弱性も頻繁に発生します。さらに、開発チームとセキュリティチームは、標的型の悪意あるパッケージ攻撃やサプライチェーンセキュリティの懸念にも対処しなければなりません。
Log4jでオープンソースのロギングサービスに脆弱性が見つかった事例が世界中の数千ものウェブサイトやビジネスアプリケーションに影響を及ぼしたことを受け、顧客はこれまで以上に、企業によるデータの利用方法や保護方法に注目しています。セキュリティ脆弱性は製品やブランドを危険にさらすため、オープンソースのセキュリティ監査は欠かせません。
Snykは、時間のかかるこのプロセスを効率化し、アプリケーション内のオープンソースライブラリを徹底的にチェックするスキャン機能を提供します。また、ライセンスコンプライアンス管理も提供しており、アプリケーション全体のオープンソースライセンスを簡単に管理できます。Snyk Open Sourceで、オープンソースソフトウェアのコンプライアンスとセキュリティを管理しましょう。今すぐデモを予約するか、無料で始めることができます。