Airbnbの情報セキュリティチームが、Vulntureという同社の社内セキュリティ脆弱性報告ツールについて記事を書いた。CVE、NVD、およびその他のベンダデータベースを活用して、インフラストラクチャおよびソフトウェアスタックをスキャンし、脆弱性を検出するツールである。
Common Vulnerabilities and Exposures(CVE)リストは1999年に、National Vulnerability Database(NVD)は6年後の2005年に、それぞれ開始された。NVDはCVE内のデータを使用して情報を補足すると同時に、付加的な検索機能を提供する。ソフトウェアベンダのサイトでも独自の脆弱性情報を公開しているが、これら2つのデータベースを参照している場合とそうでない場合がある。このデータを有効に活用するには、照合のためにインフラストラクチャ資産の記録(オペレーティングシステムのベンダ、ハードウェア、アプリケーション、ライブラリ、オープンソースソフトウェア)が必要となる。さらにレポートツールには、このインベントリを簡単に検索して、アイテムを脆弱性の組み合わせリストと関連付けられる機能が求められる。Vulntureはこれらの要素をひとつにするために開発された。
Pythonで記述されたVulntureは、AmazonDynamoDBからインベントリデータを取得する。ただし、データベースがどのような方法で作成されているかは不明である。状態は一切保持せず、AWS Lambda関数として動作する。NVD、CVEの他、Cisco Security Advisoriesにもクエリを行っている。発見した脆弱性に対しては、Eメールによる通知の送信が可能である。
WhiteSourceのレポートによると、2019年中に報告されたオープンソースの脆弱性の数は、前年の4,000から6,000にまで増加している。また、2020年のLinux Foundationのレポートには、"時代遅れのオープンソースが商用ソリューションに蔓延している"ことが指摘されている。
CVEのエントリは、それぞれにユニークなIDが割り振られている。CVEの多くは影響するソフトウェアのバージョンに関する情報がなく、NVDでもそれらのデータは後になって補完される状況にある。これらの事実が、脆弱性が発見されてからNVDが更新されるまでの遅延に関する懸念につながっている。WhiteSourceのレポートによると、"NVDで確認できるのは、オープンソースの既知の脆弱性の84パーセント"に過ぎない。同じ結論はSynopsysによる別のレポートにも述べられており、"NVDデータを補完するソースを探す"ことを推奨している。RiskSenseの調査も同様だ。Vulntureは脆弱性を公開しているベンダのソースからデータを引用することで、この問題を可能な限り軽減する。
Vulntureはオープンソースだが、同様のツールは有償でも提供されている。"Software Composition Analysis"(SCA)という用語は、プロダクトのオープンソース依存性と、その公開されている脆弱性の存在を検索するツールのクラスを示すものだ。脆弱性は依存関係を通じて間接的に存在することもあり、Syncのレポートによれば、脆弱性の大半はこれによるものである。SCAツールは、このような詳細を手作業でトラッキングすることによって、もたらされる課題の軽減化を図る。この種のツールを提供しているのは、BlackDuck、Sync、WhiteSource(すべてではない)といった企業だ。さらに、SCAツールは、DevSecOps活動の一部でもある。
VulntureのソースコードはGitHubで公開されている。