Szoftverfejlesztés AI-asszisztenssel: Kiberbiztonsági kockázatok és fejlesztői ajánlások
A mesterséges intelligencia egyre meghatározóbb szerepet játszik a szoftverfejlesztésben. A népszerű AI/LLM eszközök (a továbbiakban csak AI) segítségével a fejlesztők gyorsabban és hatékonyabban hozhatnak létre funkcionális kódrészleteket. Ugyanakkor a Backslash Security nemrégiben publikált tanulmányából az is kiderült, ezek az eszközök hajlamosak sebezhető, biztonsági hibákat tartalmazó kódokat generálni, különösen akkor, ha a fejlesztők nem fogalmaznak meg konkrét biztonsági elvárásokat a promptjaikban.
A tanulmány alapján kijelenthető, hogy a szoftverkód-generálásra képes modellek tipikusan abból főznek, amiből tanultak, így ha például egy nyelvnek vagy keretrendszernek vannak beépített biztonsági eljárásai, a generált kódban ezek jó eséllyel szerepelni fognak. Ugyanakkor számos sérülékenységtípus megelőzésére nincs beépített megoldás, vagy azokhoz a fejlesztők részéről kiterjedt kockázatelemzésre és tervezésre van szükség, így a generált kódok a biztonsági követelményeket már nem teljesítik.
Miért veszélyes a biztonsági követelmények nélküli AI-kód?
A generatív AI nem rendelkezik kontextussal a fejlesztés üzemeltetési környezetéről, nem látja a teljes szoftver logikáját, és nem tudja automatikusan, milyen fenyegetések ellen kell védekezni. Emiatt a következő hibák merülnek fel a leggyakrabban:
- Közvetlenül beilleszt felhasználói inputot a kimenetbe → XSS
- Külső URL-eket használ anélkül, hogy ellenőrizné azokat → SSRF, open redirect
- Parancsokat generál os.system()-mel vagy hasonlókkal → command injection
- Nem védi az űrlapokat CSRF ellen → CSRF támadások
- Nem ellenőrzi megfelelően a feltölthető fájlokat → Insecure File Upload
- Nem optimalizálja az erőforráshasználatot és nem gyorsítótáraz → DoS
Biztonsági szemlélet a promptolásban
Ahogyan a szoftverkódokat is részletesen dokumentálni kell az azokon dolgozó többi fejlesztő számára, úgy az AI-nak is meg kell mondanunk, hogy milyen biztonsági követelmények szerint dolgozzon. A promptunk tehát nem állhat meg ott, hogy „írj egy login rendszert”, hanem legalább így kellene kinéznie:
„Write a secure login form in Flask that uses bcrypt for password hashing, includes CSRF protection, and prevents XSS by escaping user input. Follow OWASP ASVS guidelines.”
Ez azt jelenti, hogy tudatosan beépítjük a biztonsági elvárásokat a promt utasításba. Mintha egy junior fejlesztőnek adnánk feladatokat — minél konkrétabbak vagyunk, annál kisebb az esélye a hibáknak.
Magát a projektet pedig ne adjuk át egy az egyben a modellnek! Eszközként használjuk az AI-t, ne pedig helyettesként! Ne várjuk, hogy magától kockázatelemezzen, tervezzen, követelményrendszereket dolgozzon fel, implementáljon és teszteljen. Mindig bontsuk a projektet apró, részletesen promtolt részfeladatokra!
Követendő követelményrendszerek
Ne hagyjunk a modellnek nagy szabadságot (értsd, ne kreatívkodjon) kiberbiztonság terén. Pontosan definiáljuk a követelményeket az iparági standardoknak számító követelményrendszerek és ajánlások alapján.
- OWASP Developer Guide
- Web Security Testing Guide – OWASP WSTG
- Mobile Application Security Testing Guide – OWASP MASTG (korábban MSTG)
- Application Security Verification Standard – OWASP ASVS
- Mobile Application Security Verification Standard – OWASP MASVS
- Cloud Application Security Assessment – CASA Tier 2
- Google Mobile Application Security Assessment – MASA
- Technical Guide to Information Security Testing and Assessment – NIST SP 800-115
Önellenőrzés és független sérülékenységvizsgálat
Még ha a prompt tökéletesnek is tűnik, az AI nem érti meg az üzleti logikánk sajátosságait. Ezért:
- A generált kódot mindig manuálisan át kell nézni.
- Ajánlott több körben tesztelni a promt eredményét és addig finomítani, míg az elfogadható mértékűre csökken az AI szabadsága.
- Rendszeresen teszteljük a promtunkat több modellben, biztonsági szempontból is vizsgálva az eredményeket!
- Javasolt automatikus biztonsági teszteket végezni (pl. SAST, DAST).
- Évente legalább egyszer független, külső fél által végzett sérülékenységvizsgálat szükséges — főleg, ha AI is részt vesz a fejlesztésben.
AI-alapú szoftverfejlesztés tanácsadás szolgáltatás
Keresse kollégáinkat az Árajánlat gombbal, és kérjen tájékoztatást az Önök által üzemeltetett és/vagy fejlesztett rendszerek fenyegetettségéről!
Kapcsolódó szolgáltatások és termékek
A sérülékenységvizsgálat és penetrációs teszt szolgáltatás A sérülékenységvizsgálat és penetrációs teszt vizsgálati paraméterei Sérülékenységvizsgálat és penetrációs teszt lépései Sérülékenységvizsgálat, penetrációs teszt és red teaming jellemzői Automatikus sérülékenységvizsgálat korlátai, eredményei OWASP Top 10 sérülékenységvizsgálat és penetrációs teszt OWASP Web Security Testing Guide Checklist Űripari szervezetek, űrrendszerek kiberbiztonságaHírek, események, termékek és riasztások
Hírek, események, termékek és riasztások
Iratkozzon fel hírlevelünkre és ne maradjon le a legfontosabb kiberbiztonsági hírekről, eseményekről, termékekről és riasztásokról!