Japan
サイト内の現在位置
CIS Benchmarksを活用したシステムの堅牢化について
NECセキュリティブログ2020年5月22日
NECサイバーセキュリティ戦略本部セキュリティ技術センターの妹脊です。
今回は、システムを安全に構成するためのベストプラクティスであるCIS Benchmarksと、このベンチマークを実運用で活用してシステムを堅牢化するためのコツについて紹介します。
CIS Benchmarks™とは
CIS Benchmarks™は、米国のCIS(Center For Internet Security)(注1)が発行しているシステムを安全に構成するための構成基準およびベストプラクティスが記載されたガイドラインです。CIS Benchmarksの対象は、Windows ServerやRed Hat Enterprise LinuxなどのOS、ApacheやDocker、Oracle DBなどのミドルウェア、CiscoやPalo Alto Networksなどの主要ベンダーのネットワークデバイス、その他デスクトップソフトウェアやモバイルデバイス等と幅広く、現在140種類以上のベンチマークが発行されています。それぞれの対象のバージョンごとに、システムをセキュアにするための設定方法が記載されているのが特徴です。また、Amazon Web Services(以降AWS)やMicrosoft Azure(以降Azure)などのクラウドプロバイダを利用する場合のベンチマークも提供されています。
CIS Benchmarksは、対象分野の専門家、テクノロジーベンダー、パブリックおよびプライベートコミュニティメンバー、CISベンチマーク開発チームのボランティア活動を通じて開発されています。PDF形式で、下記のサイトで無料で公開されています。(ただし、ダウンロードの際に個人情報の登録が必要です。)
CIS:CIS Benchmarks
https://www.cisecurity.org/cis-benchmarks/
CIS Benchmarksの構成
CIS Benchmarksの各ベンチマークは、次のような構成になっています。
これは、Windows Server 2016のCIS Benchmark(CIS Microsoft Windows Server 2016 RTM Release 1607 Benchmark(v1.1.0))ですが、他のベンチマークも同様の構成になっています。各章の1つ1つが具体的な設定項目とその詳細になるのですが、例えばWindows Server 2016では下記のような項目の設定について記載されています。(英語タイトルを日本語訳したものです)
-
アカウントポリシー
-
ローカルポリシー
-
イベントログ
-
制限グループ
-
システムサービス
-
レジストリ
-
ファイルシステム
-
有線ネットワーク(IEEE 802.3)ポリシー
-
セキュリティが強化されたWindows ファイアウォール
-
ネットワークリストマネージャポリシー
-
無線ネットワーク(IEEE 802.11)ポリシー
-
公開鍵ポリシー
-
制限ソフトウェアポリシー
-
ネットワークアクセス保護 NAPクライアント設定
-
アプリケーション制御ポリシー
-
IPセキュリティポリシー
-
高度な監査ポリシーの設定
-
管理用テンプレート(コンピュータ)
-
管理用テンプレート(ユーザ)
構成の特徴として、私は次の2つのポイントに着目しました。
Levelと役割の設定
CIS Benchmarksでは、項目それぞれにLevelを設定しています。
Levelの各項目の意味について、Microsoftの記載 [1]が分かりやすかったので一部引用すると下記になります。
- Level 1:あらゆるシステムで構成でき、サービスの中断や機能の低下をほとんど、またはまったく引き起こさない、不可欠となる基本セキュリティ要件を推奨しています。
- Level 2:機能の低下を引き起こす可能性のある、より高度なセキュリティを必要とする環境向けのセキュリティ設定を推奨しています。
- その他:WindowsではNG(Next Generation)というレベルも設定されています。これは特定機能に対する設定項目で、その機能を有効化した場合に上記のLevel1、Level2に加えて設定するものです。例えば、クライアントOSならWindows Defender、サーバOSならHyper-Vなどが挙げられます。
さらに、設定するマシンの役割についても設定があります。例えば、Windows ServerであればDomain ControllerとMember Server、Red Hat Enterprise LinuxであればServerとWorkstationというふうに。それぞれによって設定する項目も違っています。
これらを参考にして、システム自体の重要度や役割に応じて適切な設定することができます。SEがお客様システムへのセキュリティ対策を検討する場合も、このような基準があればどこまで対策するかを明確にでき、お客様の理解も得やすいのではないかと思います。
項目の確認方法や設定方法が明確
各項目を達成するために、どこを確認すればよいのか、どのように設定するのかが具体的に記載されています。
例えば、Windowsであればグループポリシエディタの項目、レジストリキーとその値まで、Linuxであれば、コマンドや設定ファイルの記載方法まで記載されており、その通りに実行すればよいのでわかりやすいです。
下記はそれぞれ、Windows Server、Red Hat Enterprise Linuxの例です。
- Windows Server 2016 RTM Release 1607 Benchmark
18.8.4.1 (L1) Ensure 'Remote host allows delegation of non-exportable credentials' is set to 'Enabled' (Scored)
- Red Hat Enterprise Linx 7 Benchmark
1.4.1 Ensure permissions on bootloader config are configured (Scored)
個人的には、セキュリティ設定に特化してここまで詳細で具体的に記載している文献は他にはなかなか見当たらないと思います。
なお、OSの場合、設定項目は百項目以上、ページ数にすると数百~千数百ページ(Windows Server 2016は918ページ・・・)というとても重厚長大なガイドになっています。全部読みこなすには並々ならぬ体力と根気がいりますね。
CIS Benchmarksを実運用で活用するには
CIS Benchmarksはとても有用そうに見えますが、項目数が膨大であり、1つ1つを手動で設定していくのは骨の折れる作業です。そのため、設定の自動化が必須です。
自動化の一手段として、AnsibleやChef 、Puppetのような構成管理ツールを活用することが挙げられます。
すでに、それぞれの構成管理ツールのポータルサイト [2] [3] [4]やGitHub上で、CIS Benchmarksに準拠した設定を自動化するためのひな形(AnsibleのPlaybook(Role)、Puppetのモジュール、Chefのrecipe)が有志により作成・公開されています。こういったものを活用することで、堅牢化にかける時間を大幅に短縮することができます。
また、クラウド環境では、CIS Benchmarksに基づいて堅牢化されたOSイメージ [5]が存在するようです。各クラウドベンダのMarketplaceから購入できるようなので、こういったものもうまく活用できるとよいですね。(ちなみに、AWSでこのイメージを使う場合は、1時間あたり$0.02がEC2の利用料に+αで必要(Blog執筆時点)だそうです。)
システムが堅牢かどうかをチェックするには
では、システムがCISベンチマークに準拠した設定になっているかどうかはどうやって調べるのでしょうか?まさか、ひとつひとつ目視で確認・・・というわけにはいきませんので、下記ような方法でチェックすることができます。
CIS-CAT®をつかう
CIS-CAT®はCISが提供しているCIS Benchmarksへの準拠をチェックするツールです。CIS-CAT®にはPro(有償会員にのみ提供)、Lite(無償提供)の2種類があります。それぞれ、対応しているCIS Benchmarksの数やダッシュボードの有無、レポートフォーマットの種類数等に違いがあります。Liteでは検査対象は一部のOSやミドルウェアに限られていますが、CIS Benchmarksのバージョンとしてはほぼ最新のものを検査することができます。
CIS-CAT® Pro
https://www.cisecurity.org/cybersecurity-tools/cis-cat-pro/
CIS-CAT® Lite
https://learn.cisecurity.org/cis-cat-lite
脆弱性診断ツールのオプションをつかう
世の中で広く流通しているTenable社のNessusやBeyond Trust社のRetina等の脆弱性診断ツールには、CIS Benchmarksに準拠しているかをチェックするためのスキャン方法が準備されています。もしこのような脆弱性診断ツールを普段利用しているのであれば、操作に慣れていたり、脆弱性診断と同じダッシュボードで検査結果の確認ができるため、取り入れやすいのではないでしょうか。ただし、各CIS Benchmarksの最新バージョンには対応できていない場合もあるので、どのバージョンのCIS Benchmarksの検査ができるのかはあらかじめ確認しておく必要があります。
ほかにも、クラウド環境では、Amazon Inspector(AWS)やSecurity Center(Azure)などでも、一部のCIS Benchmarksについて準拠のチェックができます。
それぞれの検査に共通する仕様として、XCCDF言語が使われていますが、これについてはまた次回のBlogで書きたいと思います。
おまけ
今回のBlogを執筆するにあたって改めてCISのWebページを眺めていたら、いま何かと話題のZoomのCIS Benchmarksについて開発ボランティアを募集していました。Zoomのコミュニティは1か月ほど前に立ち上がったようで、ドラフト版の構成について議論が始まったところでした。さすがCIS、動きが早いですね。ご興味ある方は、以下のページを参照してコミュニティ(CIS WorkBench [6])に参加してみてはいかがでしょうか。
CIS Benchmarks April 2020 Update
https://www.cisecurity.org/blog/cis-benchmarks-april-2020-update/
さいごに
本記事では、システムを安全に構成するためのベストプラクティスであるCIS Benchmarksについてご紹介しました。CIS Benchmarksを活用することで、様々なOS、ミドルウェア、アプリケーション等をセキュアな設定にすることができます。もちろん、すべてのシステムが同じ対策をすればよいというわけではありませんが、ある一定の基準に沿うことで対策の抜け漏れが減り、システムを堅牢にするための近道になると考えています。この記事が少しでもみなさんのセキュア開発・運用のヒントになれば幸いです。
参考
- [1]
- [2]Ansible Galaxy: https://galaxy.ansible.com/
- [3]Chef Supermarket: https://supermarket.chef.io/
- [4]Puppet forge: https://forge.puppet.com/
- [5]CIS Hardened Images: https://www.cisecurity.org/cis-hardened-images/
- [6]CIS WorkBench: https://workbench.cisecurity.org/
- (注1)CISは米国国家安全保障局(NSA:National Security Agency)、米国国防情報システム局(DISA:Defense Information Systems Agency)、米国立標準技術研究所(NIST:National Institute of Standards and Technology)などの米国政府機関や、企業、学術機関などと連携し、インターネット・セキュリティ標準化に取り組む非営利団体。
執筆者プロフィール
妹脊 敦子(いもせ あつこ)
セキュリティ技術センター セキュリティ実装技術チーム
OS・ミドルウェアの要塞化ツールの開発やセキュリティ要件定義・設計の支援を通じて、NECのセキュア開発・運用推進に従事。CISSP、CISA、情報処理安全確保支援士(RISS)を保持。
趣味は週末ヨガと年に数回の手仕事(梅酒・梅シロップ・味噌づくりは欠かせない)の母ちゃんエンジニア。
執筆者の他の記事を読む
アクセスランキング