9.3.2. Kollaboratív robot kihasználás

2025.10.06.
AI Biztonság Blog

Gondolj a kollaboratív robotra (kobot) mint egy rendkívül képzett, de naiv gyakornokra. Ismeri a feladatát, precízen végrehajtja, és a legfőbb programja, hogy ne ártson a mellette dolgozó embereknek. Nem az ajtót kell betörnünk, mint az előző fejezetben. Itt elég, ha meggyőzzük a gyakornokot, hogy adja nekünk a kulcsot, mert mi „csak segíteni akarunk”.
A kobotok elleni támadások a beépített bizalmi mechanizmusok kijátszásáról szólnak, nem a nyers erővel történő behatolásról.

Kapcsolati űrlap

AI Biztonság kérdésed van? Itt elérsz minket:

A bizalmi rés: Ahol a szándék és a valóság elválik

A kobotok működésének alapja a „bizalom”. Bíznak a szenzoraikban, hogy azok a valós fizikai környezetet közvetítik. Bíznak a programjukban, hogy a feladatok sorrendje és paraméterei biztonságosak. És bíznak az emberi operátorban, hogy az nem ad rosszindulatú utasításokat. A mi feladatunk AI Red Teamerként, hogy megbontsuk ezt a bizalmat. Nem a robot kódjában keresünk puffertúlcsordulást, hanem a működési logikájában, a „feltételezéseiben” keresünk sebezhetőséget. Ezt a rést nevezzük „bizalmi résnek” (Trust Gap).

1. Szenzoros valóságferdítés: Amikor a robot szeme hazudik

A kobot legfontosabb védelmi vonala a szenzorhálózata: kamerák, erő- és nyomatékszenzorok, közelségérzékelők. Ezek alapján lassít, megáll, vagy kikerülő manővert végez, ha ember kerül a munkaterébe. De mi történik, ha ezek a szenzorok manipulált adatokat kapnak?

VALÓS TÉR Ember (valós pozíció) Biztonsági zóna MANIPULÁLT SZENZORADAT Ember (hamis pozíció) Biztonsági zóna Adatcsere (pl. Man-in-the-Middle)

A legegyszerűbb támadás a vizuális érzékelőket célozza. Ha a robot egy kamerakép alapján dönti el, hogy belépett-e valaki a zónájába, akkor egy „tiszta” háttérkép folyamatos visszajátszásával (video feed injection) a robot vak marad a valós eseményekre. Ez egy klasszikus Man-in-the-Middle (MitM) támadás a robot vezérlője és a kamera között, ami triviális, ha a kommunikáció titkosítatlan hálózaton zajlik!

# Pszeudokód a kobot biztonsági logikájához
def check_safety_zone(camera_feed):
 # A 'camera_feed' az a pont, ahol a támadás történik.
 # A támadó egy korábbi, "üres" képet játszik vissza.
 objects = object_detection_model.predict(camera_feed)
 
 for obj in objects:
 if obj.class == "human" and is_in_danger_zone(obj.position):
 # Ha embert észlel a veszélyes zónában...
 robot_arm.emergency_stop()
 return False # Veszély észlelve
 
 return True # Biztonságos a folytatás

# A fő ciklus
while True:
 # A robot a manipulált, mindig biztonságosnak tűnő képet kapja
 live_feed = get_manipulated_camera_feed() 
 if check_safety_zone(live_feed):
 robot_arm.continue_task()

2. A kollaborációs logika feltörése: Protokoll-szintű social engineering

A kobotok programjai gyakran magas szintű, ember által is könnyen érthető parancsokból állnak. Ezek a parancsok egy implicit logikai sorrendet és feltételrendszert alkotnak. A támadás itt nem a kód, hanem a „forgatókönyv” ellen irányul.

Támadási vektor: Feladat-sorrend manipuláció

Egy tipikus kobot feladat így nézhet ki: 

  1. Vedd fel az alkatrészt. 
  2. Mozgasd az ember elé. 
  3. Várd meg a manuális ellenőrzést (pl. egy gombnyomást a HMI-n). 
  4. Helyezd az alkatrészt a kész termékbe. 

Mi történik, ha a hálózaton keresztül ki tudunk adni egy parancsot, ami átugorja a 3. lépést? A robot, feltételezve, hogy a parancs legitim, a még nem ellenőrzött alkatrészt beépíti, ami minőségbeli problémákhoz vagy akár a gyártósor leállásához vezethet.

Támadási vektor: Paraméter-injektálás a HMI-n keresztül

Sok esetben az operátor egy tableten vagy más HMI (Human-Machine Interface) eszközön keresztül finomhangolhatja a robot mozgását. Például megadhat egy X, Y, Z koordinátát, ahová a robotnak mozdulnia kell. 

A fejlesztők általában implementálnak szoftveres korlátokat (ún. „geofencing”), hogy a robot ne tudjon a biztonságos munkaterületen kívülre mozogni. A támadás célja ezen validáció megkerülése. Elképzelhető, hogy a rendszer csak a pozitív értékeket ellenőrzi, de egy negatív koordináta megadásával a robot a várt mozgás ellentétét hajtja végre, potenciálisan nekiütközve valaminek a „biztonságos” zóna mögött!

// Egyszerűsített HMI validációs logika (kliens oldalon)
function sendMoveCommand() {
 let x = parseFloat(document.getElementById('coord_x').value);
 let y = parseFloat(document.getElementById('coord_y').value);

 // Gyenge validáció: csak a felső határt ellenőrzi
 if (x > 500 || y > 500) {
 // alert("A koordináta a munkaterületen kívül van!");
 console.error("A koordináta a munkaterületen kívül van!");
 return;
 }
 
 // A támadó ide negatív értéket, pl. x = -100, írhat be,
 // amit a szerver oldali logika esetleg nem kezel.
 robot.moveTo(x, y, 100); 
}

3. A „kézi vezérlés” fegyverré tétele

A kobotok egyik legfontosabb funkciója a „kézi vezérlés” vagy „tanító” mód (Hand-Guiding / Teach Mode). Ebben az üzemmódban az operátor fizikailag megfoghatja és mozgathatja a robotkarot, hogy új mozgássorokat tanítson be neki. 

A biztonság érdekében a robot ilyenkor drasztikusan lecsökkenti az erejét és sebességét. A támadás célja egy állapot-összezavarási (state confusion) sebezhetőség kihasználása: rávenni a robotot, hogy normál üzemi erővel és sebességgel működjön, miközben azt hiszi, hogy biztonságos tanító módban van…

Paraméter Normál Üzemmód Kézi Vezérlés (Biztonságos Mód)
Maximális sebesség 1000 mm/s 250 mm/s
Erő/Nyomaték limit 150 N 15 N (Támadási célpont)
Védőzónák Aktív, teljes sebességű leállás Aktív, azonnali leállás
Payload beállítás A munkadarab súlyának megfelelően Minimális (feltételezi, hogy nincs teher)

Ha egy támadó manipulálni tudja a robot állapotát kezelő szoftverkomponenst – például rosszindulatúan formázott hálózati csomaggal –, elérheti, hogy a robot vezérlője a „Normál Üzemmód” paramétereit (pl. 150 N erőlimit) alkalmazza, miközben a felhasználói felület és a biztonsági PLC továbbra is a „Kézi Vezérlés” állapotot jelzi. 

Az operátor, aki a robotot kézzel próbálja mozgatni, hirtelen a tízszeres erővel szembesül, ami súlyos sérülésveszély! 

Esettanulmány: Támadási lánc egy pick-and-place koboton

Vegyünk egy komplett támadási láncot, amely a fent említett technikákat ötvözi egy autóipari összeszerelő üzemben használt koboton.

  1. Felderítés és hozzáférés: Egy rosszindulatú csapat azonosítja, hogy a kobotok egy külön, de gyengén szegmentált OT hálózaton kommunikálnak. Egy karbantartó laptopon keresztül hozzáférést szereznek ehhez a hálózathoz.
  2. Szenzor manipuláció előkészítése: A csapat egy MitM (Man-in-the-Middle) támadást indít a kobot vezérlője és a munkaterületet figyelő 3D kamera között. Létrehoznak egy „tiszta” loopot, ami egy üres munkaterületet mutat. 
  3. Logikai támadás: A kobot feladata, hogy egy nehéz akkumulátort helyezzen egy jármű alvázába, de előtte meg kell várnia, hogy egy operátor vizuálisan ellenőrizze a csatlakozókat és megnyomjon egy fizikai „jóváhagyás” gombot. A támadók a hálózaton keresztül közvetlenül a robot vezérlőjének küldenek egy TCP csomagot, ami a „jóváhagyás” jelét szimulálja, ezzel átugorva a manuális ellenőrzési lépést.
  4. Kihasználás és hatás: A támadás élesítésekor a következő történik:
    • Az operátor belép a munkaterületre, hogy elvégezze az ellenőrzést.
    • A manipulált kamerafeed miatt a robot nem észleli az operátort, és nem lassít le.
    • A hamis „jóváhagyás” jel miatt a robot nem vár, hanem azonnal megkezdi a nehéz akkumulátor behelyezését.
    • A robot teljes sebességgel és erővel mozog az operátor felé, aki egy olyan mozgásra számít, ami csak az ő jóváhagyása után következne be. A következmény súlyos fizikai ütközés és a gyártósor azonnali leállása.

Ez a példa jól mutatja, hogy a kobotok elleni sikeres támadások ritkán épülnek egyetlen sebezhetőségre. 

Ehelyett a rendszerszintű gondolkodás, a fizikai és a logikai biztonsági rétegek közötti „bizalmi rések” megtalálása és összekapcsolása vezet eredményre.