【入門編】 エンドポイント検出と応答(EDR)とネットワーク検出と応答(NDR)の連携アーキテクチャ – サイバーセキュリティとプライバシー保護実践ガイド

こんにちは!ネットワークの裏側を覗き見するのが大好きな、セキュリティスペシャリストの主筆ライターです。

インフラやネットワークの世界に飛び込んだばかりの頃って、次から次へと出てくる横文字や専門用語に圧倒されてしまいますよね。「EDR?NDR?アルファベットの略語でお腹いっぱいだよ!」なんて声が、画面の向こうから聞こえてきそうです。一歩ずつ、焦らずに理解していきましょう!

今日は、現代の企業セキュリティにおいて「最強のコンビ」と言われているEDRとNDRの連携アーキテクチャについて、身近な例えを交えながら、とことん優しく紐解いていきたいと思います。

—

1. EDRとNDRってなに?身近な例えでイメージしよう

難解なセキュリティ製品も、私たちの身の回りの世界に置き換えると一気に分かりやすくなります。会社や自宅に届く「郵便物」をイメージしてみてください。

EDR(Endpoint Detection and Response)は「机の上の探偵」

EDRは、パソコンやスマホといった「エンドポイント(端末)」の内部をずっと見張っているスゴ腕の探偵です。
オフィスの机の上(パソコンの中)で、誰かが変なファイルを開いていないか、勝手に怪しいプログラムが動き出していないかを監視しています。「おや、この書類を開いた途端に、パソコンが変な動きを始めたぞ!」と、端末の足元で起きた異変を即座に見つけ出して、「大変だ!」と叫んでくれるのがEDRです。

NDR(Network Detection and Response)は「街の防犯カメラ」

一方でNDRは、オフィスの中を張り巡らされた廊下や、外部との出入り口(ネットワーク)を見渡す「防犯カメラのネットワーク」です。
誰がどこへ手紙を出そうとしているのか、普段はやり取りしない見知らぬ怪しい人物とこっそり通信(パケットの往来)をしていないかを、通信の流れ(トラフィック)全体から見守っています。「おいおい、あそこの机から、夜中に見たこともない巨大な荷物が外へ運び出されているぞ!」という街全体の動きをキャッチするのがNDRの仕事です。

—

2. なぜ「連携」が必要なの?片方だけじゃダメな理由

「おや、探偵(EDR)と防犯カメラ(NDR)がそれぞれ頑張っていれば、それで十分なんじゃないの?」と思いますよね。実は、ここに現代のサイバー攻撃の巧妙さが隠されています。

巧妙なマルウェアやランサムウェアは、最初の侵入に成功すると、まず「探偵(EDR)の目を盗む」工作をします。EDRの機能をこっそり停止させたり、ログを書き換えたりして、端末の中からは「何事もありませんよ〜」と見せかけるのです。

ここでEDRとNDRの連携が真価を発揮します。
パソコンの中ではEDRが無効化されてしまっていても、ネットワークの廊下を歩く怪しい通信の足音は、街の防犯カメラである「NDR」がしっかり捉えています。「おや、あの端末、EDRは静かだけど、外の怪しいサーバーとやけに頻繁にデータやり取り(不審なパケットフロー)をしているぞ?」と、NDRがEDRに耳打ちするのです。

この2つの視点が組み合わさることで、攻撃者の巧妙な隠蔽工作を暴き出し、迅速なインシデント特定につながるというわけですね。

—

3. データをどう結びつける?連携の仕組みを覗いてみよう

では、このEDRとNDRは、実際にどのように会話をしているのでしょうか?
裏側では、端末から集まった詳細なログと、ネットワーク機器(ルーターやスイッチなど)から送られてくる通信の要約データ(NetFlowやIPFIXと呼ばれるパケットの統計情報)を、セキュリティの司令塔(SIEMやSOARプラットフォーム)で合体させて相関分析を行っています。

ここで、実際にネットワーク上の不審なフローを検知し、EDRと連携させるためのイメージとして、Pythonを使った簡単な相関分析の疑似スクリプトを見てみましょう。難しいコードに見えますが、やっていることは「通信の点数化」と「端末の特定」です。

# ネットワークの不審なフローとEDRのイベントを突き合わせる疑似スクリプト
def correlate_edr_ndr(ndr_flows, edr_alerts):
    """
    NDRから受け取ったネットワークの不審なフローと、
    EDRから受け取った端末のイベントログを照らし合わせる関数
    """
    print("=== EDRとNDRの相関分析を開始します ===")
    
    for flow in ndr_flows:
        target_ip = flow['destination_ip']
        bytes_transferred = flow['bytes']
        
        # ネットワーク上で大量データ転送(データ持ち出しの疑い)を検知した場合
        if bytes_transferred > 100000000: # 100MB超の通信
            print(f"[警告] NDR検知: 内部IP {flow['source_ip']} から 外部 {target_ip} へ大量のデータ送信を確認!")
            
            # 該当するIPアドレスを持つ端末のEDRログをチェック
            matching_edr = [alert for alert in edr_alerts if alert['ip_address'] == flow['source_ip']]
            
            if matching_edr:
                for alert in matching_edr:
                    print(f"  -> 【一致】EDRでもプロセス検知あり: 該当プロセス [{alert['process_name']}]")
                    print(f"  -> 【処置】直ちにネットワークから端末 {flow['source_ip']} を隔離します!")
                    # isolate_endpoint(flow['source_ip']) # 実際の隔離APIを叩く処理
            else:
                print(f"  -> 【注意】EDR側は沈黙しています。EDRがバイパスされた可能性があります!詳細調査を推奨します。")

# サンプルデータの定義
sample_ndr_flows = [
    {'source_ip': '192.168.1.50', 'destination_ip': '203.0.113.5', 'bytes': 150000000}
]

sample_edr_alerts = [
    {'ip_address': '192.168.1.50', 'process_name': 'suspicious_mimikatz.exe'}
]

# 関数を実行してみる
correlate_edr_ndr(sample_ndr_flows, sample_edr_alerts)

このように、ネットワークの「流れるデータの量や宛先(NDR)」と、端末で動く「怪しいプログラムの名前(EDR)」を突合せることで、単体では見えなかった脅威がくっきりと浮かび上がってくるのです。

—

4. 実務での設定・運用のポイント

インフラエンジニアとして実際にこの連携アーキテクチャを構築・運用する際には、いくつかの押さえておくべきポイントがあります。

1. タイムスタンプの同期(NTPの徹底)

  • EDRのログが持つ時間と、NDRが捉えたパケットフローの時間がずれていると、「どの瞬間の通信か」を正しく結びつけられません。必ず厳密な時刻同期(NTPサーバーの活用)を行ってください。

2. 内部IPアドレスの正確なマッピング(DHCP環境への配慮)

  • 企業ネットワークではDHCPによってIPアドレスが動的に変わることがよくあります。「昨日の10時、IP 192.168.1.50 を使っていたのは誰か?」を正しく追えるよう、IPAM(IPアドレス管理)や認証ログとの連携を意識しましょう。

3. アラートのチューニング

  • 連携を始めた当初は、業務用の正当な大容量ファイル転送なども検知してしまい、アラートの嵐になることがあります。「通常はこの時間帯にこの通信はあり得ない」といったコンテキストをルールに落とし込み、ノイズを減らしていく泥臭い作業が運用成功の鍵を握ります。

—

まとめ

今回は、EDRとNDRの連携アーキテクチャについて、郵便配達や防犯カメラの例えを交えながら解説しました。

  • EDRは「端末の内部で起きていること(誰が何を開いたか)」を見つける探偵。
  • NDRは「ネットワーク全体の通信の流れ(どこへ大量の荷物を送っているか)」を見守る防犯カメラ。
  • この2つを組み合わせることで、片方が騙されても、もう片方がカバーし合える強固な防御壁が完成する。

最初は難しく感じるセキュリティの仕組みも、役割分担を紐解いていくと非常に理にかなっていて面白いものです。日々のインフラ運用の現場で、ぜひこの「相関分析」の視点を取り入れてみてくださいね。

それでは、また次回の技術解説でお会いしましょう!安全で快適なネットワークライフを!

コメント

タイトルとURLをコピーしました