DeepSecurity実践塾で学んだポリシー設計の基本をまとめてみた
おはようございます、もきゅりんです。
ちょっと前にDeep Security 実践強化塾~ポリシー設計について~に参加して勉強してきました。
(こちらの塾は定期的に開催されているようです。)
この塾では、既にDeep Securityを導入して、一通り触った経験がある方を対象としています。
導入してはみたけど、どうやって使ったら適切なのか、どのような設定を考えたら良いのか、といったモヤモヤを抱く方を対象としていました。
また、インターネットには出回っていない仕様やアーキテクチャのお話もして下さっていました。 情報量がとても多く、自身の知識整理のためにも非常にためになるトレーニングの機会でした。
なお、当記事では、実践塾の紹介というより、そこで学んだ内容を基に(身に付けるため)手を動かしてやってみた、という内容となります。
対象は、塾と同様、Deep Securityをいちおう触ったことはある、くらいの方を想定しています。
基本的には配布された資料に沿って進めていきますが、資料そのまま設定しているわけではない由、ご了承下さい。
(資料と異なる点については、明記します。)
そのため、細かい箇所の確認や腹落ちをするためには、是非、実際に一度塾を受講することをお勧めします。
目次
- 1. DSaaS体験版でアカウントを作成する
- 2. ポリシー設計の考え方について
- 3. 不正プログラム対策&Webレピュテーションの設定
- 4. 侵入防御
- 5. 不正プログラムと侵入防御のテスト
- 6. 侵入防御のテスト
- 7. 変更監視
- 8. 変更監視のテスト
- 9. まとめ
1. DSaaS体験版でアカウントを作成する
まずは、体験版でアカウントを作成していきます。
DSaaS(Trend Micro Deep Security as a Service)の体験版を選択します。
アカウントの作成手順に関しては、上記ページの『ご利用方法』に丁寧な記載がされているため、その通りに進めていけば問題ないかと思います。
アカウントにログインしたら、マニュアルに記載されている通り、デモ用コンピュータは無効化しましょう。
これで準備ができました。
2. ポリシー設計の考え方について
ここからが本題になります。
そもそもポリシーとは
ポリシーとは、Deep Securityの主な機能となる不正プログラム対策、Webレピュテーション、ファイアウォール他、7つの項目の設定がまとまったものです。サーバに対してポリシーを適用することで、ポリシーは共通化が図れます。
また、既存のポリシーをコピー、あるポリシーを「継承」して階層化してポリシーを作成できるため、運用性を保ちつつ、詳細なポリシー設定も煩雑にならないように管理していくことが可能です。
ポリシーの策定のポイント
システムのセキュリティ要件(どんな脅威から何を守りたいか、どんな機能を実装する必要があるか)を明確にした上で、必要な機能を有効にすることが重要です。
セキュリティ要件の検討を行う上では、まず初めに以下の3点を考慮することで整理がしやすくなります。
- 守るべき情報資産の重要度
- システムの配置される場所
- 運用負荷
まずは及第点(最低限必要なセキュリティ)からはじめる
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実践塾に足を運んでみると良いと思います!
まずは及第点の設定からはじめていきましょう!
以上です。
どなたかのお役に立てば幸いです。