
このパッケージは、CallStranger(CVE-2020-12695)の悪用試行とデータ外部送信を検出しようとするものです。これを実現するために、次の3つの重要な点を監視します。
SUBSCRIBE コマンド。これは DDoS 増幅またはデータ外部送信の前兆である可能性がありますNOTIFY コマンド。これは進行中の DDoS 増幅またはデータ外部送信を示している可能性がありますCallStrangerDetector::exfiltration_threshold バイトより長い UPnP SUBSCRIBE コマンド。これは UPnP を介したデータ外部送信を示している可能性がありますこのモジュールは、あなたのサイトでは通常、インターネット宛ての UPnP SUBSCRIBE または NOTIFY コマンドが発生せず、インターネットに公開された UPnP デバイスも存在しないことを前提としています。これらのいずれかに該当する場合は、誤検知が発生します。誤検知を引き起こす特定の IP を CallStrangerDetector::ignore_subnets セットに追加することで、それらを無視できます。
このスクリプトを PCAP に対して使用するには、Git リポジトリをクローンして、zeek -Cr your.pcap scripts/__load__.zeek で Zeek を実行するだけです。
パッケージをインストールするには、Git リポジトリをクローンし、パッケージディレクトリで zkg install . を実行してください。
このモジュールは、CallStranger に類似した活動を検出すると、notice.log に通知を追加します。通知は以下のとおりです。
CallStranger_Data_Exfiltration_Attempt: UPnP デバイスにトラフィックを外部送信させようとする試みを観測しましたCallStranger_Data_Exfiltration_Success: UPnP デバイスがデータを外部送信している可能性が高いことを観測しましたCallStranger_UPnP_Request_Callback_To_External_Host: UPnP デバイスに外部ホストへコールバックさせようとする試みを観測しましたCallStranger_UPnP_To_External_Host: UPnP デバイスが外部ホストへコールバックしていることを観測しました設定できる構成オプションは3つあります。
CallStrangerDetector::exfiltration_threshold: データ外部送信として分類するために、UPnP Callback URL で観測される必要があるバイト数です。CallStrangerDetector::ignore_subnets: UPnP 検出時に無視すべきサブネットのセットです。UPnP が正当にインターネットを経由しているために誤検知が発生する場合は、これを使用してください。CallStrangerDetector::strict_upnp_protocol_detection: このブール値は、UPnP SUBSCRIBE コマンドを識別する際にスクリプトがより厳密に判定するかどうかを制御します。具体的には、“NT”(Notification Type)ヘッダーが観測されることを必須にします。デフォルトは false です。NT ヘッダーは実際には何もせず、UPnP 仕様で必須とされているだけだからです。UPnP 以外の SUBSCRIBE トラフィックが存在する場合、これを true に設定する必要があるかもしれません本パッケージは、ローカルの UPnP トラフィックと、CallStranger の作者が提供した概念実証コード(https://github.com/yunuscadirci/CallStranger)を使用してテスト済みです。問題が発生した場合は、GitHub の issue を開くか、またはお問い合わせください。ありがとうございます!