こんにちは、サービス開発課の柳瀬です。
サーバーワークスの技術ブログへは約 2 年半ぶりの登場となりました(時が流れるのは早いですね)。サービス開発課に所属しておりますので、普段は Cloud Automator の開発をしたりブログもそちらで書いています。
さて、今回は AWS Summit Chicago 2016 で GA リリースの発表がありました、Amazon Inspector を触ってみましたので、使い方の流れをまとめてみたいと思います。
今回は結果が分かりやすいように セキュリティレベルを落とした EC2 インスタンスをターゲットにしています。
Inspector は一言で申しますと、自動化されたセキュリティ評価サービスです。脆弱性診断という言葉の方が馴染み深い人もいるかもしれませんが、AWS の公式サイトにはこのように記載されています。
Inspector はオレゴンリージョンのみでプレビュー利用が可能でしたが、GA リリースとなり以下のリージョンで利用することが出来るようになりました。我らが東京リージョンも利用可能となっておりますので、日本での利用も広がりそうですね。
- US West (Oregon)
- US East (N. Virginia)
- EU (Ireland)
- Asia Pacific (Tokyo)
AWS では責任共有モデルを採用しており、物理的セキュリティ、ネットワークインフラ、仮想インフラなどは AWS が責任を持ちますが、OS レイヤーなどはユーザー自身が責任を持って管理する必要があります。
Inspector ではエージェントが OS 内部の情報(ネットワーク通信、ファイルシステム、プロセスの動作、設定ファイル)を収集し、選択したルールに従って分析した上でセキュリティリスクとその解決法をリストアップしてくれます。そのため、ユーザー自身が責任を持ってすべきセキュリティ管理の手助けとなります。
エージェントのインストール
さて、先ほど書きましたように、Inspector は専用のエージェントをインストールする必要がありますが、現時点でサポートされている OS は以下となります。
※Windows Server の エージェントはプレビュー版といった位置づけのようです
- Amazon Linux (2015.03 or later)
- Ubuntu (14.04 LTS or later)
- Red Hat Enterprise Linux (7.2 or later)
- CentOS (7.2 or later)
- Windows Server 2008 R2 and Windows Server 2012
Linux ベースのOS
Linux ベースの OS をご利用の場合は、エージェントをインストールために以下のライブラリが必要となりますので、事前にインストールしておいて下さい。
- libgcc1
- libc6
- libstdc++6
- libssl1.0.0
- libpcap0.8
CentOSの場合は以下のような手順でインストールファイルのダウンロード、インストール、インストールファイルの削除をします。
$ curl -O https://d1wk0tztpsntt1.cloudfront.net/linux/latest/install $ sudo bash install $ rm install $ rpm -qa | grep Aws AwsAgent-1.0.254.0-100254.x86_64 $ ps -ef | grep aws root 2795 1 0 12:04 ? 00:00:00 /opt/aws/awsagent/bin/awsagent
エージェントは、更新があった場合に自動的にアップデートするようになりますが、無効化する場合は以下のように実行します。
$ sudo bash install -u false
エージェントのアンインストールや、起動、停止はそれぞれ以下のようにします。
$ sudo yum remove AwsAgent $ sudo /etc/init.d/awsagent start $ sudo /etc/init.d/awsagent stop
もしInspectorをプレビュー版で利用していた方は、一度エージェントをアンインストールしてからインストールしなおして下さい。
Windows ベースの OS
Windows ベースの OS をご利用の方は以下の URL からインストーラーをダウンロードし、実行して下さい。
エージェントの自動アップデートを無効にする場合は以下のようにインストールします。
AWSAgentInstall.exe AUTOUPDATE=No
Windows ベースの OSでは、エージェントの削除はコントロールパネルのプログラムの追加と削除から、起動と停止はサービスメニューから行います。
Inspector を使う
それでは Inspector を利用してみます。
AWS Management Console にログインして、Inspector のコンソールへアクセスすると、以下のページが表示されますので、今すぐ始めるをクリックし設定ウィザードを開始します。
設定ウィザード
前提条件
最初に Amazon Inspector を利用するうえでの前提条件が表示されます。すでにエージェントのインストールは終わっておりますので、ロールの作成と EC2 インスタンスへのタグ付けをして下さい。
- ロールを作成する
- EC2 インスタンスへのタグの付加
- AWS エージェントを EC2 インスタンスへインストール
Inspector が評価対象となる EC2 インスタンスを特定するために IAM ロールの割り当てが必要です。
ロールの選択または作成をクリックすると IAM コンソールを開き、必要な権限が付与された IAM ロールを作成します。
Inspector では評価対象の EC2 インスタンスを特定するためにタグを利用します。
評価対象の EC2 インスタンス を特定するために新しくタグを作成する場合は EC2 インスタンスへのタグの付加をクリックし、Tag Editor を使います。
必要な準備が完了したら、続行をクリックして次のステップに進みます。
評価ターゲットの定義
先ほど書きましたように、評価対象の EC2 インスタンスはタグを使って特定します。
評価ターゲットに任意の名前を記載して、タグのキーと値を入力して続行をクリックしてます。タグは複数を指定可能となっており、複数を指定した場合は OR 条件となるようです。
プレビューをクリックすると、対象となる EC2 インスタンスを表示してくれますので、チェックしてみてください。
評価テンプレートの定義
評価対象に対してどのようなチェックをするかを定義する、評価テンプレートを作成します。
評価テンプレートに任意の名前を記載して、ルールパッケージ(複数選択可能)と、評価にかける時間を指定して、続行をクリックします。
ルールパッケージは以下のものが選択可能となっており、公式ドキュメントにどのようなことをチェックするか記載されています。
要件に合わせて選択して下さい。
- Common Vulnerabilities and Exposures
- CIS Operating System Security Configuration Benchmarks
- Security Best Practices
- Runtime Behavior Analysis
ルールパッケージは以下の資料も参考になります。
確認
最後に設定した内容を確認し、良ければ作成をクリックします。
評価の実行
設定が完了したら左メニューにある評価テンプレートを開き、作成した評価テンプレートにチェックをして実行します。
評価が実行されると、下記画像のようにデータを収集中であることが分かります。
評価テンプレートで指定した時間が経過すると、分析が完了された事がわかります。
左メニューの結果を開くと、分析の結果見つかったセキュリティリスクが表示されます。
出力された結果の詳細を見てみると、どのように対応することが推奨されるのかコメントされています。
補足
初回の設定ウィザードで評価ターゲットと評価テンプレートを作成した後に新しい評価ターゲットや評価テンプレートを作成する場合は、左メニューの評価ターゲット、評価テンプレートから作成します。
評価テンプレートは、評価の開始、終了、評価のステータス変更時、結果が作成されたときに SNS で通知することや、結果に対して自動的にタグ付けをしたりすることも出来るようになっていますので、これらを設定するとより便利に使えそうです。
価格
Inspector の価格は評価対象となるホストの台数と実行回数によって agent-assessment という単位が決まり、agent-assessment の数によって価格が決まります。
例えば評価対象が 1 台で 評価回数が 1 回であれば、1 agent-assessment ですし、評価対象が 10 台で 評価回数が 1 回であれば 10 agent-assessment とカウントされます。
最初の 250 agent-assessment は 1 agent-assessment 毎に 0.30 ドルとなります。
実行の回数が増えると agent-assessment 毎の価格が安くなるようになっておりますので、詳しくはこちらのページをご覧下さい。
カウントされた agent-assessment 分だけの費用となりますので、クラウドらしい価格設定だと思いました。
終わりに
Inspector の設定と評価の実行までに必要な流れをご紹介しました。
今回は AWS Management Console から利用する手順をご紹介しましたが、SDK、REST API、AWS CLI からも利用することが出来ますので、冒頭に書いたようにリリースプロセスの中にセキュリティ評価を組み込んだり、定期的に評価を実行して脆弱性が発見された時に素早い対応が出来る仕組みを構築しておきたいですね。
それではまた数年後登場するかもしれませんが、その時までごきげんよう。