Skip to content

ODINI

Faraday cage'lenmiş, air-gapped bir bilgisayardan veriyi CPU core load'unu modüle ederek sızdır — bu low-frequency magnetic field'ler, electromagnetic radiation'ın aksine metal shielding'in içinden geçer — ve yakındaki bir magnetic sensor üzerinde decode et.

Mechanism

Neden çalışır

En hassas veriyi tutan air-gapped makineler bazen electromagnetic radiation'ı (EMR) engellemek için bir Faraday cage içine kapatılır. ODINI bu savunmadaki bir fizik açığını suistimal eder: low-frequency magnetic field'ler hava içinden yayılır ve metal shielding'i delip geçer — paper'ın sezgisi şu: "bir pusula Faraday cage içinde de çalışmaya devam eder." Bir Faraday cage yüksek frekanslı EMR'yi zayıflatır ama quasi-static / low-frequency magnetic field'leri durdurmaz.

Transmit/leak/decode zinciri:

  • Kaynak: CPU içinden akan current, gücü CPU core'ları üzerindeki load'a bağlı bir magnetic field üretir. Air-gapped host'taki malware bu load'u, ve dolayısıyla yayılan magnetic field'i, software içinde modüle eder.
  • Transmit: veri, core'ları ağır hesaplama ile idle arasında geçirerek ayırt edilebilir manyetik sinyal durumları üretmek suretiyle amplitude-shift keying (ASK) ve frequency-shift keying (FSK) ile encode edilir.
  • Decode: yakındaki bir magnetic sensor (magnetometer) field'i kaydeder ve bitstream'i demodüle eder — cage duvarının içinden bile.

Kritik nokta: malware "özel ayrıcalık (ör. root) gerektirmez ve izole virtual machine'lerin (VM) içinden de başarıyla çalışabilir," çünkü CPU load üretmek sıradan, unprivileged bir işlemdir.

Walkthrough

Transmitter sadece kontrollü CPU load'dur. Bir mantıksal durum yaymak için malware bir miktar core'u meşgul eder; diğerini yaymak için onları idle'a alır. Busy/idle ritmini ayarlamak FSK için carrier frequency'yi belirler.

// Conceptual ODINI transmitter: modulate CPU load -> magnetic field.
// '1' = saturate cores at frequency f1; '0' = saturate at frequency f0 (FSK).
void emit_bit(int bit) {
    double period_us = bit ? PERIOD_F1 : PERIOD_F0;
    for (int t = 0; t < BIT_DURATION_US; t += period_us) {
        busy_loop(period_us / 2);   // CPU load high  -> strong magnetic field
        idle(period_us / 2);        // CPU load low   -> weak magnetic field
    }
}

void transmit(const uint8_t *payload, size_t n) {
    for (size_t i = 0; i < n; i++)
        for (int b = 7; b >= 0; b--)
            emit_bit((payload[i] >> b) & 1);
}

Raporlanan sonuçlar:

receiver           magnetic sensor (magnetometer) near the chassis
range              ~100-150 cm from the computer
max bit rate       up to ~40 bit/s
modulation         amplitude-shift keying (ASK) / frequency-shift keying (FSK)
defeats            standard Faraday-cage EMR shielding

Warning

ODINI kısa menzilli bir covert channel'dır: receiver bir ile birkaç metre mesafe mertebesinde olmalıdır ve throughput saniyede onlarca bit civarındadır. Yüksek güvenlikli air-gapped/Faraday ortamları için bir isolation-bypass sonucudur, uzun mesafeli bir exfiltration channel değil. (Tamamlayıcı MAGNETO çalışması aynı CPU tekniğinin çok daha yakın menzilde ve daha düşük hızda bir smartphone magnetometer ile okunmasını gösterir.)

Mitigation

  • Fiziksel ayırma / zoning: güvenilmeyen cihazları (telefonlar, sensörler) hassas makinelerin ~1.5 m emisyon menzilinin iyice dışında tut.
  • Magnetic shielding: özelleşmiş mu-metal / aktif magnetic shielding (sıradan Faraday cage'ler değil) low-frequency field'i zayıflatır.
  • Host hardening / monitoring: bir manyetik transmitter'a özgü anormal, yapılı CPU-load desenlerini tespit et; kontrollü bir manyetik gürültü kaynağı ile signal jamming uygula.

References