Skip to content

LED-it-GO / optical LED exfiltration

Bir air-gapped bilgisayardan, hard-drive activity LED'ini modüle ederek data exfiltrate etmek; malware bu LED'i bir insana görünmeyecek ama bir kamera veya optical sensor tarafından okunabilecek kadar hızlı yakıp söndürebilir.

Mechanism

Neden çalışır

HDD/SSD activity LED'i, storage I/O'da yanacak şekilde bağlanmıştır ve o I/O, unprivileged görünen software'in disk'i okuyup yazarak istediği gibi üretebileceği bir şeydir. LED, herhangi bir authenticated channel'a değil read/write operasyonlarına yanıt verdiği için, malware onu tek yönlü bir optical transmitter'a çevirebilir: LED'i doğrudan sürmesine gerek yoktur, yalnızca LED'in deseni sadakatle yeniden ürettiği disk aktivitesini zamanlaması yeterlidir. Işık makineyi bir pencereden, açık bir kapıdan veya bir optical receiver'a herhangi bir görüş hattından terk eder; her electrical ve network yolunu engelleyen air gap'i aşar. Kritik nokta, LED'in insan gözünün çözebileceğinden çok daha hızlı yakıp söndürülebilmesidir, dolayısıyla exfiltration sıradan disk titreşimi gibi görünen bir şeyin içinde gizlenir ve hızlı bir photodiode veya high-frame-rate kamera, operatörün hiç görmediği bitstream'i recover eder.

Walkthrough

Covert channel'ın bir transmitter'ı (air-gapped host'taki malware) ve bir receiver'ı (görüş hattı olan bir optical sensor) vardır.

  1. Data'yı LED aktivitesine encode et. Malware, bit'leri LED state'lerine map'ler. Basit bir On-Off Keying şeması, bir 1 için LED'i yakar ve bir 0 için karanlık bırakır; daha gelişmiş şemalar blink frequency kullanır. Guri et al. LED'i saniyede yaklaşık 5800 blink'e kadar oranlarda sürdü — flicker-fusion eşiğinin epey üstünde, dolayısıyla bir izleyiciye sabit veya normal titreşim gibi görünür.
// Conceptual transmitter: cause disk I/O to assert the activity LED.
void send_bit(int bit) {
    if (bit) trigger_disk_io();   // a read/write burst lights the LED
    busy_wait(BIT_PERIOD);        // hold the symbol for one bit period
    // for '0', simply idle the disk for the period
}
  1. Frame'le ve ilet. Receiver'ın bit clock'una kilitlenebilmesi için başa bir preamble/sync deseni ekle, sonra payload'u (key'ler, password'ler, key-log'lar, küçük dosyalar) stream et.
[preamble][length][payload bits ............][checksum]
  1. Optik olarak al ve decode et. Bir photodiode veya kamera, LED parlaklığını örnekler, onu tekrar bit'lere threshold'lar ve yeniden frame'ler. Yazarlar remote kameraları, güvenlik/CCTV kameralarını, smartphone kameralarını, drone'a monteli kameraları ve özel optical sensor'ları test etti; hassas photodiode'lar en yüksek oranlara ulaşır çünkü kameralar frame rate ile sınırlıdır.
Raporlanan performans (Guri et al., 2017)

Receiver type        approx. max bit rate
-------------------  --------------------
high-speed photodiode   up to ~4000 bit/s
typical video camera    limited by frame rate (tens of bit/s)
Paper, ~4000 bit/s'ye kadar raporlar — önceki optical air-gap covert channel'larından yaklaşık 10 kat daha hızlı olarak tanımlanır — key'leri ve keystroke log'larını hızla sızdırmaya yeter.

Uyarılar

(a) İzole host'ta zaten çalışan bir kod ve (b) LED'e görüş hattı olan bir optical receiver gerektirir. Yalnızca exfiltration'dır — air gap'i inbound olarak ihlal etmez. Kapatılmış perdeler, kasayı taşımak veya basitçe görüş hattının olmaması onu çökertir.

Detection

  • Optik izleme: sunucu LED'lerine yönlendirilmiş ve kendi analizi, host'un gerçek disk workload'uyla tutarsız anormal hızlı, yapılandırılmış veya sürekli blink desenlerini işaretleyen bir kamera veya sensor.
  • Host telemetry: LED'i süren disk I/O'sunu beklenen application davranışıyla koreleyin; iş amacı olmayan küçük read/write patlamaları şüphelidir.
  • Doğal access desenleri yerine bir modülasyon kadansına uyan high-frequency, düzenli storage I/O üreten process'leri arayın.

Mitigation

  • Hassas (air-gapped, SCIF tarzı) alanlardaki makinelerde activity LED'ini fiziksel olarak kapat veya çıkar, ya da host'ları herhangi bir harici görüş hattının dışına yerleştir (pencere yok, kontrollü görüş açıları).
  • Policy/zone kontrolleri: sınıflandırılmış ekipmanın yakınında kamera ve kayıt cihazlarını yasakla; pencere filmleri/perdeler kullan.
  • Software karşı önlemleri: LED'i randomize eden, rate-limit eden veya maskeleyen driver'lar ya da host agent'ları, böylece artık raw I/O timing'ini izlemez; gürültü eklemek için rastgele LED aktivitesi yayarak signal jamming.
  • Genel air-gap hijyeni: izole host'larda hangi kodun çalışabileceğini kısıtla ve denetle, çünkü channel önceden bir enfeksiyonu varsayar.

References