Skip to content

Security: VersaNexusIX/CXS

Security

SECURITY.md

Keamanan CXS — Code eXecution Scrambler v4.0

CXS (Code eXecution Scrambler) dirancang untuk meningkatkan ketahanan perangkat lunak terhadap analisis balik (reverse engineering) dan perusakan (tampering) melalui serangkaian teknik obfuskasi yang canggih. Fokus utama dari aspek keamanan CXS adalah pada Layer 4: Anti-Analisis dari pipeline transformasinya, meskipun teknik dari layer lain juga berkontribusi pada peningkatan keamanan secara keseluruhan.


1. Tujuan Keamanan

Tujuan utama dari teknik keamanan di CXS adalah untuk:

  • Menghambat Analisis Statis: Membuat kode sulit dipahami oleh disassembler dan decompiler statis.
  • Menghambat Analisis Dinamis: Mempersulit debugging dan pelacakan eksekusi kode.
  • Mencegah Tampering: Mendeteksi modifikasi kode yang tidak sah.
  • Meningkatkan Ketahanan: Membuat upaya reverse engineering menjadi sangat memakan waktu dan sumber daya.

2. Teknik Anti-Analisis (Layer 4)

Layer 4 dari transformasi CXS secara spesifik menargetkan alat dan metode analisis yang umum digunakan oleh reverse engineer. Berikut adalah teknik-teknik utamanya:

T14: Polymorphic Decrypt Stub (Stub Dekripsi Polimorfik)

  • Deskripsi: Teknik ini menyuntikkan stub dekripsi yang bersifat self-modifying (mengubah dirinya sendiri) ke dalam kode. Stub ini bertanggung jawab untuk mendekripsi bagian-bagian kode lain saat runtime. Karena sifatnya yang polimorfik, stub ini akan terlihat berbeda setiap kali obfuskasi dijalankan, sehingga sulit untuk dideteksi dan dianalisis secara statis.
  • Mekanisme: Seringkali melibatkan operasi XOR atau aritmatika lainnya yang mengubah instruksi dekripsi itu sendiri sebelum dieksekusi.

T15: Anti-Analysis Markers (Penanda Anti-Analisis)

  • Deskripsi: CXS menyisipkan instruksi atau pola kode yang dirancang untuk memicu perilaku tertentu pada lingkungan analisis atau debugger, atau untuk membingungkan analis.
  • Contoh:
    • CPUID Traps: Menyisipkan instruksi CPUID yang dapat digunakan untuk mendeteksi keberadaan mesin virtual atau lingkungan debugging tertentu.
    • RDTSC Traps: Menggunakan instruksi RDTSC (Read Time-Stamp Counter) untuk mengukur waktu eksekusi. Perbedaan waktu yang signifikan dapat mengindikasikan adanya debugger atau lingkungan yang dimanipulasi.
    • Fake Exception References: Menyisipkan referensi ke handler pengecualian palsu atau struktur frame pengecualian yang tidak valid untuk membingungkan alat analisis.

T22: Exception Frame Noise (Noise Frame Pengecualian)

  • Deskripsi: Teknik ini menyisipkan informasi frame pengecualian palsu atau tidak relevan (misalnya, .cfi_startproc atau penanda SEH palsu) ke dalam kode. Ini bertujuan untuk membingungkan disassembler dan debugger yang mencoba merekonstruksi stack frame atau alur penanganan pengecualian.
  • Dampak: Dapat menyebabkan alat analisis salah menafsirkan struktur program dan mempersulit pelacakan balik.

T27: Checksum Guards (Penjaga Checksum)

  • Deskripsi: CXS menyisipkan stub pemeriksaan integritas kode menggunakan checksum rolling-XOR. Bagian-bagian kode akan dihitung checksum-nya saat runtime, dan jika ada modifikasi yang terdeteksi (misalnya, oleh penyerang), program dapat mengambil tindakan defensif (misalnya, keluar, crash, atau menjalankan kode umpan).
  • Manfaat: Memberikan lapisan perlindungan terhadap tampering dan patching kode.

T29: Entropy Injection (Injeksi Entropi)

  • Deskripsi: Teknik ini menyisipkan urutan instruksi yang menghasilkan atau menggunakan nilai acak (misalnya, RDRAND pada x86-64 atau urutan PRNG) ke dalam kode. Peningkatan entropi dalam kode dapat menyulitkan analisis statis yang mengandalkan pola atau tanda tangan yang dapat diprediksi.
  • Tujuan: Membuat kode terlihat lebih acak dan kurang terstruktur, menyulitkan identifikasi bagian-bagian fungsional.

T30: Multi-layer Key Schedule (Jadwal Kunci Multi-lapisan)

  • Deskripsi: Ini adalah teknik obfuskasi yang kompleks yang melibatkan ekspansi kunci multi-putaran menggunakan operasi XOR-ADD-ROL. Teknik ini dapat digunakan untuk mengamankan data penting atau bagian dari logika obfuskasi itu sendiri, membuatnya sangat sulit untuk dipecahkan tanpa kunci yang benar.
  • Aplikasi: Sering digunakan dalam konteks dekripsi polimorfik atau untuk mengamankan konstanta penting.

3. Kontribusi dari Layer Obfuskasi Lain

Meskipun Layer 4 secara khusus berfokus pada anti-analisis, teknik dari layer lain juga secara signifikan berkontribusi pada keamanan dan ketahanan kode:

  • Layer 1 (Instruction-level): Penggantian instruksi dan injeksi sampah membuat kode lebih bising dan sulit untuk di-disassemble secara akurat.
  • Layer 2 (Data / Operand): Obfuskasi data dan operand menyulitkan pelacakan nilai variabel dan aliran data penting.
  • Layer 3 (Control Flow): Teknik seperti Control Flow Flattening (T7) dan Indirect Control Flow (T9) secara drastis mengubah struktur alur eksekusi program, membuatnya sangat sulit untuk direkonstruksi dan dianalisis.

4. Batasan dan Pertimbangan

Penting untuk dicatat bahwa obfuskasi bukanlah solusi keamanan yang sempurna. Ini adalah teknik untuk meningkatkan cost dan effort yang dibutuhkan oleh penyerang. Tidak ada obfuskasi yang sepenuhnya tidak dapat dipecahkan. CXS bertujuan untuk membuat analisis balik menjadi tidak praktis secara ekonomi bagi sebagian besar penyerang.


Referensi

[1] cxs.h - Definisi API, tipe IR, dan engine 30-transformasi. [2] transform.c & transform2.c - Implementasi teknik obfuskasi T1-T30.

There aren’t any published security advisories