メモリへの生のアクセスは、データフォレンジックの実行中またはデバイスのハッキング中に役立ちます。 場合によっては、ロックされたブートローダーで何が起こっているかを分析できるようにメモリのスナップショットが必要になることがあります。 バグを追跡するため、または単に Angry の適切なメモリ位置を把握するためのメモリ位置のスナップショット 鳥の得点。 ここでは、Linux Memory Extractor (別名: Linux Memory Extractor) が使用されます。 LiME フォレンジック、 入って来る。 LiME は、デバイス メモリの全範囲にアクセスできるようにするロード可能なカーネル モジュールです。 カーネル モジュールがメモリにロードされるとすぐに、基本的にスナップショットが作成されるため、非常に効率的なデバッグが可能になります。
LiME Forensics の著者である Joe Sylve に、viewmem のような従来のツールと比較した LiME の利点について説明してもらいました。
あなたの質問に答えるために、ツールは目的に応じてさまざまな用途に合わせて設計されました。 LiME は、フォレンジック分析やセキュリティ調査のために RAM の物理メモリ レイアウトの完全なダンプを取得するように設計されています。 すべてカーネル空間で実行され、イメージをローカル ファイル システムまたは TCP 経由でダンプできます。 システムとの相互作用を最小限に抑えながら、物理メモリのコピーに可能な限り近いものを提供するように設計されています。
viewmem は、/dev/mem や /dev/kmem などのメモリ デバイスから仮想メモリ アドレスの範囲を読み取り、その内容を stdout に出力するユーザーランド プログラムであるようです。 これらのデバイスで単純に dd を使用する以上のことを行うかどうかはわかりません。
これは、いくつかの理由により、法医学ではあまり受け入れられません。 まず、/dev/mem と /dev/kmem は段階的に廃止されており、これらのデバイスが付属して出荷されないデバイスが増えています。 次に、/dev/mem と /dev/kmem は、RAM の最初の 896MB からの読み取りに制限します。 また、このツールは、メモリのブロックごとにユーザーランドとカーネルランドの間で複数のコンテキスト切り替えを引き起こし、そのバッファで RAM を上書きします。
それぞれのツールにはそれぞれの用途があると思います。 RAM の最初の 896MB 内のアドレスの内容を知りたいだけで、デバイスに /dev/mem と /dev/kmem で、法医学的に健全なイメージをキャプチャする必要がない場合、viewmem (または dd) は次のようになります。 役に立つ。 ただし、LiME はその使用例に特化して設計されたわけではありません。
メモリハッカーの皆さんにとって最も重要なことは、viewmem が /dev/mem そして /dev/kmem デバイス。 以来、 /dev/mem そして /dev/kmem デバイスはデバイスのメモリへの直接アクセスを許可しますが、これは脆弱性です。 これらの Linux デバイスは、最近複数のエクスプロイトのターゲットになっているため、段階的に廃止されています。 LiME は viewmem ユーティリティを置き換えるだけでなく、より優れた機能を備えています。
メーカーは次の点に注意してください: 開発者が望む機能をロックダウンすることで、より良いツールの開発が促進されます。
ソース: LiME フォレンジック & 著者ジョー・シルブ氏へのインタビュー
[画像クレジット: LiME プレゼンテーション ジョー・シルブ著]