CIS Benchmarkのアセスメントについての検討

# 本文書について

CIS Benchmarksのアセスメント方法について確認したことを、徒然と書いています。
(というか、メモ書き程度です)

- CIS Benchmarkに記載されている設定を監査するためには、おおよそ以下のツールを使うことになる。
    - 無償系
        - CIS-CAT Lite (但し対応するプロファイルが限られるため、実用には向かない)
        - OpenSCAP (特定のプロファイルが対応しているようだ。CIS Benchmark準拠しているとは明言していない。)
    - 有償系
        - CIS-CAT Pro (CISへのサブスクリプション)
        - Tenable io, Rapid7 等の商用製品による独自実装
    - その他
        - CIS Benchmarksを見て、自分でスキャン方法を実装する
            - できないことはない。CIS Benchmarkに方法は書いてある。
            - が。Benchmarkは1カ月ごとに更新があり得る、ディストリビューション毎に用意する必要がある(RHEL8/7, Ubuntu20/18 だけで4個!)ので、メンテできないのでは。

これらを踏まえ、実運用サーバのセキュリティチェックでCIS Benchmarkをどう使ったらよいのかを検討した。

# 結論

- CIS-CAT Liteは実運用には向かず、あくまで有償版の CIS-CAT Proの体験版。
    - v3について、実環境で稼働させるのは難しいと思われる。
        - JREが必要/GUIが必要となり、既存サーバへの変更が必要になることが多いと思われる。
    - 有償版であれば、出力形式やBenchmarkの種類も増えるので、有用かも
- やっぱり OpenSCAPを使うのがよさそう
    - CIS Benchmarksに準拠(strictで)する必要は、実運用上なさそう
    - そういう意味であれば、それらの項目も含まれているプロファイルを使えばよい気がする
    - 何より、パッケージで導入可能/JREのような大幅な変更は不要、なので始めやすいのでは
    - プロファイルを買えれば、PCIDSS向けでスキャンもできるので、導入後の利用用途拡大も見込める
    - あと、チェック項目も変更可能なので、「/tmpは別パーティションにせよ」みたいなものを除外しやすい。

というわけで、strictにCIS Benchmarkに対応する必要がある、という稀な事態が無い限りは、OpenSCAPのSSGを利用したスキャンが実用的なのではないかと思われる。

------
以下、CIS-CAT v3/4 及び OpenSCAPでのアセスメント(スキャン)方法を例示しておく


# CIS-CAT Liteでのスキャン

- Ubuntu18.04をDesktopでインストールしている機器をスキャンする
- CIS-CAT Liteはv3, v4の二系列があるため、両方を試した

## CIS-CAT Lite v3
### JREのインストール

Javaが必須の為、インストールする。

```
$ sudo apt-get install openjdk-11-jre
```

### スキャンする

`CIS-CAT.sh` でGUIを起動し、スキャンをする。

```
$ sudo ./CIS-CAT.sh
```

#### 1. Benchmarkを選択する

- 今回は `CIS Ubuntu Linux 18.04 LTS Benchmark` を選択
- ※無償の為、対象が制限されている。有償であれば、Ubuntuであれば12.04LTSから20.04LTSまで選択可能。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124868/0f1ae68c-5d8a-ea2f-e028-f51641e5cef7.png)

#### 2. Profileを選択する

- 今回は一般的なサーバ用途を想定して、`Level1 Server`を選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124868/0567784d-74db-9eb0-34c7-765ae88328c5.png)

#### 3. レポートオプションを設定する

- レポート保存先を確認する
- 無償版の為、 `HTML Report`のみ出力可能。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124868/f6d7740b-1f2b-1af1-95df-3a3f5a7bb378.png)

#### 4. 設定のレビュー

- 選択した設定を確認する
- (`Level2 - Server` Profileでスキャンしたときに画像を取得した)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124868/9e50bc3b-a375-f9cd-d16d-972f37ef7da3.png)

#### 5. スキャン/レポート確認

- スキャンは1分程度で終わる
- `View Reports` でレポートが見れるはずだが…何も起こらず。
- レポート保存先に`.html`ファイルが置かれるので、それをブラウザで確認する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124868/0a86a8f6-3035-428d-2d50-eb55ec97f7df.png)

#### 6. レポートの閲覧

- CIS-CAT Lite v3でのアセスメント結果を確認する。
- 表紙もあり、報告書の体を成している
- Summary, Assessment Resultsで、特定領域の設定が不足しているなどが把握しやすい
- Assessment Detail(例として `Ensure /tmp is configured` を掲示)がCIS-Benchmarksの内容となり、どのように検査され、どのように設定すべきか、が示される
- HTMLなので自動処理は難しい。あくまで無償previewであり、有償版を利用せよという意思を感じる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124868/fabb5f45-d7bf-04f6-17d8-0b6a73107acb.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124868/e8e1045c-0da2-c6dd-e85f-2c6aa4b54d56.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124868/09037b20-20b2-f87d-8139-b803b6a0a553.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124868/8c7697a9-7382-747a-afc3-944144c5370e.png)

### 備考

1. `Options - Update Vulnerability Definitions`で定義ファイルのアップデートが可能。最低限 `Only Current Platform Vulnerabilities`だけでもアップデートする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124868/26bf8a93-d6ed-e992-1445-806015a43891.png)


## CIS-CAT Lite v4

### スキャン

- まずは対話的に実行(`-i`オプション)してみる
- DataStreamやProfileを聞かれるので、答えるだけ

```
$ sudo sh ./Assessor-CLI.sh -i
...
Available Benchmarks/Data-Stream Collections:
 1. CIS Controls Assessment Module - Implementation Group 1 for Windows 10 v1.0.3
 2. CIS Controls Assessment Module - Implementation Group 1 for Windows Server v1.0.0
 3. CIS Google Chrome Benchmark v2.0.0
 4. CIS Microsoft Windows 10 Enterprise Release 1909 Benchmark v1.8.1
 5. CIS Ubuntu Linux 18.04 LTS Benchmark v2.0.1
 > Select Content # (max 5): 5

Selected 'CIS Ubuntu Linux 18.04 LTS Benchmark'

Assessment File CIS_Ubuntu_Linux_18.04_LTS_Benchmark_v2.0.1-xccdf.xml has a valid Signature.
Profiles:
1. Level 1 - Server
2. Level 2 - Server
3. Level 1 - Workstation
4. Level 2 - Workstation
 > Select Profile # (max 4): 1

Selected Profile 'Level 1 - Server'

Obtaining session connection --> Local
...
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124868/e5a8c53c-3140-4cf8-308d-639cd9497dad.png)

### 内容を確認する

- v3同様にHTMLのみが出力されているので、これを読む。記載方式はざっと見で差は無いよう見思える。
- ざっと見た感じでは、スキャンが上手く行っていなかったようだ。アセスメント直後のサマリに `Total Not Applicable: 241` とあり、全部失敗しているようだ。
- v3よりは使い始めが面倒かもしれないが、CLI前提なので比較て使いやすいかもしれない。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124868/f2cd265f-a1ce-0c58-e640-c4e7e896eaaa.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124868/5268869a-df8f-62c9-980b-12a9345675b4.png)