Linuxゲストをxenで実行していて、xenがゲストカーネルの整合性をチェックして、アクティブなルートキットなどがないことを確認したいとします。
Xenまたは他のハイパーバイザーでこれを達成する方法はありますか?
それは便利に存在しますか?私は知りません。ただし、VMが割り当てるメモリ空間内では、カーネルは予測可能な場所にあります。メモリを読み取り、構造を予想されるものと比較するコードを記述できます。
私がそのような生き物を実装していた場合、私はシステムAPIを追跡し、それらが適切であることを確認することに焦点を当てます。ありそうな課題の1つは、カーネルのバージョンが異なると、領域によっても変更が生じることです。カーネルごとにマッピングを行う必要がある場合があります。
ファイルシステムをエクスポートすることで、VMの外部でchrootkitを実行できる可能性があります。私はそのようなことを試したことはありませんが、すばらしい研究プロジェクトになると思います。
編集:または、ディスクイメージを直接読み取り、vMの外部から既知の適切なハッシュ比較を使用します。その後、VMは引き続き実行されますが、 "LiveCD"の信頼性のメリットがあります。そこで、ほとんどの難解なものからすぐに利用できるように注文された答えがあります。
xm dump-core-> xenメモリダンプ
http://www.segmentationfault.fr/projets/volatilitux-physical-memory-analysis-linux-systems/
アクティブなプロセスと開いているファイルを検索しています。
foremostファイル検索用
この質問が出されて以来、数人が釈放されました。それらのうち、1つだけが一般的に使用されています。つまり、Samsung Knoxの [〜#〜] rkp [〜#〜] です。これは、実行中のカーネルの整合性を検証するハイパーバイザーベースのソリューションです。カーネル構造の変更を検出し、資格情報を監視することで動作します。
SecVisor や Capsule などの実験的なデザインもあります。
Linuxカーネルは [〜#〜] roe [〜#〜] を実装中ですKVM for x86システム:
ROEは、ホストオペレーティングシステムがゲストの自身のメモリへのアクセスを制限できるようにするハイパーコールです。これにより、ルートキットがカーネルの静的データ構造とコードを操作するのを防ぐために使用できる強化メカニズムが提供されます。メモリ領域が保護されると、ゲストカーネルは保護の取り消しを要求することさえできません。
BlockWatch メモリのスナップショットを検査して、ゲストOSを監視します。
通常は一般的な形式(MINIDUMP)に変換できるため、スナップショットを使用します。これは、Hyper-VおよびVMWareの場合です。
BlockWatchには、pythonスナップショット/エクスポート/メモリスキャン/クリーンアップを自動化するスクリプトもあります。メモリの検証は、暗号化された安全なハッシュ(Tiger192)で行われます。現在、Windows 32および64ビットOSが検証されます。