AWSでTrend Micro Cloud One – Workload Security(旧TrendMicro Deep Security as a Service(DSaaS))を使う方法

# 概要

　AWSでTrend Micro Cloud One – Workload Security(旧Trend Micro Deep Security as a Service)を初めて使ったので、その設定手順を残したいと思います
日本代理店経由でライセンス購入するとそこそこなお値段になりますので、[AWS Marketplace](https://aws.amazon.com/marketplace/pp/B01LXMNGHB)経由で導入します
**※管理コンソールなどは日本語対応されているが、~~サポートは英語（US）になります！ そして、何回かサポートに問い合わせましたが、レスポンス速度も良好でした。~~2019年12月頃？からサポートも日本語対応されました。**ただし、これからUSのAWS Marketplaceで新規契約した場合も日本語サポートになるかは不明ですので、ご注意ください。

# 用語(略称)

用語を以下の略称とする

- TrendMicro → TM
- TrendMicro DeepSecurity as a Service → DSaaS
- DeepSecurity Manager → DSM
- DeepSecurity Agent → DSA

# 1. DSMのアカウントを作成

「[Deep Security as a ServiceをAWS MarketPlaceで買ってみる](https://qiita.com/fnifni/items/0d28fb8da1b8d033a4e4)」で解説されていますので、ご参照ください

# 2. DSMとAWSアカウントの連携

https://app.deepsecurity.trendmicro.com/Help.screen?forScreen=add_aws_account
※↑はDSMのアカウントを作成後に見れるようになります（AWS連携方法の抜粋は以下になります）

連携方法は以下の3つになります

- クロスアカウントロールで連携(AWSアカウント間のIAMロールを使用したアクセスの委任) ← TM推奨
- DSMインスタンスロールで連携(DSM用のアカウントを作成して、DSMと連携する)
- AWSアクセスキーで連携(アクセスキーで、DSMと連携する)

**今回は「AWSアクセスキーで連携」で設定します**

## 2-1. IAMポリシーを作成

上記の3つの方法すべてに共通して作成する必要があります

ポリシー詳細は以下になります
**※クロスアカウントロールアクセスを使用している場合のみ、「sts:AssumeRole」権限が必要です**

```
{
   "Version":"2012-10-17",
   "Statement":[  
      {  
         "Sid":"cloudconnector",	
         "Effect":"Allow",
         "Action":[ 
            "ec2:DescribeImages",
            "ec2:DescribeInstances",
            "ec2:DescribeRegions",
            "ec2:DescribeSubnets",
            "ec2:DescribeTags",
            "ec2:DescribeVpcs",
            "iam:ListAccountAliases",
            "sts:AssumeRole"
         ],
         "Resource":[  
            "*"
         ]
      } 
   ]
}
```

## 2-2. IAMユーザ作成

DSM専用のユーザを作成し、2-1で作成したポリシーをアタッチする

## 2-3. DSMでアカウント連携

「コンピューター」タブ-「追加」-「AWSアカウントの追加」
![03.add-aws-account.png](https://qiita-image-store.s3.amazonaws.com/0/30522/1703a6f9-1934-acec-93ac-873f223d6c29.png)

セットアップタイプで「詳細」を選択
![04.setup-account-type.png](https://qiita-image-store.s3.amazonaws.com/0/30522/2aff6ef0-cf63-c3d6-c68c-4033d71ff8b9.png)


「AWSアクセスキーを使用」を選択し、アクセスキーID、秘密アクセスキーをそれぞれ入力
![05.access-wizard.png](https://qiita-image-store.s3.amazonaws.com/0/30522/34200d08-0428-4f72-51cc-7c390dd6359f.png)

追加後以下のようにEC2インスタンスがDSMに表示されれば完了です
![06.ec2-list.png](https://qiita-image-store.s3.amazonaws.com/0/30522/6e7da693-04a7-88c7-9eae-c241a9b88669.png)


# 3. セキュリティグループ

AgentをインストールするEC2インスタンスのセキュリティグループには「[こちらの資料](https://cloudone.trendmicro.com/docs/jp/workload-security/communication-ports-urls-ip/)」を参考に開放してください

# 4. Agentのインストール

Agentをインストールする前に、予めセキュリティポリシーを定義しておくとAgentをインストールしたインスタンスには自動的にポリシーとモジュール（不正プログラム対策、Webレピュテーション、ファイアウォール）が割り当てられるので便利です。

※[Agentインストール公式ドキュメント](https://cloudone.trendmicro.com/docs/jp/workload-security/agent-install/)

**[注意点!!!]**
※[後述のAgentのバージョンとOSのカーネルバージョンに互換性があること](#対応カーネル)
※[後述のオートスケールで使用する場合はAgentをインストールするタイミングが異なること](#オートスケールで使用する場合)


Agentのインストールにはいくつかの方法ありますが、下記では、[インストールスクリプトでの導入方法](https://cloudone.trendmicro.com/docs/jp/workload-security/computers-add-deployment-scripts/)になります。

メニュー「サポート情報」-「インストールスクリプト」
![07.deploy-script.png](https://qiita-image-store.s3.amazonaws.com/0/30522/78ab732d-18c8-8c1d-ce2c-9f6216d2c7dc.png)

各種設定項目を設定し、インストールスクリプトが出力されます。
予め、ポリシーを作成してれば、この段階でインストールスクリプトに含めることができます。
![08.make-deploy-script.png](https://qiita-image-store.s3.amazonaws.com/0/30522/3c0f38e2-e797-8ac8-843d-5f177e530d3a.png)

出力されたインストールスクリプトを対象サーバ内で実行し、DSM上で対象のサーバが**オンライン**状態と各種機能がオンになっていれば完了です。
![09.install-agent-completed.png](https://qiita-image-store.s3.amazonaws.com/0/30522/0e00bf6c-cb28-0291-68cb-16d62ec7d44f.png)


**※Amazon Linux 2（ami-e99f4896）でインストールスクリプトが正常に動作しないので、「[AmazonLinux2（ami-e99f4896）でDeepSecurity Agentのインストール時にUnsupported platform is detectedが発生する問題](https://qiita.com/comefigo/items/85c962237b60ad7de309)」を参考にしながら導入してください(2018.8.1時点)**

以上でEC2インスタンスとDSMの連携手順でした

# 番外編

## ドキュメント

上記以外の設定方法などは[公式ドキュメント](https://cloudone.trendmicro.com/docs/jp/workload-security/)をご覧ください。
※検索は**英語**のようです

## 料金

https://cloudone.trendmicro.com/docs/jp/workload-security/billing-pricing/

明細書はAWSのアカウントにPDF（ドル建て）で送付されます。
※AWSのアカウントの使用通貨設定に依存します。

## エージェントの再有効

一度無効化したエージェントを再有効する
[公式ドキュメントはこちら](https://cloudone.trendmicro.com/docs/jp/workload-security/agent-activate/)になります

## エージェントの無効化

エージェントを導入したインスタンスを破棄/停止、DSMで明示的にエージェントを無効化しない限り、課金対象になります。
なお、DSMからはエージェントの無効化はできるが、インスタンス側からは無効化（アンインストールではない）はできません。

- DSMで対象のインスタンスを「無効化」にする（ライセンスの無効）
- [エージェントの削除](https://cloudone.trendmicro.com/docs/jp/workload-security/uninstall/)は以下のコマンドで実行する

    ```
    > sudo rpm -ev ds_agent 
    ```

## エージェントログ

DSMでエージェントエラーが表示されるが、エラー詳細が分かりづらい時はログファイルを直接確認するとよいでしょう。

```
/var/opt/ds_agent/diag/
```

## 対応カーネル

利用するモジュール（侵入防御、セキュリティコントロール、不正プログラム対策）によっては、OSのカーネルバージョンに依存します。
動作要件を満たさないカーネルバージョンのOSにエージェントを導入すると上記の機能しないので、**予めカーネルバージョンを確認してください！**

※[対応するカーネルリスト（常に最新バージョンを参照してください）](https://cloudone.trendmicro.com/docs/workload-security/agent-linux-kernel-support/)　

カーネルバージョンの確認方法

```shell:command
> uname -a
Linux xxxxxx.ap-northeast-1.compute.internal 4.14.42-61.37.amzn2.x86_64 #1 SMP Mon May 21 23:43:11 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
```

## オートスケールで使用する場合

オートスケール用のAMIにインストールスクリプトでエージェントをインストールしただけでは**エージェントが正常に機能しません！**

※インスタンスは管理対象だが、ポリシーが適用されていない状態になります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/30522/25692935-4bf1-1976-e0a0-5c55b61c9eb7.png)

以下の手順が必要になります

1. AMI作成時に、エージェントをインストールし、`opt/ds_agent/dsa_control -r`を実行する
2. オートスケール用のAMIを起動する際のユーザデータで `opt/ds_agent/dsa_control -a dsm://agents.deepsecurity.trendmicro.com:443/ "tenantID:xxx" "token:xxx" "policyid:xxx` を実行する必要があります

上記のコマンドはインストールスクリプトに記載されていますので、各自のをご参照ください。


## 不正プログラム対策の検証

不正プログラム対策モジュールが有効になっていることが前提になります。
公式ドキュメントは「[こちら](https://cloudone.trendmicro.com/docs/jp/workload-security/intrusion-prevention-set-up/#test)」になります。
他の攻撃テストも↑の資料で紹介されていますので、必要に応じて検証してみてください。

エージェントを導入しているインスタンスから[eicarのテスト用マルウエアファイル](http://files.trendmicro.com/products/eicar-file/eicar.com)をダウンロードします。
正常にブロックされているならば、ファイルがダウンロードされずにエラーになります。
そして、DSMの「イベントとレポート」->「不正プログラム対策」->「検出ファイル」で結果を確認できます。

```
> curl -O http://files.trendmicro.com/products/eicar-file/eicar.com
```

複数ホストで同時テストする際に、リンク切れだったり、応答なしになったりすることもあるので、S3にファイルを配備することで安定性が増すと思います。

## ポリシー

構成としては各種モジュール（防御の種別）⇒ポリシー（ルールを束ねた論理的なまとまり）⇒ルール（防御するためのルール）の順になっています。
選択済みのポリシーは自動的に更新されるが、**新たな脆弱性を対策するためのルールや新たな攻撃を防御するルールはリストに追加されるが。ポリシーには手動で有効にする必要がある。**


## 更新

- エージェントの更新・・・手動（エージェントの更新にはインスタンスの再起動が必要）
- パターンファイル・・・自動
- DSM・・・自動

※AMIを作成している、かつrpmなどのインストールからインストールしている場合は、最新版のエージェントを導入するように心がけましょう。カーネルバージョンとの互換性も忘れずに。

## アラート

ルールにひっかかりアラートが発生した場合は、自動でアラートが下がることはない。
そのままにすると**同じルールで再発してもアラートが上がらなくなります**ので、アラートの対応が完了した場合は忘れずにアラートを削除すること。
アラートの挙動については「[こちら](https://cloudone.trendmicro.com/docs/jp/workload-security/alerts-configure/)」で設定可能なので、必要に応じて変更してください。

## DSMのバージョンアップ

ときたま、「Important Notification Regarding Your AWS Marketplace Subscription」タイトルがついたメールが届きますが、DSMはSaasのためアップグレードに伴う作業はありません。


```text

Greetings from AWS Marketplace,

Thank you for subscribing to "Trend Micro Deep Security".

We are writing to inform you that Trend Micro has added version "Deep Security 12.5.855" of "Trend Micro Deep Security" to AWS Marketplace, available at https://aws.amazon.com/marketplace/pp/B01AVYHVHO. Release notes are available at https://help.deepsecurity.trendmicro.com.

Please note that, as of May 10, 2020, Trend Micro will no longer offer version(s) "Deep Security 12.5.732" to new subscribers and will end support for this version(s) on August 8, 2020. Your use and subscription is unaffected for this version(s), however it is recommended that users upgrade to the new "Deep Security 12.5.855" version.

Thank you,
--The AWS Marketplace Team
https://aws.amazon.com/marketplace
```

## イベントログの保存期間

DSM側のログの保存期間は種類に応じて異なります。
詳しくは[こちらの「How long are events stored?」](https://cloudone.trendmicro.com/docs/workload-security/events/#How)を参照ください。

保存期間がものによっては最長で91日なので、監査ポリシーによってはログを外部に転送する仕組みも考慮したほうが良いでしょう。


## 割とよくあるエラー

以下のエラーに関するメールがわりと（頻発する時とそうではない時がある）よく送信されます。
基本的に自動で解消されますが、アップデート関連は急ぎであれば手動で対応したほうが良いかと思います。

- エージェントとDSMの通信断
- 不正プログラム対策コンポーネントのアップデートに失敗

## API

DSMではAPIで様々な操作が可能です。
前述の通りDeepsecurityの製品再編に伴い、Workload 〇〇と製品名が変わりましたが、APIも再編があります。
Deepsecurity時代のは「Legacy API」、Workloadは「[Trend Micro Workload Security API](https://cloudone.trendmicro.com/docs/workload-security/api-reference/)」と名前が変わり、中身も変わっています。
Legacy APIで実装されている機能のすべてが新APIに移行されているわけではないので、新APIで実装されていなければ、旧APIを使用する感じになります。