既知の脆弱性とは?
2018年2月6日
0 分で読めますこの記事 は2017年12月15日にCSO Onlineに掲載されたものです。
既知の脆弱性への対処が重要だという話をよく耳にします。年次セキュリティレポートの多くは、既知の脆弱性が悪用の大半を占めると指摘しています。また、HeartbleedからImageTragickまで、深刻さを思い起こさせる有名な脆弱性にも事欠きません。これほど重要なら、既知の脆弱性とは何か、改めて定義してみましょう。
回答1:CVE IDが付与された脆弱性
「既知の脆弱性」とほぼ同義で使われる用語がCVEです。MITREの「Common Vulnerabilities and Exposures」の略称です。新たな脆弱性が発見されると、CVE採番機関(CNA)がCVE番号を割り当てることがあります。この番号は、データベースやツール間で脆弱性を特定するために使われます。
CVEはデータベースではなく、IDである点に注意が必要です。CVE関連情報の公式な登録先は、National Vulnerability Database(NVD)です。CVEがNVDに登録されると、通常は簡単な説明や、脆弱性の影響を受ける製品を示すCPE(Common Platform Enumeration)の定義など、何らかの情報が付随します。NVDの情報の質は、提供元によって大きく異なります。
将来の公表に備えて予約されているCVEを除けば、CVE番号のある脆弱性は既知の脆弱性と考えてよいでしょう。しかし、CVE番号があってもNVDには登録されない脆弱性が数多くあり、実態を把握するのは困難です。また、既知の脆弱性の多くには、そもそもCVEが付与されていません。
回答2:インターネット上で公表された脆弱性
脆弱性が発見され、共有され、(願わくば)修正されても、CVEが申請されないことはよくあります。これは、ほぼすべてが公開の場で行われるオープンソースプロジェクトで特によく見られます。GitHubのプロジェクトで、ほかのバグと同じようにissueを作成した結果、修正前のセキュリティ上の欠陥に注目を集めてしまい、ユーザーが知らないうちに脆弱性を公表してしまうことも珍しくありません。
issueが非公開かつ責任ある形で報告された場合でも、脆弱性の修正は最終的にオープンソースとして公開されます。その際、リリースノートやissue、コード変更の詳細とともに脆弱性が言及されることがよくあります。これは、プロジェクトのユーザーにセキュリティリスクとその修正の存在を知らせる唯一の方法だからです。プロジェクトのメンテナーがこうした脆弱性にCVEを取得することもありますが、認知不足や手間の問題から、実際にはまれです。
こうした脆弱性も既知であり、CVEがあるものより厄介と考えられることもあります。プロジェクトの利用者が調べて見つけることはできますが、時間がかかり、大規模に実施するのは困難です。一方、攻撃者は人気のあるライブラリプロジェクトだけを調べれば広範囲に影響を及ぼせるため、比較的簡単に問題を見つけられます。こうした脆弱性は、まだ表面化していない脆弱性と呼ばれます。これらをデータベースに登録すると、次の種類の既知の脆弱性に当てはまります。
回答3:公開データベースに登録された脆弱性
NVDが最も公的な脆弱性データベースですが、ほかにもデータベースはあります。VictimsDB、RedHat、Openwallはいずれも、誰でも閲覧できる公開脆弱性データベースの例です。こうしたデータベースに掲載された脆弱性には、先述の未表面化の脆弱性など、CVEが付与されていないものや、CVEが割り当てられる前に掲載されたものが数多くあります。
公開データベースに登録された脆弱性は、CVE付きの脆弱性とほぼ同じくらい知られていると言えます。防御側も攻撃者もアクセスできる公開の場所に保存され、双方にリスクを知らせるからです。NVDとほかのデータベースの違いは、登録時の審査プロセスだけであり、その内容はデータベースごとに異なります。
回答4:非公開の脆弱性データベースに登録された脆弱性
すべての脆弱性データベースが自由に閲覧できるわけではありません。脆弱性データベースを構築・管理しながら、非公開にしている企業は数多くあります。顧客は脆弱性のリストにアクセスする権利を購入し、脆弱性の優先順位を判断して、自社に最も大きな影響を与えるものの緩和に取り組むことができます。
非公開の脆弱性データベースは、自力では見つけにくい脆弱性を発見し、攻撃者に見つけられた場合にも備えるのに役立ちます。しかし、これらを既知の脆弱性とは呼べないでしょう。データベースの提供元が攻撃者にも販売していない限り(販売しているとは思いませんが)、攻撃者が、購入した脆弱性を見つけるのと同じくらいの確率で、システム内の別の脆弱性を見つける可能性があるからです。
回答5:ダークウェブで共有された脆弱性
合法的な脆弱性データベースのビジネスと同じように、ダークウェブにも独自の脆弱性リポジトリがあり、脆弱性が闇市場で売買されています。攻撃者にとっての金銭的な投資対効果は大きく異なるため、脆弱性1件に数百万ドルの値が付くこともあれば、無料または安価で提供されることもあります。
こうした脆弱性は、明らかに既知の脆弱性ではありません。攻撃者が脆弱性の公表前(公表から0日)に把握しているため、通常は「ゼロデイ」脆弱性と呼ばれます。こうした脆弱性が一般公開された場合は、回答2で述べた未表面化の脆弱性に当たると考えられます。
ゼロデイ脆弱性は確かに重大ですが、真に既知の脆弱性と比べると、一般公開される前に攻撃者が悪用する可能性ははるかに低いものです。
まとめ
脆弱性は、知られているかどうかにかかわらず脆弱性です。両者の主な違いは、攻撃者がその脆弱性を認識し、悪用を試みる可能性にあります。つまり、脆弱性が広く知られているほど、修正の緊急性は高まります。
まずは最初の3種類の脆弱性を、できれば記載順に優先して対処することをおすすめします。それらを管理できるようになったら、リストの下位にある脆弱性の修正に取り組みましょう。


