디지털 포렌식 조사에서 조사하고자 하는 대상(디지털기기)이 활성 상태인 경우, 초기에는 바로 전원을 종료한 후 비활성 데이터를 수집했다. 하지만 이 경우 램(RAM)과 같은 휘발성 메모리에 저장된 데이터는 사라지기 때문에 조사하기 어렵다. 휘발성 메모리에서 유지하는 데이터는 비교적 사용자가 사용하던 최근의 데이터이다. 따라서, 사건이 발생한 시점에 휘발성 메모리의 정보를 얻는다면 조사에 많은 도움이 될 수 있다.

사건이 발생하고 시간이 지났더래도 휘발성 메모리에서 유지하는 정보들은 매우 큰 도움이 될 수 있다. 실제로 몇 개월간 켜 놓은 컴퓨터의 램을 조사한 경우, 일주일, 심지어는 몇 달전에 사용한 데이터도 남아 있었다는 실험 결과가 있다. 따라서 최근에는 활성 데이터만을 대상으로 증거와 관련될 수 있는 데이터를 수집하는 라이브 포렌식(Live Forensics)이 활성화 되어 있다.

윈도우즈 환경에서 활성 데이터를 수집하는 도구는 COFEE를 비롯하여 많은 도구들이 있지만 Unix-like 시스템에서의 도구들은 많지 않은 편이다. 따라서, 대표적인 Unix-like 시스템에서 직관적으로 살펴볼 수 있는 활성 데이터 수집 명령을 살펴보도록 하자.

Features Ubuntu Fedora Free BSD
Storage/Partitiojn/File System fdisk -l
cat /proc/scsi/scsi
cat /proc/ide
cat /proc/diskstats
cat /proc/partitions
df -h
cat /proc/scsi/scsi
cat /proc/ide
cat /proc/partition
cat /etc/fstab
df -h
cat /etc/fstab
df -h
fdisk -v ad0
Memory Status cat /proc/meminfo
cat /proc/ /maps
cat /proc/iomem
cat /proc/slabinfo
cat /proc/vmallocinfo
cat /proc/vmstat
vmstat
vmstat vmstat
System Uptime uptime
cat /proc/uptime
uptime uptime
Date date date date
Machine model, OS Level, CPU … uname -a
uname -r
cat /proc/version
cat /proc/cpuinfo
uname -a
uname -r
cat /proc/version
cat /proc/cpuinfo
uname -a
uname -r
sysctl hw.model
Modules, Patch, Hardware … cat /proc/modules
lsmod
lsmod kldstat
Installed Software dpkg –get-selections
cat /var/log/dpkg.log
rpm -qa pkg_info -a
Process Status ps -elf ps -ef ps aux
Scheduling, Start programs cat /etc/crontab
ls /etc/init.d/*
cat /etc/rc.d/ cat /etc/crontab
cat /etc/rc.d/
cat /etc/rc.local/
Internet Protocol ifconfig -a
cat /etc/hosts
ifconfig -a
cat /etc/hosts
ifconfig -a
cat /etc/hosts
Routing Table netstat -rn netstat -rn
ARP arp -a arp-a arp -a
Network Status
Open File & Sockets
netstat -anp
lsof -i -P -n
netsat -anp netstat -anp
fstat
Recent Command cat bash_history history history
cat ~/.history
Account cat /etc/ passwd
cat /etc/ shadow
cat /etc/ group
cat /etc/ passwd
cat /etc/ shadow
cat /etc/ group
cat /etc/ passwd
cat /etc/ master.passwd
cat /etc/ group
User Activity w
finger -lmsp
last
w
last
w
finger -lmsp
last
Booting Message dmesg dmesg
Printer Queues /var/spool/lpd/lp/* /var/spool/lpd/lp/* /var/spool/print
Run Level runlevel runlevel
Kernel /boot/vmlinuz /kernel
Physical Memory /dev/mem
/proc/kcore
/dev/mem /dev/mem
/dev/kmem
Swap Partition cat /proc/swaps (/dev/sda2) swapinfo
(/dev/ad0s1b)

 
 

Features IBM AIX HP-UX OpenSolaris
Storage/Partitiojn/File System lsdev
lscfg
lsfs
cat /etc/filesystems
df -k
bootinfo -s hdisk#
ioscan -fC
diskinfo/dev/rdsk/c#t#d#
vgdisplay -v
cat /etc/fstab
bdf -i
df -a
mount -p
cat /etc/device.tab
cat /etc/vfstab
prtvtoc
format -d c#t#d#
Memory Status vmstat vmstat vmstat
System Uptime uptime uptime uptime
Date date date date
Machine model, OS Level, CPU … uname -a
bootinfo -m
lsdev -Cc processor
uname -a
uname -r
model
ioscan -fnC
uname -imp
uname -r
psrinfo -pv
Modules, Patch, Hardware … genkex
oslevel -r
kmadmin -s
cat /stand/system
ioscan -fn
cat /stand/system
modinfo -c
prtconf -D
Installed Software lslpp -L all swlist pkginfo
Process Status ps -ef ps -ef ps -elf
pstree -a
pldd [PID]
Scheduling, Start programs crontab -l
cat /etc/rc
cat /var/spool/cron
/crontabs/$USER
cat /etc/init.d/*
crontab -l
cat /etc/init.d/*
Internet Protocol ifconfig -a
cat /etc/hosts
ifconfig lan0
netstat -in
lanscan
cat /etc/hosts
ifconfig -a
cat /etc/hosts
Routing Table netstat -rn netstat -rn netstat -rn
ARP arp -an arp -an arp -an
Network Status
Open File & Sockets
netstat -nat netstat -an netstat -an
pfiles
Recent Command cat~/.sh history cat~/.bash_history
Account cat /etc/ passwd
cat /etc/security/ passwd
cat /etc/ passwd
cat /tcb/files
cat /auth/r/root
cat /etc/ group
logins
cat /etc/ passwd
cat /etc/ shadow
cat /etc/ group
logins
User Activity w
who
last
w
finger -lmsp
who -r
last
w
finger -lmsp
who -r
last
Booting Message dmesg dmesg
Printer Queues /etc/qconfig /etc/lp
/interface/*
/etc/lp
/interfaces/*
Run Level who -r who -r who -r
Kernel /usr/lib/boot/unix_up /stand/vmunix /kernel/genunix
Physical Memory /dev/mem /dev/mem
Gcode [PID]
Swap Partition lsps -a
(/dev/hd6)
swapinfo -t
(/dev/vg00/lvol2)
swap -l
(/dev/vx)
(/dsk/swapvol)

실제 HP-UX, AIX, IBM 서버를 대상으로 명령어는 모두 테스트 해보았다. 다만, 각 버전별로 조금 차이가 있을 수 있다. 그리고 조사한 명령 이외에도 포렌식 관점에서 중요하게 살펴봐야할 명령어도 있을 것이다. 자신의 목적에 맞게 필요한 부분만 취하거나 혹 추가하여 스크립트를 만들어두면 활성 시스템에서 데이터를 수집하는 것이 효과적일 것이다.

위 조사를 위해 도움을 준 @behappysoo, junghmi, @n0fate 님께 감사의 마음을 전합니다.

Tagged with:
 
  • http://feedbeef.blogspot.com n0fate

    한 것도 없는데 이름도 올려주시다니! :D

  • enseo

    항상 좋은 자료….^^ㅎㅎ 열정적인 모습… 너무 보기 좋습니다….

    • http://forensic-proof.com Proneer

      감사합니다. ㅋ

  • XnetBLue

    그나저나 형 대단하세요. 전 블로그 포스팅하고 싶은데 도저히 시간+지식적 측면에서 엄두가 안나서..
    사람들 좀 모아서 팀블로그 운영은 어떨까요 ㅎㅎ 그럼 부담이 좀 적을거 같은데 ㅋㅋ 정보공유에도 좋은 것 같구요.

    • http://forensic-proof.com Proneer

      사실 이것도 팀 블로그인데… 글쓰는 사람이 나 밖에 없어…ㅎㅎ
      이전에 우리 팀블로그도 현재 놀고 있자나..ㅋㅋ
      조만간 사이트를 새로 만들려고 하거든.. 이전에 이야기 했던 국내 포렌식 포탈을 목적으로..^^
      나중에 시간나면 도와줘~~~

  • XnetBLue

    난 불멸의 자취생이 누군지 알고 있다..
    가 중요한게 아니라..

    http://bhami.com/rosetta.html#hardware

    *nix계열 OS의 명령어들을 모아놓은 사이트입니다.
    최상단 리스트에서 OS를 선택하시면 원하시는 OS의 명령어들을 정리해서 보실 수 있습니다. ㅎㅎ

    • http://forensic-proof.com Proneer

      헉.. 여기 모아둔게 있네…ㅎㅎ
      난 예전 발표자료 부탁해서 받고 애매한건 다시 테스트 해보느라..ㅠㅠ

  • http://kklyoon.tistory.com 불멸의자취생

    아이디들의 주인공이 누군지 다 알것 같네요 ㅎㅎㅎ

    • http://forensic-proof.com Proneer

      아이디들 ㅡㅡ;; ㅋ