脆弱なLinuxマシンでルートキットをチェックして削除した後、ps
、netstat
としていくつかの便利なコマンドを使用して、プロセス、ポート、受信または送信接続に関する情報を取得する必要があります。 、top
、lsof
...
Linuxユーティリティコマンドによって表示される情報を信頼できますか?
システムが危険にさらされているため、ツールを介して信頼できるものはありません。検証済みのツールがない場合(例 Tripwire FIM )は、同様のシステムを採用し、必要なものをコピーして、システムのアーキテクチャが類似している場合に実行することをお勧めします。これはただし、最適な方法ではありません。マシンが危険にさらされているため、次の手順(法的機関、当局など)に応じて、フォレンジックイメージを作成し、コピーがあるときに発生した問題に対処します。コピーを入手したら、システムをオンラインに戻すことに関連するリスクなどを判断する必要があります。
攻撃者がどのようにしてシステムに侵入したかを判断した場合、その「穴」(脆弱性、設定ミス)をクリーンアップして、攻撃者が戻らないようにする必要があります。クリーンなシステムをインストールするよりも、時間がかかる場合があります。しかし、「その」システムが必要だとしましょう。次のようなものでpsを再インストールできます:apt-get install --reinstall procps
lsofにも同じことが言えます。リポジトリが変更されていないこと、およびDNSが信頼されていないリポジトリをポイントしていないことを確認する必要があります。
Linuxユーティリティコマンドによって表示される情報を信頼できますか答えは絶対にすべきではありません。完全な分析が実行されるまで、そのシステムではほとんど信頼すべきではありません。
システムが危険にさらされている場合、何かを信頼すべきではありません。
通常、標準のユーティリティはほとんど正しく機能すると思いますが、攻撃者のプロセスに関連するものは除外します。ルートキットはこのように設計されているため、マシンが危険にさらされていることに気付く可能性が低くなります。つまり、自分のプロセスを確認するためにそれらを一般に信頼できると思いますが、ルートキットがなくなったことを確認するためではありません。
攻撃者がカーネルモジュールをロードしたり、カーネルを変更したりできる場合、システムコールや_/proc
_ APIも嘘をつく可能性があります。したがって、ps
や_grep foo /proc/*/cmdline
_などのユーザー空間ユーティリティのクリーンコピーでも、悪意のあるプロセスが実行されているかどうかはわかりません。その塩の価値があるルートキットは、それ自体のプロセスを隠します。
システム全体のすべてのファイルは放射性廃棄物のようなものであり、注意しないと他のものを汚染する可能性があります。例えばOSを再インストールしても_/home/*/.bashrc
_をチェックしない場合、攻撃者が_/home
_に何かを追加してシステムを再感染させた可能性があります。
同様に、Webサーバーの設定やCGIスクリプトなどに悪質な要素が含まれている可能性があります。バックアップと比較してください。攻撃者がそれに触れた可能性がある場合、何も安全ではないと想定しないでください。
既知のクリーンなマシンで、信頼できないデータのすべてのチェックを確実に実行します。侵害されたシステムから何も実行しない限り、問題はありません。 (つまり、cmp
とdiff
には脆弱性がないと想定しています。しかし、 strings
はそうではないことに注意してくださいlibbfd
のバージョンに応じて、信頼できないファイルに対して安全です。_strings -a
_を使用します。
おそらく、そうとは限りません。攻撃者がrootアクセス権を持っている場合、プログラムを常に修正されたバージョンに置き換えることができます。
驚くべきことに、宇宙のすべての法則に反して、自動車ベースのアナロジーはここでは役に立たない。
ただし、 Invasion of the Body Snatchers のアナロジーは機能します。
システムのコマンド(またはコマンドが依存するライブラリ)は、オリジナルとほとんど同じように見え、動作するコピーに置き換えることができます(既存の妥協を隠す、または支援するという秘密の目的もある)将来の妥協の試み。
つまり、答えは「いいえ、侵害されたシステム上のプログラムを信頼することはできません」です。