[Deep SecurityでEC2徹底防御] #01 概要とAWS環境でのインストール

deepsecurity_logo_2

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

<a href="http://cdn.dev.classmethod.jp/wp-content/uploads/2013/08/deepsecurity_banner-2.png"><img src="http://cdn.dev.classmethod.jp/wp-content/uploads/2013/08/deepsecurity_banner-2-640x139.png" alt="deepsecurity_banner-2" width="640" height="139" class="alignnone size-medium wp-image-70849" /></a>

ども、大瀧です。クラウド環境のセキュリティ対策、皆さんはどのように対応していますか?AWSの場合、Amazon VPCに多くのセキュリティ機能があり日々活用していると思います。
しかし、最近業務で関わるシステムでは、VPCの機能だけでは対応できないケースやより高いセキュリティレベルが求められるケースが増えてきています。そんなセキュリティ対策をまとめて解決するプロダクトとして、今回のシリーズではTrend Micro Deep Securityをご紹介していきます *1

概要とAWSで使用するユースケース

Deep Securityは、ITセキュリティベンダーであるTrend Micro社が開発するサーバーやクラウド環境を保護するためのセキュリティ製品です。様々な機能が提供されますが、ここではどのようなケースでDeep Securityが有効なのか、Amazon VPCのセキュリティ機能との比較を以下に示します。

セキュリティ対策 Deep Securityの対応度と解説 Amazon VPCの対応度と解説
ファイヤーウォール
IP/ポート単位のブロックに加え、特定アクセスの検知やログによる記録などフィルタリングの状況を確認することが可能

セキュリティグループでステートフルなIPアドレス/ポート単位のポリシーでブロック可能
侵入検知および防止(IDS/IPS)
脆弱性対策、Webアプリケーション保護など多彩な機能が利用できる
×
AWSでは、OS/アプリケーションレベルの対策は提供されない
ファイルの変更監視
特定のファイル/ディレクトリの内容/メタ情報の変更を検知できる、ログファイルの監視も可能
不正プログラム対策
ウィルス、トロイの木馬などシステムに悪影響を与えるファイルを検出し、隔離する
アンチウイルス
Trend Micro Server Protectで提供されます(Advanceエディションにバンドル)

OS/アプリケーションレベルで必要な多くのセキュリティ機能が、Deep Securityによってカバーできることがわかります。

構成とライセンス

Deep Securityの構成は、適用するインフラによって大きく2つに分けられます。

エージェント型 : AWS/オンプレミス向け
保護対象となるサーバーにエージェントをインストールし、エージェントがOS/アプリケーションの動作を監視します。
エージェントレス型 : VMware vSphere向け
エージェントの代わりに監視VMを配置し、ハイパーバイザー経由でVMの動作を監視します。

今回は、AWS向けのエージェント型の構成です。主なコンポーネントを以下に示します。

コンポーネント名 役割と必要なライセンス数
Deep Security Manager(以下DSM) 最低1台必要、保護するサーバーの管理および監視とWebブラウザベースの管理画面を提供します。ライセンスなしで利用可能
Deep Security Relay(以下DSR) 最低1台必要(小規模であればDSMと同じマシンに共存可)、脆弱性やウイルス情報を保護するサーバーに転送します。ライセンスなしで利用可能
Deep Security Agent(以下DSA) 保護するサーバーで実行し、OS/アプリケーションの動作を監視します。エージェントあたり1ライセンス必要
Trend Micro Smart Protection Network DSM/DSRに最新のセキュリティ情報を提供するTrend Micro社のサービス。ライセンスはDeep Securityに含まれる

ライセンスの詳細についてはTrend Micro社のWebページを参照ください。
イメージとしては、以下のような構成です。

Deep Security Manager(DSM)のはたらき

deepsecurity01

Deep Security Relay(DSR)のはたらき

deepsecurity02

AWS環境では、EC2にDSM/DSR/DSAいずれかをインストールし、EC2 Classic/VPC環境共にDeep Securityを構築できます。

セットアップ前編 : インストール

今回は、Deep Securityの機能を検証するためのデモ環境のセットアップ方法をご紹介します。それなりにボリュームがあるので、今回は前編としてインストール、次回は後編として初期構成の2本立てでお送りします。なお、本番環境で使用する場合は、以下を考慮する必要があります。

DSMのデータベース
本番環境で使用する場合は、サポートするデータベースを別途用意する必要があります。AWS環境であれば、RDSを利用することもできます。
DSM/DSRインスタンスのクラスタ構成
管理するEC2の台数やDSM/DSRの可用性を確保するために、複数のEC2インスタンスでDSM/DSRを構成する場合もあります。

また、各手順の詳細は、Trend Micro Deep Security サポートウェブ | サポート: トレンドマイクロを参照してください。

0. 評価ライセンス(体験版)とインストーラのダウンロード

Deep Securityの検証・評価のために30日間の体験版(評価ライセンス)を使用することができます。下記のURLにアクセスし、メールアドレスや使用者情報を入力すると、登録したメールアドレス宛にアクティベーションコードが送付されます。DSMの構成に必要になるので、控えておきます。

体験版ダウンロード | Trend Micro Deep Security : トレンドマイクロ

deepsecurity03

また、インストーラはTrend Micro社のWebサイトからダウンロードできます。上記ページのリンク先だとバージョンが古いので、以下からダウンロードします。

http://downloadcenter.trendmicro.com/index.php?regs=jp
→ DSM/DSRは [統合サーバセキュリティ対策] - [Deep Security Manager]
→ DSAは [Linux版 Deep Security Agent / Relay] もしくは [Windows版 Deep Security Agent / Relay / Notifier]

1. DSM/DSRのインストール

今回は、EC2インスタンス 1台にDSMとDSRをインストールします。Amazon Linuxではサポートされないため、CentOSを使用します。

  • OS : CentOS 6 64bit(ami-31e86030)
  • インスタンスタイプ : m1.large
  • Trend Micro Deep Security : 9.0 Service Pack 1

1-1. セキュリティグループの設定

DSMおよびDSRの動作に必要な通信を許可する任意のセキュリティグループdsmを作成します。DSM/DSRで使用するポートは以下の通りです。詳細は、Trend Micro社のサポートページを参照してください。

ポート番号/プロトコル 用途 許可する対象
4119/tcp DSMのWeb管理画面の待受ポート 管理端末
4120/tcp DSA/DSRからDSMへ通信するポート DSA/DSR(今回はVPCのネットワークアドレス)
4122/tcp DSAからDSRへ通信するポート DSA(今回はVPCのネットワークアドレス)

以下のような設定になります。

deepsecurity04

1-2. EC2インスタンスの作成と接続

1-1で作成したセキュリティグループを設定したEC2インスタンスを作成し、SSHで接続します。iptablesとSELinuxを無効にし、ルートボリュームを適宜拡張したあと再起動します。

deepsecurity13

[root@dsm ~]# chkconfig iptables off
[root@dsm ~]# vi /etc/sysconfig/selinux
[root@dsm ~]# resize2fs /dev/xvde
[root@dsm ~]# reboot

/etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

1-3. インストーラのダウンロードと展開

DSMのインストーラをダウンロード、展開します。Trend Micro社のダウンロードページに認証などは設定されていないため、curlコマンドやwgetコマンドでEC2から直接ダウンロードするのが楽でしょう。

[root@dsm ~]# curl -OL http://www.trendmicro.com/ftp/jp/ucmodule/tmds/90SP1/DSM/Manager-Linux-9.0.5370.x64.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  194M  100  194M    0     0  18.4M      0  0:00:10  0:00:10 --:--:-- 15.5M
[root@dsm ~]# yum install -y unzip
 (略)
[root@dsm ~]# unzip Manager-Linux-9.0.5370.x64.zip
Archive:  Manager-Linux-9.0.5370.x64.zip
  inflating: Relay-RedHat_EL6-9.0.0-2008.x86_64.rpm
  inflating: Manager-Linux-9.0.5370.x64.sh
  inflating: Relay-RedHat_EL5-9.0.0-2008.x86_64.rpm
[root@dsm ~]# ls
Manager-Linux-9.0.5370.x64.sh   Relay-RedHat_EL5-9.0.0-2008.x86_64.rpm
Manager-Linux-9.0.5370.x64.zip  Relay-RedHat_EL6-9.0.0-2008.x86_64.rpm

Manager-Linux-9.0.5370.x64.shファイルがインストールスクリプトです。

1-3. インストーラの実行

インストールスクリプトは、本来GUI(LinuxのX Window System)での実行を想定した作りになっており、そのまま実行するとうまく動きません。あらかじめインストール設定ファイルを作成し、スクリプトの実行時にオプションを指定する必要があります。

[root@dsm ~]# vi dsm.properties 
CredentialsScreen.Administrator.Username=dsAdmin   (管理者ユーザーのユーザー名)
CredentialsScreen.Administrator.Password=XXXXXXXXX (管理者ユーザーの初期パスワード)
オプション はたらき
-q 非対話モードで実行
-console 実行結果を端末(標準出力)に出力
-varfile <ファイル名> インストール設定ファイルの指定
[root@dsm ~]# bash ./Manager-Linux-9.0.5370.x64.sh -q -console -varfile ./dsm.properties
Unpacking JRE ...
Starting Installer ...
 (略)
[root@dsm ~]# 

続いて、DSRのパッケージファイル(Relay-RedHat_EL6-9.0.0-2008.x86_64.rpmファイル)をrpmコマンドでインストールします。

[root@dsm ~]# rpm -ivh Relay-RedHat_EL6-9.0.0-2008.x86_64.rpm
Preparing...                ########################################### [100%]
   1:ds_relay               ########################################### [100%]
Loaded dsa_filter module version 2.6.32-358.2.1.el6.x86_64 [  OK  ]
Starting ds_agent: [  OK  ]
[root@dsm ~]# 

netstatコマンドで先ほどの4119/4120/4122ポートがListenになっていれば、DSMおよびDSRが正常に起動しています。

[root@dsm ~]# netstat -ltpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      813/sshd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      889/master
tcp        0      0 0.0.0.0:4122                0.0.0.0:*                   LISTEN      4960/nginx
tcp        0      0 127.0.0.1:4123              0.0.0.0:*                   LISTEN      4959/dsvp
tcp        0      0 :::4118                     :::*                        LISTEN      4933/ds_agent
tcp        0      0 :::22                       :::*                        LISTEN      813/sshd
tcp        0      0 :::4119                     :::*                        LISTEN      4647/java
tcp        0      0 :::4120                     :::*                        LISTEN      4647/java
tcp        0      0 :::4122                     :::*                        LISTEN      4960/nginx
[root@dsm ~]# 

1-4. Webコンソールへの接続

管理端末のWebブラウザから、以下のURLにアクセスします。

    https://<EC2インスタンスのPublic DNS>:4119/

DSMの初期設定では、SSL通信に自己署名証明書を使用するため、警告が表示されます(以下はGoogle Chromeの場合)。ここでは無視してこのまま続行をクリックします。

deepsecurity06

DSMのログイン画面が表示されたら、インストール設定ファイルに設定した管理者ユーザーのユーザー名/パスワードでログインします。

[はじめに]ウィンドウが表示されますが、今回は使用しないので[次回ログオン後に再び表示]のチェックをオフにし、[閉じる]ボタンをクリックします。

deepsecurity07

以下のダッシュボードの表示が確認できたら、ひとまずDSMの起動は完了です。

deepsecurity09

2. DSAのインストール

2-1. インストーラURLの確認

今回は、Amazon Linux 2013.03 64bitを保護するDSAを導入します。一般的なLinuxディストリビューションのDSAのインストーラは、手順0のLinux版 DSAのリンク先で確認できますが、Amazon Linux向けのインストーラはそのページからさらに別のページに辿らないと見つけることができません。[オペレーティングシステム: Any Platform]の[ダウンロードページへのリンク]をクリックし、[Operating System: Amazon Linux]から適切なインストーラのURLをコピーします。

deepsecurity11

2-2. DSA用セキュリティグループの作成

DSAを実行するEC2インスタンスには、DSMからのアクセスを許可するセキュリティグループを設定します。
VPC環境であれば、複数のセキュリティグループをEC2インスタンスに割り当てることができるので、DSA用設定のみのセキュリティグループを作成し、EC2インスタンスに追加しても良いでしょう。

DSMからDSAへの通信には4118/tcpポートを使用します。アクセス元(Source)には手順1-1で作成したDSMのセキュリティグループを指定するのが適切でしょう。

deepsecutrity10

2-3. DSAのダウンロード、インストール

作成したセキュリティグループを保護するEC2インスタンスに割り当て、EC2インスタンスにSSHで接続し、DSAインストーラをダウンロードします。

[ec2-user@dsa ~]$ curl -OL http://files.trendmicro.com/products/deepsecurity/Agent-amzn1-9.0.0-2101.x86_64.rpm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12.1M  100 12.1M    0     0  1347k      0  0:00:09  0:00:09 --:--:-- 1573k
[ec2-user@dsa ~]$ ls
Agent-amzn1-9.0.0-2101.x86_64.rpm

DSAのインストーラはRPMパッケージファイルのため、一般のRPMパッケージと同様、rpmコマンドでインストールします。

[ec2-user@dsa ~]$ sudo rpm -ivh Agent-amzn1-9.0.0-2101.x86_64.rpm
準備中...                ########################################### [100%]
   1:ds_agent               ########################################### [100%]
Loaded dsa_filter module version 3.4.43-43.43.amzn1.x86_64 [  OK  ]
ds_agent を起動中: [  OK  ]
[ec2-user@dsa ~]$ sudo netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1191/sshd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1224/sendmail
tcp        0      0 :::4118                     :::*                        LISTEN      1552/ds_agent
tcp        0      0 :::22                       :::*                        LISTEN      1191/sshd

正常にインストールされ、DSA(ds_agent)サービスが起動していますね。

まとめ

Trend Micro Deep Securityの概要とインストール方法についてご紹介しました。次回は、セットアップの後半部分となるDSM/DSRの初期設定とDSAの登録をご紹介します。

脚注

  1. Deep Securityについては、以前弊社武川が執筆したシリーズもありますが武川が多忙のため私にバトンタッチし、その後わかったことなどを踏まえて新シリーズとして仕切り直すことにしました。私が暇というわけではありません(笑)