すべてのプロダクト
Search
ドキュメントセンター

Virtual Private Cloud:トラフィックミラーリングを使用したVPCトラフィックのセキュリティ監査の実行

最終更新日:Nov 01, 2024

ネットワークセキュリティは、ユーザーがクラウド上で主要なビジネス操作を展開する際の主な懸念事項です。 仮想プライベートクラウド (VPC) のトラフィックミラーリング機能を使用して、ネットワークトラフィックセキュリティをリアルタイムで監視および分析できます。

シナリオ

企業は、コアビジネスをクラウドに展開しています。 クラウドサービスの運用を確保しながら、セキュリティ監査の潜在的な脅威を特定して記録するために、ECSインスタンストラフィックの効率的で非侵入的な監視が必要です。

この例では、トラフィックミラーリングを利用して、あるECSインスタンスから脅威検出システムを備えた別のECSインスタンスにネットワークトラフィックをコピーします。 これにより、セキュリティルールを設定した後、ミラーリングされたトラフィックをリアルタイムで監視できます。

image
  • トラフィックミラーリング: ソースのelastic Compute Service (ECS) インスタンスのElastic network interface (ENI) からネットワークトラフィックを複製し、指定されたENIに転送します。 この機能は、コンテンツの検査、脅威の監視、およびトラブルシューティングでよく使用されます。

  • トラフィック監査: この例では、メッセージの受信と異常の検出にSuricataが使用されます。 VXLANのカプセル化とカプセル化解除、侵入検知サービス (IDS) 、侵入防止サービス (IPS) 、ネットワークセキュリティ監視などの機能を提供します。 Suricataは悪意のあるトラフィックパターンを特定し、ビジュアル分析システムElasticsearchとシームレスに統合します。 Alibaba Cloud Marketplaceから他のセキュリティ分析ツールを選択することもできます。

  • ログの処理と保存: FilebeatがSuricataログを収集すると、ログはインデックスごとにElasticsearchに保存され、Kibanaで視覚化され、ログのクエリ、分析、表示が可能になります。

  • インデックスファイルストレージ: Elasticsearchを設定した後、インデックス付きトラフィックレコードをAlibaba Cloud Object storage Service (OSS) に保存します。 これにより、データが安全に保存され、長期にわたってアクセスできるようになります。

前提条件

  • 2つのVPCが作成され、それぞれに1つのECSインスタンスがあります。

    • elastic IPアドレス (EIP) は、必要に応じてインターネットアクセスのためにECS1に関連付けることができます。

    • EIPは、インターネットアクセスとSuricata展開のために、トラフィックミラーの宛先であるECS2に割り当てられます。

    • この例では、サーバーはAlibaba Cloud Linux 3.2104 LTS 64ビットをオペレーティングシステムとして実行します。

    • ECS2のセキュリティグループは、UDPポート4789でのインバウンドトラフィックを許可します。 ポートは、ECS1によってカプセル化されたUDPメッセージによってアクセスされ得るため、ECS1からミラーリングされたトラフィックを受信する。

  • アクティブ化していない場合は、プロンプトに従ってトラフィックミラーリング機能を有効にします。

  • トラフィックミラーの送信元と送信先が異なるVPCにある場合は、2つのVPCを接続する必要があります。 この例では、2つのVPCはVPCピアリング接続を介して接続されています。

  • Kibanaパブリックネットワークアクセスを有効にしてElasticsearchインスタンスが作成されます。 パブリックIPアドレスをKibanaホワイトリストに追加します。

手続き

ステップ1: Suricataの設定

ネットワークトラフィックを受信し、セキュリティ監査を実施するには、ECS2にSuricataをデプロイする必要があります。

  1. ECS2にログインし、次のコマンドを実行してSuricataをインストールします。

    # Install dependencies
    sudo dnf install -y gcc libpcap-devel pcre-devel libyaml-devel file-devel \
                         zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel
    
    # Install suricata
    sudo dnf install suricata -y
    
    # Ensure suricata starts automatically
    sudo systemctl enable suricata
    sudo systemctl start suricata
  2. Suricataを設定します。

    Suricataの設定は /etc/suricata/suricata.yamlにあります。 デフォルト設定に固執することができます。

  3. セキュリティルールを更新します。

    suricata-updateを実行して、デフォルトで /var/lib/suricata/rules/suricata.ru lesに保存されているルールファイルを更新します。

  4. sudo service suricata restartを実行してSuricataを再起動します。

手順2: トラフィックミラーリングの設定

  1. フィルターを設定します。

    1. VPCコンソールにログインします。左側のナビゲーションペインで、O&Mとモニタリング > トラフィックミラーリング > フィルターを選択します。

    2. [フィルター] ページで、[フィルターの作成] をクリックします。 [ルール設定] セクションで、[アウトバウンドルール] タブをクリックし、[ルールの作成] を選択します。 設定をデフォルト値として保持し、すべてのトラフィックをキャプチャします。 保存をクリックします。

  2. トラフィックミラーセッションを作成してアクティブ化します。

    1. 左側のナビゲーションペインで、O&Mとモニタリング > トラフィックミラーリング > 交通ミラーセッションを選択します。

    2. [トラフィックミラーセッション] ページで、[トラフィックミラーセッションの作成] をクリックします。 デフォルトの基本設定を維持します。 [フィルターの関連付け] で、手順1で作成したルールを選択します。 次に、ECS1のENIをTraffic Mirror Sourceとして、ECSのENIをTraffic Mirror Destinationとして選択します。

    3. 交通ミラーセッションページで、設定したセッションを見つけて、アクション列の開始をクリックします。

  3. トラフィックミラーリング機能とSuricata機能を正しく完了すると、/var/log/suricata /ディレクトリに次のログファイルが生成されます。

    /var/log/suricata/
    ├── certs
    ├── core
    ├── eve.json            ## All captured flow, alert, stats, and HTTP logs in JSON format
    ├── fast.log            ## Alert logs from detection and analysis
    ├── files
    ├── stats.log           ## Detailed statistics on captured and processed packets
    ├── suricata.log        ## Detailed runtime logs
    └── suricata-start.log  ## Detailed startup logs

ステップ3: Suricataログの収集と保存

Filebeatを使用して、インデックス作成と保存のためにSuricataログをElasticsearchに転送し、ログの視覚化にKibanaを利用できます。

  1. ECS2にログインし、次のコマンドを実行してFilebeatをインストールします。

    curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.0-x86_64.rpm
    sudo rpm -vi filebeat-7.10.0-x86_64.rpm
  2. Suricataの設定を調整して、収集するトラフィックログファイルを指定します。

    1. sudo filebeat modules Enable Suricataを実行してsuricataモジュールを有効にします。

    2. sudo vim /etc/filebeat/modules.d /Suricata. ymlを実行して、suricataの設定を変更します。

      - module: suricata
        # Specify traffic log files for collection
        eve:
          enabled: true
          var.paths: ["/var/log/suricata/eve.json"]
    3. プレスEsc、タイプ: wqEnterキーを押して変更を保存して終了します。

  3. sudo vim /etc/filebeat/filebeat.ymlを実行してfilebeat.ymlファイルを設定し、接続設定を完了します。

    1. Filebeatモジュールの設定を変更します。

      filebeat.config.modules:
        # Globally load configuration files
        path: /etc/filebeat/modules.d/suricata.yml
      
        # Enable dynamic reloading and application of new configurations
        reload.enabled: true
      
        # Check for configuration changes at the specified interval
        reload.period: 1s
    2. Kibana設定を変更します。

      setup.kibana:
        host: "https://es-cn-8l**********2r7ln-kibana.cn-hangzhou.elasticsearch.aliyuncs.com:5601"

      host: <Kibana public address>:5601の形式のKibanaのアドレスです。 詳細は、「Kibana設定」をご参照ください。

    3. Elasticsearchの出力設定を調整します。

      output.elasticsearch:
        # Specify the Elasticsearch instance for log storage
        hosts: ["http://es-cn-8ly**********r7ln.elasticsearch.aliyuncs.com:9200"]
        username: "elastic"
        password: "<your_password>"

      host: <インスタンスのプライベートまたはパブリックアドレス>:9200の形式のElasticsearchのアドレス。 詳細については、「クラスターの基本情報を確認してください」をご参照ください。

      username: Elasticsearchのデフォルトのユーザー名はelasticです。

      password: インスタンスの作成時に設定されるパスワード。 パスワードを忘れた場合は、Elasticsearchクラスターのアクセスパスワードをリセットできます。

    4. プレスEsc、タイプ: wqEnterキーを押して変更を保存し、終了します。

    5. 次のコマンドを実行して、ダッシュボードなどのリソースをElasticsearchおよびKibanaにアップロードし、Filebeatを起動します。

      sudo filebeat setup
      sudo service filebeat start

ステップ4: VPCトラフィックの可視化

  1. ElasticsearchインスタンスのKibanaコンソールにログインします。 左側のナビゲーションウィンドウで、[Kibana] > [Discover] をクリックし、[インデックスパターン][filebeat] に変更します。

  2. を追加できます。You can add theアラートフィルタリングし、右上隅の時間範囲を選択して、指定された期間のVPCトラフィックの潜在的な脅威を確認します。

    image

ステップ5: アラートの確認

  1. ECS1にログインし、curl http://testmynids.org/uid/index.html を実行してIDコマンドの出力をシミュレートし、アラートをトリガーします。

    mirror.png

    説明

    Suricataルールセットには、パケットが文字列uid=0 | 28 | root | 29 | を含み、トラフィックが不明として分類されると、パケットをドロップしてアラートを生成する次のルールが含まれます。

    alert ip any any -> any any (msg:"GPL ATTACK_RESPONSE id check returned root"; content:"uid=0|28|root|29|"; classtype:bad-unknown; sid:2100498; rev:7; metadata:created_at 2010_09_23, updated_at 2010_09_23;)
  2. Kibanaインターフェイスで、GPLフィルターを適用して、Suricata IDS署名ルールに対応するアラートを表示します。GPL ATTACK_RESPONSE id check returned root. mirror1.png

次への対処方法: データバックアップ

Elasticsearchインデックスファイルをバックアップして、データへの長期アクセスを保護および維持できます。 データ自動バックアップはデフォルトでElasticsearchで有効になっています。 自動バックアップスナップショットをAlibaba Cloud OSSリポジトリに保存できます。

よくある質問

  1. Filebeat設定の変更を有効にするにはどうすればよいですか?

    設定ファイルを変更した後、サービスを再起動します。 次のコマンドを実行して、Filebeatを再起動します。

    sudo systemctl restart filebeat
  2. トラフィックミラーリングを設定した後、トラフィックがトラフィックミラーの宛先に転送されることを確認するにはどうすればよいですか。

    トラフィックミラーの宛先であるECS2にログインし、次のコマンドを実行して、パケットデータが受信されたかどうかを確認します。

    tcpdump -i eth0 udp port 4789 -nne

    識別子vni 1は、宛先がパケットを受信し、トラフィックミラーセッションが成功したことを示す。

    mirror-test.png