ネットワークセキュリティは、ユーザーがクラウド上で主要なビジネス操作を展開する際の主な懸念事項です。 仮想プライベートクラウド (VPC) のトラフィックミラーリング機能を使用して、ネットワークトラフィックセキュリティをリアルタイムで監視および分析できます。
シナリオ
企業は、コアビジネスをクラウドに展開しています。 クラウドサービスの運用を確保しながら、セキュリティ監査の潜在的な脅威を特定して記録するために、ECSインスタンストラフィックの効率的で非侵入的な監視が必要です。
この例では、トラフィックミラーリングを利用して、あるECSインスタンスから脅威検出システムを備えた別のECSインスタンスにネットワークトラフィックをコピーします。 これにより、セキュリティルールを設定した後、ミラーリングされたトラフィックをリアルタイムで監視できます。
トラフィックミラーリング: ソースの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をデプロイする必要があります。
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
Suricataを設定します。
Suricataの設定は
/etc/suricata/suricata.yaml
にあります。 デフォルト設定に固執することができます。セキュリティルールを更新します。
suricata-update
を実行して、デフォルトで/var/lib/suricata/rules/suricata.ru les
に保存されているルールファイルを更新します。sudo service suricata restart
を実行してSuricataを再起動します。
手順2: トラフィックミラーリングの設定
フィルターを設定します。
VPCコンソールにログインします。左側のナビゲーションペインで、を選択します。
[フィルター] ページで、[フィルターの作成] をクリックします。 [ルール設定] セクションで、[アウトバウンドルール] タブをクリックし、[ルールの作成] を選択します。 設定をデフォルト値として保持し、すべてのトラフィックをキャプチャします。 保存をクリックします。
トラフィックミラーセッションを作成してアクティブ化します。
左側のナビゲーションペインで、を選択します。
[トラフィックミラーセッション] ページで、[トラフィックミラーセッションの作成] をクリックします。 デフォルトの基本設定を維持します。 [フィルターの関連付け] で、手順1で作成したルールを選択します。 次に、ECS1のENIをTraffic Mirror Sourceとして、ECSのENIをTraffic Mirror Destinationとして選択します。
交通ミラーセッションページで、設定したセッションを見つけて、アクション列の開始をクリックします。
トラフィックミラーリング機能と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を利用できます。
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
Suricataの設定を調整して、収集するトラフィックログファイルを指定します。
sudo filebeat modules Enable Suricata
を実行してsuricataモジュールを有効にします。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"]
プレス
Esc
、タイプ: wq
Enterキーを押して変更を保存して終了します。
sudo vim /etc/filebeat/filebeat.yml
を実行してfilebeat.ymlファイルを設定し、接続設定を完了します。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
Kibana設定を変更します。
setup.kibana: host: "https://es-cn-8l**********2r7ln-kibana.cn-hangzhou.elasticsearch.aliyuncs.com:5601"
host
:<Kibana public address>:5601
の形式のKibanaのアドレスです。 詳細は、「Kibana設定」をご参照ください。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クラスターのアクセスパスワードをリセットできます。プレス
Esc
、タイプ: wq
Enterキーを押して変更を保存し、終了します。次のコマンドを実行して、ダッシュボードなどのリソースをElasticsearchおよびKibanaにアップロードし、Filebeatを起動します。
sudo filebeat setup sudo service filebeat start
ステップ4: VPCトラフィックの可視化
ElasticsearchインスタンスのKibanaコンソールにログインします。 左側のナビゲーションウィンドウで、 をクリックし、[インデックスパターン] を [filebeat] に変更します。
を追加できます。You can add the
アラート
フィルタリングし、右上隅の時間範囲を選択して、指定された期間のVPCトラフィックの潜在的な脅威を確認します。
ステップ5: アラートの確認
ECS1にログインし、
curl http://testmynids.org/uid/index.html
を実行してIDコマンドの出力をシミュレートし、アラートをトリガーします。説明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;)
Kibanaインターフェイスで、
GPL
フィルターを適用して、Suricata IDS署名ルールに対応するアラートを表示します。GPL ATTACK_RESPONSE id check returned root.
次への対処方法: データバックアップ
Elasticsearchインデックスファイルをバックアップして、データへの長期アクセスを保護および維持できます。 データ自動バックアップはデフォルトでElasticsearchで有効になっています。 自動バックアップスナップショットをAlibaba Cloud OSSリポジトリに保存できます。
よくある質問
Filebeat設定の変更を有効にするにはどうすればよいですか?
設定ファイルを変更した後、サービスを再起動します。 次のコマンドを実行して、Filebeatを再起動します。
sudo systemctl restart filebeat
トラフィックミラーリングを設定した後、トラフィックがトラフィックミラーの宛先に転送されることを確認するにはどうすればよいですか。
トラフィックミラーの宛先であるECS2にログインし、次のコマンドを実行して、パケットデータが受信されたかどうかを確認します。
tcpdump -i eth0 udp port 4789 -nne
識別子vni 1は、宛先がパケットを受信し、トラフィックミラーセッションが成功したことを示す。