連載
» 2018年10月18日 05時00分 公開

OpenSCAPで脆弱性対策はどう変わる?(3):SCAPの構成要素、XCCDF(セキュリティ設定チェックリスト記述形式)、OVAL(セキュリティ検査言語)とは (2/2)

[面和毅,OSSセキュリティ技術の会]
前のページへ 1|2       

OVAL(Open Vulnerability and Assessment Language:セキュリティ検査言語)

 OVALは、システムのセキュリティに関する設定のチェックやパッケージのバージョン情報など、セキュリティに関する検査を自動的に実行するために策定された仕様です。

 先述の非営利団体MITRE社が中心となって仕様策定を進め、2002年に公開されました。現在はMITREからCISecurityに移管され、公式のページもCISecurityのOVALサイトに移動しています。現在の新しいバージョンや開発状況については、CISecurityのOVALサイトや、OVAL ProjectのGitHubを確認すると詳しい情報を見ることができます。改訂も進んでおり、2018年現在の最新のOVALバージョンは5.11.2になっています。

XCCDFとOVALの関係

 前章でも説明した通りXCCDFは、セキュリティに関する設定のチェックリストやベンチマークをドキュメント化するために策定された、XMLで構造化されたフォーマットです。これは、言ってみれば「チェックリストやベンチマークのドキュメント」です。一方、OVALはシステムのパッケージ情報などが「実際にどうなっているかを検査する」ものです。XCCDFとOVALやOCIL(自動化できない質問事項の標準化基準)の関係は図5のようになります。

図5

 図6に例として先程の「ssg-rhel7-xccdf.xml」から<Profile id="pci-dss">の箇所を抜き出しました。

図6

 PCI DSS準拠のマシンとして「auditdサービスが有効になっているか(True/False)」がチェックリストとして定義されていますが、実際の確認は外部の「ssg-rhel7-oval.xml」というOVALで記述されたファイルの「oval:ssg-service_auditd_enabled」コンテンツを実行させて結果を取得しています。実際に「ssg-rhel7-oval.xml」ファイルを確認すると、「oval:ssg-service_auditd_enabled」というコンテンツでauditdのサービスがsystemdで「active」になっているかを確認しています(実際のOVALファイル内の処理は構造化されていて、もう少し複雑です。簡便化したものを図にしています)。

OVALで記述されるファイルの構造

 OVALXCCDFで記述されるファイルは下記の要素から構成されています(図7)。

  • 定義(definitions)
  • テスト(test)
  • オブジェクト(obj)
  • ステート(ste)
図7

 定義部分で調べる項目を定義し、必要なテストのIDを参照させます。テスト(test)のテストIDで、オブジェクト(対象物)とステート(状態)をIDで参照させ、それぞれ<obj>〜</obj>、<ste>〜</ste>内でIDと状態などを定義します。

 詳しい情報は、次回、サンプルでOVALファイルを作成する際に説明します。

次回からOpenSCAPのツール類を見ていく

 次回から、今回まで説明した用語とOpenSCAPのツール類を用いて実際に動作を見ていきます。

筆者紹介

面和毅

略歴:OSSのセキュリティ専門家として20年近くの経験があり、主にOS系のセキュリティに関しての執筆や講演を行う。大手ベンダーや外資系、ユーザー企業などでさまざまな立場を経験。2015年からサイオステクノロジーのOSS/セキュリティエバンジェリストとして活躍し、同社でSIOSセキュリティブログを連載中。

CISSP:#366942

近著:『Linuxセキュリティ標準教科書』(LPI-Japan)」


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。