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

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


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


比較的簡単に実行が可能で、エージェントなしでもある程度は確認することが可能です。

継続的に実施したり、リリース前に実施するなどするシーンで活躍するのではないかを思います。

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)