こんにちは、ひろかずです。
re:Iventで様々なサービスが発表されましたが、Amazon Inspectorについてはあまり話題になっていませんでした。
個人的には最低限のセキュリティが保持できているかをリーズナブルに確認できる、素晴らしいソリューションコンセプトだと思っています。
【AWS発表】 Amazon Inspector – 自動セキュリティアセスメントサービス
現時点(2015/10/26)ではプレビューですが、プレビューに当選したのでその動作を試してみました。
※ 長いので、忙しい人は 2.実行 あたりを見れば良いと思います。
参考情報
目的とゴール
事前に作りこんだ脆弱性をどの程度検知し、どのようにレポートされるかを確認する。
試験環境
環境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の実行には何らかのタグが必要です。
リソースにタグが付いていない場合は、ここで付けます。
リソースタイプを選べるので、ここではインスタンスを選択します。
このようにある程度抽出して
「新しいタグキーの作成」でタグを追加できます。
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[root@ip-172-31-16-39
環境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が変化します。
Dashboardには以下のように表示されます。
重複して実行しようとするとエラーになります。
一つ一つ実行しましょう。
3.結果
Assessmentの状態と結果はAssessment画面で確認できます。
Findingsが指摘事項のようですね。
Findingの数字をクリックすると内容が表示されるようですが、指摘事項の内容がありません…
2015/11/5追記:AWSマネジメントコンソールの言語設定が 日本語 であることが原因でした。
言語設定を 英語 にすることで表示がなされます。
指摘事項がない項目は、以下のように表示されました。
最後に
一通り動かしてみましたが、実行環境がかなり限られる等、まだまだ発展途上のようです。
今後に期待しましょう!
ちなみにですが、t2.microで実行してもvmstat上では殆どリソースの変動は見られませんでした。
お疲れ様でした。