OVALは、システムのセキュリティに関する設定のチェックやパッケージのバージョン情報など、セキュリティに関する検査を自動的に実行するために策定された仕様です。
先述の非営利団体MITRE社が中心となって仕様策定を進め、2002年に公開されました。現在はMITREからCISecurityに移管され、公式のページもCISecurityのOVALサイトに移動しています。現在の新しいバージョンや開発状況については、CISecurityのOVALサイトや、OVAL ProjectのGitHubを確認すると詳しい情報を見ることができます。改訂も進んでおり、2018年現在の最新のOVALバージョンは5.11.2になっています。
前章でも説明した通りXCCDFは、セキュリティに関する設定のチェックリストやベンチマークをドキュメント化するために策定された、XMLで構造化されたフォーマットです。これは、言ってみれば「チェックリストやベンチマークのドキュメント」です。一方、OVALはシステムのパッケージ情報などが「実際にどうなっているかを検査する」ものです。XCCDFとOVALやOCIL(自動化できない質問事項の標準化基準)の関係は図5のようになります。
図6に例として先程の「ssg-rhel7-xccdf.xml」から<Profile id="pci-dss">の箇所を抜き出しました。
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ファイル内の処理は構造化されていて、もう少し複雑です。簡便化したものを図にしています)。
OVALXCCDFで記述されるファイルは下記の要素から構成されています(図7)。
定義部分で調べる項目を定義し、必要なテストのIDを参照させます。テスト(test)のテストIDで、オブジェクト(対象物)とステート(状態)をIDで参照させ、それぞれ<obj>〜</obj>、<ste>〜</ste>内でIDと状態などを定義します。
詳しい情報は、次回、サンプルでOVALファイルを作成する際に説明します。
次回から、今回まで説明した用語とOpenSCAPのツール類を用いて実際に動作を見ていきます。
略歴:OSSのセキュリティ専門家として20年近くの経験があり、主にOS系のセキュリティに関しての執筆や講演を行う。大手ベンダーや外資系、ユーザー企業などでさまざまな立場を経験。2015年からサイオステクノロジーのOSS/セキュリティエバンジェリストとして活躍し、同社でSIOSセキュリティブログを連載中。
CISSP:#366942
近著:『Linuxセキュリティ標準教科書』(LPI-Japan)」
Copyright © ITmedia, Inc. All Rights Reserved.