こんにちは、ひろかずです。
re:Iventで様々なサービスが発表されましたが、Amazon Inspectorについてはあまり話題になっていませんでした。
個人的には最低限のセキュリティが保持できているかをリーズナブルに確認できる、素晴らしいソリューションコンセプトだと思っています。
【AWS発表】 Amazon Inspector - 自動セキュリティアセスメントサービス
現時点(2015/10/26)ではプレビューですが、プレビューに当選したのでその動作を試してみました。
※ 長いので、忙しい人は 2.実行
あたりから見れば良いと思います。
#参考情報
Amazon Inspector User Guide
#目的とゴール
事前に作りこんだ脆弱性をどの程度検知し、どのようにレポートされるかを確認する。
#試験環境
##環境1
- region:us-west-2(Oregon)
- AMI:suz-lab_centos-core-6.4.4 (ami-7b59c57a)
- Apache/2.2.15 (Unix)
- mod_ssl
- PHP 5.4.45
<作りこんだ脆弱性>
- shellshock
- クレデンシャル情報をaws cli toolsのconfigに記載(ベストプラクティスではIAMロールを使用が推奨)
- コンテンツ内にphpinfo.phpの配置
- SSLv3使用可能
##環境2
- region:us-west-2(Oregon)
- Amazon Linux AMI 2015.09 (HVM), SSD Volume Type - ami-9ff7e8af
- Apache/2.2.31 (Unix)
- mod_ssl
- PHP 5.3.29 (cli) (built: May 12 2015 22:42:19)
<作りこんだ脆弱性>
- クレデンシャル情報をaws cli toolsのconfigに記載(ベストプラクティスではIAMロールを使用が推奨)
- コンテンツ内にphpinfo.phpの配置
- SSLv3使用可能
#1.Amazon Inspectorの準備
##1-1.Inspector用のIAMロールを作成
プレビュー可能なus-west-2(オレゴンリージョン)にてAmazon Inspectorを開きます。
まず、Inspector用のIAMロールを作成します。
Select/Create Roleをクリック
デフォルトのまま作成します。
DescribeInstancesだけでいいんですね。
##1-2.リソースへのタグ付け
Inspectorの実行には何らかのタグが必要です。
リソースにタグが付いていない場合は、ここで付けます。
リソースタイプを選べるので、ここではインスタンスを選択します。
##1-3.Inspector Agentをインストールします。
手順は「Install Inspector Agent」というリンクに記載されています。
インストールモジュールをcurlまたはwgetで入手して、インストールスクリプトを実行します。
(インストールスクリプトはbashで書かれています。)
# curl -O https://s3-us-west-2.amazonaws.com/inspector.agent.us-west-2/latest/install
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 10436 100 10436 0 0 21312 0 --:--:-- --:--:-- --:--:-- 328k
# ll
合計 28
-rw-r--r-- 1 root root 10436 10月 26 08:47 2015 install
:
[root@ip-172-31-16-39 ~]# bash install
Validated signature with:
Failed to find an inspector agent package for this OS: redhat-2.6.32-358.18.1.el6.x86_64-x86_64.
Please contact AWS support with this identifier to report this issue.
失敗してしまいました。
どうやらOSバージョンが合致しないようです。
インストールスクリプトのソースを見ると、バージョンを確認しているステップがあります。
MY_VERSION=$( grep -m 1 -i "${UNIQ_OS_ID}" "${SECURE_TMP_DIR}/${VERSION_FILE}" )
if [[ -z "${MY_VERSION}" ]]; then
echo "Failed to find an inspector agent package for this OS: ${UNIQ_OS_ID}."
echo "Please contact AWS support with this identifier to report this issue."
exit 1
fi
その直前でsleepを挿入して、 VERSION_FILE
を確認すると、以下バージョンに該当している必要があるようです。
ubuntu-3.13.0-24-generic-x86_64 releases/1.0.87.0/ubuntu-3.13.0-29-generic-x86_64/inspectoragent_1.0.87.0-100087_amd64.deb f759f3b00541e17245b9451e93082593efbfea129e220ea05da421129e7657cb
中略
ubuntu-3.13.0-65-generic-x86_64 releases/1.0.87.0/ubuntu-3.13.0-29-generic-x86_64/inspectoragent_1.0.87.0-100087_amd64.deb f759f3b00541e17245b9451e93082593efbfea129e220ea05da421129e7657cb
amzn-3.14.35-28.38.amzn1.x86_64-x86_64 releases/1.0.87.0/amzn-3.14.48-33.39.amzn1.x86_64-x86_64/InspectorAgent-1.0.87.0-100087.x86_64.rpm d9a7611cb82e9154e35ebc080ab8b193bd903a330a63371d7ad37770b56cc22f
中略
amzn-3.14.48-33.39.amzn1.x86_64-x86_64 releases/1.0.87.0/amzn-3.14.48-33.39.amzn1.x86_64-x86_64/InspectorAgent-1.0.87.0-100087.x86_64.rpm d9a7611cb82e9154e35ebc080ab8b193bd903a330a63371d7ad37770b56cc22f
ubuntu-3.16.0-23-generic-x86_64 releases/1.0.87.0/ubuntu-3.16.0-30-generic-x86_64/inspectoragent_1.0.87.0-100087_amd64.deb 762c5e6976d61f72729e82c7a27729d2bcbfad7bdaa49b99a99252b41b0a2e0b
中略
ubuntu-3.16.0-44-generic-x86_64 releases/1.0.87.0/ubuntu-3.16.0-30-generic-x86_64/inspectoragent_1.0.87.0-100087_amd64.deb 762c5e6976d61f72729e82c7a27729d2bcbfad7bdaa49b99a99252b41b0a2e0b
amzn-4.1.7-15.23.amzn1.x86_64-x86_64 releases/1.0.87.0/amzn-4.1.7-15.23.amzn1.x86_64-x86_64/InspectorAgent-1.0.87.0-100087.x86_64.rpm 72eb74283133faf74e1d803529d48372a7b850c1ac0996d4e2d9cd9819db97fb
環境2にスイッチして続行します。
(2015/11/1追記:環境2のkernelは VERSION_FILE
に含まれる amzn-4.1.7-15.23.amzn1.x86_64-x86_64
に該当しています。)
$ sudo bash install
Validated signature with:
Validated package sha256 hash matches expected value.
Installing with yum...
読み込んだプラグイン:priorities, update-motd, upgrade-helper
/tmp/inspector.1nyJlINJ/InspectorAgent-1.0.87.0-100087.x86_64.rpm を調べています: InspectorAgent-1.0.87.0-100087.x86_64
/tmp/inspector.1nyJlINJ/InspectorAgent-1.0.87.0-100087.x86_64.rpm をインストール済みとして設定しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ InspectorAgent.x86_64 0:1.0.87.0-100087 を インストール
--> 依存性の処理をしています: libpcap のパッケージ: InspectorAgent-1.0.87.0-100087.x86_64
--> 依存性の処理をしています: libpcap.so.1()(64bit) のパッケージ: InspectorAgent-1.0.87.0-100087.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ libpcap.x86_64 14:1.4.0-1.20130826git2dbcaa1.10.amzn1 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
================================================================================
インストール中:
InspectorAgent
x86_64 1.0.87.0-100087 /InspectorAgent-1.0.87.0-100087.x86_64 8.2 M
依存性関連でのインストールをします:
libpcap x86_64 14:1.4.0-1.20130826git2dbcaa1.10.amzn1
amzn-main 144 k
トランザクションの要約
================================================================================
インストール 1 パッケージ (+1 個の依存関係のパッケージ)
合計容量: 8.3 M
総ダウンロード容量: 144 k
インストール容量: 8.5 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : 14:libpcap-1.4.0-1.20130826git2dbcaa1.10.amzn 1/2
インストール中 : InspectorAgent-1.0.87.0-100087.x86_64 2/2
crond を再読み込み中: [ OK ]
検証中 : InspectorAgent-1.0.87.0-100087.x86_64 1/2
検証中 : 14:libpcap-1.4.0-1.20130826git2dbcaa1.10.amzn 2/2
インストール:
InspectorAgent.x86_64 0:1.0.87.0-100087
依存性関連をインストールしました:
libpcap.x86_64 14:1.4.0-1.20130826git2dbcaa1.10.amzn1
完了しました!
読み込んだプラグイン:priorities, update-motd, upgrade-helper
/tmp/inspector.1nyJlINJ/InspectorAgent-1.0.87.0-100087.x86_64.rpm を調べています: InspectorAgent-1.0.87.0-100087.x86_64
Notice:
By installing the Amazon Inspector Agent, you agree that your use is subject to the terms of your existing
AWS Customer Agreement or other agreement with Amazon Web Services, Inc. or its affiliates governing your
use of AWS services. You may not install and use the Amazon Inspector Agent unless you have an account in
good standing with AWS.
* * *
Current running agent reports version as: 1.0.87.0
This install script was created to install agent version: 1.0.87.0
In most cases, these version numbers should be the same.
HTTP/1.1 200 OK
x-amz-id-2: TyBoZEEdMln1ulRBhifAAAX2iABuqPyYmQo5NN7reMpJCZEy8gBFIUUCOY0mC2ds7EDrDSrVKRs=
x-amz-request-id: 69C1A89EA6AC1746
Date: Mon, 26 Oct 2015 00:48:04 GMT
Last-Modified: Mon, 19 Oct 2015 21:49:09 GMT
ETag: "df847a11c075d62da4f16433a1cd4011"
Accept-Ranges: bytes
Content-Type: binary/octet-stream
Content-Length: 10034
Server: AmazonS3
プロセスを見ると、Inspectorというのが動いていました。
$ ps auwwx | grep inspector
root 2806 0.0 1.8 325708 18628 ? Ssl 00:47 0:00 /opt/aws/inspector/bin/inspector
#1-4.Applicationを設定
アプリケーション名を指定して、対象となるリソースに付いているタグを指定します。
ここでは、先ほど作成したタグ Inspector
を指定しました。
#1-5.Assessmentを作成
ここでどのような診断をするか作成します。
Assessmennt名を指定して、ルールパッケージをしてします。
Durationはデフォルト設定とします。
2015/10/26現在で選択可能なルールパッケージは以下です。
- Authentication Best Practices
- PCI DSS 3.0 Readiness
- Network Security Best Practices
- Application Security Best Practices
- Common Vulnerabilities and Exposures
- Operating System Security Best Practices
Nextボタンを押すと、確認画面に遷移します。
Previewボタンで、対象が表示されることを確認してください。
#2.実行
最後に Create & run
ボタンで実行します。
実行すると以下のようにStatusが変化します。
重複して実行しようとするとエラーになります。
一つ一つ実行しましょう。
#3.結果
Assessmentの状態と結果はAssessment画面で確認できます。
Findingsが指摘事項のようですね。
Findingの数字をクリックすると内容が表示されるようですが、指摘事項の内容がありません...
2015/11/5追記:AWSマネジメントコンソールの言語設定が 日本語
であることが原因でした。
言語設定を 英語
にすることで表示がなされます。
指摘事項がない項目は、以下のように表示されました。
#最後に
一通り動かしてみましたが、実行環境がかなり限られる等、まだまだ発展途上のようです。
今後に期待しましょう!
ちなみにですが、t2.microで実行してもvmstat上では殆どリソースの変動は見られませんでした。
お疲れ様でした。