Concise, technical, and practical - tanpa tools, tanpa antivirus bloatware. Sebuah artikel tanpa gambar.

  Jon Mukidi   Security   5 min read

Deteksi Anomali & Pencegahan Exploitasi di Android Custom

Concise, technical, and practical - tanpa tools, tanpa antivirus bloatware. Sebuah artikel tanpa gambar.

Dengarkan artikel

Tentang fitur ini

Artikel ini hanyalah sebuah catatan random tentang pendeteksian anomali behavior dari sebuah ponsel berbasis Android, wa bil khusus AOSP based. Tentu jika anda tidak paham dari cara menjaga ponsel anda aman dengan cara mainstream, anda tidak perlu memakai cara ini. Sebab catatan ini memang bukan diperuntukkan untuk anda kecuali Anda cukup Tech-savvy.

Beberapa implementasinya membutuhkan kewaspadaan dan kemawasan akan resiko perilaku tertentu dari ponsel yang anda pakai. Minimial, anda tahu jika ada yang tidak beres dengan tingkah polah ponsel bahkan yang paling samar. Tanpa tool (mainstream) tambahan.

Cukup intermeso-nya. Langsung ke inti catatan saya, karena memang post ini hanya sevuah catatan yang random, dan muncul dalam benak begitu saja. Nih…

Tindakan Awal Deteksi Anomali

Meski saya bilang tanpa tool, tapi masih pakai bantuan tool juga. Haha. Tool-nya pakai Termux pemirsa.

Cek Proses Background

Terminal window
adb shell top -n 1 | grep -E 'bank|pin|otp'

Fungsinbaris perintah diatas untuk mencari proses yang “mencurigakan” dengan frasa seperti bank, pin, otp atau katabterkait yang dipakai mallware untuk menggali data dari isi SMS.

Monitor Network Traffic

Terminal window
adb shell tcpdump -i any -s 0 -v 'port 80 or port 443' | grep C2_domain

Nah, untuk baris perintah yang ini, berfungsi mengekstrak domain apa saja yang sudah diakses ponsel sebelumnya melalui port 80 (http) dan 443 (https). Kenidian cek, apakah ada yang patut dicurigai? Hmm.. anda tentuka sendiri.

Audit Izin Runtime

Terminal window
adb shell dumpsys package | grep -B 30 'READ_SMS\|BIND_ACCESSIBILITY'

Wueeet.. ini yang paling penting. Aksesibilitas! Banyak aplikasi-aplikasi berbahaya memanfaatkan ijin akses ini. Karena jika sudah mendapat ijin, aolikadi bisa melakukan tindakan untuk merubah pengaturan secara mandiri, mengakses aplikasi tertentu (misalnya: app e-banking atau wallet) yang tentu saja akan membuata anda … :)

Verifikasi Integritas Sistem

Terminal window
adb shell sha1sum /system/bin/* | diff - original_hashes.txt

Nah! Baris oerintah di atas bisa anda pakai jika anda merasa “ada yangbterlewat” atau memang anda adalah seorang “parno akut” yang punya saldo e-banking 1 miliar atau crypto BTC 1000 misalanya. Andabl perlu cek benar-benar kredibilitas sistem yang anda pakai.

Bahkan sistem operasi yang anda pakai pun anda curigai. WOW! Jujur, saya tidak separno itu, atau sekaya itu. Tetapi ini worth-it untuk dilakukan. Toh mudah ini kan ya? Cuma ketik-ketik di Termux.

Tindakan Preventif dari Exploitasi di Masa Depan

Nah, setelah memeriksa kredibilitas OS dan printilan (ekosistem) yang ada di dalam ponsel, Lanjutbke bagian pencegahan.

Implementasi Zero Trust Policy

Terminal window
iptables -P OUTPUT DROP
iptables -A OUTPUT -p tcp --dport 443 -d api.bank.com -j ACCEPT

Wekekek… Jangan lakukan jika anda bukan orang yang sering berususan dengan duit. Aplagi kalau anda masih wara-wiri didunia maya mencari sesuatu. Kareni baris perintah dalam contohbdibatas akan memutus semua koneksi internet kecuali alamat api.bank.com, itupun jika koneksi dilakuan via port 443 alias sexure. Alamat api.bank.com ini adalah alamat official dari bank yang anda pakai.

Kernel Hardening

Aktifkan fitur di kernel custom:

CONFIG_STRICT_KERNEL_RWX=y
CONFIG_RANDOMIZE_KSTACK_OFFSET=y
CONFIG_INIT_STACK_NONE=y

Woait… Ini bisa anda pakai jika anda sedang memakai kernel custom. Jika anda sudah tahu yang dilakuan oaris di atas, saya yakin anda sama pahamnya dengan saya dan tidak perlu lagi penjelasan. Dan jika anda tidak paham, tidak perlu saya jelaskan dan “tidak perlu” anda lakukan jika tidak percaya.

Isolasi Aplikasi Kritis

Terminal window
unshare --mount-proc --pid --fork chroot /data/sandbox /path/to/bank_app

Ini secara umum bisa dikatakan untuk memberi perintah ke ponsel “jangan lemes”, jangan nge-gunjing! Biarkan data dan segala macam intrik internal hanya bisa dipakai oleh dan untuk aplikasi itu. Jangan sampai aplikasi tetangga tahu.

Saya sendir hingga saat ini hanya memakai opsi 1 dan 2 saja. Seperti yang saya bilang sebelumnya: saya tidak se-parno dan se-kaya itu untuk merasa was-was dengan jumlah saldo di aplikasi perbankan saya. :D

Reconfiguring Izin Riskan (Tanpa Aplikasi External

Lanjut ke langkah selanjutnya: tanpa aplikasi eksternal. Maksudnya tidak perlu memakai Antivirus, Malware scanner atau apalah itu. Yang kebanyakan malah membuat ponsel kelabakan dengan aplikasi yang selalu running-behind, tetapi kinerjanya tidak terlalu memuaskan.

Lockdown via ADB:

Terminal window
adb shell settings put secure enabled_accessibility_services null
adb shell pm revoke com.spotify.android android.permission.READ_SMS

Force SELinux Policy:

Buat file .te khusus:

deny appdomain { fd }:
use_service;
  • Kopilasi: checkmodule -M -m -o policy.mod policy.te && semodule_package -o policy.pp -m policy.mod
  • Load: semodule -i policy.pp

ROM-Level Permission Manager:

Patch PackageManagerService.java:

if (permission.contains("SMS") && !isSystemApp(pkg)) {
throw new SecurityException("BLOCKED");
}

*) Di bagian enforcePermission()

Minim penjelasan pada bagian ini? Maaf. Mestinya jika anda sudah samapi sini, tidak perlu lagi penjelasan. ai rispek yu brader.

Penutup Sebelum Penutup: Paranoid Toolkit

STOP! Tidak perlu lanjut jika anda tidak mau buang-buang waktu. Ini cuma untuk catatan pribadi. Barangkali… yakan?

Buang semua tools konvensional.

Gunakan:

“Android Cryonics”

Dimulai dengan ala-ala Deepfreeze nih…

Deep Freeze State

Terminal window
dd if=/dev/zero of=/dev/block/sdaX bs=1M count=100 # Overwrite RAM aktif
fastboot flash cust_boot paranoid_kernel.img

Kernel khusus yang wipe memory tiap 5 menit

Quantum Auth Protocol

Implementasi QKD (Quantum Key Distribution) via LED infrared:

from android.hardware import ConsumerIrManager
ir_manager = getSystemService(CONSUMER_IR_SERVICE)
ir_manager.transmit(38000, [25500, 25500]) # Enkripsi one-time pad

Ialah komunikasi tanpa intercept via photon entanglement

:’( Who need this, by the way? Are you! Wekaweka.

Hardware Kill Switch

Modifikasi PCB:

  • Pasang physical toggle switch antara modem baseband dan CPU
  • Supercapacitor untuk wipe chip eMMC dalam 0.5 detik saat casing dibuka

“When you realize your phone’s attack surface includes quantum physics and hardware sabotage - you’ve reached ultimate paranoia mode.”

Filosofi Keamanan, Sebuah Penutup

“Security is not about tools, but behavioral asymmetry - make the cost of hacking you higher than the attacker’s profit margin.”

Oh! I love this quote.

Lakukan:

  1. Brick Your Phone Weekly - Reflash ROM acak setiap minggu
  2. Bank only via Raspberry Pi Zero - Perangkat dedicated tanpa OS
  3. Encrypt with One-Time Pads - Plaintext ⊕ Random = Uncrackable

Welcome to the 0.001% security tier.

Lihat artikel lainnya

Artikel terkait

Lihat semua »