BitChat cache-poisoning

Editors' Pick

A Barghest kutatói a BitChat nevű decentralizált üzenetküldő alkalmazás biztonsági elemzése során egy olyan sérülékenységet tártak fel, amely a rendszer Bluetooth Low Energy (BLE) mesh kommunikációs mechanizmusának gyorsítótár-kezelését érinti. A BitChat úgy működik, hogy a közelben lévő eszközök egymással közvetlenül kommunikálnak, majd az üzeneteket továbbítják a hálózat többi résztvevője felé. Ennek érdekében a kliensalkalmazások egy helyi message cache-t használnak, amely az újonnan érkező üzeneteket ideiglenesen tárolja, és segít megakadályozni az üzenetek többszöri feldolgozását.

A cache-mechanizmus nem ellenőrizte megfelelően az üzenetek eredetét és integritását. Egy támadó, aki a mesh-hálózat rádiós hatótávolságán belül tartózkodik, képes volt olyan manipulált csomagokat küldeni, amelyek érvényesnek tűnő, de hamis üzenetazonosítókat tartalmaztak. A rendszer ezeket a csomagokat legitim üzenetként fogadta el, és eltárolta a cache-ben. Miután bekerültek a gyorsítótárba, a többi kliens automatikusan továbbította őket a hálózat más csomópontjai felé, mivel a BitChat protokoll alapértelmezett működése az üzenetek store-and-forward terjesztése.

Ez a mechanizmus lehetővé tette a klasszikus cache poisoning támadást. A támadó olyan üzeneteket tudott bejuttatni a rendszerbe, amelyek később a teljes mesh-hálózatban elterjedtek. A következmények többféleképpen jelentkezhettek. Egyrészt a támadó hamis kommunikációs tartalmat juttathatott el a felhasználókhoz, például manipulált vagy félrevezető üzenetek formájában. Másrészt a cache-t megtöltve jelentős mennyiségű hamis rekorddal a hálózat működését is destabilizálhatta, mivel a kliensek folyamatosan olyan üzeneteket dolgoztak fel és továbbítottak, amelyek valójában nem legitim forrásból származtak.

A kutatók egy második, kapcsolódó problémát is azonosítottak, amely a BLE mesh replay támadásokhoz kapcsolódik. A BitChat bizonyos esetekben nem alkalmazott megfelelő védelmet az üzenetek újrajátszása ellen, ezért egy támadó képes volt korábban rögzített kommunikációs csomagokat újra elküldeni a hálózatba. Ha ezt a replay támadást kombinálták a cache poisoning módszerrel, a támadó tartós hálózati zavarokat idézhetett elő, mivel a kliensek ismételten feldolgozták ugyanazokat az üzeneteket, miközben a cache-ben lévő manipulált rekordok tovább terjedtek.

A probléma a mesh-hálózatok esetében kiemelkedő, mert ezek decentralizált módon működnek, és a csomópontok egymásra támaszkodnak az üzenetek továbbításában. Egyetlen rosszindulatú csomópont – vagy akár egy ideiglenesen jelen lévő támadó eszköz – képes lehet a teljes hálózat működését befolyásolni, ha sikerül manipulált adatokat eljuttatnia a cache-mechanizmusba. A kutatók ezért hangsúlyozzák, hogy az ilyen rendszerekben kulcsfontosságú az üzenetek kriptográfiai hitelesítése, a megfelelő nonce-kezelés és a replay-védelem, valamint a cache-ben tárolt rekordok integritásának ellenőrzése.

FORRÁS