私は現在 Blue Team Handbook を読んでおり、ルートキットを検出するための推奨される方法の1つは、さまざまなソースから取得した技術データを比較することです。私が理解したように、これは次のように実行されます。
システムから取得したHDD上のすべてのファイルのリストを、LiveCDを使用して取得したすべてのファイルのリストと比較します。
システムによって表示されるすべての接続のリストを、ネットワークタップによってキャプチャされた接続のリストと比較します。
システムによって表示されるすべてのプロセスのリストを、ボラティリティなどのツールを使用してメモリイメージから抽出されたプロセスのリストと比較します。
リストはすべて原因が一致している必要があります。そうでない場合、ホストが危険にさらされる可能性があります。スクリプティングの経験をやめたので、これらすべてのことを行うことができますが、これは本当に一般的で優れた検出方法ですか?
かなりの費用がかかります。正直なところ、ルートキットを検出するためにそのような華やかなことをしたことがある人は1人もいません。私は管理者であり、IR担当者ではないことに注意してください。
繰り返すのは、検出の良い方法です。
上記のソリューションは柔軟性があり、スケーラブルで安全ですが、大規模な場合は平均的なスクリプトではないため、これが最適なソリューションです。しかし、これは小規模では機能しないという意味ではありませんが、労力が高すぎる可能性があります。可能な実装は、次の方法で実行できます。
問題は、それは非常にカスタムな仕事であるため、そのようなソリューションの開発に十分な時間とお金が費やされる前に、結果に実際に頼ることができないということです。多くのサーバー、たとえば、10000台以上のサーバーは理にかなっています。また、これらのサーバーがさまざまなことを実行し、同じ種類のサーバーではない場合。ただし、いくつかのトレードオフを行うことができます。いくつかのソフトウェアを評価してその一部を実行すると、より簡単に実行できる場合があります。以下を参照してください。
自分で試してみたい場合は、Netflow(sflow)モニタリングを設定してみてください。これだけで、悪意のあるトラフィックが発生したときに正常に検出できます。既製のソフトウェアを使用すると、より効率的になります。したがって、たとえば、アラームを発生させるパケットのパターンを選択できます。ハッキングに関連するだけでなく、多くの異常なトラフィックを正常に検出でき、それは大いに役立ちます。安くて簡単、多目的で効果的です。唯一のことは、適切なパターン(たとえば、キャプチャするパケット)を発明する必要があることです。これらは、基本的には異常ですが許可されているものである可能性があります。発信tcp接続。最初の検出時に、悪意がない場合はホワイトリストに登録できます。もう1つの簡単な方法は、tcpdump
を実行してから、netstat
を実行して比較を実行することです。しかし、これはあまり有用ではなく、隠されたネットワーク接続のみを検出します。インターネットを検索すると、すでにいくつかの役立つスクリプトが見つかる可能性があります。
ファイルシステムに関しては、通常のスクリプトを使用してバイナリの整合性をチェックしたり(たとえば、標準のrpm
またはdpkg
コマンドを使用)、構成ファイルの整合性をチェックしたりすることもできます。このようなスクリプトは、ssh
を介して接続し、生成されたスクリプトをアップロードし(たとえば、git
リポジトリから計算された最新のチェックサムが構成である)、チェックを実行して結果を返す外部ホストから実行できます。 Rundeckはこれを支援するソフトウェアかもしれません。外部ホストからコマンドを実行すると、最初からコマンドが実行されていることが保証され、最終的にはシンプルで効率的な方法になります。
RAMに関しては、これが最も難しい部分であり、より高度なため、この部分は今のところスキップできます。ダンプと分析RAMは簡単なことではありません。
また、chkrootkit
およびrkhunter
スクリプトなども探してください。無料のアンチウイルスClamav
とKaspersky
のような有料ソリューションがあります。これらは既知のバックドアをチェックしますが、平均的な企業/ホスティング環境では、秘密鍵または既知のバックドアでカスタムパッチされたsshd
の場合は50/50の可能性があります。
また、パッチが適用されていないカーネルや悪意のあるモジュールがないことを確認することを忘れないでください。ただし、それは別の問題です。私はそれを調査し、同じスクリプトを使用してカーネルと非表示の両方のプロセスをチェックしてみます。すでにインターネット上でそれを行っているスクリプトがいくつかあるかもしれません。
要約すると、Netflow(またはSflow、それはまったく同じことです)は、セキュリティだけでなくネットワークでも大いに役立ちます。サーバーとは何の関係もありません。スイッチは、事前定義されたパターンと照合され、統計情報が考慮されている間、n番目ごとのパケットをNetFlowレシーバーに送信します。レポートも提供する必要があります。ファイルシステムのチェックはrpm
とdpkg
で簡単に行え、残りはgit
またはビルドサーバーからチェックできます。パッケージマネージャーは結晶学的署名を使用しているため、LiveCDを使用する必要はありません。最後に、カーネルと非表示のプロセスを確認すると、ソートされます。そして、ソフトウェアを展開する前に、「カスペルスキー」でスキャンしてください。
時間をかけて計画を立て、少しずつゆっくりとすべてを成し遂げるのは難しくありません。