SonarQube a kódbiztonság szolgálatában — megfelelés a 2024. évi LXIX. törvény követelményeinek.
2025.04.24
Bevezetés
A digitális szolgáltatások robbanásszerű fejlődése mellett egyre nagyobb hangsúlyt kap a szoftverek biztonsága, megbízhatósága és szabályozott fejlesztése. Ezt a tendenciát a jogalkotók is követik: a 2024. évi LXIX. törvény — a hazai NIS2 irányelv átültetése — új szintre emelte az informatikai rendszerek biztonsági követelményeit, különös tekintettel a fejlesztésre és kódminőségre.Az új szabályozás olyan területekre is kiterjed, amelyek eddig a fejlesztőcsapatok belső felelősségi körébe tartoztak. A forráskód biztonságának garantálása, a kockázatok feltárása és dokumentálása, illetve a fejlesztési folyamatok átláthatósága ma már nem csupán szakmai minimum, hanem jogszabályi elvárás is. Ebben a környezetben válik kulcsfontosságúvá a statikus kódelemzés, mint a megelőző kockázatkezelés egyik leghatékonyabb eszköze.A SonarQube — az egyik legismertebb nyílt forráskódú kódelemző platform — hatékonyan támogatja a fejlesztői csapatokat a törvényi megfelelésben. cikk célja, hogy gyakorlati szempontból mutassa be, hogyan alkalmazható a SonarQube a 2024. évi LXIX. törvény követelményeinek teljesítésére, és hogyan építhető be zökkenőmentesen a mindennapi fejlesztési életciklusba.
A 2024. évi LXIX. törvény lényege
A 2024. évi LXIX. törvény — a hálózati és információs rendszerek biztonságának magasabb szintű védelmét célzó NIS2 irányelv hazai jogi implementációja — új, egységesített követelményrendszert vezet be a létfontosságú és digitális szolgáltatók számára. A törvény célja, hogy csökkentse az informatikai rendszerek sérülékenységét, biztosítsa a kiberfenyegetések megelőzését és elősegítse az incidensekre való gyors reagálást.
A szabályozás különös hangsúlyt helyez a folyamatok dokumentálhatóságára, a biztonsági kontrollok meglétére, valamint a kockázatelemzés és kockázatcsökkentés rendszeres végrehajtására. A törvény nemcsak az üzemeltetés, hanem a szoftverfejlesztés szintjén is elvárásokat fogalmaz meg — különösen az alábbi szempontok mentén:
- Biztonságtudatos fejlesztési folyamatok kialakítása (pl. secure coding practices)
- Kódhibák és sebezhetőségek felismerése és kezelése
- Fejlesztési és üzemeltetési naplók létrehozása és megőrzése
- Incidensek nyomon követhetősége és riportálása
- Fejlesztési dokumentációk és auditálhatóság biztosítása
A statikus kódelemzés szerepe a megfelelésben
A statikus kódelemzés (SAST) egy automatizált módszer a forráskód átvizsgálására anélkül, hogy a programot futtatnánk. A cél, hogy már a fejlesztési szakaszban feltárjuk azokat a hibákat, kockázatokat és rossz gyakorlatokat, amelyek a későbbiekben sebezhetőségekhez, működési problémákhoz vagy jogszabályi megfelelés hiányához vezethetnek.
A 2024. évi LXIX. törvény értelmében az érintett szervezeteknek képesnek kell lenniük:
- az informatikai rendszereik kockázatainak folyamatos értékelésére,
- a szoftveres komponensek biztonsági állapotának bizonyítható ellenőrzésére,
- és az alkalmazott védelmi intézkedések dokumentálására.
A statikus kódelemzés éppen ezt biztosítja. Az elemzőmotorok — mint a SonarQube esetében — előre definiált szabálykészletek alapján végignézik a teljes kódbázist, és riportokat készítenek a következő területekről:
- Kódhibák (bugs): Logikai hibák, rosszul használt API-k, lehetséges null pointer kivételek stb.
- Sebezhetőségek (vulnerabilities): Olyan biztonsági problémák, mint SQL injection, XSS, jelszókezelési hibák.
- Code Smells: Olyan nem kritikus problémák, amelyek a kód karbantartását, érthetőségét vagy bővíthetőségét rontják.
- Titkos adatok kiszivárgása: Hardcoded jelszavak, kulcsok, konfigurációs adatok nyilvános repository-ban.
Ezek az eredmények könnyen exportálhatók és archiválhatók, így nemcsak a fejlesztői csapat, hanem az audit során vizsgálódó hatóságok vagy belső ellenőrzési egységek számára is bizonyítható a folyamatos ellenőrzés és megfelelés.
A statikus kódelemzés tehát nemcsak hibakereső eszköz, hanem megfelelésbiztosító mechanizmus, amely integrálható a DevSecOps szemléletbe is. A következő fejezetben részletesen bemutatjuk, hogyan válik a SonarQube ezen folyamat kulcsszereplőjévé.
SonarQube bemutatása
A SonarQube egy nyílt forráskódú statikus kódelemző platform, amelyet világszerte használnak szoftverfejlesztő csapatok a kódminőség és biztonság felügyeletére. Képességei messze túlmutatnak a klasszikus „linting” vagy szintaxis-ellenőrzés keretein: a SonarQube képes átfogó technikai adósság- és sebezhetőség-elemzést nyújtani, valamint megfelelőségi auditokat is támogatni.
Működési modell és architektúra
A SonarQube szerver-ügyfél architektúrán alapul: a forráskódot elemző kliensoldali eszköz (pl. SonarScanner) gyűjti össze az adatokat, majd továbbítja azokat a központi szerverre, ahol a teljes elemzési és riportálási folyamat végbemegy. A webes kezelőfelületen keresztül a fejlesztők, projektvezetők és biztonsági szakemberek is áttekinthetik az elemzések eredményeit.
Széleskörű nyelvtámogatás és bővíthetőség
A SonarQube több mint 30 programozási nyelvet támogat natívan (Java, C#, JavaScript, Python, PHP, C/C++, Go stb.), és bővíthető további nyelvekkel vagy saját szabálykészletekkel is. Emellett plug-in architektúrával rendelkezik, így könnyen integrálható más eszközökkel: például Jira, GitHub, GitLab, Jenkins, Azure DevOps stb.
Kiemelt funkciók
- Quality Gates: Olyan szabályrendszerek, amelyek automatikusan eldöntik, hogy egy commit megfelel-e a kívánt minőségi szintnek.
- Történeti elemzés: Minden elemzés időbélyeggel és verzióval rendelkezik, így könnyen visszakereshetők a korábbi kódbeli változások és azok hatása a minőségre.
- Security Hotspots és OWASP top 10 ellenőrzések: A SonarQube képes felismerni azokat a kódrészleteket, amelyek külön figyelmet igényelnek biztonsági szempontból.
- Részletes riportok: Dashboardok, projektösszesítők, kockázati mátrixok — minden, amire egy fejlesztőcsapatnak vagy megfelelési felelősnek szüksége lehet.
Verziók és licencelés
A SonarQube elérhető Community (nyílt forráskódú), Developer, Enterprise és Data Center kiadásokban. A Community Edition már önmagában is elegendő lehet kisebb csapatoknak a megfelelés elindításához, míg a nagyobb vállalatok számára az Enterprise kiadás kínál teljes körű skálázhatóságot, auditálhatóságot és SAML-alapú hitelesítést is.
A következő részben azt vizsgáljuk meg, miként támogatja konkrétan a SonarQube a 2024. évi LXIX. törvényben foglalt követelmények teljesítését. Az érintett szervezet számára sem elhanyagolható szempont, ne az audit alkalmával derüljön ki a „nem megfelelőség” - ismerve az audit költségeket (1/2025 SZTFH rendelet) - az ismételt audit jelentős anyagi hátrányt is jelenthet.
SonarQube megfelelési szempontból
A 2024. évi LXIX. törvény egyértelmű elvárásokat fogalmaz meg a szervezetekkel szemben a szoftveres rendszerek biztonságos fejlesztése, dokumentált kockázatkezelése, valamint a technikai és szervezeti védelmi intézkedések folyamatos fenntartása terén. A SonarQube ebben a megfelelési keretben három kritikus területen nyújt közvetlen támogatást:
1. Kockázatalapú fejlesztési ellenőrzés
A SonarQube statikus kódelemzője lehetővé teszi, hogy a fejlesztőcsapat automatizált kockázatfeltárást végezzen már a kódírás fázisában. Az eszköz képes azonosítani:
- Kritikus sebezhetőségeket (pl. SQL injection, command injection),
- Funkcionális hibákat (pl. rosszul kezelt kivételek, nem inicializált változók),
- Nem biztonságos mintákat (pl. hardcoded jelszavak, titkos kulcsok).
Ezek a jelzések kockázati szinttel (minor/major/critical/blocker) vannak ellátva, így a fejlesztők és projektgazdák azonnal tudnak priorizálni.
2. Jelentéskészítés és auditálhatóság
A SonarQube minden egyes kódanalízis során részletes riportokat generál, amelyek:
- dokumentálják a kód biztonsági és minőségi állapotát,
- visszamenőleg is elérhetők (verziózott naplózás),
- exportálhatók PDF, CSV vagy API-n keresztül más compliance-rendszerekbe.
Ez különösen fontos a törvény által előírt belső ellenőrzések és külső auditok során, mivel a megfelelés igazolhatóvá válik a kód szintjén is — nem csupán elvi szabályzatok alapján. Továbbá a
3. Minőségi kapuk (Quality Gates) mint megfelelési eszközök
A minőségi kapuk olyan szabálykészletek, amelyeket a szervezet testre szabhat a saját kockázatértékelése alapján. Például:
- „Nem engedélyezett merge, ha van kritikus sebezhetőség a kódban.”
- „A kód coverage legalább 80% legyen unit testekkel.”
- „Nem lehet új technikai adósság a fő ágon.”
Ezek a kapuk nemcsak technikai, hanem jogi kockázatcsökkentő mechanizmusokként is értelmezhetők, mivel kizárják a problémás kód éles rendszerbe kerülését.
Összekapcsolás más megfelelőségi rendszerekkel
A SonarQube integrálható más biztonsági és megfelelőségi platformokkal (pl. Jira, GitLab Issues, audit log aggregátorok), így egy egységes megfelelőségi lánc építhető. Az API-kon keresztül akár automatikus megfelelőségi riport is generálható — pl. heti bontásban.
Gyakorlati alkalmazás — fejlesztési életciklusba integrálva
A megfelelés nem egyszeri feladat, hanem folyamatos tevékenység, amely a fejlesztési életciklus minden pontján jelen kell legyen. A SonarQube ebben kínál erős támogatást: zökkenőmentesen integrálható a leggyakoribb CI/CD eszközökbe és fejlesztői workflow-kba. Így a kódellenőrzés és a megfelelőségi kontrollok automatizált, skálázható módon működnek.
CI/CD pipeline integráció
A SonarQube könnyedén beépíthető modern fejlesztési platformokba, mint:
- GitHub Actions: pull requestekhez köthető elemzések, automatikus kommentek a hibákról.
- GitLab CI/CD: pipeline szinten történő kódelemzés, minőségi kapuhoz kötött build-lépések.
- Jenkins: plug-innel integrálható, testreszabható futások.
- Azure DevOps: build és release pipeline-okba illesztés, jelentések megjelenítése a dashboardon.
A gyakorlatban ez azt jelenti, hogy minden új commit vagy merge request automatikusan elindítja a statikus kódelemzést, és ha a minőségi kapu nem teljesül, a build leáll, így a kockázatos vagy hibás kód nem kerülhet élesítésre.
Quality Gate a fejlesztési workflow részeként
A quality gate-ek minden projektben testreszabhatók a szervezet kockázatkezelési politikája alapján. Egy példa megfelelési kapu lehet:
- Kritikus vagy major hibák száma = 0
- Code coverage legalább 80%
- Új technikai adósság < 5%
- Új sebezhetőségek száma = 0
Ezek a szabályok egyfajta automatikus „compliance checkpointként” működnek — minden egyes kódváltoztatásnál ellenőrzik, hogy az megfelel-e a belső és törvényi elvárásoknak.
Compliance-as-Code: megfelelés kódba írva
A SonarQube segítségével lehetőség van a megfelelőségi elvárásokat kódszintű szabályokként definiálni. Ez az ún. „compliance-as-code” megközelítés lehetővé teszi, hogy:
- a megfelelési szabályok verziózottak és átláthatók legyenek,
- automatizáltan érvényesüljenek minden fejlesztési ciklusban,
- gyorsan adaptálhatók legyenek a változó törvényi környezethez.
Ez a módszertan segít a fejlesztőknek a kódírás közben is a törvényi megfelelés keretei között maradni, így nem utólagos ellenőrzésre épül a rendszer, hanem beépül a napi rutinba.
Ajánlások fejlesztőcsapatoknak
A SonarQube bevezetése nem pusztán egy új eszköz telepítése — ez egy fejlesztési kultúraváltás, amely a kódminőséget a megfelelőséggel egyenértékű fontosságú tényezőként kezeli. A következőkben néhány gyakorlati tanácsot adunk azoknak a csapatoknak, akik a 2024. évi LXIX. törvény előírásainak megfelelően szeretnék alkalmazni a SonarQube-ot.
1. Fokozatos bevezetés, életszerű célokkal
Ne próbáljunk meg az első napon minden hibát javítani. Induljunk a következő elv alapján:
„Ami új, annak jónak kell lennie.”
Vagyis az új kódokra szigorú minőségi kapukat állítunk be, míg a meglévő (legacy) kód esetén fokozatos javítást alkalmazunk. A SonarQube lehetővé teszi, hogy külön kezeljük az új és meglévő kódokat, így a fejlesztés nem torpan meg a hibák tömege miatt.
2. A szabályrendszer testreszabása a törvényi elvárásokhoz
A SonarQube szabálykészlete moduláris. Érdemes a következő szabálycsoportokra fókuszálni:
- Security Rules (OWASP Top 10, CWE): törvényi megfeleléshez elengedhetetlen.
- Maintainability Rules: segítenek a technikai adósság csökkentésében.
- Code Convention Rules: biztosítják az egységes kódstílust.
Az auditált megfeleléshez érdemes saját custom quality profile-t létrehozni, amely megfelel a belső biztonsági szabályzatnak és a LXIX. törvény követelményeinek is.
3. Dokumentálás és tudásmegosztás
A SonarQube kiváló lehetőség a belső fejlesztési szabályok formális dokumentálására és betartatására. Ajánlott:
- A minőségi kapuk és szabályprofilok dokumentálása (pl. belső wiki).
- Fejlesztők oktatása az eszköz használatára (onboarding folyamat részeként).
- Kódfelülvizsgálatok során a SonarQube eredmények aktív használata.
Ezzel nemcsak a törvényi megfelelés, hanem a fejlesztői kompetenciák is fejlődnek, csökkentve a hibázási lehetőségeket.
4. Szoros együttműködés az IT-biztonsággal és a megfelelési felelősökkel
A SonarQube által generált jelentések értékes inputként szolgálhatnak:
- IT-biztonsági elemzésekhez, ahol a sebezhetőségek kockázati szintjeit kell meghatározni.
- Belső vagy külső auditokra, ahol dokumentált bizonyíték szükséges a minőségi ellenőrzésre.
- Kockázatkezelési jelentésekhez, mivel a technikai adósság is beszámít a rendszerszintű kockázatba.
Záró gondolatok
A 2024. évi LXIX. törvény új korszakot nyitott a digitális rendszerek biztonságának hazai szabályozásában. Az elvárások — különösen a fejlesztési folyamatok átláthatósága, a biztonsági kockázatok feltérképezése és a hibák dokumentált kezelése — nem hagynak teret az ad-hoc működésnek. Ebben az új környezetben a kódminőség és megfelelőség kéz a kézben jár.
A SonarQube nem csupán egy eszköz, hanem egy olyan kultúraváltás katalizátora, amely segíti a fejlesztőcsapatokat abban, hogy a biztonság és a minőség már a kódsorok szintjén érvényesüljön. Automatikus, auditálható és skálázható — pontosan az, amire egy törvényi megfelelési folyamatban szükség van.
Ráadásul a megfelelés nemcsak „megúszandó teher” lehet, hanem versenyelőny is. Az a szervezet, amely képes bizonyítani, hogy a szoftverei biztonságosak, megbízhatóak és jól dokumentáltak, könnyebben nyer el közbeszerzéseket, partneri bizalmat vagy akár nemzetközi tanúsítványokat.
A jövő fejlesztése nemcsak gyors, hanem átlátható, tesztelhető és auditálható is kell legyen. A SonarQube ebben a jövőben nem opcionális eszköz, hanem stratégiai alapköve minden felelős fejlesztési folyamatnak.