CPE(Common Platform Enumeration)
〜製品を識別するための共通のプラットフォーム名の一覧〜
共通プラットフォーム一覧CPE(Common Platform Enumeration)(*1)は、情報システムを構成する、ハードウェア、ソフトウェアなどを識別するための共通の名称基準を目指しています。
CPEは、米国政府が推進している情報セキュリティにかかわる技術面での自動化と標準化を実現する技術仕様SCAP(Security Content Automation Protocol)(*2)の構成要素のひとつです。米国政府の支援を受けた非営利団体のMITRE社(*3)が中心となり仕様策定を進めており、2007年1月30日に最初の原案であるCPEバージョン1.0が公開されました。
その後、米国の脆弱性対策データベースであるNIST(*4)のNVD(*5)、米国政府のデスクトップ基準であるFDCC(Federal Desktop Core Configuration)(*6)での適用を通して、仕様改善が行われ、2008年1月31日にCPEバージョン2.1が公開されました。
CPEでは、ハードウェア、オペレーティングシステム、アプリケーションなどのプラットフォームを識別するための、構造化された名称体系を規定しています。また、規定に沿ってプラットフォームに付与した名称一覧がCPE Dictionaryとして、2008年4月15日にNISTから公開されました。
CPEを用いると、ベンダ、セキュリティ専門家、管理者、ユーザ等の間で、脆弱性の存在する対象となるプラットフォームを共通の言葉で議論できるようになります。また、情報システムの資産管理への適用など、情報システムの全般の管理にも役立てることができます。
本資料はMITRE社から2008年1月31日に公開されたCPEバージョン2.1の仕様書と、2008年4月15日にNISTから公開されたCPEバージョン2.1対応のCPE Dictionaryを基に作成しました。詳細は、MITRE社のCPE仕様書とNISTのCPE Dictionaryを参照して下さい。
CPE名は、ハードウェア、オペレーティングシステム、アプリケーションなどのプラットフォームを識別するため名称です。このCPE名には,2つの特徴があります。
ひとつ目は名称の中に製品種別(ハードウェア,OS,アプリケーション)を加味していること。
ふたつ目はベンダ名と製品名とを連結して名称を生成していることです。
CPE名の基本構成
cpe:/{種別}:{ベンダ名}:{製品名}:{バージョン}:{アップデート}:{エディション}:{言語}
CPE名の最初の項目では、製品種別(ハードウェア,OS,アプリケーション)を判別する情報として,h=ハードウェア,o=OS,a=アプリケーションを記述します。将来のCPEバージョンでは、d=ドライバ、l=ライブラリ、r=ランタイム環境、v=仮想化などが加わる可能性があります。
CPE名の2つ目の項目は、ベンダ名を記述します。ベンダ名は、ドメイン名を利用して作成します。組織名とドメイン名が違う場合でも、ドメイン名を優先します。例えば、(独)情報処理推進機構の場合には、ドメイン名がipa.go.jpであることから、ipaをベンダ名として採用します。
同一名称の2つの異なったベンダがある場合は、完全なドメイン名を使用します。例えば、cpe:/a:acmeが既にCPE Dictionaryに存在しwww.acme.comを表している場合、新たなwww.acme.orgのベンダの新CPE名はcpe:/a:acme.orgとなります。
アプリケーションにベンダや組織が存在しない場合、CPE名に開発者名を使用します。また、ベンダ名や開発者名が複数の単語で構成されている場合、スペースの代わりにアンダースコア(_)を使用します。
ベンダ名がマーケティングや買収などにより変化する場合でも、既存の古いベンダ名のCPE名は変更しません。新たな製品に対しては、新たなベンダ名の新しいCPE名を作成します。
CPE名の3つ目の項目では、製品名を記述します。複数の単語で構成されている製品名の場合、スペースをアンダースコア(_)に置き換えた名前を記述します。
例えば、Zone LabsのZoneAlarm Internet Security Suite version 7.0の場合は次のようになります。複数の単語で構成している製品でも、ベンダが正式に略称を使用し、CPE名が不明瞭にならない場合、略称を採用します。たとえば、「Internet Explorer」の「ie」や「Java Runtime Environment」の「jre」等です。
製品名が変更になった場合でも、既存のCPE名は修正しません。製品の新たなバージョンに対しては、新たな製品名の新しいCPE名を作成します。
CPE名の4つ目の項目では、製品のバージョン情報を記述します。
バージョンの記述は、製品名の記述で用いる形式(ピリオド(.)やダッシュ(-)記号などの使用方法)と同様の形式で表示します。
例えば、Adobe Reader version 8.1の場合は次のようになります。CPE名の5つ目の項目では、製品のアップデートやサービスパックの情報を記述します。バージョンとアップデートの違いは、ベンダや製品が出す情報に依存します。
例えば、Red Hat Enterprise Linux 4.0 Update 4の場合は次のようになります。通常、製品の最初の公開時にはアップデートの記載はありません。例えば、Enterprise Linuxの最初の公開時にupdate 0の記載はありませんし、Microsoft Windows 2000の最初の公開時にService Pack 0の記載はありません。
しかし、特にベンダが製品の最初の公開時にアップデートを記載している場合もあります。例えば、Red Hatが使用しているGeneral Availability(ga)の場合は次のようになります。CPE名の6つ目の項目では、製品のエディションを記述します。エディションとはソフトウェア等の提供方法等(例:プロフェッショナル版、無償版)を示します。
例えば、Microsoft Windows 2000 Service Pack 4 Professional Editionの全てのバージョンを示す場合は次のようになります。CPE名の7つ目の項目では、製品で使用している言語を特定したい場合に記述します。この項目の表記には、言語識別のためのIETF RFC 4646(*7)のタグを利用します。
例えば、Mozilla Firefox version 2.0.0.6の Mac OSX用の日本語版の場合は次のようになります。CPE名では、CPE名をできる限り短くするために略称を利用します。表1に一般的な用語とCPE名で利用する略称を記載します。
| # | 一般的用語 | CPE略称 |
|---|---|---|
| 1 | advanced |
adv |
| 2 | professional |
pro |
| 3 | server |
srv |
| 4 | standard |
std |
| 5 | edition |
ed |
| 6 | version 3.4 |
3.4 |
| 7 | patch level 3 |
pl3 |
| 8 | release 3 |
r3 |
| 9 | release candidate 2 |
rc2 |
| 10 | service pack 4 |
sp4 |
| 11 | support pack 2 |
sup2 |
| 12 | service release 2 |
sr2 |
| 13 | security rollup |
sru |
| 14 | general availability |
ga |
CPE名を記載するにあたり、表2の予約文字を直接、使用することはできません。使用したい場合は、表2のパーセントエンコーディングの表記を用いる必要があります。
| # | characters | 予約文字(読み方) | 予約文字 |
%表記 |
|---|---|---|---|---|
| 1 | colon |
コロン |
: |
%3A |
| 2 | slash |
斜線 |
/ |
%2F |
| 3 | question mark |
疑問符 |
? |
%3F |
| 4 | pound sign |
番号記号 |
# |
%23 |
| 5 | open bracket |
左大括弧 |
[ |
%5B |
| 6 | close bracket |
右大括弧 |
] |
%5D |
| 7 | at sign |
単価記号 |
@ |
%40 |
| 8 | exclamation point |
感嘆符 |
! |
%21 |
| 9 | dollar sign |
ドル記号 |
$ |
%24 |
| 10 | ampersand |
アンパサンド |
& |
%26 |
| 11 | apostrophe |
アポストロフィー |
' |
%27 |
| 12 | open parenthesis |
左小括弧 |
( |
%28 |
| 13 | close parenthesis |
右小括弧 |
) |
%29 |
| 14 | asterisk |
アステリスク |
* |
%2A |
| 15 | plus sign |
正符号 |
+ |
%2B |
| 16 | comma |
コンマ |
, |
%2C |
| 17 | semi-colon |
セミコロン |
; |
%3B |
| 18 | equal sign |
等号 |
= |
%3D |
| 19 | percent-sign |
パーセント |
% |
%25 |
| 20 | angle bracket |
不等号(より小) |
< |
%3C |
| 21 | angle bracket |
不等号(より大) |
> |
%3E |
| 22 | double quote |
引用符 |
" |
%22 |
CPE Dictionaryは、CPE仕様書に従ってプラットフォームに付与したCPE名と、CPE名の一般名とを併記した辞書で、NISTから公開されています。CPE DictionaryはXMLによって記載されたプラットフォームの一覧ということができます。
<cpe-item name="cpe:/a:ipa:myjvn">
<title xml:lang="en-US">IPA MyJVN</title>
<title xml:lang="ja">(独)情報処理推進機構 MyJVN</title>
</cpe-item>
IPAでは、NISTが公開しているCPE Dictionaryを参考に、脆弱性対策情報データベース「JVN iPedia( http://jvndb.jvn.jp/ )」で公開するそれぞれの脆弱性対策情報をCPE名で関連付ける脆弱性対策情報共有ツール「MyJVN(マイ・ジェイブイエヌ、http://jvndb.jvn.jp/apis/myjvn/ )」を開発しました(*8)。
MyJVNでは、JVN iPediaに登録されている脆弱性対策情報をCPE名で関連付けることにより、利用者に関係する情報のみを表示するだけではなく、ベンダ名、製品名でのグループ化した表示を実現しています。
今後、NISTが提供するCPE Dictionaryとの連携を図り、製品識別子としてのCPE名を利用していくことで、脆弱性対策情報の提供ならびに流通基盤の整備を図っていくなど、検討を行っていきます。
(*1)CPE(Common Platform Enumeration):製品を識別するための共通のプラットフォーム名の一覧。
http://cpe.mitre.org/
(*2)SCAP(Security Content Automation Protocol):米国政府が推進している情報セキュリティにかかわる技術面での自動化と標準化を実現する技術仕様。
http://nvd.nist.gov/scap.cfm
(*3)MITRE Corporation:米国政府向けの技術支援や研究開発を行う非営利組織。
http://www.mitre.org/
(*4)NIST(National Institute of Standards and Technology):米国国立標準技術研究所。米国の科学技術分野における計測と標準に関する研究を行う機関。
http://www.nist.gov/
(*5)NVD(National Vulnerability Database):NISTが運営する脆弱性データベース。
http://nvd.nist.gov/
(*6)FDCC(Federal Desktop Core Configuration):米国政府が各省庁に向けて、デスクトップ環境の最低限のセキュリティ設定を実施するように定めた基準。
http://nvd.nist.gov/fdcc/index.cfm
(*7)IETF RFC 4646言語識別用タグ。
http://www.ietf.org/rfc/rfc4646.txt
(*8)脆弱性対策情報収集ツール「MyJVN」を公開
http://www.ipa.go.jp/security/vuln/documents/2008/200810_MyJVN.html
IPA セキュリティセンター(IPA/ISEC) 大森/斉藤
Tel:03-5978-7527 Fax:03-5978-7518
E-mail: 
| 2010年6月24日 | 参考情報を追加 |
|---|---|
2010年2月25日 |
参考情報を追加 |
2008年10月23日 |
掲載 |