Alkalmazásbiztonság (application security, appsec): a fogalom jelentése és magyarázata

Az alkalmazásbiztonság az informatikai rendszerek védelmét jelenti, különösen a szoftverek és applikációk területén. Célja, hogy megakadályozza a támadásokat és adatlopásokat, így biztosítva a felhasználók biztonságát és adatainak védelmét.
ITSZÓTÁR.hu
40 Min Read
Gyors betekintő

A modern digitális világban az alkalmazások jelentik a mindennapi életünk gerincét, legyen szó kommunikációról, bankolásról, szórakozásról vagy üzleti folyamatokról. Az okostelefonunkon futó applikációktól kezdve a komplex vállalati szoftverrendszerekig, minden program alapvető szerepet játszik az információáramlásban és az adatok kezelésében. Ezzel a széleskörű elterjedtséggel azonban együtt jár egy egyre növekvő biztonsági kockázat is, hiszen az alkalmazások gyakran válnak a kibertámadások elsődleges célpontjává.

Az alkalmazásbiztonság, angolul Application Security vagy röviden AppSec, pontosan ezekre a kihívásokra ad választ. Ez a szakterület azzal foglalkozik, hogy az alkalmazások fejlesztési, üzemeltetési és karbantartási életciklusa során miként lehet megelőzni, felderíteni és orvosolni a biztonsági sebezhetőségeket. Célja, hogy az alkalmazások ne csak funkcionálisan működjenek, hanem ellenálljanak a rosszindulatú támadásoknak, megvédve ezzel az érzékeny adatokat és a rendszerek integritását.

Az elmúlt évtizedekben a kiberbiztonsági fókusz jelentősen eltolódott. Míg korábban a hálózati és infrastruktúra-biztonság állt a középpontban, addig mára egyértelművé vált, hogy a legtöbb támadás az alkalmazási réteget célozza. Ez a váltás nem véletlen: az alkalmazások komplexebbé váltak, számos külső komponenst és API-t használnak, és gyakran közvetlen hozzáférést biztosítanak érzékeny adatokhoz.

A sikeres támadások következményei súlyosak lehetnek: adatlopás, pénzügyi veszteség, reputációs kár, jogi eljárások és a felhasználói bizalom elvesztése. Éppen ezért az alkalmazásbiztonság ma már nem csupán egy technikai kérdés, hanem stratégiai fontosságú üzleti prioritás, amelynek hiánya jelentős kockázatot jelenthet bármely szervezet számára.

Az alkalmazásbiztonság fogalma és fejlődése

Az alkalmazásbiztonság egy gyűjtőfogalom, amely magában foglalja mindazokat a folyamatokat, gyakorlatokat és eszközöket, amelyek célja az alkalmazások védelme a potenciális fenyegetésekkel szemben. Ez a védelem az alkalmazás teljes életciklusára kiterjed, a tervezéstől és fejlesztéstől kezdve az üzemeltetésen és karbantartáson át egészen a kivonásig.

A kezdetekben az alkalmazásbiztonságot gyakran utólagos gondolatként kezelték. A fejlesztők elsődleges célja a funkcionalitás megvalósítása volt, és a biztonsági ellenőrzéseket csak a szoftver elkészülte után, a tesztelési fázis végén végezték el. Ez a megközelítés azonban rendkívül költségesnek és elégtelennek bizonyult, mivel a hibák kijavítása a fejlesztési ciklus későbbi szakaszaiban sokkal több erőforrást igényel.

A 2000-es évek elején, a webes alkalmazások robbanásszerű elterjedésével, egyre nyilvánvalóbbá vált az alkalmazásréteg sebezhetősége. Az olyan szervezetek, mint az OWASP (Open Web Application Security Project), kulcsszerepet játszottak abban, hogy felhívják a figyelmet a leggyakoribb webes sebezhetőségekre, és útmutatókat, eszközöket biztosítsanak a fejlesztők és biztonsági szakemberek számára.

Ez a felismerés vezetett a biztonság a tervezésben (Security by Design) és a biztonság a fejlesztési ciklusban (Security in the Software Development Lifecycle – SSDLC) elvek térnyeréséhez. Ezek a megközelítések azt hangsúlyozzák, hogy a biztonságot már a legkorábbi fázisokban, a tervezéskor és a kódoláskor integrálni kell, nem pedig utólag „ráragasztani” az elkészült termékre.

Napjainkban az AppSec folyamatosan fejlődik, alkalmazkodva az új technológiákhoz, mint a felhőalapú rendszerek, a mikroszolgáltatások, a konténerek és a szervermentes architektúrák. A hangsúly a proaktív megelőzésen, az automatizáláson és a fejlesztési folyamatokba való zökkenőmentes integráción van, amit a DevSecOps filozófia testesít meg a leginkább.

Az alkalmazásbiztonság ma már nem egy választható extra, hanem a szoftverfejlesztés elengedhetetlen, integrált része, amely a digitális bizalom alapját képezi.

A sebezhetőségek világa: Gyakori fenyegetések és az OWASP Top 10

Az alkalmazásbiztonság egyik alappillére a fenyegetések és sebezhetőségek mélyreható ismerete. A támadók folyamatosan keresik a rendszerek gyenge pontjait, és ha sikeresen ki tudnak használni egy sebezhetőséget, komoly károkat okozhatnak. Az OWASP Top 10 lista az egyik legismertebb és leggyakrabban hivatkozott forrás, amely a webes alkalmazások legkritikusabb biztonsági kockázatait gyűjti össze.

Az OWASP Top 10 nem egy statikus lista, hanem rendszeres időközönként frissül, tükrözve a fenyegetési környezet változásait. A lista célja, hogy felhívja a fejlesztők, biztonsági szakemberek és üzleti döntéshozók figyelmét a legfontosabb kockázatokra, segítve őket a hatékony védekezésben.

Az OWASP Top 10 leggyakoribb sebezhetőségei (példák a 2021-es kiadás alapján):

Az alábbiakban részletesebben bemutatjuk az OWASP Top 10 lista néhány kiemelt elemét, amelyek a mai napig rendkívül relevánsak.

  • A01:2021 – Broken Access Control (Hibás hozzáférés-vezérlés)
    Ez a kategória akkor jelent problémát, ha a felhasználók túlságosan nagy jogosultságokat kapnak, vagy ha a rendszer nem megfelelően ellenőrzi a felhasználói kéréseket. Például, ha egy felhasználó képes hozzáférni egy másik felhasználó fiókjához vagy adataihoz, egyszerűen egy URL módosításával. Ez gyakran vezet jogosulatlan információfelfedéshez, adatmódosításhoz vagy akár rendszeradminisztrációs hozzáféréshez.
  • A02:2021 – Cryptographic Failures (Kriptográfiai hibák)
    Ez a sebezhetőség akkor áll fenn, ha az érzékeny adatokat nem megfelelően titkosítják vagy védik. Például, ha a jelszavakat egyszerű szövegként tárolják, vagy gyenge titkosítási algoritmusokat és kulcsokat használnak. Ez lehetővé teheti a támadóknak, hogy hozzáférjenek a bizalmas adatokhoz, mint például hitelkártyaszámokhoz, személyes azonosító adatokhoz vagy üzleti titkokhoz.
  • A03:2021 – Injection (Injektálás)
    Az injektálás az egyik legrégebbi és legveszélyesebb sebezhetőség. Akkor fordul elő, amikor a felhasználói bemenetet nem megfelelően validálják vagy szanálják, és a támadó rosszindulatú kódot (pl. SQL, NoSQL, OS parancsok, LDAP, XML, XPath) tud bejuttatni a rendszerbe. Ennek eredményeként a támadó manipulálhatja az adatbázist, végrehajthat parancsokat a szerveren, vagy hozzáférhet bizalmas információkhoz. Az SQL injektálás a legismertebb példa.
  • A04:2021 – Insecure Design (Nem biztonságos tervezés)
    Ez egy újabb kategória, amely a tervezési hibákra fókuszál. Nem csak a kódolási hibákról van szó, hanem arról, hogy az alkalmazás architektúrájában vagy tervezésében vannak alapvető biztonsági hiányosságok. Például, ha a rendszer nem rendelkezik megfelelő fenyegetésmodellezéssel, vagy ha a biztonsági elveket nem építették be a tervezési fázisba. Ez nehezen orvosolható, és gyakran az egész alkalmazás újratervezését igényli.
  • A05:2021 – Security Misconfiguration (Biztonsági hibás konfiguráció)
    Ez a sebezhetőség akkor jelentkezik, ha a biztonsági beállítások hibásak, hiányosak vagy alapértelmezettek maradnak. Például, ha a szerverek, adatbázisok vagy alkalmazások alapértelmezett jelszavakkal futnak, vagy ha a nem használt funkciók, portok nincsenek letiltva. Ez a hiba gyakran a fejlesztők vagy rendszeradminisztrátorok hanyagságából adódik, és könnyen kihasználható.
  • A06:2021 – Vulnerable and Outdated Components (Sebezhető és elavult komponensek)
    A modern alkalmazások számos harmadik féltől származó könyvtárat, keretrendszert és modult használnak. Ha ezek a komponensek ismert sebezhetőségeket tartalmaznak, és nem frissítik őket rendszeresen, az egész alkalmazás veszélybe kerülhet. Ez a kategória rávilágít a szoftver-ellátási lánc biztonságának fontosságára.
  • A07:2021 – Identification and Authentication Failures (Azonosítási és hitelesítési hibák)
    Ez a hiba akkor fordul elő, ha a felhasználói azonosítási vagy hitelesítési mechanizmusok gyengék vagy hibásak. Például, ha a jelszóvisszaállítási folyamat könnyen megkerülhető, vagy ha a többfaktoros hitelesítés hiányzik. Ez lehetővé teheti a támadóknak, hogy feltörjék a felhasználói fiókokat, és jogosulatlan hozzáférést szerezzenek.
  • A08:2021 – Software and Data Integrity Failures (Szoftver- és adatintegritási hibák)
    Ez a kategória a szoftver vagy adatok integritásának hiányára utal, ami akkor fordul elő, ha a kód vagy az adatok manipulálhatók anélkül, hogy a rendszer észrevenné. Például, ha a szoftverfrissítéseket nem ellenőrzik kriptográfiailag, vagy ha a kritikus üzleti logika adatai manipulálhatók.
  • A09:2021 – Security Logging and Monitoring Failures (Biztonsági naplózási és monitorozási hibák)
    Ha a rendszer nem naplózza megfelelően a biztonsági eseményeket, vagy ha a naplókat nem monitorozzák hatékonyan, a támadások észrevétlenül maradhatnak. Ez a sebezhetőség megnehezíti a támadások felderítését, elemzését és elhárítását, növelve a károkozás kockázatát.
  • A10:2021 – Server-Side Request Forgery (SSRF) (Szerveroldali kérés hamisítása)
    Az SSRF akkor fordul elő, ha egy webalkalmazás egy felhasználó által megadott URL-t tölt be, de nem validálja megfelelően a célt. Ez lehetővé teheti a támadók számára, hogy a szerver nevében kéréseket küldjenek belső hálózatokba vagy más, a szerver számára elérhető rendszerekbe, hozzáférve ezzel bizalmas adatokhoz vagy belső szolgáltatásokhoz.

Az OWASP Top 10 csak a jéghegy csúcsa, de kiváló kiindulópontot biztosít az alkalmazásbiztonsági stratégiák kidolgozásához. A legfontosabb tanulság, hogy a biztonságot már a tervezési fázistól kezdve be kell építeni, és a fejlesztőknek alapos ismeretekkel kell rendelkezniük ezekről a fenyegetésekről.

Az alkalmazásbiztonság integrálása a szoftverfejlesztési életciklusba (SDLC)

A leghatékonyabb alkalmazásbiztonsági megközelítés az, ha a biztonságot nem különálló fázisként, hanem a szoftverfejlesztési életciklus (SDLC) szerves részeként kezeljük. Ezt nevezzük Secure SDLC-nek. A cél, hogy a biztonsági szempontok már a legkorábbi fázisokban megjelenjenek, és végigkísérjék a szoftver útját a tervezéstől a telepítésig és azon túl is.

Biztonság a tervezési fázisban: Fenyegetésmodellezés és biztonsági architektúra

Mielőtt egyetlen kódsor is megíródna, alapvető fontosságú a biztonsági kockázatok azonosítása és mérlegelése. A fenyegetésmodellezés (Threat Modeling) egy strukturált folyamat, amely segít felmérni, hogy egy alkalmazás milyen potenciális támadásoknak lehet kitéve, és milyen gyenge pontjai vannak. Ez magában foglalja az alkalmazás architektúrájának elemzését, az adatfolyamok azonosítását és a potenciális támadási vektorok feltérképezését.

A fenyegetésmodellezés során olyan kérdéseket teszünk fel, mint: „Milyen adatokat kezel az alkalmazás, és azok mennyire érzékenyek?”, „Ki férhet hozzá az alkalmazáshoz, és milyen jogosultságokkal?”, „Milyen külső rendszerekkel kommunikál?”, „Milyen támadási felületek vannak?” A válaszok alapján azonosíthatók a kritikus pontok és a lehetséges kockázatok.

Ezzel párhuzamosan a biztonsági architektúra tervezése is kulcsfontosságú. Ez azt jelenti, hogy a biztonsági követelményeket már a rendszer felépítésébe beépítjük. Például, hol tároljuk az érzékeny adatokat, hogyan valósul meg a hitelesítés és jogosultságkezelés, hogyan kezeljük a hibákat, és milyen titkosítási mechanizmusokat alkalmazunk. A „biztonság a tervezésben” elv itt ölt testet a leginkább.

Biztonságos kódolás: Elvek és gyakorlatok

A fejlesztési fázisban a biztonságos kódolási gyakorlatok alkalmazása elengedhetetlen. Ez nem csupán a nyilvánvaló hibák elkerülését jelenti, hanem egy biztonságtudatos gondolkodásmódot is igényel a fejlesztőktől. Néhány alapelv:

  • Bemeneti adatok validálása és szanálása: Minden felhasználói bemenetet ellenőrizni kell, és megtisztítani a potenciálisan rosszindulatú karakterektől, mielőtt felhasználnánk azokat (pl. SQL injektálás, XSS megelőzése).
  • Kimeneti adatok kódolása: A felhasználók felé megjelenített adatok megfelelő kódolása megakadályozza a Cross-Site Scripting (XSS) támadásokat.
  • Megfelelő hibakezelés: A hibákról soha ne derüljenek ki érzékeny információk (pl. veremkövetés, adatbázis-séma). A hibakezelés legyen robusztus és biztonságos.
  • Jelszavak biztonságos kezelése: A jelszavakat soha ne tároljuk egyszerű szövegként. Használjunk erős hash algoritmusokat (pl. bcrypt, scrypt) és sózást.
  • Hozzáférési jogosultságok elve: A „legkisebb jogosultság elve” szerint a felhasználók és rendszerek csak a feladatuk elvégzéséhez feltétlenül szükséges jogokkal rendelkezzenek.
  • Szoftverfüggőségek kezelése: Rendszeresen ellenőrizzük és frissítsük a harmadik féltől származó könyvtárakat és komponenseket, hogy elkerüljük az ismert sebezhetőségeket.
  • Biztonsági kód felülvizsgálat: Kód felülvizsgálatok során a biztonsági szempontokat is vizsgálni kell, nem csak a funkcionalitást és a kódminőséget.

A fejlesztők folyamatos képzése és a biztonsági szabványok betartása kulcsfontosságú a biztonságos kódolási kultúra kialakításában.

Biztonsági tesztelés: Statikus, dinamikus és interaktív elemzések

A tesztelési fázisban számos technika áll rendelkezésre az alkalmazásbiztonsági hibák felderítésére. Ezek a módszerek kiegészítik egymást, és együttesen biztosítanak átfogó képet az alkalmazás biztonsági állapotáról.

SAST (Static Application Security Testing) – Statikus alkalmazásbiztonsági tesztelés

A SAST eszközök a forráskódot, bájtkódot vagy bináris kódot elemzik anélkül, hogy az alkalmazást futtatnák. Olyan, mint egy „statikus” kódvizsgálat, amely a lehetséges sebezhetőségeket mintákat vagy szabályokat követve azonosítja. Képesek felderíteni az olyan hibákat, mint az injektálási sebezhetőségek, a hibás kriptográfia használata vagy a hozzáférés-vezérlési problémák még a fejlesztés korai szakaszában.

Előnyei: Korai fázisban azonosítja a hibákat, segít a fejlesztőknek a biztonságos kódolási gyakorlatok elsajátításában. Még a kódkompilálás előtt is futtatható.
Hátrányai: Magas lehet a téves riasztások (false positive) aránya, nem látja az alkalmazás futásidejű viselkedését és a környezeti beállításokból adódó sebezhetőségeket.

DAST (Dynamic Application Security Testing) – Dinamikus alkalmazásbiztonsági tesztelés

A DAST eszközök az alkalmazást futás közben vizsgálják, kívülről, mint egy támadó. Elemzik a HTTP kéréseket és válaszokat, és megpróbálják kihasználni a sebezhetőségeket. Olyan, mint egy automatizált behatolás teszt. Képesek észlelni az olyan hibákat, mint az XSS, SQL injektálás, vagy a rosszul konfigurált szerverekből adódó problémák.

Előnyei: Alacsonyabb téves riasztás arány, képes felderíteni a futásidejű és konfigurációs hibákat, valamint a szerveroldali problémákat. Nyelvfüggetlen.
Hátrányai: Csak a már futó alkalmazást tudja tesztelni, nem látja a forráskódot, így nem tudja pontosan megmutatni a hiba okát a kódban. Nem találja meg az összes logikai hibát.

IAST (Interactive Application Security Testing) – Interaktív alkalmazásbiztonsági tesztelés

Az IAST a SAST és DAST előnyeit ötvözi. Az alkalmazás futása közben egy ügynök (agent) fut a szerveren, figyelve a kód végrehajtását és az adatáramlást. Miközben a DAST eszköz külső kéréseket küld, az IAST ügynök belsőleg figyeli, hogy ezek a kérések milyen hatással vannak a kódra. Ez pontosabb hibaazonosítást tesz lehetővé, és kevesebb téves riasztással jár.

Előnyei: Nagyon pontos hibaazonosítás, alacsony téves riasztás arány, gyorsabb és részletesebb visszajelzés a fejlesztőknek, képes a hiba pontos helyét megmutatni a kódban.
Hátrányai: Ügynököt igényel, ami befolyásolhatja a teljesítményt, és bizonyos technológiákhoz nem minden esetben érhető el.

RASP (Runtime Application Self-Protection) – Futásidejű alkalmazás-önvédelem

A RASP egy lépéssel tovább megy a tesztelésnél: valós időben védi az alkalmazást a támadásoktól. Az alkalmazás futási környezetébe beépülve figyeli a bejövő kéréseket és az alkalmazás viselkedését. Ha rosszindulatú tevékenységet észlel, blokkolja a támadást, mielőtt az kárt okozna. Ez egyfajta „belső tűzfal” az alkalmazáson belül.

Előnyei: Valós idejű védelem, képes blokkolni az ismert és ismeretlen (zero-day) támadásokat, alacsony téves riasztás, nem igényel kódmódosítást.
Hátrányai: Teljesítményre gyakorolt hatás, bizonyos technológiákkal való kompatibilitási problémák, és nem helyettesíti a fejlesztési fázisban történő biztonsági ellenőrzéseket.

Az alábbi táblázat összefoglalja a főbb alkalmazásbiztonsági tesztelési módszereket:

Módszer Működés Fázis Előnyök Hátrányok
SAST Kód elemzése futtatás nélkül Fejlesztés, tesztelés Korai hibafelismerés, kódminőség javítása Magas false positive, nem látja a futásidejű hibákat
DAST Alkalmazás tesztelése futás közben, kívülről Tesztelés, QA, éles Valós futásidejű hibák, konfigurációs problémák Nem látja a kód belső hibáit, nem minden logikai hibát talál meg
IAST Hibrid: belső ügynök + külső tesztelés futás közben Tesztelés, QA Pontos hibaazonosítás, alacsony false positive, hiba helyének jelzése Ügynök telepítése, teljesítményhatás
RASP Valós idejű védelem futás közben Éles üzem Blokkolja a támadásokat, ismert és ismeretlen fenyegetések ellen Teljesítményre gyakorolt hatás, nem oldja meg a hibát a kódban

Behatolás tesztelés és hibavadászat

A technikai eszközökön túl a behatolás tesztelés (Penetration Testing, röviden pentest) és a hibavadászat (Bug Bounty Programs) is kulcsszerepet játszik az alkalmazásbiztonságban. Ezek a módszerek emberi szakértelmet és kreativitást igényelnek, és képesek olyan komplex logikai hibákat vagy többlépéses támadási láncokat felderíteni, amelyeket az automatizált eszközök nem biztos, hogy észlelnek.

A behatolás tesztelés során etikus hackerek szimulálnak valós támadásokat az alkalmazás ellen, előre meghatározott célokkal és hatókörrel. Céljuk, hogy megtalálják és dokumentálják a sebezhetőségeket, és bemutassák azok kihasználhatóságát. Ez egy mélyreható, manuális vizsgálat, amely gyakran egy DAST eszköz által talált hibák manuális ellenőrzésével kezdődik, de kiterjedhet komplex üzleti logikai hibákra is.

A hibavadászat programok lehetővé teszik a külső biztonsági kutatók és etikus hackerek számára, hogy jutalom ellenében keressék az alkalmazásokban található sebezhetőségeket. Ez egy skálázható és költséghatékony módszer lehet a hibák felderítésére, különösen a nagyméretű, nyilvánosan elérhető alkalmazások esetében.

Telepítés és üzemeltetés: Biztonságos konfiguráció és monitorozás

Az alkalmazásfejlesztési életciklus utolsó fázisaiban, a telepítés és üzemeltetés során is kiemelten fontos az alkalmazásbiztonság. A biztonságos kód önmagában nem elegendő, ha a környezet, amelyben fut, sebezhető.

A biztonságos konfiguráció magában foglalja a szerverek, adatbázisok, hálózati eszközök és maga az alkalmazás helyes beállítását. Ez azt jelenti, hogy:

  • Az alapértelmezett jelszavakat meg kell változtatni.
  • A nem használt szolgáltatásokat és portokat le kell tiltani.
  • A legújabb biztonsági javításokat telepíteni kell az operációs rendszerre és az alkalmazásfüggőségekre.
  • A hozzáférési jogosultságokat a legkisebb jogosultság elve alapján kell beállítani.
  • A naplózást és auditálást engedélyezni és konfigurálni kell.

A konfigurációk automatizált kezelése (pl. Infrastructure as Code) segíthet a hibák minimalizálásában.

A folyamatos monitorozás biztosítja, hogy az esetleges támadásokat vagy anomáliákat valós időben észleljék. Ide tartozik a biztonsági események naplózása, a behatolás-észlelő rendszerek (IDS/IPS) használata, a SIEM (Security Information and Event Management) rendszerek bevezetése, amelyek összegyűjtik és elemzik a biztonsági naplókat. A proaktív monitorozás lehetővé teszi a gyors reagálást és a károk minimalizálását egy incidens esetén.

Az alkalmazásbiztonság nem egy egyszeri feladat, hanem egy folyamatosan fejlődő, iteratív folyamat, amely a teljes szoftveréletciklust áthatja.

DevSecOps: A biztonság beépítése a CI/CD folyamatokba

A DevSecOps automatizált biztonsági ellenőrzéseket integrál a CI/CD-be.
A DevSecOps integrálja a biztonságot a fejlesztésbe, automatikusan felismerve és javítva a sebezhetőségeket.

A modern szoftverfejlesztésben a DevOps filozófia vált uralkodóvá, amely a fejlesztési (Development) és üzemeltetési (Operations) csapatok közötti együttműködést és automatizálást helyezi előtérbe. A gyorsabb kiadás, a folyamatos integráció (CI) és a folyamatos szállítás (CD) a DevOps kulcsfontosságú elemei. Azonban ahogy a szoftverek egyre gyorsabban készülnek el, a biztonság könnyen háttérbe szorulhat.

Itt jön képbe a DevSecOps, amely a biztonságot (Security) integrálja a DevOps folyamatokba. A DevSecOps célja, hogy a biztonsági ellenőrzéseket és gyakorlatokat már a fejlesztési ciklus elejétől kezdve beépítse, automatizálja és a CI/CD pipeline részévé tegye. A mottó: „Shift Left” – azaz a biztonságot a lehető legkorábbi fázisba tolni.

A DevSecOps megközelítés lényege, hogy a biztonság mindenki felelőssége, nem csak egy különálló biztonsági csapaté. A fejlesztők, az üzemeltetők és a biztonsági szakemberek közötti szoros együttműködés, a tudásmegosztás és az automatizált eszközök használata révén érhető el a gyors, mégis biztonságos szoftverkiadás.

A DevSecOps kulcsfontosságú elemei:

  • Automatizált biztonsági tesztelés: SAST, DAST, IAST eszközök integrálása a CI/CD pipeline-ba, amelyek minden kódmódosítás után automatikusan futnak.
  • Biztonsági kód felülvizsgálat: Automatikus eszközök és manuális felülvizsgálatok kombinálása.
  • Szoftverösszetétel-elemzés (SCA): Az alkalmazásban használt nyílt forráskódú és harmadik féltől származó komponensek sebezhetőségeinek automatikus ellenőrzése.
  • Konténerbiztonság: A konténeres környezetek (Docker, Kubernetes) biztonsági konfigurációjának és a konténer-image-ek sebezhetőségeinek vizsgálata.
  • Infrastruktúra mint kód (IaC) biztonság: Az infrastruktúra-konfigurációs fájlok (pl. Terraform, Ansible) biztonsági hibáinak ellenőrzése.
  • Fenyegetésmodellezés: Folyamatosan integrálva a tervezési és fejlesztési fázisokba.
  • Biztonsági képzés: A fejlesztők és üzemeltetők rendszeres képzése a biztonságos kódolási és üzemeltetési gyakorlatokról.
  • Folyamatos monitorozás és visszajelzés: A biztonsági események folyamatos figyelése és a visszajelzések beépítése a fejlesztési ciklusba.

A DevSecOps bevezetése nem csupán technológiai, hanem kulturális változást is igényel. A csapatoknak nyitottnak kell lenniük az együttműködésre, a hibákból való tanulásra és a biztonsági szempontok prioritásként való kezelésére.

Az alkalmazásbiztonsági eszközök és technológiák palettája

Az alkalmazásbiztonság területén számos eszköz és technológia áll rendelkezésre, amelyek segítenek a sebezhetőségek felderítésében és a védekezésben. Ezek az eszközök kiegészítik egymást, és a Secure SDLC különböző fázisaiban alkalmazhatók.

SAST, DAST, IAST, RASP: A különbségek és alkalmazási területek

Ezekről már részletesebben beszéltünk a biztonsági tesztelés szakaszban, de fontos megjegyezni, hogy ezek nem csupán tesztelési módszerek, hanem konkrét szoftvereszközök is, amelyek a piacon elérhetők. Például a SonarQube (SAST), Burp Suite (DAST – bár manuális pentesthez is használják), Checkmarx (SAST), Veracode (SAST/DAST/SCA), Contrast Security (IAST/RASP) mind népszerű megoldások.

SCA (Software Composition Analysis)

A Software Composition Analysis (SCA) eszközök a nyílt forráskódú komponensek és harmadik féltől származó könyvtárak sebezhetőségeinek felderítésére szolgálnak, amelyeket az alkalmazás használ. Mivel a modern szoftverek jelentős része nyílt forráskódú elemekből épül fel, ezeknek a komponenseknek az ellenőrzése kritikus fontosságú. Az SCA eszközök adatbázisokhoz hasonlítják össze a felhasznált komponenseket, és figyelmeztetnek az ismert sebezhetőségekre.

Példák: Black Duck, Snyk, WhiteSource.

API biztonság: Az új határ

Az API-k (Application Programming Interfaces) ma már a modern alkalmazások gerincét képezik, lehetővé téve a különböző rendszerek és szolgáltatások közötti kommunikációt. Az API-k növekvő használatával azonban új biztonsági kihívások is megjelennek. Az API-k gyakran közvetlen hozzáférést biztosítanak az adatokhoz és a funkciókhoz, ezért a nem megfelelően védett API-k komoly támadási felületet jelentenek.

Az API biztonság magában foglalja az API-k tervezését, fejlesztését és üzemeltetését oly módon, hogy ellenálljanak a támadásoknak. Ez magában foglalja a robusztus hitelesítést és jogosultságkezelést (pl. OAuth, JWT), az adatok titkosítását, a bemeneti adatok validálását, a sebességkorlátozást (rate limiting) és a folyamatos monitorozást. Az OWASP API Security Top 10 lista is létezik, amely az API-specifikus sebezhetőségekre hívja fel a figyelmet.

Web Application Firewall (WAF)

A Web Application Firewall (WAF) egy hálózati biztonsági eszköz, amely az alkalmazási réteg forgalmát figyeli és szűri. A WAF az alkalmazás és az internet között helyezkedik el, és elemzi a bejövő HTTP/HTTPS kéréseket, valamint a kimenő válaszokat, hogy észlelje és blokkolja a rosszindulatú támadásokat (pl. SQL injektálás, XSS, DDoS). A WAF-ok képesek védelmet nyújtani az OWASP Top 10 sebezhetőségek jelentős része ellen anélkül, hogy az alkalmazás kódját módosítani kellene.

Előnyei: Gyors védelem a ismert támadások ellen, virtuális patch-elés (ideiglenes védelem a kód javításáig), DDoS védelem.
Hátrányai: Nem oldja meg az alapvető kódhibákat, konfigurációja komplex lehet, téves riasztások előfordulhatnak.

Ezen eszközök mellett számos más technológia is hozzájárul az alkalmazásbiztonsághoz, mint például a titkosítási megoldások, a kulcskezelő rendszerek (KMS), az identitás- és hozzáférés-kezelő (IAM) rendszerek, vagy a biztonsági információs és eseménykezelő (SIEM) platformok.

Szabályozási megfelelőség és az alkalmazásbiztonság

A jogszabályi és iparági előírásoknak való megfelelés (compliance) egyre nagyobb hangsúlyt kap az alkalmazásbiztonságban. Számos szektorban, különösen azokban, ahol érzékeny személyes adatokkal vagy pénzügyi információkkal dolgoznak, szigorú szabályok írják elő az adatok védelmét és az alkalmazások biztonságát. Az alkalmazásbiztonsági programnak figyelembe kell vennie ezeket az előírásokat, és gondoskodnia kell a megfelelőségről.

GDPR, HIPAA, PCI DSS: A jogi keretek és a gyakorlati megvalósítás

Néhány példa a legfontosabb szabályozásokra, amelyek közvetlenül érintik az alkalmazásbiztonságot:

  • GDPR (General Data Protection Regulation – Általános Adatvédelmi Rendelet): Az Európai Unió adatvédelmi rendelete, amely szigorú szabályokat ír elő a személyes adatok gyűjtésére, feldolgozására és tárolására vonatkozóan. Az alkalmazásoknak biztosítaniuk kell az adatok bizalmasságát, integritását és rendelkezésre állását, és be kell építeniük a „privacy by design” elvét. A GDPR előírja az adatvédelmi incidensek bejelentését és a megfelelő technikai és szervezeti intézkedések megtételét az adatok védelmére. Az alkalmazásbiztonság közvetlenül hozzájárul a GDPR megfelelőséghez azáltal, hogy minimalizálja az adatvédelmi incidensek kockázatát.
  • HIPAA (Health Insurance Portability and Accountability Act): Az Egyesült Államokban érvényes törvény, amely az egészségügyi adatok (PHI – Protected Health Information) védelmét szabályozza. Az egészségügyi szektorban működő alkalmazásoknak rendkívül szigorú biztonsági intézkedéseket kell alkalmazniuk, beleértve az adatok titkosítását, a hozzáférés-vezérlést, az auditálást és az incidenskezelést.
  • PCI DSS (Payment Card Industry Data Security Standard): Egy globális biztonsági szabvány, amelyet a hitelkártya-társaságok (Visa, Mastercard stb.) hoztak létre a kártyaadatok védelmére. Bármely szervezet, amely hitelkártya-adatokat tárol, feldolgoz vagy továbbít, köteles megfelelni a PCI DSS előírásainak. Ez számos alkalmazásbiztonsági követelményt is magában foglal, mint például a biztonságos kódolás, a sebezhetőség-ellenőrzés, a tűzfalak használata és a rendszeres biztonsági tesztelés.

Ezen szabályozásokon túl számos iparági szabvány és keretrendszer is létezik (pl. ISO 27001, NIST Cybersecurity Framework), amelyek útmutatást nyújtanak a biztonsági programok kialakításához. Az alkalmazásbiztonsági csapatnak tisztában kell lennie ezekkel az előírásokkal, és biztosítania kell, hogy az alkalmazások megfeleljenek a vonatkozó követelményeknek. A megfelelőség elérése és fenntartása nem egyszeri feladat, hanem folyamatos auditálást, dokumentációt és a biztonsági gyakorlatok frissítését igényli.

Az alkalmazásbiztonsági program felépítése és fenntartása

Egy hatékony alkalmazásbiztonsági program felépítése és fenntartása komplex feladat, amely több dimenzióban is gondolkodást igényel. Nem elegendő csupán technikai eszközöket bevezetni; szükség van egy átfogó stratégiára, amely magában foglalja a folyamatokat, az embereket és a technológiát.

Kockázatkezelés és sebezhetőség-menedzsment

Az alkalmazásbiztonsági program alapja a kockázatkezelés. Ez magában foglalja a potenciális biztonsági kockázatok azonosítását, elemzését, értékelését és kezelését. A kockázatkezelés segít priorizálni a sebezhetőségeket és a fenyegetéseket, lehetővé téve, hogy az erőforrásokat a legkritikusabb területekre összpontosítsák.

A sebezhetőség-menedzsment (Vulnerability Management) a kockázatkezelés gyakorlati megvalósítása az alkalmazások szintjén. Ez egy ciklikus folyamat, amely magában foglalja a következő lépéseket:

  1. Felfedezés: Rendszeres biztonsági teszteléssel (SAST, DAST, IAST, pentest) és komponens-elemzéssel (SCA) azonosítani a sebezhetőségeket.
  2. Értékelés: A felfedezett sebezhetőségek súlyosságának és kihasználhatóságának felmérése (pl. CVSS pontszámok alapján).
  3. Prioritás: A sebezhetőségek rangsorolása a kockázat és az üzleti hatás alapján.
  4. Orvoslás: A sebezhetőségek kijavítása a kódban, konfigurációban vagy architektúrában. Ez a fejlesztők feladata, gyakran a biztonsági csapat iránymutatásával.
  5. Ellenőrzés: Annak ellenőrzése, hogy a javítások hatékonyak voltak-e, és nem vezettek-e be új hibákat.

Ez a folyamat folyamatos, hiszen új sebezhetőségek és technológiák jelennek meg nap mint nap.

Biztonságtudatosság növelése a fejlesztők körében

Az alkalmazásbiztonság legfontosabb pillére az emberi tényező. A fejlesztők, akik a kódot írják, kulcsszerepet játszanak a biztonságos alkalmazások létrehozásában. Ezért elengedhetetlen a biztonságtudatosság növelése a fejlesztői csapatokban.

Ez magában foglalja a rendszeres biztonsági képzéseket, amelyek bemutatják a leggyakoribb sebezhetőségeket (pl. OWASP Top 10), a biztonságos kódolási gyakorlatokat és a biztonsági eszközök használatát. A képzéseknek interaktívnak és relevánsnak kell lenniük a fejlesztők mindennapi munkájához. A biztonsági szakembereknek mentor szerepet is be kell tölteniük, és segíteniük kell a fejlesztőket a felmerülő biztonsági kérdésekben.

A biztonsági kultúra kialakítása azt jelenti, hogy a biztonság nem egy különálló feladat, hanem a fejlesztési folyamatba beépített, mindenki által elfogadott érték. Ez a „biztonsági bajnokok” (Security Champions) programjával is erősíthető, ahol a fejlesztői csapatokból kiválasztott tagok mélyebb biztonsági ismeretekre tesznek szert, és a csapatukon belül terjesztik a biztonsági tudást.

Mérőszámok és a program hatékonyságának mérése

Ahhoz, hogy egy alkalmazásbiztonsági program sikeres legyen, mérni kell a hatékonyságát. A mérőszámok (metrikák) segítségével nyomon követhető a program előrehaladása, azonosíthatók a gyenge pontok és igazolható a befektetett erőforrások értéke. Néhány példa a hasznos mérőszámokra:

  • Felfedezett sebezhetőségek száma és súlyossága: Hány új sebezhetőséget találtak, és azok milyen kockázatot jelentenek.
  • Javítási idő (Mean Time To Remediate – MTTR): Mennyi időbe telik egy sebezhetőség felfedezésétől a kijavításáig. A cél ennek az időnek a csökkentése.
  • Visszatérő sebezhetőségek aránya: Hány olyan sebezhetőség fordul elő újra, amelyet már kijavítottak. Ez a fejlesztési folyamat vagy a képzés hiányosságaira utalhat.
  • Biztonsági tesztelési lefedettség: Az alkalmazások hány százalékán futtattak SAST, DAST, IAST vagy pentest-et.
  • Fejlesztői biztonsági képzések részvételi aránya: Hány fejlesztő vett részt biztonsági képzéseken.
  • Incidensek száma és típusa: Hány biztonsági incidens történt, és azok milyen típusú támadások voltak.

A rendszeres jelentések és elemzések lehetővé teszik a program folyamatos optimalizálását és a biztonsági kockázatok proaktív kezelését.

Az alkalmazásbiztonság jövője: Mesterséges intelligencia, szervermentes architektúrák és beyond

A mesterséges intelligencia forradalmasítja az alkalmazásbiztonság jövőjét.
A mesterséges intelligencia segíti a fenyegetések gyors felismerését, míg a szervermentes architektúrák csökkentik a támadási felületet.

Az alkalmazásbiztonság területe dinamikusan fejlődik, ahogy az új technológiák és fenyegetések folyamatosan megjelennek. A jövőbeli trendek és kihívások megértése elengedhetetlen a proaktív védekezéshez.

Mesterséges intelligencia (AI) és gépi tanulás (ML) az AppSec-ben

Az AI és ML egyre nagyobb szerepet játszik az alkalmazásbiztonságban, mind a támadók, mind a védők oldalán. Az AI-alapú eszközök képesek:

  • Sebezhetőségek automatikus felderítése: Az ML algoritmusok képesek nagy mennyiségű kódot elemezni, és mintázatokat keresni, amelyek sebezhetőségekre utalhatnak, így kiegészítve a hagyományos SAST eszközöket.
  • Anomáliák észlelése: Az ML modellek képesek megtanulni az alkalmazás normális viselkedését, és azonnal riasztani, ha szokatlan vagy rosszindulatú tevékenységet észlelnek (pl. behatolási kísérlet, adatlopás).
  • Fenyeségintelligencia: Az AI segíthet a fenyegetési adatok elemzésében, trendek azonosításában és a támadási minták előrejelzésében.
  • Automatizált incidensválasz: Az AI képes lehet automatikusan reagálni bizonyos típusú támadásokra, csökkentve az emberi beavatkozás szükségességét.

Ugyanakkor fontos megjegyezni, hogy az AI-alapú eszközök nem helyettesítik az emberi szakértelmet, csupán kiegészítik azt, és segítenek a hatalmas adatmennyiség feldolgozásában.

Szervermentes architektúrák és konténerbiztonság

A felhőalapú számítástechnika és az olyan architektúrák, mint a szervermentes (serverless) és a konténeres (container) megoldások (pl. Docker, Kubernetes), jelentősen megváltoztatják az alkalmazásbiztonsági környezetet. Ezek az új paradigmák új kihívásokat és lehetőségeket is teremtenek:

  • Konténerbiztonság: A konténer image-ek sebezhetőségeinek ellenőrzése, a futásidejű konténeres környezetek védelme és a konténer-orchestráció (pl. Kubernetes) biztonságos konfigurálása elengedhetetlen.
  • Szervermentes biztonság: A szervermentes funkciók (pl. AWS Lambda, Azure Functions) rövid élettartamúak és eseményvezéreltek, ami megnehezíti a hagyományos biztonsági eszközök alkalmazását. Itt a hangsúly a függvények bemenetének validálásán, a minimális jogosultságok biztosításán és a felhőszolgáltató biztonsági beállításainak helyes konfigurálásán van.
  • API Gateway biztonság: A mikroszolgáltatások és szervermentes funkciók gyakran API gateway-eken keresztül kommunikálnak, amelyek kulcsfontosságú pontok a biztonsági ellenőrzések bevezetésére.

Ezek a technológiák megkövetelik az alkalmazásbiztonsági szakemberektől, hogy új ismereteket sajátítsanak el, és adaptálják a hagyományos biztonsági gyakorlatokat az új környezetekhez.

Az alkalmazásbiztonság egyéb jövőbeli trendjei:

  • Zero Trust architektúra: A „soha ne bízz, mindig ellenőrizz” elv alkalmazása az alkalmazásokon belül is, feltételezve, hogy a hálózat belsejében is lehetnek fenyegetések.
  • Biztonság a kódolási folyamatban (Shift-Left még jobban): Az eszközök és a kultúra még mélyebb integrálása a fejlesztői IDE-kbe és munkafolyamatokba, hogy a biztonsági problémák még a kód megírása közben felderítésre kerüljenek.
  • Supply Chain Security (Ellátási lánc biztonsága): A szoftverek felépítéséhez használt összes komponens, könyvtár és eszköz biztonságának ellenőrzése, a forráskódtól a build rendszerekig.
  • Adatvédelem és a magánélet védelme: A GDPR és hasonló szabályozások hatására egyre nagyobb hangsúly kerül az adatvédelem (Privacy by Design) beépítésére az alkalmazásokba.

A jövőben az alkalmazásbiztonság még inkább automatizáltá, integráltá és adatvezéreltté válik. Azonban az emberi szakértelem és a stratégiai gondolkodás továbbra is elengedhetetlen lesz a komplex fenyegetések kezelésében és az innovatív védelmi megoldások kialakításában.

Az alkalmazásbiztonsági kihívások és azok kezelése

Bár az alkalmazásbiztonság fontossága egyre inkább elismert, számos kihívással kell szembenézni a hatékony programok kiépítése és fenntartása során.

Tudáshiány és szakemberhiány

Az egyik legnagyobb kihívás a szakemberhiány. Az alkalmazásbiztonsági szakértők iránti kereslet messze meghaladja a kínálatot. Ráadásul a terület rendkívül gyorsan fejlődik, ami megköveteli a folyamatos tanulást és adaptációt. Sok fejlesztő nem rendelkezik elegendő biztonsági ismerettel, és a biztonsági csapatok gyakran túlterheltek.

Kezelés: Rendszeres, gyakorlatias képzések a fejlesztők számára; mentorprogramok indítása; biztonsági bajnokok kijelölése; a biztonsági csapatok létszámának növelése és a szakemberek folyamatos továbbképzése.

Költségek és erőforrások

Az alkalmazásbiztonsági eszközök, képzések és szakemberek költségesek lehetnek. Sok szervezet számára kihívást jelent a szükséges költségvetés előteremtése, különösen, ha a biztonsági befektetések megtérülése nem azonnal mérhető.

Kezelés: Az alkalmazásbiztonság üzleti előnyeinek (reputációvédelem, jogi megfelelés, adatvesztés elkerülése) hangsúlyozása a vezetőség felé; a befektetések megtérülésének (ROI) kimutatása a megelőzött incidensek és az azokból származó károk elkerülésén keresztül; fokozatos bevezetés és a legkritikusabb területek priorizálása.

Integráció a fejlesztési folyamatokba

A biztonsági ellenőrzések és eszközök integrálása a gyors, agilis fejlesztési folyamatokba (CI/CD pipeline) komplex lehet. A fejlesztők gyakran ellenállnak a plusz lépéseknek vagy eszközöknek, amelyek lassítják a munkájukat.

Kezelés: A DevSecOps alapelveinek bevezetése; a biztonsági eszközök automatizálása és zökkenőmentes integrálása a meglévő munkafolyamatokba; a „Shift Left” megközelítés alkalmazása, hogy a hibákat a lehető legkorábban, a legkisebb költséggel lehessen kijavítani; a fejlesztőkkel való szoros együttműködés és a visszajelzések figyelembevétele.

Komplexitás és a támadási felület növekedése

A modern alkalmazások egyre komplexebbé válnak, számos külső szolgáltatással, API-val és nyílt forráskódú komponenssel integrálódnak. Ez a komplexitás növeli a potenciális támadási felületet, és megnehezíti a teljes rendszer átlátását és védelmét.

Kezelés: Rendszeres fenyegetésmodellezés; a szoftverkomponensek folyamatos ellenőrzése (SCA); API biztonsági stratégiák kidolgozása; a mikroszolgáltatások és konténeres környezetek biztonsági kihívásainak kezelése speciális eszközökkel és gyakorlatokkal.

Folyamatos fenyegetési környezet

A kiberbűnözők és a támadási technikák folyamatosan fejlődnek. Ami ma biztonságosnak tűnik, holnap már sebezhető lehet. Ez megköveteli az alkalmazásbiztonsági programok folyamatos adaptációját és frissítését.

Kezelés: Folyamatos fenyegetésintelligencia gyűjtése; rendszeres biztonsági auditok és behatolás tesztek; a biztonsági csapatok folyamatos képzése az új fenyegetésekről és védelmi technikákról; gyors reagálás az új sebezhetőségekre és zero-day támadásokra.

Ezen kihívások ellenére az alkalmazásbiztonságba való befektetés elengedhetetlen. A proaktív megközelítés és a biztonság beépítése a teljes életciklusba hosszú távon sokkal költséghatékonyabb, mint az incidensek utólagos kezelése.

Az alkalmazásbiztonság üzleti előnyei

Az alkalmazásbiztonság nem csupán egy technikai kötelezettség, hanem jelentős üzleti előnyökkel is jár. Egy robusztus AppSec program nem csupán a kockázatokat csökkenti, hanem hozzájárul a szervezet sikeréhez és fenntarthatóságához is.

Adatvédelem és bizalmi tőke

Az alkalmazásbiztonság elsődleges célja az érzékeny adatok védelme. Legyen szó felhasználói adatokról, pénzügyi információkról, üzleti titkokról vagy személyes egészségügyi adatokról, ezek védelme alapvető fontosságú. Egy sikeres adatlopási incidens hatalmas anyagi és reputációs károkat okozhat. A megbízható AppSec program csökkenti az adatvesztés kockázatát, védve ezzel a szervezet legértékesebb eszközeit.

A felhasználók és partnerek bizalma felbecsülhetetlen érték. Ha egy alkalmazás biztonságosnak bizonyul, az növeli a bizalmi tőkét, ami lojálisabb ügyfélbázist és jobb üzleti kapcsolatokat eredményez. A biztonsági incidensek viszont gyorsan alááshatják ezt a bizalmat, hosszú távú károkat okozva a márkának.

Jogi megfelelőség és szabályozási bírságok elkerülése

Ahogy korábban említettük, számos iparágban és régióban szigorú jogi szabályozások írják elő az alkalmazások biztonságát és az adatok védelmét (pl. GDPR, HIPAA, PCI DSS). A megfelelés hiánya súlyos bírságokat, jogi eljárásokat és üzleti korlátozásokat vonhat maga után. Egy hatékony AppSec program segít a szervezetnek megfelelni ezeknek az előírásoknak, elkerülve a jelentős pénzügyi és jogi következményeket.

Költségmegtakarítás és hatékonyság

Bár az alkalmazásbiztonságba való befektetés kezdetben jelentősnek tűnhet, hosszú távon költségmegtakarítást eredményez. A sebezhetőségek korai fázisban történő felderítése és kijavítása sokkal olcsóbb, mint az éles rendszerben felfedezett hibák orvoslása vagy egy sikeres támadás következményeinek kezelése. Az „Shift Left” megközelítés minimalizálja a hibajavítási ciklust és a fejlesztési költségeket.

A biztonságos fejlesztési gyakorlatok és az automatizált eszközök bevezetése növeli a fejlesztési folyamatok hatékonyságát. A fejlesztők kevesebb időt töltenek a hibák utólagos javításával, és több időt fordíthatnak új funkciók fejlesztésére, miközben a szoftver minősége és megbízhatósága is javul.

Versenyelőny és innováció

Egy biztonságos alkalmazás versenyelőnyt jelent a piacon. Az ügyfelek egyre tudatosabbak a biztonsági kockázatokkal kapcsolatban, és valószínűbb, hogy egy olyan szolgáltatót választanak, amely bizonyítottan elkötelezett az adatok és a rendszerek védelme iránt. A biztonság mint kiemelt érték kommunikálása erősítheti a piaci pozíciót.

A biztonság nem gátolja az innovációt, éppen ellenkezőleg. Ha a biztonsági szempontokat már a tervezési fázisban figyelembe veszik, az lehetővé teszi a fejlesztők számára, hogy anélkül fejlesszenek új, innovatív funkciókat, hogy aggódniuk kellene a későbbi biztonsági rések miatt. A biztonságos alapokon nyugvó innováció gyorsabb és megbízhatóbb termékfejlesztést eredményez.

Végső soron az alkalmazásbiztonság egy befektetés a szervezet jövőjébe. Nem csupán a rossz dolgok elkerüléséről szól, hanem a növekedés, a bizalom és a fenntartható üzleti működés alapjait is lefekteti a digitális korban.

Share This Article
Leave a comment

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük