TDCTF Academy Logo TDCTF ACADEMY

YARA

YARA (Yet Another Recursive/Ridiculous Acronym) adalah alat pattern matching yang digunakan untuk mengidentifikasi dan mengklasifikasikan malware berdasarkan pola biner atau teks dalam file. Dikembangkan oleh VirusTotal, YARA menjadi standar de facto dalam malware analysis, threat hunting, dan incident response.

Struktur Rule YARA

Setiap rule YARA terdiri dari tiga bagian utama: meta, strings, dan condition.

Meta

Bagian meta berisi metadata deskriptif yang tidak mempengaruhi logika deteksi:

rule SuspiciousPowershell
{
meta:
author = "Analyst"
description = "Detects obfuscated PowerShell scripts"
date = "2025-01-15"
hash = "a1b2c3d4e5f6..."
mitre_id = "T1059.001"
...
}

Strings

Bagian strings mendefinisikan pola yang akan dicari dalam file target. YARA mendukung tiga tipe string:

  1. Text strings - String teks yang dibungkus dengan tanda kutip ganda. Contoh: $a = "malware".
    • Opsional: nocase (case insensitive), wide (Unicode encode), ascii, xor (XOR variasi).
  2. Hex strings - Byte hex yang dibungkus dengan kurung kurawal. Contoh: $b = { 6A 40 68 00 30 00 00 }.
    • Mendukung wildcard (??) dan jumps ([X-Y]) untuk byte yang tidak diketahui.
  3. Regex strings - Pola regex yang dibungkus dengan garis miring. Contoh: $c = /http[s]?:\/\//.

Condition

Bagian condition mendefinisikan aturan logika yang harus dipenuhi agar rule menghasilkan match:

  • all of them - Semua string harus ditemukan.
  • any of them - Setidaknya satu string ditemukan.
  • all of ($a)* - Semua string dengan identifier berawalan $a.
  • #a > 5 - String $a muncul lebih dari 5 kali (count operator).
  • @a > 0x100 - Offset string $a lebih besar dari 0x100.
  • filesize < 200KB - Ukuran file di bawah 200 kilobyte.
  • $a at 0 - String $a ditemukan pada offset tertentu.
  • $a in (0..1000) - String $a ditemukan dalam rentang offset 0 - 1000.
  • for any of ($a): ($)* - Loop untuk memeriksa string dalam grup.
  • # - Operator count: #a mengembalikan jumlah kemunculan string $a.

Contoh Rule Lengkap

rule Mimikatz_Detection
{
meta:
author = "Detection Team"
description = "Detects Mimikatz in memory dump"
reference = "https://github.com/gentilkiwi/mimikatz"

strings:
$s1 = "sekurlsa::logonpasswords" ascii wide nocase
$s2 = { 4d 69 6d 69 6b 61 74 7a } // "Mimikatz" in hex
$s3 = /mimikatz/i

condition:
any of them
}

Modules YARA

Modules memperluas kemampuan YARA dengan menyediakan informasi tambahan tentang file target:

  • PE Module - Mengekstrak informasi dari PE header: pe.entry_point, pe.sections[0].name, pe.imphash(), pe.number_of_sections, pe.rich_signature.clear_data.
  • ELF Module - Untuk file Linux ELF: elf.type, elf.entry_point, elf.sections[*].name.
  • Math Module - Fungsi matematika untuk condition: math.entropy() untuk menghitung entropi data, berguna mendeteksi packing/encryption.
  • Magic Module - Mendeteksi tipe file menggunakan libmagic (file signature): magic.type() mengembalikan string seperti "PE32 executable" atau "PDF document".

YARA vs Sigma

Aspek YARA Sigma
Target File-based (file biner, memory dump, dokumen) Log-based (event log, syslog, network log)
Fokus Malware identification, threat hunting Log monitoring, SIEM detection
Format Rule engine khusus (.yar/.yara) YAML generik (dikonversi ke query SIEM)
Konteks Byte-level, pattern scanning Event attributes, field matching
Deployment YARA engine pada endpoint, memory scanner SIEM pipeline, EDR query
Komunitas YARA-Rules, VirusTotal SigmaHQ

YARA digunakan ketika anda memiliki file - baik file di disk, memory dump, attachment email, atau artefak biner. Sigma digunakan ketika anda memiliki log - event dari OS, aplikasi, atau layanan cloud.

Tools Ekosistem YARA

  • YARA-X - Penerus YARA yang ditulis ulang di Rust untuk performa lebih baik, keamanan memori lebih kuat, dan kompatibilitas mundur dengan rule existing. Memiliki CLI modern dan API yang lebih bersih.
  • yargen (YARA Rule Generator) - Alat untuk menghasilkan rule YARA secara otomatis dari sampel malware dengan menganalisis string unik, byte sequence, dan karakteristik file.
  • yarAnalyzer - Alat statis untuk menganalisis rule YARA: mendeteksi redundant patterns, rule overlap, performance bottlenecks, dan false positive potential. Sangat berguna untuk quality assurance rule dalam skala besar.

YARA tetap menjadi alat paling powerful untuk detection engineering pada layer file, melengkapi Sigma yang bekerja pada layer log untuk memberikan cakupan deteksi menyeluruh.

PADA HALAMAN INI