Miután az értékelési ellenőrző lista alapján azonosítottad a lehetséges sebezhetőségeket, a következő logikus kérdés: melyikkel foglalkozzunk először? Nem minden hiba egyformán súlyos, és nem minden kockázat jelent azonnali veszélyt. A súlyozási mátrix (vagy kockázati mátrix) egy egyszerű, de rendkívül hatékony vizuális eszköz, amely segít a talált sebezhetőségek priorizálásában a várható kárhatásuk és a bekövetkezésük valószínűsége alapján.
Ez nem egy univerzális, kőbe vésett szabvány, mint a CVSS, hanem egy projekt-specifikus eszköz. Az ereje abban rejlik, hogy a megbízóval közösen, az ő üzleti környezetére és kockázati étvágyára szabva alakíthatod ki. Így a prioritások nem csupán technikai, hanem üzleti szempontból is relevánsak lesznek.
A mátrix alapjai: Kárhatás és Valószínűség
A mátrix két tengely mentén értékeli a kockázatot:
- Kárhatás (Impact): Mekkora kárt okoz a sebezhetőség kihasználása? Ez vonatkozhat pénzügyi veszteségre, adatszivárgásra, reputációs kárra, a szolgáltatás leállására vagy akár fizikai károkra is.
- Megvalósulási Valószínűség (Likelihood): Mennyire könnyű vagy valószínű, hogy egy támadó sikeresen kihasználja a sebezhetőséget? Ez függ a szükséges szakértelemtől, erőforrásoktól, a támadási felület nagyságától és a már meglévő védelmi intézkedésektől.
A két dimenzió metszetében kapjuk meg a kockázat szintjét (pl. Kritikus, Magas, Közepes, Alacsony), ami alapján a javítási sorrendet felállíthatjuk.
A tengelyek definiálása: Egy lehetséges példa
A legfontosabb lépés a szintek egyértelmű definiálása. Az alábbi táblázatok egy általános kiindulási alapot adnak, amit mindig az adott projekt kontextusához kell igazítani.
Kárhatás (Impact) szintek
| Szint | Leírás | Példa AI kontextusban |
|---|---|---|
| Kritikus | Katasztrofális, az üzletmenet folytonosságát veszélyeztető kár. Jelentős pénzügyi vagy reputációs veszteség, súlyos jogi következmények. | A teljes ügyféladatbázis (PII) kiszivárgása. A modell súlyainak ellopása, ami a fő üzleti előnyt jelenti. A modell manipulálása, ami életveszélyes döntéseket hoz (pl. önvezető autó). |
| Magas | Súlyos kár, amely jelentős hatással van a napi működésre, komoly pénzügyi vagy reputációs következményekkel jár. | Egy teljes prompt adatbázis ellopása. Tartós szolgáltatáskiesés (denial of service). A modell kimenetének szisztematikus, rosszindulatú torzítása (pl. elfogulttá tétele). |
| Közepes | Mérsékelhető kár, amely befolyásolja a működést, de nem veszélyezteti a folytonosságot. Korlátozott pénzügyi vagy reputációs hatás. | Egyetlen felhasználó adatainak kompromittálása. A modell rejtett rendszerpromptjának felfedése. Kisebb, ideiglenes szolgáltatási zavarok. |
| Alacsony | Minimális kár, elhanyagolható hatás a működésre. Kisebb kellemetlenséget okoz. | Információszivárgás a modell verziószámáról vagy a használt technológiáról. A modell „hallucinálása” kihasználható, de jelentős kárt nem okoz. |
Megvalósulási Valószínűség (Likelihood) szintek
| Szint | Leírás |
|---|---|
| Nagyon valószínű | Kihasználása triviális, nem igényel speciális eszközöket vagy tudást. A támadás automatizálható. A sebezhetőség nyilvánosan ismert. |
| Valószínű | Kihasználása átlagos támadói képességeket és könnyen elérhető eszközöket igényel. A támadási felület könnyen hozzáférhető. |
| Lehetséges | Kihasználása speciális tudást, egyedi eszközöket vagy több feltétel együttes teljesülését igényli. |
| Nem valószínű | Kihasználása rendkívül nehéz, laboratóriumi körülményeket, belső hozzáférést vagy jelentős erőforrásokat (pl. állami szereplő szintű) igényel. |
A súlyozási mátrix a gyakorlatban
A definiált szintek alapján felrajzolható maga a mátrix. Az alábbi 5×4-es mátrix egy gyakran használt séma.
| Megvalósulási Valószínűség | |||||
|---|---|---|---|---|---|
| Nem valószínű | Lehetséges | Valószínű | Nagyon valószínű | ||
| Kárhatás | Kritikus | Közepes | Magas | Kritikus | Kritikus |
| Magas | Alacsony | Közepes | Magas | Kritikus | |
| Közepes | Alacsony | Közepes | Közepes | Magas | |
| Alacsony | Informatív | Alacsony | Alacsony | Közepes | |
Hogyan használd? Egy talált sebezhetőség esetén:
- Becsüld meg a kárhatást: Ha ezt a hibát kihasználják, mekkora lesz a baj? Használd a fenti definíciós táblát. Például egy prompt injection, ami PII adatokat szivárogtat, „Magas” kárhatású.
- Becsüld meg a valószínűséget: Mennyire nehéz ezt a támadást végrehajtani? Ha egy egyszerű, bárki által beírható promptról van szó, az „Nagyon valószínű”.
- Keresd meg a metszéspontot: A mátrixban a „Magas” kárhatás sora és a „Nagyon valószínű” valószínűség oszlopa a „Kritikus” kockázati szintnél metszi egymást.
- Priorizálj: Ennek a hibának a javítása azonnali beavatkozást igényel.
A testreszabás fontossága
Ne feledd, ez egy sablon. Egy pénzügyi intézménynél a pénzügyi veszteség súlya nagyobb, míg egy egészségügyi szolgáltatónál a páciensek adatainak védelme a legkritikusabb. A Red Teaming megbízás elején, a scoping fázisban érdemes a megbízóval közösen véglegesíteni a mátrixot. Ez biztosítja, hogy a tesztelés végén a riportod olyan prioritásokat tükröz, amelyekkel a szervezet vezetése is azonosulni tud, és a javasolt intézkedések a valódi üzleti kockázatokat célozzák.
Egy egyszerű szkript vagy függvény segíthet a riportok automatizálásában, hogy a besorolás konzisztens maradjon a projekt során.
# Pszeudokód a kockázati szint meghatározására
# A valós implementációban a szinteket (pl. 'Magas')
# numerikus értékekké (pl. 3) kell konvertálni.
def get_risk_level(impact, likelihood):
"""
Meghatározza a kockázati szintet a kárhatás és a valószínűség alapján.
A mátrix logikáját implementálja.
"""
# Példa logika a mátrix alapján
if impact == "Kritikus":
if likelihood in ["Nagyon valószínű", "Valószínű"]:
return "Kritikus"
elif likelihood == "Lehetséges":
return "Magas"
else:
return "Közepes"
elif impact == "Magas":
if likelihood == "Nagyon valószínű":
return "Kritikus"
# ... a többi szabály implementálása
# ... stb. a mátrix összes cellájára
return "Informatív" # Alapértelmezett érték
# Használat
found_vulnerability_impact = "Magas"
found_vulnerability_likelihood = "Nagyon valószínű"
risk = get_risk_level(found_vulnerability_impact, found_vulnerability_likelihood)
print(f"A sebezhetőség kockázati besorolása: {risk}")
# Várt kimenet: A sebezhetőség kockázati besorolása: Kritikus