Amazon InspectorでWindowsのCIS評価をしてみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

Amazon Inspectorを使ってWindowsインスタンスのCIS評価をしてみました。
本記事は、CIS評価を実際にどうすれば良いのか理解出来る事を目標にします。

CISとは

CISはインターネットセキュリティーの標準化に取り組む米国の非営利組織、またはCISが整備しているチェックリストを指します。
CISは様々なOS、ミドルウェアなどのセキュリティチェックリストを公開しています。
Inspectorでは、ルール パッケージとしてCISを利用することが出来ます。

CISのドキュメントを読んでみよう

Windows Server用のチェックリストも公開されています。
CIS Microsoft Windows Server 2012 R2 Benchmark v2.2.0 - 04-28-2016を読んでみます。
ドキュメントを読むことで、Windows Server 2012 R2のセキュアな設定を行うために役立てることが出来ます。

分類

チェック項目は2つの観点で分類されます。

  • プロファイル (セキュリティレベルと役割による分類)
    • Level 1 - Domain Controller
    • Level 1 - Member Server
    • Level 2 - Domain Controller
    • Level 2 - Member Server
  • 減点対象か否か
    • Scored (ベンチマークスコアの減点対象)
    • Unscored (減点対象とはされないが設定が推奨される)

チェック項目

チェック項目について、以下のように記載されます。
章番号を見ると指摘の内容がわかるようになっています。
1章はアカウントポリシー、2章はローカルポリシーといった感じです。

  • タイトル
    • 章番号 (レベル) タイトル(Scored|Unscored)
    • 例:1.1.1 (L1) Ensure 'Enforce password history' is set to '24 or more password(s)' (Scored)
  • プロファイル
  • 説明
  • 論理的根拠
  • 推奨内容
  • 影響
  • デフォルト値
  • リファレンス(CCE-ID)

CCE-IDとは、セキュリティ設定項目を識別するための共通の識別子です。
似たような識別子としてCVE-IDをよく聞きます。こちらは脆弱性を識別するために利用されます。

手順

手順は、AWS InspectorでWindowsのCVE評価をしてみたをご覧ください。 ルールパッケージにCIS Operating System Security Configuration Benchmarks-1.0を指定し、評価を実行します。

結果

検証に利用したインスタンスでは、246個の指摘が見つかりました。
重要度について、246中8個がInformationalでした。それ以外はHighです。

2

8個のInformationalについて、[説明]を見るとベンチマークに利用したルール一覧が記載されています。
実際の指定項目は実質、246-8 = 238個です。

3

結果はAWSコンソールから確認出来るほか、CSVでダウンロードする事が可能です。
CSVの結果列を抜き出してみました。レベルはL1,L2(=レベル1または2)で判断出来ます。

  • 1.1.1 L1 Ensure Enforce password history is set to 24 or more passwords, 2.2.0 CIS Microsoft Windows Server 2012 R2 Benchmark.
  • 1.1.3 L1 Ensure Minimum password age is set to 1 or more days, 2.2.0 CIS Microsoft Windows Server 2012 R2 Benchmark.
  • (略)
  • 19.7.41.2.1 L2 Ensure Prevent Codec Download is set to Enabled, 2.2.0 CIS Microsoft Windows Server 2012 R2 Benchmark.

指摘項目に対応してみる

PDFを確認し、章番号が1"から始まる指摘項目を整理します。
InspectorとPDFは章番号で紐付けます。

1.1.1 (L1) Ensure 'Enforce password history' is set to '24 or more password(s)' (Scored)

1.1はパスワードのポリシーに関する指摘です。
管理ツール > ローカルセキュリティポリシーから現在の設定を確認出来ます。

4

PDFの"Description"に詳しい内容と対応が記載されています。
1.1.1について、確認しましょう。
”パスワードの履歴を記録する”を設定し、ユーザーが同じパスワードを長期間利用する事を防止します。
24回に変更します。デフォルトは0回です。

1.1.3 (L1) Ensure 'Minimum password age' is set to '1 or more day(s)' (Scored)

"パスワードの変更禁止期間"が0日の場合、”パスワードの履歴を記録する”を24回に設定している場合でも、ユーザーは25回の変更を行う事で同じパスワードを利用する事が出来ます。
1日に変更します。デフォルトは0日です。

1.1.4 (L1) Ensure 'Minimum password length' is set to '14 or more character(s)' (Scored)

”パスワードの長さ”を決定します。
14文字に変更します。デフォルトは0文字です。

1.2.2 (L1) Ensure 'Account lockout threshold' is set to '10 or fewer invalid logon attempt(s), but not 0' (Scored)

1.2はアカウントロックアウトのポリシーに関する指摘です。
変更前の状態は以下の通りです。

5

1.2.2について、確認しましょう。
"アカウントのロックアウトのしきい値"を設定し、ブルートフォース攻撃の成功を減らします。
10回に変更します。デフォルトは0回です。

評価の再実行

評価を再実行すると、指摘項目が初回の246から242に減りました。
差分の4つは対応を行った指摘です。
評価→対応→評価を回して行くと良さそうですね。

6

おわりに

CISは、米国インターネット・セキュリティー・センター(CIS)が整備しているセキュリティチェックリストです。
Amazon Inspectorでは、ルール パッケージとしてCISを利用することが出来ます。

Inspectorを使って、CISの評価をしてみました。
検証に利用したAMIでは、246個の指摘がありました。

章番号が1から始まる項目について、対応を行い再評価しました。
対応を行った項目について、指摘から外れることを確認しました。
評価→対応→評価を実行していくことで、セキュアな設定が出来ると思います。

参考