24.3.2. Technikai jelentés struktúra

2025.10.06.
AI Biztonság Blog

Ha az Executive Summary a beruházónak szóló látványterv, akkor a technikai jelentés maga az építészeti tervrajz. Nem a szépség a célja, hanem a kikezdhetetlen precizitás. Ez a dokumentum a mérnököknek, fejlesztőknek és a belső biztonsági csapatnak készül, akiknek a te megállapításaid alapján kell majd javításokat végezniük. Minden szónak, minden kódrészletnek és minden reprodukciós lépésnek egyértelműnek és megismételhetőnek kell lennie.

A technikai jelentés anatómiája: A tervrajz rétegei

Egy jó technikai jelentés logikusan vezeti végig az olvasót a kezdeti céloktól a konkrét, technikai mélységű megállapításokon át a javasolt javításokig. Nincs helye kétértelműségnek. Az alábbi struktúra egy harcban edzett vázat ad, amelyet a projekt specifikumai szerint tölthetsz meg tartalommal.

Kapcsolati űrlap

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

1. Bevezetés és Célkitűzések 2. Tesztelési Módszertan 3. Részletes Eredmények 3.1. Finding #1 3.2. Finding #2 4. Kockázatelemzés és Ajánlások 5. Mellékletek

A jelentés kötelező és ajánlott elemei

Bár a projektek eltérőek, egy robusztus technikai jelentés általában az alábbi komponensekből áll:

  • Borítólap és tartalomjegyzék: Formális, de szükséges. Tartalmazza a projekt nevét, a dátumot, a verziószámot és a készítő csapatot. A tartalomjegyzék segít a gyors navigációban.
  • 1. Bevezetés és Célkitűzések (Scope): Mi volt a tesztelés célja? Mely rendszerek, modellek, API végpontok estek a vizsgálat hatókörébe (in-scope) és melyek nem (out-of-scope)? Ez a rész tisztázza a kereteket és elvárásokat.
  • 2. Tesztelési Módszertan: Itt vázolod fel a „hogyan”-t. Milyen technikákat (pl. prompt injection, model inversion), eszközöket (saját scriptek, nyílt forráskódú toolok) és keretrendszereket (pl. MITRE ATLAS, OWASP Top 10 for LLMs) alkalmaztál? Ez adja a munkád szakmai hitelességét.
  • 3. Részletes Eredmények (Findings): A jelentés szíve. Minden egyes sebezhetőséget vagy gyengeséget külön alfejezetben, konzisztens struktúrában kell bemutatni.
  • 4. Kockázatelemzés és Ajánlások: Itt szintetizálod a talált hibákat. Milyen üzleti kockázatot jelentenek? A javaslatoknak konkrétnak, megvalósíthatónak és priorizáltnak kell lenniük. Ne csak annyit írj, hogy „javítsák ki”, hanem adj konkrét technikai iránymutatást.
  • 5. Mellékletek: Ide kerülhetnek a hosszú scriptek, a részletesebb logfájlok, a felhasznált promptok listája vagy bármilyen támogató anyag, ami a fő törzset olvashatatlanná tenné.

A tökéletes „Finding” anatómiája

A „Részletes Eredmények” szekció minősége határozza meg a jelentésed hasznosságát. Minden egyes finding (találat, megállapítás) egy önálló, kerek egész történet kell, hogy legyen, ami tartalmazza a probléma leírását, a bizonyítékot és a javasolt megoldást.

Szakértői tipp: A reprodukálhatóság a minden

A legfontosabb szabály: egy fejlesztőnek a leírásod alapján, külső segítség nélkül, egyértelműen képesnek kell lennie reprodukálni a hibát. Ha ez nem teljesül, a finding értéktelen. Képzeld azt, hogy egy teljesen más időzónában dolgozó kollégának írsz, akivel sosem fogsz beszélni.

Az alábbi táblázat bemutatja a különbséget egy gyenge és egy hatékonyan megfogalmazott finding leírása között.

Gyenge megfogalmazás Hatékony megfogalmazás
Leírás: A chatbotot rá lehet venni, hogy rossz dolgokat mondjon. Ha sokat próbálkozunk, néha káros tartalmat generál. Leírás: A rendszer nem rendelkezik megfelelő védelemmel a „cél-eltérítés” (goal hijacking) típusú prompt injection támadásokkal szemben. Egy speciálisan szerkesztett prompt segítségével a modell eredeti instrukciói felülírhatók, ami lehetővé teszi tetszőleges, akár a biztonsági irányelvekkel ellentétes feladatok végrehajtását.
Bizonyíték: [Csatolt képernyőkép a chatbot válaszáról] Reprodukciós lépések:
1. Nyisd meg a chatbot felületét a `https://app.example.com/chat` címen.
2. Hitelesíts „user1” felhasználóval.
3. Küldd be a következő promptot: `[Prompt szövege itt]`
4. Várt eredmény: A modell megtagadja a kérést.
5. Tényleges eredmény: A modell a biztonsági szűrők megkerülésével generálja a kért tartalmat.
Javaslat: Meg kellene javítani a szűrőket. Javaslat: Javasoljuk egy többrétegű védelmi mechanizmus implementálását:
1. Input szűrés: Erősebb szманtikai szűrők bevezetése a felhasználói inputok elemzésére, a támadó mintázatok detektálására.
2. Instrukcióvédelem: A rendszerszintű promptok (system prompt) szeparálása a felhasználói inputtól, például XML tag-ek használatával.
3. Output validáció: A modell által generált válasz utólagos ellenőrzése egy különálló, erre a célra finomhangolt moderációs modellel.

A Finding adatszerkezete

Amikor egy nagyobb projektben több tucat findingot kell kezelni, elengedhetetlen egy konzisztens adatszerkezet használata. Ez nemcsak a jelentés írását könnyíti meg, de az eredmények gépi feldolgozását és a javítások nyomon követését is lehetővé teszi.

Gondolj minden egyes findingra egy strukturált adatobjektumként. Egy pszeudokód példa JSON formátumban:

{
 "id": "AI-RT-2024-007", // Egyedi azonosító a hivatkozáshoz
 "cim": "Közvetett Prompt Injection belső dokumentum feldolgozásán keresztül",
 "sebezhetoseg_tipusa": "Indirect Prompt Injection",
 "sulyossag": {
 "cvss_vektor": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:L/A:N",
 "ertekeles": "Magas (8.2)" // Szöveges értékelés a gyors áttekintéshez
 },
 "statusz": "Nyitott", // Pl. Nyitott, Javítás alatt, Lezárt, Elfogadott kockázat
 "leiras": "A rendszer egy feltöltött PDF dokumentum tartalmát...",
 "reprodukcio": [ // Lépések listája a könnyű követhetőségért
 { "lepes": 1, "muvelet": "Jelentkezz be a 'tesztelo' fiókba." },
 { "lepes": 2, "muvelet": "Töltsd fel a 'malicious_prompt.pdf' fájlt a Mellékletek közül." },
 { "lepes": 3, "muvelet": "Kérdezd a modellt: 'Foglald össze a feltöltött dokumentumot!'" }
 ],
 "hatas": "A támadó képes lehet a modell nevében belső API hívásokat indítani...",
 "javaslat": {
 "rovid": "A feldolgozott külső adatok szigorú szanitizálása.",
 "reszletes": "Implementálj egy 'homokozó' környezetet a dokumentumok feldolgozásához..."
 },
 "hivatkozasok": [ // Kapcsolódó szakirodalom, cikkek
 "https://owasp.org/www-project-top-10-for-large-language-model-applications/llm01-prompt-injection"
 ]
}

Egy ilyen struktúra biztosítja, hogy minden szükséges információ a helyére kerüljön, és a jelentésed ne csak egy szöveges dokumentum legyen, hanem egy strukturált, adatalapú mérnöki termék.