Skip to content

FAULT+PROBE

Yön kontrollü bit flip'leri kurbanın secret'ına bir probe olarak kullanan, integrity'yi bozmak yerine bit değerlerini davranışsal yan etkilerden okuyan, Rowhammer tabanlı genel amaçlı bir bit-recovery saldırısı.

Mechanism

Bir bozma değil, bir ölçüm olarak Rowhammer

Klasik Rowhammer saldırıları privilege yükseltmek için hedef bir değeri (bir PTE, bir key biti) değiştirmeyi amaçlar. FAULT+PROBE bu hedefi tersine çevirir: Rowhammer'ın bir biti bilinen bir yönde flip'leyebilme yeteneğini (örneğin belirli bir cell'de yalnızca 1->0) bilinmeyen bir biti okumak için kullanır. Yön kontrollü bir flip yalnızca alttaki bit flip'lenebilir durumdaysa etki ettiği için, hammer sonrası kurbanın davranışının değişip değişmediğini gözlemlemek sana o secret bitin ne olduğunu söyler.

Bu, Rowhammer'ı yeniden statistical fault analysis (SFA) olarak çerçeveler: DRAM'i offline profile'layıp bilinen bir yönde flip'lenen cell'leri bul, bir secret biti böyle bir cell'in üzerine hizala, hammer'la ve ardından biti decode etmek için kurbanın gözlemlenebilir davranışını (örneğin signing throughput'unu) probe'la. Önemlisi, key pozisyonlarına yön kontrollü fault'lar enjekte edip hatalı bir output'a güvenmek yerine sonucu okuyarak verify-after-sign fault kontrollerini de aşabilir.

Yön kontrollü flip'lenen cell'leri saymak için Rowhammer ve memory templating üzerine kurulur ve bunları davranışsal bir oracle ile eşleştirir.

Walkthrough

1. Offline profiling. Hangi cell'lerin hangi yönde flip'lendiğini haritalamak için kurbanın bellek bölgesini template'le; secret taşıyan bitlerle çakışan cell'leri seç.

profile: for each cell c -> {flip_direction, reliability}
keep cells with high reliability and a usable direction

2. Online probing. Bir hedef bitte tekrar tekrar yön kontrollü bir fault oluştur ve bir yan-bilgi kanalını (örneğin signature üretim oranını) gözlemle:

hammer(target_bit)
observe signing rate / behaviour
if behaviour changed -> bit was in flippable state (decode value)
else                 -> bit was already in target state

3. Decode the secret. Yön kontrollü flip yanıtlarından secret'ı (örneğin bir private key'i) her seferinde bir bit olacak şekilde yeniden inşa etmek için bit pozisyonları boyunca iterate et.

Output-integrity kontrollerini aşar

FAULT+PROBE bozulmuş bir output yerine davranıştan (timing/throughput) decode ettiği için, hatalı signature'ları bastıran bir verify-after-sign kontrolü sızıntıyı durdurmaz — bastırma eyleminin kendisi gözlemlenebilir sinyaldir.

Bu teknik wolfSSL'e bildirildi (CVE-2024-5288) ve 5.7.2'de düzeltildi.

Mitigation

  • Constant-behaviour fault handling: fault tespitinin timing'i veya throughput'u secret'a bağlı bir şekilde değiştirmesine izin verme.
  • Güvenilir yön kontrollü flip'leri engellemek için refresh-rate artırımı / TRR.
  • Tek bir yön kontrollü flip'in secret üzerinde tek bitlik bir oracle olmaması için masking / redundant computation.

References