web-dev-qa-db-ja.com

Linuxシステムからメモリイメージをダンプする方法

私はWindowsでメモリイメージをダンプすることを知っています。 (eg-dumpit)しかし、Linuxでメモリイメージをダンプする方法がわかりません。

LinuxおよびLinuxからLinuxにssh接続などでメモリイメージを取得したい。

Linuxに入るにはどうすればよいですか?

19
bakie

フォレンジックのWikiから: Tools:Memory Imaging

抜粋

Linux

/ dev/mem

古いLinuxシステムでは、プログラムddを使用して、デバイスファイル/ dev/memから 物理メモリ の内容を読み取ることができます。ただし、最近のLinuxシステムでは、/ dev/memは、システムの完全な物理メモリではなく、限られた範囲のアドレスへのアクセスのみを提供します。他のシステムでは、まったく利用できない場合があります。 Linuxカーネルの2.6シリーズ全体を通して、傾向は、疑似デバイスファイルを介したメモリへの直接アクセスを減らすことでした。たとえば、このパッチに付随するメッセージ http://lwn.net/Articles/267427/ を参照してください。

/ dev/crash

Red Hatシステム(およびFedoraやCentOSなどの関連するディストリビューションを実行しているシステム)では、クラッシュドライバをロードして、未加工の物理メモリアクセス用の疑似デバイス/ dev/crashを作成できます(「modprobe crash」コマンドを使用)。このモジュールは、わずかな労力で他のLinuxディストリビューション用にコンパイルすることもできます(たとえば、 http://gleeda.blogspot.com/2009/08/devcrash-driver.html を参照)。クラッシュドライバーが変更され、コンパイルされ、他のシステムに読み込まれると、結果として得られるメモリアクセスデバイス全体をイメージ化するのは安全ではありません。 RAMでバックアップされていないアドレスを回避するように注意する必要があります。 Linuxでは、/ proc/iomemは正しいアドレス範囲を「システムRAM」とマークされたイメージに公開します。

Second Look:Linux Memory Forensics

この市販のメモリフォレンジック製品には、クラッシュドライバの修正バージョンと、特定のLinuxシステムで元のドライバまたは修正されたドライバを使用してメモリを安全にダンプするためのスクリプトが付属しています。

fmem fmem-github repo

fmemは、デバイス/ dev/fmemを作成するカーネルモジュールです。/dev/memに似ていますが、制限はありません。このデバイス(物理RAM)は、ddまたはその他のツールを使用してコピーできます。 2.6 Linuxカーネルで動作します。 GNU GPL。

ライム-Linuxメモリエクストラクタ

Linux Memory Extractor(Lime)はLoadable Kernel Module(LKM)であり、これにより、Androidを搭載したデバイスなどのLinuxおよびLinuxベースのデバイスから揮発性メモリを取得できます。このツールは、デバイスのファイルシステムまたはネットワークを介したメモリのダンプをサポートしています。

このfmemの例が使用されていることがわかりました。これは、分析目的でメモリをダンプする最も簡単な方法のようです。/dev/mem 2.6.xカーネルの後、私が理解しているとおり。

fmemの例

$ ./run.sh
...
----Memory areas: -----
reg00: base=0x000000000 (    0MB), size= 1024MB, count=1: write-back
reg01: base=0x0c8800000 ( 3208MB), size=    2MB, count=1: write-combining
-----------------------
!!! Don't forget add "count=" to dd !!!


$ ls /dev/f*
/dev/fb0  /dev/fd0  /dev/fmem  /dev/full  /dev/Fuse


$ Sudo dd if=/dev/fmem of=/tmp/fmem_dump.dd bs=1MB count=10
10+0 records in
10+0 records out
10000000 bytes (10 MB) copied, 0.0331212 s, 302 MB/s

*ソース:すべての物理メモリをファイルにダンプするにはどうすればよいですか?

ライムの例

揮発性メモリを分析するために、タイトルが Linux Memory Analysis というタイトルのこのページもあります。このビデオチュートリアルには、LimeとVolatilityを使用してメモリダンプを収集し、それを分析して、メモリダンプからユーザーのBash履歴を抽出する詳細な例があります。

ほかに何か?

次のタイトルのU&L Q&Aもあります。 システムメモリ全体をダンプするにはどうすればよいですか? 追加の例と情報があります。

27
slm

rekall

rekall フレームワークを確認してください。この目的のためのlinpmemアプリケーションがあります。 http://www.rekall-forensic.com/docs/Tools/index.html

SANS rekallメモリフォレンジックチートシート には、Linuxでもメモリをダンプする方法の例があります。

# ./linpmem_2.0.1 -o linux.aff4
0
Luke Quinane