BitWhisper¶
CPU/GPU ısısını modüle edip bunu on-board thermal sensor'lar üzerinden geri okuyarak yan yana iki air-gapped bilgisayarı köprüle ve çift yönlü bir gizli kanal oluştur.
Mechanism¶
Note
Her PC, compute load'un bir fonksiyonu olarak ısı yayar ve her anakartta
yerleşik temperature sensor'ları (CPU, GPU, chassis) vardır. Değişmez
nokta: bir bilgisayar, CPU/GPU üzerinde meşgul döngüler başlatarak kendi
sıcaklığını istek üzerine yükseltebilir ve santimetrelerce ötede duran
ikinci bir bilgisayar, ısı boşluğun karşısına iletildikçe/yayıldıkça kendi
thermal sensor'larında ölçülebilir bir yükseliş kaydeder. Her iki makine de
hem ısı üretip hem sensor'larını okuyabildiği için kanal çift
yönlüdür: makine A 1 göndermek için ısınır, 0 göndermek için boşta
durur, makine B ise thermal sensor'larını yoklayıp decode etmek için sıcaklığa
eşik uygular — ve tersi. Maliyet bandwidth: thermal mass kanalı son derece
yavaş yapar, ama hiçbir network, hiçbir peripheral ve hiçbir özel hardware
gerektirmez — yalnızca yan yana yerleştirilmiş iki ele geçirilmiş host (yaygın
olduğu gibi, örneğin air-gapped birinin yanında internete bağlı bir PC).
Walkthrough¶
// Transmitter: heat to send 1, idle to send 0. Symbol period is minutes.
#include <pthread.h>
static volatile int heating;
void *burn(void *_) { while (1) if (heating) { volatile double x=0;
for (long i=0;i<100000000L;i++) x+=i*1.000001; } else usleep(1000); }
void send_bit(int bit) {
heating = bit; // CPU-bound spin raises die temperature
sleep(SYMBOL_SECONDS); // hold long enough for the neighbor to sense it
heating = 0;
}
// Receiver: poll a thermal sensor and threshold against a moving baseline.
int recv_bit(void) {
double t = read_temp("/sys/class/thermal/thermal_zone0/temp") / 1000.0;
return (t - baseline) > DELTA_C ? 1 : 0; // sustained rise => bit '1'
}
Beklenen sonuçlar (makaleden)
Yavaş ama air-gapped bir host'u yanındaki internete bakan biriyle eşleştirip key'leri damla damla dışarı sızdırmaya ya da komutları damla damla içeri almaya yetecek kadar.Detection¶
Thermal-sensor okumalarını yerel compute load ile korele et; komşu bir makineyi takip eden sıcaklık salınımlarında alarm ver; işlevsel amacı olmayan sürekli, periyodik CPU-bound aktiviteyi izle.
Mitigation¶
Fiziksel ayrım (kanal onlarca cm'nin ötesinde ölür); rack'lerde thermal izolasyon / aralık; thermal-sensor erişimini kısıtla; sinyali maskelemek için rastgele arka plan thermal load.