Anti Forensics Seek and Destroy

Computer forensics adalah suatu metode untuk mengidentifikasi, mengekstrak dan menemukan informasi dari media digital seperti komputer dan “hard drives”.

Computer forensics dalam artian sempit, hanya diaplikasikan kepada proses evaluasi komputer, “data storage’ dan “processing devices”[1]. Computer forensic biasanya dimanfaatkan terkait dengan hukum dan persidangan.

Lalu, apa yang dimaksud dengan “Computer Anti Forensics” adalah suatu metode untuk membuat para “computer forensics investigator” kesulitan dalam melaksanakan tugasnya.

======= Forensic: Know your enemy:lol: —|

Sebelum memulai Pembahasan tentang Anti-forensic, ada baiknya terlebih dahulu saya mengajak kita semua untuk menjadi Ahli Computer Forensic. Ya, kita akan menjadi ahli komputer forensic, untuk dapat mengetahui cara kerjanya dan bagaimana meng-”counter”-nya untuk keperluan anti-forensic nantinya. Dalam hal ini, saya sengaja mengambil contoh untuk merecover sebuah file yang telah dihapus oleh attacker (kita? :lol: )

Sebagai contoh file yang dihapus adalah log files (syslog, httpd log,
firewall log) yang merupakan sumber vital bagi ahli computer forensic, adapun alasan kedua lebih kepada artikel ini, yaitu kemungkinan kita dapat/harus melakukan recovery saat mesin masih menyala/ proses belum di “kill”.

Catatan: Pada artikel kali ini saya menggunakan user root, baik dalam proses computer forensic atau Anti-forensic, jangan tanyakan saya bagaimana mendapatkan root atau kenapa harus menggunakan user root, karena jika pertanyaan itu terbersit pada benak anda, maka dengan berat hati saya meminta anda untuk tidak melanjutkan membaca artikel ini, karena akan melukai hati dan merusak otak anda!

Go away, kiddo.. ini Anti-forensics !

========= Recover file yang terhapus —|

Sekarang, kita akan coba menghapus file syslog lalu me-recover-nya kembali, sebelum itu, untuk memastikan file ini masih di akses/buka oleh system, maka ada baiknya kita lihat isinya, sekaligus sebagai metode verifikasi setelah proses recovery nanti.

——————– untuk keperluan recovery & verifikasi ——————–

root@hell:~# tail -f syslog
Feb 10 14:20:47 hell NetworkManager: [1235028047.728549] nm_hal_device\
Feb 10 14:20:47 hell NetworkManager: [1235028047.959516] nm_hal_device\
Feb 10 14:20:47 hell NetworkManager: [1235028047.982317] nm_hal_device\
Feb 10 14:21:23 hell sendmail[5406]: unable to qualify my own domain name (hell)
Feb 10 14:21:24 hell dhclient: bound to 192.168.16.14 — renewal in 984139
Feb 10 14:21:24 hell sendmail[6860]: My unqualified host name (hell) unknown;
Feb 10 14:21:27 hell ntpdate[6782]: step time server 91.189.94.4 offset -207.\
Feb 10 14:22:24 hell sendmail[6860]: unable to qualify my own domain name (hell)
Feb 10 14:25:46 hell anacron[6522]: Job `cron.daily’ started
Feb 10 14:25:46 hell anacron[7003]: Updated timestamp for job `cron.daily’ to\

**** Isi dari syslog saya mutilasi dengan “\”, dan setelahnya dihapus, untuk mengurangi “junk” dan mengikuti ketentuan length < 80. :lol: **** Sebelum memulai proses penghapusan, ada baiknya kita mencatat nomer inode dari file syslog, untuk mempermudah kita dalam melakukan sorting menggunakan “lsof” nantinya root@hell:~# stat /var/log/syslog File: `/var/log/syslog’ Size: 91967 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 99810 Links: 1 Access: (0640/-rw-r—–) Uid: ( 102/ syslog) Gid: ( 4/ adm) Access: 2009-02-10 25:51:19.000000000 +0700 Modify: 2009-02-10 25:51:01.000000000 +0700 Change: 2009-02-10 25:51:01.000000000 +0700 root@hell:~# /var/log/syslog memiliki inode “99810″, ——————– untuk keperluan recovery & verifikasi ——————- Kita akan menggunakan perintah remove “rm” dengan opsi “rf” terhadap file syslog root@hell:~# rm -rf /var/log/syslog Silahkan di cek, root@hell:~# ls -la /var/log/syslog. ls: cannot access /var/log/syslog.: No such file or directory root@hell:~# ls -la /var/log/syslog ls: cannot access /var/log/syslog: No such file or directory root@hell:~# stat syslog stat: cannot stat `syslog’: No such file or directory Sampai disini proses penghapusan sukses dilaksanakan. ========= Lsof; proses recovery file —| Sekarang, Kita akan mencoba untuk mengembalikan file log yang telah kita hapus, dalam hal ini kita akan menggunakan lsof untuk mendapatkan info file dan merecovernya, mengikuti “kultur” sistem operasi dan filesystem yang digunakan. Lsof adalah suatu utilitas yang berfungsi untuk menampilkan semua informasi secara komprehensif dari suatu file/direktori, file spesial, network file (internet socket, NFS, unix domain socket), dsb. Informasi yang kita perlukan adalah PID (process id), serta file descriptor. Seluruh proses akan memiliki suatu direktori khusus dalam direktori “/proc” dengan nomer PID sebagai namanya, dan sebelum proses induk tersebut di “kill”, maka meskipun data telah dihapus dengan “rm”, kopian dari data tersebut akan berada di sini. (got the point?) Adapun pemetaan path lengkapnya akan seperti berikut, /proc/process id/fd/file descriptor =========== Forensic recovery di mulai —| Sekarang, kita perlu untuk mendapatkan informasi file syslog, dengan menggunakan lsof dan melakukan “sorting” memanfaatkan nomer inode-nya, root@hell:~# lsof | grep 99785 syslogd 5484 syslog 2w REG 8,1 91967 99785 /var/log/syslog (deleted) Sehingga, didapatkan PID=5484 dan file descriptor=2 (dari 2w), dan apabila kita sesuaikan dengan pemetaan path untuk pseudo-filesystem adalah, root@hell:~# ls -l /proc/5484/fd/2 l-wx—— 1 root root 64 [X] 14:27 /proc/5484/fd/2 ->/var/log/syslog (deleted)
root@hell:~#

**** X= berisi tanggal, 2009-02-10 ****

Maka akan tampil satu blok berwarna merah, yang menandakan link
/proc/5484/fd/2 sudah dihapus.

root@hell:~# file /proc/5484/fd/2
/proc/5484/fd/2: broken symbolic link to `/var/log/syslog (deleted)’

Karena sesungguhnya “rm” hanya menghapus link ke inode, dan atribut, informasi dan blok data dari file tersebut tidak tersentuh, maka cara termudah untuk me-recovery-nya adalah dengan mengkopikan file tersebut kembali. Sebagai contoh digunakan nama “syslog” kembali,

root@hell:~# cp /proc/5484/fd/2 syslog

lalu, periksalah hasilnya untuk melihat isinya,

root@hell:~# tail -f syslog
Feb 10 14:20:47 hell NetworkManager: [1235028047.728549] nm_hal_device\
Feb 10 14:20:47 hell NetworkManager: [1235028047.959516] nm_hal_device\
Feb 10 14:20:47 hell NetworkManager: [1235028047.982317] nm_hal_device\
Feb 10 14:21:23 hell sendmail[5406]: unable to qualify my own domain name (hell)
Feb 10 14:21:24 hell dhclient: bound to 192.168.16.14 — renewal in 984139
Feb 10 14:21:24 hell sendmail[6860]: My unqualified host name (hell) unknown;
Feb 10 14:21:27 hell ntpdate[6782]: step time server 91.189.94.4 offset -207.\
Feb 10 14:22:24 hell sendmail[6860]: unable to qualify my own domain name (hell)
Feb 10 14:25:46 hell anacron[6522]: Job `cron.daily’ started
Feb 10 14:25:46 hell anacron[7003]: Updated timestamp for job `cron.daily’ to\

dan kita yang seolah ahli komputer forensik akan dapat kembali membaca file log yang (dianggap) terhapus oleh attacker. **we are doomed**

======= Anti forensic —|

Setelah diatas kita membuktikan bahwa penggunaan ‘rm’ hanyalah menghapus link ke inode atau lebih dikenal dengan index node, yang menyimpan atribut dari suatu file, dan inode di identifikasi dengan nomer yang unik untuk tiap inode. Atribut dari suatu file itu adalah semisal: tipe file, “permission”, info pemilik dan grup, ukuran file, jumlah link (soft/hard), alamatnya di blok data, dsb.

Saya tidak berusaha mengulas dan bercerita lebih jauh tentang file di unix/linux, jadi kita akan “skip” hal ini. (sorry , no candy for you all kiddo)

Penggunaan “rm” dalam melakukan penghapusan file dari mesin target tidaklah efissien, karena para ahli komputer forensik dapat dengan mudah untuk kembali me-recover data-data, baik log, dsb, hal tersebut sudah saya buktikan diatas.

Penggunaan “lsof” hanyalah salah satu cara, banyak sekali aplikasi/utility/tools yang dapat digunakan untuk me-recover file, bahkan keseluruhan data di media, baik saat komputer menyala atau setelah restart,”single mode” atau “network mode”.

========= Secure Data Deletion —|

Secure Data Deletion adalah salah satu teknik tertua/tradisional dari anti-forensics, suatu metode yang sangat mudah, efisien dan “simple” untuk dilakukan, dibanding dengan berbagai teknik lain seperti enkripsi, “steganography”, modifikasi data, penyembunyian data, dsb. Meskipun resiko untuk diketahui akan relatif lebih mudah, tetapi untuk kegiatan computer rforensic, apabila data yang dibutuhkan tidak didapatkan maka akan mempersulit/memperlambat kegiatannya.

Beberapa aplikasi yang bisa anda manfaatkan adalah: srm, wipe, shred, dsb, tetapi dalam demo ini saya mengunakan shred di sistem operasi GNU/Linux dengan filesystem ext3.

Sejak 2008 Shred masuk kedalam paket penting dari GNU (GNU coreutils) dan akan membuat secara default terinstall, sehingga anda tidak perlu melakukan instalasi aplikasi Secure Data Deletion lainnya.

=========== Shred —|

Apa yang dilakukan Shred adalah dengan menulis ulang file/s secara berulang kali dengan tujuan mempersulit kemungkinan untuk merecover data yang sudah dihapus.

Shred, bagaikan pisau bermata dua. Tetapi shred juga memiliki berbagai
keterbatasan pada jenis file system tertentu, terkompresi dan yag memiliki dukungan snapshot, dan untuk detilnya silahkan baca manual shred.

Untuk lebih jelasnya kita akan menggunakan shred dan mencoba me-recovery data tersebut kembali seperti yang sudah kita lakukan di atas.

=========== Shred Beraksi —|

Sekarang, kita akan kembali menghapus file syslog, sebelum itu, untuk memastikan file ini masih di akses/buka oleh system, maka ada baiknya kita lihat, sekaligus sebagai metode verifikasi setelah proses recovery (seperti diatas).

root@hell:~# tail -f /var/log/syslog
Feb 10 15:01:01 hell sm-msp-queue[8122]: n1J7f194007446: to=postmaster, delay=\
Feb 10 15:17:01 hell /USR/SBIN/CRON[8262]: (root) CMD ( cd / && run-parts –\
Feb 10 15:20:01 hell sm-msp-queue[8304]: My unqualified host name (hell) \
Feb 10 15:21:01 hell sm-msp-queue[8304]: unable to qualify my own domain name \
Feb 10 15:21:01 hell sm-msp-queue[8304]: n1J7f194007446: to=postmaster, delay=\
Feb 10 15:40:01 hell /USR/SBIN/CRON[8468]: (smmsp) CMD (test -x /etc/init.d/\
Feb 10 15:40:01 hell sm-msp-queue[8483]: My unqualified host name (hell) \
Feb 10 15:41:01 hell sm-msp-queue[8483]: unable to qualify my own domain name \
Feb 10 15:41:01 hell sm-msp-queue[8483]: n1J7f194007446: to=postmaster, delay=\

Catat inode dari file syslog, akan bermanfaat saat proses melakukan recovery.
“Inode /var/log/syslog” adalah “99810″

root@hell:~# stat /var/log/syslog
File: `/var/log/syslog’
Size: 2400 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 99810 Links: 1
Access: (0640/-rw-r—–) Uid: ( 102/ syslog) Gid: ( 4/ adm)
Access: 2009-02-10 15:41:19.000000000 +0700
Modify: 2009-02-10 15:41:01.000000000 +0700
Change: 2009-02-10 15:41:01.000000000 +0700
root@hell:~#

Selanjutnya kita akan menghapus file tersebut dengan menggunakan shred, untuk mengerti penggunaan opsi yang diberikan, silahkan cek manual dari shred

root@hell:~# shred –random-source=/dev/urandom -u /var/log/syslog

Shred terbukti telah berhasil menghapus file /var/log/syslog,

root@hell:~# ls -la /var/log/syslog
ls: cannot access /var/log/syslog: No such file or directory
root@hell:~# stat syslog
stat: cannot stat `syslog’: No such file or directory

Selanjutnya adalah me-”list” file/s yang masih terbuka, dan seperti sebelumnya, karena syslog akan secara kontinyu di tulisi oleh sistem, maka otomatis file tersebut akan dianggap masih ada,

root@hell:~# lsof | grep 99810
syslogd 5484 syslog 3w REG 8,1 0 99810 /var/log/0 (deleted)

Lihat dan samakan inode number dari file syslog, dan kita temukan bahwa saat ini yang tercatat adalah file “0″, berbeda dengan saat kita menghapus menggunakan “rm”.

Selanjutnya, seperti saat kita me-”recovery” file syslog sebelumnya adalah dengan hanya mengkopikannya kembali dari direktori tempat pseudo-filesystem.

root@hell:~# cp /proc/5484/fd/3 syslog
root@hell:~# tail -f syslog

root@hell:~# file syslog
syslog: empty

Dan kemudian setelah kita periksa ternyata file tersebut tidak mengandung data apapun a.k.a empty.

Yup, “we are done now homey”, Bisa tidur nyenyak, karena proses recovery menjadi hal yang relatif sulit bagi para ahli-forensik.

======= Referensi —|

[1] http://www.forensicswiki.org/
[2] lsof manual
[3] shred manual

(Sumber www.untukku.com/.../anti-forensic-seek-and-destroy-untukku.html )
  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • Twitter
  • RSS
Read Comments

0 Response to "Anti Forensics Seek and Destroy"

Posting Komentar