Hitach Incident Response Team

 米国政府のぜい弱性対策に関する取り組みとして,今回は製品識別子を規定する「CPE」(Common Platform Enumeration)について解説しましょう。

■CPEとは

 SCAP(Security Content Automation Program)の識別子仕様の代表格は,プログラム自身に内在する『プログラム上のセキュリティ問題』に一意の番号(ぜい弱性識別子)を付与するCVE,プログラムが稼働するための『設定上のセキュリティ問題』に一意の番号(設定項目識別子)を付与するCCEです。

 新しいぜい弱性が公開されたとき,大部分の方は最初の質問で,「どのシステムがぜい弱なのか」「どのシステムが影響を受けるのか」を尋ねると思います。ぜい弱性対策でできるだけ自動化,標準化を進めるには,情報システム,プラットフォーム,ソフトウエア・パッケージを照合するための識別情報が必要になります。そこで,これらに一意の名称を付与するCPE(Common Platform Enumeration)という仕様が整備されてきました。CPEは,SCAPの識別子仕様の一環としてMitre社で検討が進められており[1],2007年1月30日にCPE 1.0[2]が,2007年9月14日にはCPE 2.0 [3]がリリースされました。

[1] CPE Name Format and Description Specification
http://cpe.mitre.org/specification.html
[2] Common Platform Enumeration (CPE) - Name Format and Description Version 1.0
http://cpe.mitre.org/files/cpe-specification_1.0.pdf
[3] Common Platform Enumeration (CPE) - Specification Version 2.0
http://cpe.mitre.org/files/cpe-specification_2.0.pdf

■CPE 1.0とCPE 2.0

 ここでは,CPEでの識別子の記述仕様バージョン1.0とバージョン2.0について解説します。二つのバージョンを見比べると,ぜい弱性対策の自動化と標準化の試みの過程の一端を垣間見ることができます。

 CPEでの識別子の記述仕様には,バージョン1.0とバージョン2.0に共通して二つの特徴があります。一つ目は識別子の中に製品種別(ハードウエア,OS,アプリケーション)を加味していること。二つ目はベンダー名と製品名を連結して識別子を生成していることです。これにより,一目でぜい弱性が認められる環境を把握できるわけです。

 CPE 1.0では,ハードウエア部,OS部,アプリケーション部を連結して識別子を構成し,各記述部はベンダー名と製品名から構成する仕様としていました。この仕様を見ると,CPEには製品を識別するための識別子としての役割だけではなく,稼働構成も記述できるようにしたいという思いが見て取れます。CPE 1.0を使った識別子の例を見てみましょう。

CPE 1.0の識別子の基本構成
cpe:/{ハードウエア部}/{OS 部}/{アプリケーション部}

ハードウエア部の構成
{ベンダー名}:{系列名}:{モデル}
例:デル Inspiron 8500の場合
cpe:/dell:inspiron:8500

OS部の構成
{ベンダー名}:{系列名}:{バージョン}
例:マイクロソフト Windows XP,Professional Edition,Service Pack 2(SP2)の場合
cpe://microsoft:windows:xp:pro:sp2

アプリケーション部の構成
{ベンダー名}:{製品名}:{エディション}
例:オラクル Oracle Database 10g リリース2の場合
cpe:///oracle:database:10g:r2

 CPE 1.0を使うと, Dell Inspiron 8500上で OSとしてマイクロソフト Windows XP,Professional Edition,SP2, アプリケーションとしてOracle Database 10g リリース2を稼働させている場合,次のように記載することになります。

cpe:/dell:inspiron:8500/microsoft:windows:xp:pro:sp2/oracle:database:10g:r2

 CPE 2.0ではどうでしょうか。基本構成の種別には,製品種別(ハードウエア,OS,アプリケーション)を判別する情報として,h=ハードウエア,o=OS,a=アプリケーションを記述します。CPE 1.0では製品種別ごとに記述仕様を規定して連結記述していたのに対し,CPE 2.0では製品種別の記述仕様を統一しています。

CPE 2.0の識別子の基本構成
cpe:/{種別}:{ベンダー名}:{製品名}:{バージョン}:{アップデート}:{エディション}:{言語}

例:デル Inspiron 8500の場合
cpe:/h:dell:inspiron:8500

例:マイクロソフト Windows XP,Professional Edition,SP2 の場合
cpe:/o:microsoft:windows-nt:xp:sp2:pro

例:オラクル Oracle Database 10g リリース2の場合
cpe:/a:oracle:database:10g:r2

 またCPE 2.0では,「稼働構成の記述」を新たに規定したCPE言語で記述することを提案しています。先ほどのDell Inspiron 8500上で OSとしてマイクロソフト Windows XP,Professional Edition,SP2, アプリケーションとしてOracle Database 10g リリース2を稼働させている場合は,次のような記述になります。CPE言語を利用することで,稼働環境の記述に汎用性を持たせようとしています。

<cpe:platform-specification xmlns:cpe="http://cpe.mitre.org/language/2.0">
<cpe:platform id="789">
<cpe:title>Dell Inspiron 8500上でOSとしてマイクロソフト Windows XP,Professional Edition,SP2を, アプリケーションとしてOracle Database 9gあるいは, アプリケーションとしてOracle Database 10g リリース2を稼働させている</cpe:title>
  <cpe:logical-test operator="AND" negate="FALSE">
    <cpe:fact-ref name="cpe:/h:dell:inspiron:8500" />
    <cpe:logical-test operator="AND" negate="FALSE">
      <cpe:fact-ref name="cpe:/o:microsoft:windows-nt:xp:sp2:pro" />
      <cpe:logical-test operator="OR" negate="FALSE">
        <cpe:fact-ref name="cpe:/a:oracle:database:9g" />
        <cpe:fact-ref name="cpe:/a:oracle:database:10g:r2" />
      </cpe:logical-test>
    </cpe:logical-test>
  </cpe:logical-test>
</cpe:platform>
</cpe:platform-specification>

■CPEディレクトリ

 CPEを利用することにより,情報システム,プラットフォーム,ソフトウエア・パッケージに一意の名称を付与することができます。既に国立標準技術研究所(NIST:National Institute of Standards and Technology)ではCPEを利用した製品一覧の情報提供を試み始めています [4]。2007年1月30日にリリースされたcpe-dictionary.xml[5]では,米国のぜい弱性対策データベース NVDから抽出した製品情報を,CPE 1.0を利用して製品一覧として表記しています。ここには,国内ベンダーの製品情報も掲載されています。また2007年9月14日にリリースされたcpe-dictionary-2.0.xml[6]にはCPE 2.0を利用した製品一覧が提供されていますが,名称付与の見直しを行っているようで,マイクロソフト,レッドハット製品を対象に一覧が掲載されています。

[4] Official Common Product Enumeration(CPE)Dictionary
http://nvd.nist.gov/cpe.cfm
[5] cpe-dictionary.xml
http://nvd.nist.gov/download/cpe-dictionary.xml
[6] cpe-dictionary-2.0.xml
http://nvd.nist.gov/download/cpe-dictionary-2.0.xml

 今後,CVE,CCE,CPEなどの識別子が普及していくことにより,ぜい弱性対策に関わる機械処理の推進だけではなく,情報検索,資産管理などのアプリケーション同士の連携を期待することができます。CPE自体はまだ仕様として検討中の段階ですが,CVE,CCEも含め,国内のぜい弱性対策に活用していきたいものです。



寺田 真敏
Hitachi Incident Response Team
チーフコーディネーションデザイナ
『 HIRT(Hitachi Incident Response Team)とは 』

HIRTは,日立グループのCSIRT連絡窓口であり,ぜい弱性対策,インシデント対応に関して,日立グループ内外との調整を行う専門チームです。ぜい弱性対策とはセキュリティに関するぜい弱性を除去するための活動,インシデント対応とは発生している侵害活動を回避するための活動です。HIRTでは,日立の製品やサービスのセキュリティ向上に関する活動に力を入れており,製品のぜい弱性対策情報の発信やCSIRT活動の成果を活かした技術者育成を行っています。