DeepSecurity実践塾で学んだポリシー設計の基本をまとめてみた

2019.09.27

おはようございます、もきゅりんです。

ちょっと前にDeep Security 実践強化塾~ポリシー設計について~に参加して勉強してきました。

(こちらの塾は定期的に開催されているようです。)

この塾では、既にDeep Securityを導入して、一通り触った経験がある方を対象としています。

deepsecurity juku

導入してはみたけど、どうやって使ったら適切なのか、どのような設定を考えたら良いのか、といったモヤモヤを抱く方を対象としていました。

また、インターネットには出回っていない仕様やアーキテクチャのお話もして下さっていました。 情報量がとても多く、自身の知識整理のためにも非常にためになるトレーニングの機会でした。

なお、当記事では、実践塾の紹介というより、そこで学んだ内容を基に(身に付けるため)手を動かしてやってみた、という内容となります。

対象は、塾と同様、Deep Securityをいちおう触ったことはある、くらいの方を想定しています。

基本的には配布された資料に沿って進めていきますが、資料そのまま設定しているわけではない由、ご了承下さい。

(資料と異なる点については、明記します。)

そのため、細かい箇所の確認や腹落ちをするためには、是非、実際に一度塾を受講することをお勧めします。

目次

1. DSaaS体験版でアカウントを作成する

まずは、体験版でアカウントを作成していきます。

DSaaS(Trend Micro Deep Security as a Service)の体験版を選択します。

Deep Security Free Trial

アカウントの作成手順に関しては、上記ページの『ご利用方法』に丁寧な記載がされているため、その通りに進めていけば問題ないかと思います。

アカウントにログインしたら、マニュアルに記載されている通り、デモ用コンピュータは無効化しましょう。

pc remove

これで準備ができました。

2. ポリシー設計の考え方について

ここからが本題になります。

そもそもポリシーとは

ポリシーとは、Deep Securityの主な機能となる不正プログラム対策、Webレピュテーション、ファイアウォール他、7つの項目の設定がまとまったものです。サーバに対してポリシーを適用することで、ポリシーは共通化が図れます。

また、既存のポリシーをコピー、あるポリシーを「継承」して階層化してポリシーを作成できるため、運用性を保ちつつ、詳細なポリシー設定も煩雑にならないように管理していくことが可能です。

ポリシーの策定のポイント

システムのセキュリティ要件(どんな脅威から何を守りたいか、どんな機能を実装する必要があるか)を明確にした上で、必要な機能を有効にすることが重要です。

セキュリティ要件の検討を行う上では、まず初めに以下の3点を考慮することで整理がしやすくなります。

  • 守るべき情報資産の重要度
  • システムの配置される場所
  • 運用負荷

ideas

まずは及第点(最低限必要なセキュリティ)からはじめる

idea

Deep Securityでは色んな機能があるために、どう使ったら良いかと迷わせてしまうかもしれないが、まずは及第点(最低限必要なセキュリティ)からはじめる、が基本の考え方です。

こちらは何度も講師の方がおっしゃっていました。

どんな脅威から、何を守りたいか、Deep Securityでどう守るか、を明確にして最低限の機能から設定していきましょう。

図にあるように、まずはコンテンツセキュリティ、ネットワークセキュリティを手始めに進めていきます。

不正プログラム対策、Webレピュテーションから作成していきます。

3. 不正プログラム対策&Webレピュテーションの設定

不正プログラムの機能

侵入した不正プログラムを検知、隔離し、不正プログラムの感染や蔓延の防止します。

基本の設定

新しいポリシーを作成します。

下記のように進めます。

名前: 任意のもの

継承元: なし

既存のコンピュータの現在の設定を、このポリシーのベースにしますか?: いいえ

後で更新していきますが、まずは不正プログラム対策とWebレピュテーションをオンにします。

設定は下図のように、リアルタイム検索、手動検索、予約検索をデフォルト設定します。

検索除外について

データベース領域やネットワークドライブや共有フォルダなどは除外を推奨しています。(こちらの対応OSはWindowsのみのようです。)

検索除外を推奨するフォルダやファイル

Webレピュテーションの機能

不正なWebサイトへのアクセスをブロックし、その先で起こる不正プログラムのダウンロードや攻撃コード実行といったリスクを低減します。

(注: Webレピュテーションモジュールでは、HTTPSトラフィックはブロックされません。)

下図のように設定します。

4. 侵入防御

侵入防御の機能

保護対象コンピュータの持つ脆弱性を把握し、それら脆弱性を狙った攻撃をブロックできます。

なお、侵入防御オンの場合、ファイアウォール機能がオフでも、ファイアウォールイベントにログが表示される場合があります。Webレピュテーションがオンの場合も同様のようです。

詳細はこちらです。

基本の設定

侵入防御の基本設定と推奨設定の検索

下図の通りです。

例のため、防御を選択してしまっています。

侵入防御で誤判定の問題がない場合は、侵入防御を防御モードで使用するようにポリシーを設定しますが、誤判定によるシステムの影響を考慮すると、まずは検出から設定する方が安全です。

予約タスクの設定

推奨設定の検索を、定期的に実施するための予約タスクの設定です。

推奨検索で検知されないルールの手動適用

アプリケーション名でIPSルールを検索するなどして、推奨検索で適用されていないルールが無いか確認することが望まれます。

ネットワークエンジンの詳細設定、個別ポート設定

個別ポートの設定は、初期設定のポート設定と実際の利用ポートが異なる場合に、ポートの調整が必要です。

ここまでで、コンテンツセキュリティ、ネットワークセキュリティの基本となる設定を行いました。

ちゃんと設定できているかをテストしてみます。

5. 不正プログラムと侵入防御のテスト

今回の対象サーバは、Amazon Linux2 です。

(amzn2-ami-hvm-2.0.20190823.1-x86_64-gp2 (ami-0ff21806645c5e492))

いちおうDSAをインストールするサーバから、下記DSaaS管理マネージャにアクセスできることを確認します。

  • agents.deepsecurity.trendmicro.com:443
  • relay.deepsecurity.trendmicro.com:443
$ curl -v telnet://agents.deepsecurity.trendmicro.com:443
* Rebuilt URL to: telnet://agents.deepsecurity.trendmicro.com:443/
*   Trying 52.54.240.176...
* TCP_NODELAY set
* Connected to agents.deepsecurity.trendmicro.com (52.54.240.176) port 443 (#0)
$ curl -v telnet://relay.deepsecurity.trendmicro.com:443
* Rebuilt URL to: telnet://agents.deepsecurity.trendmicro.com:443/
*   Trying 52.54.240.176...
* TCP_NODELAY set
* Connected to agents.deepsecurity.trendmicro.com (52.54.240.176) port 443 (#0)

問題なさそうです。

DSAのインストール

色んなやり方があるのですが、今回はオーソドックスにスクリプトを作成してインストールします。

サポート情報タブ > インストールスクリプトから下図のように選択します。

クリップボードにコピーします。

vi insatll.sh

# クリップボードのスクリプトを貼り付けます

# 実行権限を付与
chmod +x insatll.sh
# スクリプト実行
sudo ./insatll.sh

コンピュータに追加されていることを確認します。

不正プログラムテスト

不正プログラム対策の動作確認

を参考に進めます。

Eicarファイルをダウンロードします。

$ wget http://files.trendmicro.com/products/eicar-file/eicar.com
--2019-09-26 01:48:20--  http://files.trendmicro.com/products/eicar-file/eicar.com
files.trendmicro.com (files.trendmicro.com) をDNSに問いあわせています... 02.50.236.181, 2600:140b:a000:38f::40f8, 2600:140b:a000:392::40f8
files.trendmicro.com (files.trendmicro.com)|02.50.236.181|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 68 
`eicar.com' に保存中

100%[============================================================================================>] 68          --.-K/s 時間 0s

utime(eicar.com): No such file or directory
2019-09-26 01:48:20 (13.4 MB/s) - `eicar.com' へ保存完了 [68/68]

画面で確認します。

ちゃんと対応できていますね。(2回やってしまいました...)

次は、

侵入防御の動作確認方法

を参考に進めます。

6. 侵入防御のテスト

簡単なポリシーを作成してポリシーに抵触するようにします。

ポリシータブ > 侵入防御ルールからルールを作成します。

パケット内の文字列「Hello」を検出するように設定します。

対象のコンピュ‐タに作成したルールを割り当てます。

テストするために、サーバーの80番ポートは開けておくようにしましょう。

sudo amazon-linux-extras install -y nginx1.12
sudo systemctl enable nginx && sudo systemctl start nginx
sudo systemctl status nginx

curl  http://IP_ADDRESS/Hello

ちゃんと対応できていますね。

7. 変更監視

変更監視の機能

コンピュータ上のファイルやディレクトリ、レジストリを監視します。不正なファイルがコピーされたり、ログファイルが改ざんされた等の異常にすぐ気付き、アラート送信することが出来ます。

変更監視は侵入防御よりも変更可能なルールが多く、他の機能と比べると設定が各システム環境に強く依存してきます。

定義済みルールを利用する場合には、推奨設定の検索とルールの手動割り当ての2つの方法がありますが、推奨設定の検索を利用した場合でも、誤検知・検知漏れ・パフォーマンスの観点から「個別にルールの選別を手動で設定することを強く推奨」しています。

なお、推奨設定の検索は「侵入防御」、「変更監視」、「セキュリティログ監視」共通で実行されます。

今回はテストとして、[1003513 - Unix - File attributes changes in /etc location]を検索し、このルールを手動で有効にする設定をします。

このルールは、/etc/hostsファイルに変更が加えられるとアラートを発令します。

基本の設定

今回は、監視対象も多くないため、リアルタイムで設定をしています。

(受講した塾では、この設定を予約タスクから15分間隔で設定しています。)

リアルタイムタイムの注意点としては、監視対象が多すぎるとパフォーマンスに影響し、変更監視イベントが大量に記録されることになるので注意します。また、予約タスクの監視間隔でベースラインのチェックが終わりきらないことは避けます。

実際の変更監視の利用にあたっては、運用面を考慮すると以下のような設定で行われるケースが多いようです。

監視内容:

  • ファイル監視、ディレクトリ監視
  • システム領域に限定(運用面、パフォーマンス面、監視が静的コンテンツに限られることからWebコンテンツなどの領域は除く)

監視間隔:

  • 15分毎 or 60分毎

次に割り当てから今回のルールを検索してチェックします。

なお、変更監視の設定変更は、プロパティ(グローバル)とプロパティがあります。

グローバルはDeep Securityのグローバル設定(大元のルール)の上書きとなり、プロパティは該当のルールのみを上書きします。

ポリシーを反映させるため保存します。

ベースラインの構築

ベースラインとは、変更監視の検索結果の比較対象となる元の状態のことです。何が「正しい状態か」を定義するために監視開始前に「ベースラインの構築」が必要となります。

ベースラインの構築時の注意点として、インストールパスが適切でない場合、ベースラインを構築した際も登録できず、監視ができません。また特にアラートのエラーは上がらないため要注意とされています。

では、

変更監視の動作確認

を参考にテストしてみます。

8. 変更監視のテスト

etc/hostsを更新してみましょう。

出ました。

9. まとめ

アーキテクチャの説明やより細かい粒度の設定については省いて、Deep Securityの基本的なポリシー設計をしてきました。

数多くある機能の中で、設定の優先順位や設計の方針がつかめてきたように思えます。

さらに詳しい説明や疑問点の解消は、是非実際にDeepSecurity実践塾に足を運んでみると良いと思います!

まずは及第点の設定からはじめていきましょう!

summary

以上です。

どなたかのお役に立てば幸いです。

参考: