0.15.2 Láb megvetése – az első sikeres behatolás

2025.10.06.
AI Biztonság Blog

A felderítés órái, napjai vagy akár hetei egyetlen, kritikus pillanatban csúcsosodnak ki: amikor a támadó először lép be a rendszerbe. Ez nem a végső győzelem, hanem a partraszállás. A digitális D-nap, ahol egy parányi, sebezhető hídfőállást hozunk létre az ellenséges területen. Ez a láb megvetése (angolul foothold), és ez a pont, ahol a passzív kutatásból aktív behatolás lesz.

Kapcsolati űrlap

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

A gondolkodásmód váltása: Megfigyelőből cselekvővé

Amíg a 0.15.1 fejezetben csak kutattunk a gyenge pontok után, addig itt már kihasználunk egyet közülük. A különbség óriási! A felderítés során a kockázat viszonylag alacsony; legfeljebb zajt csapunk a hálózaton. A láb megvetésének pillanatában viszont aktívan beavatkozunk a rendszer működésébe. Ez az első igazi „bűnbeesés”, a pont, ahonnan már nincs visszaút a támadási láncban. A cél innentől nem a tudásszerzés, hanem a jelenlét biztosítása.

Gondolj rá úgy, mint egy sziklamászó, aki megtalálja az első biztos fogást egy addig megmászhatatlannak tűnő falon. Lehet, hogy ez a fogás kicsi, kényelmetlen és nem is tart sokáig, de ez az egyetlen pont, ahonnan tovább tud építkezni a csúcs felé.

Mit is jelent pontosan a láb megvetése?

A „foothold” nem egyenlő a rendszer feletti teljes kontrollal. Sőt, általában nagyon messze van tőle. Egy sikeres első behatolás eredménye sokféle lehet, de a közös jellemzőjük a korlátozottság:

  • Minimális jogosultságok: Gyakran egy alacsony szintű felhasználó (pl. www-data egy webszerveren) vagy egy korlátozott hatókörű API kulcs kontextusában kapunk hozzáférést.
  • Korlátozott interakció: Lehet, hogy nem egy teljes értékű parancssort (shell) kapunk, csak egy lehetőséget, hogy egy-egy parancsot lefuttassunk, vagy adatot írjunk egy adott helyre.
  • Ideiglenes vagy ingatag kapcsolat: A kapcsolat megszakadhat, a kihasznált sérülékenységet befoltozhatják, vagy egy újraindítás megszüntetheti a hozzáférésünket. A perzisztencia (a hozzáférés tartóssá tétele) a következő lépések egyike.

A cél: Jelenlét, nem uralom

Az elsődleges cél ebben a fázisban nem az adatlopás vagy a szabotázs. A cél egyszerűen annyi, hogy egy stabil pontot hozzunk létre a rendszeren belül, ahonnan a következő fázis, a terjeszkedés, megkezdődhet. Ez a belső felderítés kiindulópontja.

A klasszikus és az AI-specifikus kapuk

Míg a hagyományos rendszereknél a behatolási pontok jól ismertek, az AI-ökoszisztémák új, specifikus támadási felületeket nyitnak meg. Fontos látni a párhuzamokat és a különbségeket!

Típus Klasszikus példa AI-specifikus példa
Konfigurációs hiba Nyilvánosan elérhető adatbázis port (pl. MongoDB) alapértelmezett jelszóval. Nyilvánosan írható/olvasható S3 bucket, ami a modell betanítási adatait vagy súlyait tárolja.
Szoftver sérülékenység Egy elavult Apache webszerver ismert RCE (Remote Code Execution) hibájának kihasználása. Egy Python adatfeldolgozó könyvtár (pl. `pickle`) nem biztonságos deszerializációs hibájának kihasználása egy adat-előkészítő pipeline-ban.
Hitelesítési adatok megszerzése Adathalász támadás egy rendszergazda ellen, hogy megszerezzék az RDP jelszavát. Prompt injection támadás, amely ráveszi a modellt, hogy adja ki a környezeti változókban tárolt API kulcsot.
Logikai hiba Egy webshopban negatív mennyiségű terméket a kosárba helyezve pénzvisszatérítést lehet generálni. Egy LLM-alapú „tool use” agentet rávenni, hogy a belső hálózaton lévő rendszerek ellen futtasson parancsokat, amiket nem kellene elérnie.

Példa: A kiszivárgott API kulcs mint foothold

Tegyük fel, egy okosan megalkotott prompttal sikerült rávenni egy nyelvi modellt, hogy válaszában felfedje a mögöttes felhőszolgáltató API kulcsát. Ez önmagában tökéletes példa a láb megvetésére. 

Nem kaptunk parancssort, nem tudjuk, mi fut a szerveren, de van egy kulcsunk, amivel cselekedni tudunk.

# A támadó gépén, a megszerzett kulccsal
# Tegyük fel, egy prompt injection támadással megszereztük ezt a kulcsot.

import boto3

# A megszerzett hitelesítési adatok
KISZIVARGOTT_ACCESS_KEY = 'AKIAIOSFODNN7EXAMPLE' 
KISZIVARGOTT_SECRET_KEY = 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'

# Létrehozunk egy klienst a megszerzett kulcsokkal
# Ez a mi "lábunk" a felhő infrastruktúrában
s3_kliens = boto3.client(
 's3',
 aws_access_key_id=KISZIVARGOTT_ACCESS_KEY,
 aws_secret_access_key=KISZIVARGOTT_SECRET_KEY
)

try:
 # Az első cselekedet: belső felderítés. Milyen bucketek léteznek?
 response = s3_kliens.list_buckets()
 
 print("Sikeres belépés! Elérhető S3 bucketek:")
 for bucket in response['Buckets']:
 print(f" - {bucket['Name']}")

except Exception as e:
 print(f"Sikertelen próbálkozás. Lehet, hogy a kulcs korlátozott. Hiba: {e}")

A fenti kód nem csinál mást, mint megpróbálja listázni az elérhető S3 bucketeket. Ha sikerül, akkor a foothold érvényes, és megkezdődhet a belső felderítés. Ha nem, akkor a kulcs talán már érvénytelen, vagy nagyon szigorú policy korlátozza – de a behatolási kísérlet megtörtént.

Az első behatolás anatómiája

Bár a technikai részletek változnak, a folyamat logikája általában hasonló. Egy sérülékenység kihasználásával egyfajta „payloadot” (hasznos terhet) juttatunk a rendszerbe, ami biztosítja számunkra a kezdeti hozzáférést.

1. Sérülékenység 2. Kihasználás (Exploit) 3. Payload kézbesítése 4. Láb megvetése

Ez a láb megvetése az a kritikus kapocs, ami összeköti a külső felderítést a belső műveletekkel. Enélkül a támadó örökre a falakon kívül reked. A következő fejezetben azt vizsgáljuk meg, hogyan lehet ebből a parányi hídfőállásból kiindulva kiterjeszteni a befolyásunkat a rendszeren belül.