キーロガー検出を検索しています。私の知る限り、ツールによって作成されたキーロガーのほとんどすべてが定期的にホストにデータを送信していますが、コーダーによって作成されたキーロガーは非定期的にデータを送信する可能性があります。ホストのトラフィックをリッスンすることで定期的なイベントを簡単に検出できるため、一部のプロのハッカー(コードライター)はそのようなトリックを実行します。ランダムなhour1
とmin1
を作成し、hour1:min1
の後に最初のキーストロークデータ(またはハッカーに送信するもの)。最初のデータセットを送信した後、ランダムにhour2
とmin2
を作成し、hour2:min2
の後に次のデータを送信します。
この技術により、彼らは非定期的に、しかし定期的にデータを取得しています。 非定期的であるが定期的なデータアップロードを見つける方法/トリックはありますか?
注:今のところ、コマンドアンドコントロールには興味がありません。非定期的なデータアップロードキーロガー検出にのみ興味がありますか?非定期的および定期的なイベント検出に関連するアイデアをいただければ幸いです。
注2:ほとんどのキーロガーはGmailまたは別のメールサーバーを介してデータを送信しており、一部のキーロガーはftpサーバーを使用しています。
注3:検出はホストベースではなく、network based detection
になります。
ありがとう、
周期性に基づいてキーロガーを検出することは奇妙な方法のように思われ、ランダムタイマーを使用してその検出を阻止することも奇妙に思えます。キーロガーを書いている場合、固定のtmierで送信するよりも、ログファイルが特定のサイズ(たとえば、50 kB)に達したら、新しいファイルを開始して古いファイルを転送するようなものを実装する方が自然なようです。定期的に発生する必要のあるデータ転送はたくさんあるので、転送が定期的であるという事実だけではあまり意味がありません(たとえば、ローカルNASへのバックアップ、更新の確認、メールのフェッチ要求など)。
実際、検出する最良の方法は、要求されていないネットワーク接続が、使用していないプロセス(たとえば、Linuxではlsof -i -n
またはnetstat -p -n -t
を参照)によって確立されているか、許可されていないことです。 nethogs のようなツールを使用して、各プロセスが使用するネットワークアクティビティの量に関する統計をアクティブに収集することもできます。
まず、コミュニケーションのパターンといくつかの機能を抽出する必要があります。運が良ければ、たとえば、一意の宛先アドレス、小さい接続サイズ、周期性などにより、流出が目立ちます。
検出には、 Bro が最善の策です。ここに2つの出発点があります:
接続ログを調べます。 Broは、接続ごとに1行の要約を含むconn.log
というファイルを作成しました。ステロイドのNetFlowのように。アウトバウンド接続を確立し、そのタイムスタンプと送信されたバイト数を分析した特定のホストのGrep。このプロセスは次のように開始できます。
bro-cut ts id.orig_h id.resp_h id.orig_p id.resp_p local_orig orig_bytes < conn.log \
| awk '$2 == compromised_Host && $6 == "T" && $7 < max_bytes'
しかし、その後、ハードワークとフィルターを続行する必要があります。これは、グラウンドトゥルースがある場合、つまり既知の不良トラフィックの例がある場合に収束する反復プロセスです。
カスタムスクリプトを作成します。 Broには、非同期のイベント駆動型のチューリング完全スクリプト言語が付属しています。たとえば、新しく表示されたTCPまたはUDP接続ごとに生成される new_connection
イベントをフックするスクリプトを作成できます。タイマー(たとえば1時間)といくつかの状態をインストールし、タイマーの満了時に、流出を構成すると思われる条件が満たされているかどうかを再度確認します。それがあなたの路地にある場合は、試してみてください。 Broメーリングリスト 、喜んでお手伝いします!
キーロガーがHTTPを使用していることがわかっている場合など、アプリケーション層をさらに深く掘り下げることができます。次に、Broはそのプロトコル専用のフックのホストを提供します。
全体として、ネットワーク角度からスニーキネスを検出することは、実際の誤検出率が得られるまでパラメーターを調整することを含む難しい問題です。