また、OSSを利用する上で大きな課題となるのがライセンスの種類だ。シノプシスのOSSライセンスのデータベースである「Black Duck Knowledge Base」で2600種類あるものの、アプリケーションに使用されているOSSの98%が上位20のライセンスで占められている。問題はそれら人気のあるOSSではなく、残る“少量多品種”のOSSだ。同じアプリケーションの中でこれらのOSSのライセンス条件が競合し、ソフトウェアコンプライアンス問題の原因になってしまっているのだ。
吉井氏は「特に難しいのが“曖昧なライセンス”への対処だ」と指摘する。今回の調査で、ライセンス違反の可能性がある、または「ライセンスなし」と判定されたOSSコンポーネントを含むアプリケーションの割合は73%、ライセンスや使用条件が作者によって明記されていないアプリケーションの割合は33%あった。
近年では新たなライセンスの問題も発生している。人権などに配慮した「Hippocratic License」は基準が哲学的なため使いづらいという問題がある。また、クラウドサービス事業者のように、利用者がOSSコミュニティーへの還元を行わない問題に対抗するためのBSL(Business Source License)というライセンスも生まれている
OSSを利用する上で大きなリスクになっているのが脆弱性だ。今回の調査対象のアプリケーションうち、脆弱性を含む割合が75%、高リスク脆弱性を含む割合が49%となっている。最も多く見つかった脆弱性としては、JavaScriptのユーティリティーライブラリである「Lodash」を挙げた。Lodashの脆弱性は既にコミュニティーで対処されているが、利用者側で複数あるCVE(共通脆弱性識別子)に対応できていないことが原因のようだ。
とはいえOSSの脆弱性の解決は、コミュニティーで開発やサポート、メンテナンスを続けているかにかかっている。コミュニティー活動のないOSSは、新たに見つかった脆弱性に対するパッチの開発が期待できないからだ。今回の調査でも、開発終了から4年以上経過したOSSコンポーネントを含むアプリケーションの割合が82%、過去2年間に開発活動実績のないOSSコンポーネントを含むアプリケーションの割合が88%に達している。どちらかの条件を満たすOSSコンポーネントの割合は91%である。これらのOSSコンポーネントは、将来的に脆弱性が見つかった場合に対処できない可能性が高い。
吉井氏は「もはやアプリケーション開発にOSSを使わないわけにいかない以上、開発者自身もOSSのガバナンスを理解する必要がある。組み立て製造業の部品表(BOM)のように、ソフトウェアのBOM=SBOMで管理すべきだろう。あと、ライセンスの問題、脆弱性の問題に共通する対策になるのがOSSコミュニティーへの参加だ。OSSをただ利用するだけだと、ライセンスでも不利になる可能性があるし、脆弱性についての情報もいち早く得られない」と述べている。
Copyright © ITmedia, Inc. All Rights Reserved.