Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】CVEからCVSS、EPSS、KEVの掲載有無をサクッと取得するシェルスクリプト

2025年09月13日に「Qiita」が公開したITニュース「CVEからCVSS、EPSS、KEVの掲載有無をサクッと取得するシェルスクリプト」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

既知の脆弱性(CVE)について、その深刻度(CVSS)、悪用予測(EPSS)、実際に悪用された実績(KEV)への掲載有無を、自動で素早く確認するシェルスクリプト。手作業での情報収集を効率化し、システム管理者の負担を減らす。

ITニュース解説

システムエンジニアを目指す皆さんにとって、システムの安全性は非常に重要なテーマの一つだ。インターネットにつながるサービスや私たちが普段使うソフトウェアには、残念ながらセキュリティ上の「弱点」、つまり「脆弱性」が存在することがある。この脆弱性を悪意のある第三者に利用されると、情報漏洩やシステムの停止など、大きな被害につながる可能性があるため、常に最新の脆弱性情報を把握し、適切な対策を講じることが求められる。

世の中には日々、新しい脆弱性が発見されている。これらの脆弱性は、一つ一つが異なる特性や深刻度を持っているため、それぞれの情報を効率的に確認し、対応の優先順位を決める必要がある。ここで登場するのが、特定の脆弱性を識別するための「共通脆弱性識別子(CVE)」という仕組みだ。CVEは「Common Vulnerabilities and Exposures」の略で、発見されたすべての公開された脆弱性に対して、CVE-YYYY-NNNNNのような一意のIDが割り振られる。このIDがあることで、世界中の誰もが同じ脆弱性について共通の認識を持つことができるようになる。例えば、「CVE-2023-12345」というIDを見れば、それが特定の脆弱性であることがすぐにわかる。

しかし、CVE IDだけでは、その脆弱性がどれくらい危険なのか、どれくらい早く対応すべきなのかはわからない。そこで重要になるのが、「共通脆弱性評価システム(CVSS)」という評価基準だ。CVSSは「Common Vulnerability Scoring System」の略で、脆弱性の深刻度を数値で示すための国際的な評価方法である。攻撃のしやすさ、攻撃が成功した場合の影響の大きさ、必要なユーザー操作の有無など、様々な要素を考慮してスコアが算出される。このスコアは0.0から10.0までの範囲で表現され、スコアが高いほど深刻度が高いと判断される。システムエンジニアはCVSSスコアを見ることで、その脆弱性が緊急に対応すべきものなのか、それとも後回しにしても問題ないのか、といった判断材料を得ることができる。

これらのCVE IDやCVSSスコアといった情報は、「米国国立脆弱性データベース(NVD)」というデータベースに集約されて公開されている。NVDは「National Vulnerability Database」の略で、アメリカ政府が管理している脆弱性に関する公開情報のリポジトリだ。世界中の多くのシステムエンジニアやセキュリティ担当者が、このNVDを参照して、自分の使っているソフトウェアやシステムに影響を与える脆弱性がないかを確認している。NVDは、脆弱性情報の信頼できる情報源として非常に重要な役割を果たしている。

近年、CVSSだけでは対応の優先順位を決定するのに十分ではないという考えから、新たな指標も登場している。「予測的な悪用確率スコア(EPSS)」がその一つだ。EPSSは「Exploit Prediction Scoring System」の略で、その名の通り、ある脆弱性が実際に悪用される可能性を予測するスコアである。CVSSが脆弱性そのものの技術的な深刻度を示すのに対し、EPSSは過去の攻撃データやトレンドなどを分析し、その脆弱性が今後どれくらいの確率で攻撃に使われるかを統計的に予測する。EPSSスコアが高い脆弱性は、技術的な深刻度が同じでも、実際に攻撃を受けるリスクが高いと判断され、より優先して対応する必要があるという考え方だ。

さらに、実際にサイバー攻撃で悪用されている脆弱性だけを集めた特別なリストも存在する。それが「既知の悪用されている脆弱性カタログ(KEV)」だ。KEVは「Known Exploited Vulnerabilities Catalog」の略で、アメリカのCISA(Cybersecurity and Infrastructure Security Agency)が公開している。KEVに掲載されている脆弱性は、すでに現実世界で攻撃に利用されていることが確認されているため、その緊急性は非常に高い。システムエンジニアにとって、KEVに載っている脆弱性については、最優先で対策を講じる必要があるという明確なシグナルとなる。

このように、システムエンジニアが脆弱性情報を確認する際には、CVE ID、CVSSスコア、NVD、EPSS、KEVといった様々な情報を総合的に判断する必要がある。しかし、これらの情報はそれぞれ異なるデータベースやウェブサイトに分散して存在している。例えば、特定のCVE IDについて調べたい場合、まずNVDのサイトでCVSSスコアを確認し、次にEPSSのサイトで悪用確率を調べ、さらにKEVのリストにそのCVE IDが含まれているかを確認するといった手間が発生する。日々大量の脆弱性情報が公開される中で、このような手作業での情報収集は非常に時間がかかり、効率が悪いという課題があった。

そこで、今回紹介するシェルスクリプトが非常に役立つ。このスクリプトは、先に述べたような情報収集のプロセスを自動化してくれるツールだ。具体的には、ユーザーが調べたいCVE IDをスクリプトに与えると、スクリプトが自動的にNVDやEPSS、KEVといった関連する情報源にアクセスし、該当するCVEのCVSSスコア、EPSSスコア、そしてKEVにその脆弱性が掲載されているかどうかといった情報を一括で取得して表示してくれる。

このスクリプトを使うことで、システムエンジニアは手動で複数のウェブサイトを巡回する手間を省き、必要な情報を「サクッと」手に入れることができる。これにより、脆弱性の深刻度や緊急度を効率的に把握し、どの脆弱性から優先的に対応すべきか、という判断を迅速に行うことが可能になるのだ。例えば、開発しているシステムで利用しているライブラリに新しい脆弱性が発見された場合、このスクリプトにそのCVE IDを入力するだけで、その脆弱性がどれくらい危険で、どれくらい緊急に対応すべきかを瞬時に把握できる。これは、セキュリティ対応のスピードと精度を格段に向上させる上で非常に大きなメリットとなる。

システムを安全に保つためには、脆弱性情報を正確かつ迅速に理解することが不可欠だ。このような自動化ツールは、情報システム部門やセキュリティ担当者の負担を軽減し、限られたリソースの中で最大限のセキュリティ対策を講じる手助けとなる。システムエンジニアを目指す皆さんも、将来的にこのようなツールを活用したり、あるいは自分で作成したりすることで、より安全で信頼性の高いシステムを構築・運用するスキルを身につけていくことになるだろう。脆弱性情報の適切な把握と迅速な対応は、ITの世界で活躍するために欠かせない重要な能力の一つと言える。

関連コンテンツ