今さら聞けないセキュリティ情報の読み方
こんにちは、北野です。今回は、これまで曖昧にしてきていた、セキュリティ情報の読み方について調べてみました。
脆弱性の識別(CVE)
セキュリティインシデントが発生して、脆弱性情報のWebサイトをいろいろ調べていくと必ず目にするのが「CVE」という単語です。たとえば、2014年に大きな騒動になったbashの脆弱性、いわゆる「Shellshock」について伝えているトレンドマイクロ社のWebページにも冒頭に書かれています。CVEが脆弱性情報のIDということはある程度予測できますが、実際はどういうものかというところから調べていきます。
CVE(Common Vulnerabilities and Exposures:共通脆弱性識別子)は、米国政府の支援を受けた非営利団体のMITRE社が提供している脆弱性情報データベースです。80を超える主要な脆弱性情報サイトと連携して、脆弱性情報の収集と脆弱性情報を識別するID「CVE ID」を採番するのが主な役割で、特定のベンダーに依存していない点が特長です。脆弱性情報データベースはほかにもありますが、CVEは脆弱性データベースの中でも代表的な存在で、多くの脆弱性情報から利用されています。
冒頭で紹介したShellshockの脆弱性のCVE IDは「CVE-2014-6271」です。
Webページ内にある各項目の意味は、次のとおりです。
| 項目名 | 説 明 | 例 |
|---|---|---|
| CVE-ID | 脆弱性の識別番号(ID) | CVE-2014-6271 |
| Description | 脆弱性の概要 | GNU Bash through 4.3 processes trailing strings after function definitions in the values of environment variables, (略) |
| References | 参考情報 | REDHAT:RHSA-2014:1293 URL:http://rhn.redhat.com/errata/RHSA-2014-1293.html )など多数 |
| Date Entry Created | CVE-IDが割り当てられた日時 | 20140909 |
| Phase(Legacy) | 現在未使用 | Assigned (20140909) |
| Assigned(Legacy) | 現在未使用 | − |
| Votes(Legacy) | 現在未使用 | − |
| Comments(Legacy) | 現在未使用 | − |
| Proposed(Legacy) | 現在未使用 | − |
CVEの目的は、「IDを付与して、脆弱性を一意に識別できるようにする」ことであるため、脆弱性情報の詳細や対策法などについては言及されていません。詳細情報を得るには、CVE-IDの右隣にある「Learn more at National Vulnerability Database (NVD)」のリンクをクリックして、NVDのWebサイトに移動します。
脆弱性の詳細情報(NVD)
NVD(National Vulnerability Database)は、アメリカ国立標準技術研究所(NIST)が管理している脆弱性情報のデータベースです。ICAT(ICAT Metabase)という前身のデータベースが機能強化されたものです。
なお、NISTはCVEを提供しているMITRE社のスポンサーでもあり、CVEは脆弱性情報のID管理、NVDはそれに対する詳細情報の提供という形で役割を分けています。
ShellShockのCVEページで該当リンクをクリックすると、ShellShockのNVDページが表示されます。
Webページ内にある各項目の意味は、次のとおりです。
| 項目名 | 説 明 | 例 |
|---|---|---|
| Overview | 脆弱性の概要 | GNU Bash through 4.3 processes trailing strings after function definitions in the values of environment variables, (略) |
| Impact | 脆弱性の影響 | CVSS Severity (version 2.0): CVSS v2 Base Score: 7.7 (HIGH) (AV:A/AC:L/Au:S/C:C/I:C/A:C) (legend) Impact Subscore: 10.0 Exploitability Subscore: 5.1 CVSS Version 2 Metrics: Access Vector: Local network exploitable Access Complexity: Low Authentication: Required to exploit Impact Type: Allows unauthorized disclosure of information; Allows unauthorized modification; Allows disruption of service |
| References to Advisories, Solutions, and Tools | アドバイザリ、解決法、ツールへの参照情報 | External Source: REDHAT Name: RHSA-2014:1293 Hyperlink: http://rhn.redhat.com/errata/RHSA-2014-1293.html |
Overviewは脆弱性の概要(CVEのDescriptionと同じ内容のようです)で、References~には参考情報へのURLが列挙されています。
このWebページにある脆弱性について理解するうえで、重要になるのがImpact欄です。ただし、ここに書かれている内容を正確に理解するためには「CVSS」という脆弱性の評価手法について知る必要があります。
脆弱性の影響スコア(CVSS)
Impact欄に書かれているのは、CVSS(Common Vulnerability Scoring System:共通脆弱性評価システム)という、汎用的な脆弱性評価手法を用いた影響分析の結果です。
CVSSは、米国の国家インフラ諮問委員会(NIAC)によって原案が作成され、現在はFIRST(Forum of Incident Response and Security Teams)という非営利団体によって管理されています。2007年に公開されたCVSS v2が執筆時点での最新版となっており、上記に掲載した例にもCVSS v2が利用されています。
CVSSは、次の3つの基準で脆弱性を評価しています。
- 基本評価基準(Base Metrics)
- 現状評価基準(Temporal Metrics)
- 環境評価基準(Environmental Metrics)
ただし、NVDでは、このうちの「基本評価基準」しか利用されていませんので、「現状評価基準」、「環境評価基準」については説明を割愛させていただきます。
大まかには、現状評価基準は「脆弱性の現在の深刻度を評価する基準」でCVSS現状値(Temporal Score)を算出し、環境評価基準は「利用者の環境など、最終的な脆弱性の深刻度を評価する基準」でCVSS環境値 (Environmental Score) を算出します。それぞれ、時間の経過や利用環境によって値は変化します。
基本評価基準(Base Metrics)
基本評価基準は「脆弱性そのものの特性を評価する基準」で、CVSS基本値(Base Score)を算出します。情報セキュリティの3つの特性であるConfidentiality(機密性)、Integrity(完全性)、Availability(可用性)への影響を、攻撃の可能性と合わせて評価し、算出された値は時間が経過したり、環境が変化しても不変です。
CVSS基本値は、次の2つのスコア(Subscore)から算出されます。それぞれ、0.0~10.0の範囲の値で影響力の大きさを示しています(数字が大きくなるほど深刻となります)。
- Impact Subscore:影響度(攻撃が成功した場合の深刻度のスコア)
- Exploitability Subscore:攻撃容易性(攻撃の難易度のスコア)
これらのスコアは「CVSS Base Vector」によって決定されます。それぞれのCVSS Base Vectorには次のものがあります。
Impact Subscore
| 項目名 | 説 明 |
|---|---|
| AV(Access Vector:攻撃元区分) | L(Local access:ローカルでのみ攻撃可能)、A(Adjacent network:隣接ネットワークから攻撃可能)、N(Network:ネットワークから攻撃可能) |
| AC(Access Complexity:攻撃条件の複雑さ) | H(High:高)、M(Medium:中)、L(Low:低) |
| Au(Authentication:攻撃前の認証要否) | N(None required:認証操作が不要)、 S(Requires single instance:単一認証操作が必要)、M(Requires multiple instances:複数認証操作が必要) |
Exploitability Subscore
| 項目名 | 説 明 |
|---|---|
| C(Confidentiality Impact:機密性への影響) | N(None:影響なし)、 P(Partial:部分的な影響)、C(Complete:全面的な影響) |
| I(Integrity Impact:完全性への影響) | N(None:影響なし)、 P(Partial:部分的な影響)、C(Complete:全面的な影響) |
| A(Availability Impact:可用性への影響) | N(None:影響なし)、 P(Partial:部分的な影響)、C(Complete:全面的な影響) |
これらの項目の値から、次の計算式によって、ようやくCVSS基本値(Base Score)が算出できます。
- 影響度 = 10.41×(1-(1-C)×(1-I)×(1-A))
- 攻撃容易性 = 20×AV×AC×Au
- f(影響度) = 0(影響度が0の場合)、1.176(影響度が0以外の場合)
- CVSS基本値 = ((0.6×影響度)+(0.4×攻撃容易性)-1.5)×f(影響度)
実際に計算するには、各項目の評価結果ごとにあらかじめ決められている値を当てはめる必要があります。自分で計算してみたい方はIPA(情報処理推進機構)が提供している共通脆弱性評価システムCVSS概説の「3. 値の算出方法」を参照してください。
また、JVN(後述)により、自力で計算しなくても、項目に答えるだけで値を算出してくれるCVSS Calculatorも提供されています。
先ほどのNVDのShellshockのサイトに戻ると、Base Score、Impact Subscore、Exploitability Suscoreがすべて最高の「10.0」で、危険性も「High」(高)だったことがわかります。bashのような基本的なソフトウェアに、これだけ影響度の大きい脆弱性が見つかったのですから、大きな騒動となったのは当然の流れと言えるでしょう。
また、これらを算出する元になっているCVSS Base Vectorは、「AV:N/AC:L/Au:N/C:C/I:C/A:C」と記述されており、それぞれ上記の表に当てはめると次の意味となります。
- AV:N→攻撃元区分は「ネットワークから攻撃可能」
- AC:L→攻撃条件の複雑さは「低い」
- Au:N→攻撃前の認証要否は「不要」
- C:C→機密性への影響は「全面的」
- I:C→完全性への影響は「全面的」
- A:C→可用性への影響は「全面的」
なお、CVSS Base Vectorの記述はリンクになっており、クリックすると算出結果をグラフなどで視覚的に確認することもできます。
脆弱性の対応(ベンダーサイト)
脆弱性の影響までわかれば、あとは対応方針の策定と実施を行います。これは、各ベンダーのサイトで確認する必要があります。
RHELの場合、Shellshockに関する対応方法はCVE、NVD双方のReference欄に、下記のerrataページへのリンクがありました。
冒頭のAdvisory欄にあるRHSA-2014:1293-1が、ShellshockにおけるRed Hat社内での脆弱性情報IDとなります。表の末尾にあるCVEs欄には、CVEページで確認したCVE-2014-6271の記述があるので、これらが同一の脆弱性であることが確認できます。
RHEL、SLESでは、CVEとの関連づけを一覧できるページが用意されていますので、セキュリティインシデントが発生した際は、ここを確認してみることをお勧めします。
ちなみに、このShellshockのときは、bashのアップデートが提供され、このアップデートの適用で対応完了となりました(そのあとも関連脆弱性が複数見つかったので、何度かアップデートすることにはなりましたが)。
そのほかの用語
ここまでで、セキュリティインシデントが発生したときのセキュリティ情報はある程度読めるようになったのではないかと思います。しかし、頻度は上記の用語ほどではなくても、ほかにもよく目にする単語がいくつかあります。最後に、それらについても簡単に調べておきます。
- CSIRT
- Computer Security Incident Response Team。脆弱性情報の収集や対応手順の策定など、セキュリティインシデントに関する対応を行う組織の総称。CIRT(Cyber Incident Response Team)とも。
- CERT/CC
- CERT Coordination Center。米国カーネギーメロン大学のソフトウェア工学研究所に設置されている世界最初のCSIRT。インターネットセキュリティの研究・開発を行っており、その一環として「CERT Advisory」と呼ばれるソフトウェア脆弱性情報の分析・発信を行う。なお、CERTは登録商標で頭文字ではない(らしい)。
- JPCERT/CC
- Japan Computer Emergency Response Team Coordination Center。日本の代表的なCSIRT。CERTという名前がついているが、CERT/CCとは直接関係はない。CVSSの策定を行っているFIRSTのチームメンバー。
- JVN
- Japan Vulnerability Notes。JPCERT/CCとIPA(情報処理推進機構)が共同で管理している脆弱性情報データベース。米国ベースのCVEではカバーが難しい日本の脆弱性情報の対応を目的として設立。また、JVNよりもさらに日本向けの情報に特化した「JVN iPedia」という脆弱性情報データベースも同じ団体によって提供されている。