3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Amazon Inspector で Network Assessment が出来るようになったのでやってみた!

Last updated at Posted at 2018-11-13

Amazon Inspector とは?

(ざっくり...)
EC2 に対してエージェントをインストールし、評価テンプレート(実行や診断内容など)を定義して
1回でも2回でも、診断が可能なサービスです。

(抜粋)
Amazon Inspector は、AWS にデプロイされたアプリケーションのセキュリティとコンプライアンスを
向上させるための、自動化されたセキュリティ評価サービスです。

Network Assessments とは?

(そのままですが...)ネットワーク診断のことです。

公式サイト
公式ドキュメント

(抜粋)
Amazon Inspector now offers agentless network assessments 
with the ‘Network Reachability’ rules package that identifies ports 
and services on your Amazon EC2 instances that are accessible from outside your VPC. 
With just a few clicks in the Inspector console, 
you can analyze the network configuration of your AWS account to identify the resources accessible from the internet or private networks like VPN, 
Direct Connect, or a peered VPC. 

出来ること / 出来ないこと

  • エージェントなし(エージェント入れた方がより詳細に診断出来るけど)でも診断可能
  • 外部から参照可能なネットワーク設定を診断
    • ELB配下で、プライベートなEC2でも診断可能
  • Amazon EC2-Classic networksはサポート外
  • 診断対象要素
    • Amazon EC2 instances
    • Application Load Balancers
    • Direct Connect
    • Elastic Load Balancers
    • Elastic Network Interfaces
    • Internet Gateways (IGWs)
    • Network Access Control Lists (ACLs)
    • Route Tables
    • Security Groups (SGs)
    • Subnets
    • Virtual Private Clouds (VPCs)
    • Virtual Private Gateways (VGWs)
    • VPC peering connections
  • 診断種類は3種類(翻訳に自信がない...)
    • RecognizedPort:well-known port 的な代表的なポートの確認(エージェントなしでも可能)
    • UnrecognizedPortWithListener:上記以外でEC2でリッスンしているポート(エージェント必要)
    • NetworkExposure:該当のネットワーク周辺の情報

準備

構成

inspector-20181112-01.png

以下の環境で実行しました。

リソースと役割

|リソース|サブネット
(外部接続)|Inspector
エージェント|セキュリティグループ|用途|インストール|
|:--|:--:|:--:|:--:|:--|:--|:--|
|ELB|public
(可)|なし|elb|Webサービスのフロントイメージ| |
|EC2|private
(不可)|なし|elbback|Webサーバイメージ|apache|
|EC2|public
(可)|あり|Inspector|エージェントあり|apache,mysql,dovecot|
|EC2|public
(可)|なし|Inspector|エージェントなし|apache,mysql,dovecot|
|EC2|private
(不可)|なし|Inspector|診断できない想定| |

セキュリティグループ

port sg:elb sg:elbback sg:Inspector
TCP(21) - - From(0.0.0.0/0)
TCP(22) From(0.0.0.0/0) From(sg:elb) From(0.0.0.0/0)
TCP(80) From(0.0.0.0/0) From(sg:elb) From(0.0.0.0/0)
TCP(110) - - From(0.0.0.0/0)
TCP(443) - From(0.0.0.0/0) From(0.0.0.0/0)
TCP(3306) - - From(sg:Inspector)
All トラフィック - From(sg:elbback) -

やってみた

01. 診断の種類

  • 「Network Assessments」にチェックして、「Advanced setup」を押します
inspector-20181112-02.png

02. ターゲット作成

  • 今回は、「All instances」で、全EC2を対象とします
  • エージェントなしのEC2にも実行したいので、「Install Agents」を外します
inspector-20181112-03.png

03. テンプレート作成

  • 名前: 任意のテンプレート名称
  • ルールパッケージ: ここで新しく追加になった「Network Reachability-1.1」を選択
  • 所要時間:台数によると思いますが、1時間(推奨)で良いです(念の為8時間で実行しましたが、あとで1時間で実行しても同じ結果だった)
  • Assessment Events: スケジュール実行は今回不要なので、チェックを外す
inspector-20181112-04.png

04. プレビュー

  • 確認して「作成」を押します
inspector-20181112-05.png inspector-20181112-06.png

05. 実行状況確認

  • 「Status」が、 データ取得中になります(そのあと、分析になり、完了)
inspector-20181112-07.png

結果

01. 実行結果

  • 「ステータス」:分析完了
  • 「結果」:検知件数が表示される
inspector-20181113-01.png

02. 一覧

  • High / Medium / Low / Informational で分類されます
    Inspector-2018113-02.png

03. 詳細

  • 結果 / 重大度 / 説明 / 推奨事項 などが表示されます
  • 以下は、Highのもので「TCP Port 21」がインターネットからアクセスできる状況にあると報告されています
inspector-20181113-02.png
  • 「Show Detail」を選択すると、JSON形式で、各データが表示されます
inspector-20181113-03.png

まとめ

01. 外部から接続不可なEC2は対象外

  • いくらセキュリティグループが許可されていても接続できないので診断対象外
  • 「結果」欄に、該当インスタンスはない
    • 同じAMIで、同じセキュリティグループなので、実行されていれば何も見つからないはずはない

Inspector-2018113-07.png

02. 直接外部から接続不可でも、ELBを経由して外部から接続可能なEC2は診断可能

  • 「結果」欄にて、該当インスタンスIDを検索してヒットした

Inspector-2018113-08.png

  • 検出内容は、あくまで外部から接続可能な内容のみ
    • 任意許可したTCP(443)は、EC2がプライベートサブネットのため、通信出来ない。
port sg:elb sg:elbback
TCP(22) From(0.0.0.0/0) From(sg:elb)
TCP(80) From(0.0.0.0/0) From(sg:elb)
TCP(443) - From(0.0.0.0/0)
All トラフィック - From(sg:elbback)

03. エージェントありは、詳細な情報が表示

  • 「UnrecogizedPortWithListener」として、POP3(110)を外部から接続可能なEC2、2つにインストールしたところ、エージェントありのEC2のみ検出した
inspector-20181113-04.png  
  • エージェントありは、検出したポートで使用されているプロセスが記載されている
inspector-20181113-05.png

04. セキュリティグループは許可しているが、サーバ上でプロセスを停止している場合...

  • 検出対象から除外される(検出数が 14 --> 13 )。停止した dovecot が消えている。
inspector-20181113-06.png

05. 全てのトラフィックを許可していると...

  • 「RecognizedPort」は、プロセス死活に関係なく検出しているので、大量に検出される
    • こういう結果の時は、すぐにわかるはず...
inspector-20181113-07.png

比較的簡単に実行が可能で、エージェントなしでもある程度は確認することが可能です。
継続的に実施したり、リリース前に実施するなどするシーンで活躍するのではないかを思います。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?