Főoldal Cikkek Tanácsadás Szitar.hu

2025-04-24

SonarQube a kódbiztonság szolgálatában

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.

SonarSource Partner