tenable.ioを試してみた

tenable.ioのトライアルを利用してみました。トライアル申し込みからAgentを利用した脆弱性診断までやってみましたので、備忘録も兼ねて。

**利用構成イメージ**
<img width="300" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/1f26c214-d7ff-2115-f981-fd4ab385a878.png">

## 1. 環境
OS： CentOS7.9
Kernel: 3.10.0-1160.el7.x86_64
Agent: NessusAgent-10.1.1-es7.x86_64.rpm

## 2. トライアル申し込み
下記サイトへアクセスします。

https://www.tenable.com/try

必要事項を記入して申し込みしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/e43cd2b3-bf5b-b4af-8137-fe2939f4a80a.png)

すぐに下記内容が登録メールアドレス宛に届きますが、この時点ではまだ利用はできません。次のメールが来るのを待ちましょう。
<img width="500" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/e2e8c668-353f-4bdc-7650-10f2375776c4.png">


下記メールがきてようやく利用できます。「Activate Your Evaluation」をクリックします。
<img width="500" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/a2730052-1e7d-eff5-a694-7d6075201e2e.png">


ログイン用のパスワードを設定します。12文字以上で設定しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/0dec4bd9-b328-bcb4-fc44-6c8752c777d0.png)

ログイン画面が表示されます。Usernameには登録メールアドレス、パスワードは先ほどの手順で設定したパスワードを入力して「Sign in」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/35774711-6b8d-172e-3f43-59eb7b276310.png)

「Accept」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/f3761868-3074-a24e-7003-4d6d8dff62b0.png)

ログインできました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/4deb663b-3a2f-abcd-f4d8-ab13e577f931.png)


## 3. link key取得
続いて、Agentと取得したトライアルアカウントをリンクするためのlink keyを取得します。画面左上のマークから「Settings」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/78fc917c-fb3d-a8ae-8910-2519b43519e6.png)
 
画面左下の「Sensors」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/9b6dabbd-809c-e994-f741-a5fbbe2abb31.png)

画面が遷移します。左メニューから「Agents」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/fb7fa2f6-baa5-93cc-216f-15bb4347fb34.png) 

Agent情報が表示される画面に遷移します。画面右上の「Add Agent」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/f446a9d2-e774-e098-92ae-0df8a21d9142.png)

Linking Keyの下にある数字がAgentとリンクを形成する上で必要となる鍵です。「Copy」ボタンをクリックしてテキストなどに張り付けておきましょう。
<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/5f38943f-d7a7-d9b0-da74-cf4eddd35dd4.png">

## 4. Agent ダウンロード
これで監査対象となるLinuxOS側の設定が可能となりましたので、Agentファイルを下記サイトからダウンロードしましょう。

https://www.tenable.com/downloads/nessus-agents

今回はCentOS7を監査対象ノードとしていますので、下記画面に表示されているパッケージを取得します。パッケージファイル名をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/21866596-8ad4-f007-d345-ba834e3f2736.png) 

「I Agree」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/ba8772bc-ff7f-20ea-ea58-efeec318f939.png)　

ダウンロードしたパッケージを対象ノードにSCP転送してから下記コマンドを実行しましょう。

```bash
# rpm -ivh NessusAgent-10.1.1-es7.x86_64.rpm
warning: NessusAgent-10.1.1-es7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 1c0c4a5d: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:NessusAgent-10.1.1-es7           ################################# [100%]
 - First, start Nessus Agent by typing /bin/systemctl start nessusagent.service
 - To link this agent, use the '/opt/nessus_agent/sbin/nessuscli agent' command.
   Type '/opt/nessus_agent/sbin/nessuscli agent help' for more info.

Unpacking Nessus Core Components...
```

インストール後にサービスを起動させます。

```bash
# systemctl start nessusagent.service
# systemctl status nessusagent
* nessusagent.service - The Nessus Client Agent
   Loaded: loaded (/usr/lib/systemd/system/nessusagent.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2022-02-11 18:25:07 JST; 10s ago
 Main PID: 25148 (nessus-service)
    Tasks: 3
   CGroup: /system.slice/nessusagent.service
           |-25148 /opt/nessus_agent/sbin/nessus-service -q
           `-25149 nessusd -q

Feb 11 18:25:07 gitlab-dev systemd[1]: Started The Nessus Client Agent.
```

サービス起動後に手順#3にて取得したlink keyを使ってコマンドを実行します。

```bash
# /opt/nessus_agent/sbin/nessuscli agent link --key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --cloud
[info] [agent] HostTag::getUnix: setting TAG value to 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'
[info] [agent] Successfully linked to cloud.tenable.com:443
[info] [agent] Failed to open global database.
```

Agentのステータスが下記の通りであれば、成功です。

```bash
# /opt/nessus_agent/sbin/nessuscli agent status
Running: Yes
Linked to: cloud.tenable.com:443
Link status: Connected to cloud.tenable.com:443
Last successful connection with controller: 22 secs ago
Proxy: None
Plugin set: (null)
Scanning: No (0 jobs pending, 0 smart scan configs)
Scans run today: 0 of 10 limit
Last scanned: Never
Last connect: 1644829816
Last connection attempt: 1644829816
```

tenable.ioのAgent画面からもLink状態を確認することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/703c7780-43e5-9409-5fc9-1612fda1c08e.png) 

続いて、Agent監査を実施する前にグループを作成する必要があります。「Agent Group」から「Add Agent Group」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/c7bc8975-672d-2d91-47f4-c1019ed4d299.png) 

本来は用途毎に適切な名前を付けるべきだと思いますが、今回はtestGroupという名前にしました。「save」ボタンをクリックします。
<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/bb077420-6633-5ed7-c8d8-582fe1d32f64.png">

グループが作成されました。では、このグループ名をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/f85e225e-91f6-5222-16de-b74be38f6047.png) 

「Assign Agents」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/7f96d47c-58b8-2966-2c46-8099e0f34dfb.png) 

エージェント一覧が表示されますので、先ほど登録したAgentを選択して「Assign」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/c52a3b54-a96e-fe7d-9b97-3928217ce808.png) 

グループが作成されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/68b9d288-1cee-c173-59fc-19c415da7e13.png) 


## 5. 脆弱性診断
Agentの準備もできましたので診断(Scan)をしたいと思います。画面左上から "Vulnerability Management" - "Scans"を選択します。
<img width="600" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/d7817f8e-041b-953e-03a0-2bf52db14da6.png">

画面遷移します。画面中央の「Create a new scan」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/3b07c39e-a987-8c07-fd60-127be9598822.png) 

さらに画面が遷移します。画面上部にある「Agent」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/6d37ee93-02a3-6f9b-5fd3-d885953890f5.png)  

画面下に表示されている「Advanced Agent Scan」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/f89126dc-3a9e-3e69-beb5-981a674a7478.png) 

作成するスキャン名の入力とAgentGroupを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/7c25a627-c809-5c64-97b8-333bd17f85b9.png) 

画面を下にスクロールするとスケジュール設定可能なフィールドがあります。今回はこちらに余裕をもった未来時刻を入れておき、画面右下の「save」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/3b5813ea-6834-dd09-cd89-41ce22c2a149.png)

作成直後の画面になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/d1125433-751d-36b4-a112-1b54cd18374b.png)

設定した時刻後のサイト状況です。ステータスが「Running」になっていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/4a57c294-eef8-3a24-9a59-4d7822fb556d.png) 

しばらくすると、監査が終わりステータスが「Completed」になりました。では、作成したScan名をクリックしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/f0f42813-5a0e-1e15-934b-589f63899661.png) 

脆弱性の結果が表示されていることがわかります。この画面上からでも色々と確認することが出来ますが、レポート形式のほうが見やすいとおもいますので、Scan名の横にある "[→" マークをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/2af80946-3c12-833a-405b-2d248060c6b8.png)

画面右にレポート出力できるサブウィンドウが表示されます。「HTML Costom」から「Export」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/3eb6a08e-09b4-c19e-b208-63060bab18d7.png)

ローカル端末側でHTMLがダウンロードされ、結果を確認することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/b4e1dfcc-fb48-5d15-d30c-e31f08e75934.png) 

## 6. その他
tenable.ioのトライアル版を利用してみました。今回は脆弱性情報が正しく検知されているかを見るためにあえて少し古めのISOイメージから展開したCentOSを利用してみましたが、正しく検知されていることがわかりました。※1/26記事のpolkitも検知しているのがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/ba2332ae-555e-8f4f-1a2f-453ee4067ad4.png)