K-INFO
HU
EN
Belépés

Szoftverbiztonság

Software Security 
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
—
Tantárgy neve (magyarul, angolul)
Szoftverbiztonság
Software Security 
Tantárgykód BMEVIHIMA21
Tantárgyjelleg —
Képzési szint —
Kurzustípusok és óraszámok (heti/féléves)
Kurzustípus elmélet gyakorlat laboratóriumi gyakorlat
óraszám (heti) 2 1 0
jelleg (kapcsolt/önálló) — kapcsolt —
Tanulmányi teljesítmény/értékelés típusa vizsga
Tantárgy kreditértéke 5
Tantárgyfelelős
DR. Gazdag András Gábor
beosztás: adjunktus
Tantárgyat gondozó oktatási szervezeti egység
Hálózati Rendszerek és Szolgáltatások Tanszék
Kar Villamosmérnöki és Informatikai Kar
Tantárgy weboldala https://www.crysys.hu/education/VIHIMA21
Tantárgy elsődleges mintatantervi jellege —
Közvetlen előkövetelmények – Erős előkövetelmény nincs
Közvetlen előkövetelmények – Gyenge előkövetelmény nincs
Közvetlen előkövetelmények – Párhuzamos előkövetelmény nincs
Közvetlen előkövetelmények – Mérföldkő előkövetelmény nincs
Közvetlen előkövetelmények – Kizáró feltétel nincs

Célkitűzés

Tantárgyprogram

    Háttér és motiváció: a szoftverbiztonság fontosságának a bemutatása példákon keresztül, komolyabb kárt okozó korábbi sérülékenységek áttekintése, aktuális trendek megismerése

    Hitelesítés és engedélyezés alkalmazásokban: felhasználóhitelesítés és jogosultságkezelés módszereinek részletes bemutatása, elterjedt könyvtárak és szabványok bemutatása a gyakorlatban

    Webes alkalmazások biztonsága – szerver oldal: a webes alkalmazásokat érintő általános problémák bemutatása, a leggyakoribb veszélyek elleni védekezés ismertetése a szerver oldalon 

    Webes alkalmazások biztonsága – API biztonság: a webes API-k fejlődésének rövid bemutatása, a leggyakoribb támadások és védekezési módszerek megismerése

    Webes alkalmazások biztonsága – kliens oldal: a böngészőkben alkalmazott biztonsági mechanizmusok bemutatása, SOP és CORS, a Javascript nyelv sajátosságai és veszélyei, a leggyakoribb támadások (XSS, CSRF, Clickjacking) és védekezések (CSP) megismerése

    Menedzselt nyelvek biztonsága – támadások: a menedzselt nyelvek sajátosságainak bemutatása (reflexió), a magas szintű nyelveket érintő támadások megismerése (integer overflow, command injection)

    Menedzselt nyelvek biztonsága – védekezés: menedzselt nyelveken előforduló sérülékenységek elleni védekezés, a tipikus problémák (deadlock, szálkezelés nehézségei, TOCTTOU, szerializáció) elkerülése

    Mobil alkalmazások biztonsága – Android: az Android környezet sajátosságainak a bemutatása, a tipikus kódolási hibák elkerülése, a fejlesztési folyamat során a biztonság megjelenése

    Mobil alkalmazások biztonsága – iOS: az iOS és a hozzá kapcsolódó ökoszisztéma sajátosságainak a bemutatása, a mobil alkalmazásokat érő tipikus támadások, a fejlesztés során leggyakrabban előforduló sérülékenységek megismerése

    Memóriakorrupció – támadások: alacsony szintű szoftverfejlesztés sajátosságainak az áttekintése, a C és C++ nyelv memóriakezelési kihívásai, a buffer overflow és az abból kiinduló támadások (return-to-Libc, return oriented programming) bemutatása

    Memóriakorrupció – védekezés: a memóriakezelési hibákat kihasználó támadások megállítása, nyelvi szintű védelmek, szoftverfejlesztési megoldások, operációs rendszer szintű védelmek

    Szoftverek biztonsági tesztelése: a funkcionális és biztonsági tesztelés közötti különbségek és kihívások, a különböző tesztelési megközelítések áttekintése, leghatékonyabb módszerek bemutatása

    Gépi tanulás alkalmazása a szoftverbiztonság növelésére 1: Gépi tanulási alapfogalmak, felügyelt és önfelügyelt tanulás, klasszifikáció, kód stilometria

    Gépi tanulás alkalmazása a szoftverbiztonság növelésére 2: Gép tanulás alapú bug detekció forráskódban. Fuzz-tesztelés támogatása gépi tanulással (pl. input mutáció genetikus algoritmusokkal) 

A gyakorlatok/laborok részletes tematikája

    Biztonságos szoftverek tervezési módszerei – házi előkészítés

    Webes alkalmazások biztonsága

    Menedzselt nyelvek biztonsága

    (ZH)

    Mobil alkalmazások biztonsága – Android

    Memóriakorrupciós támadások

    Szoftverek biztonsági tesztelése 

A tárgy célja, hogy átfogó képet adjon a szoftverbiztonság területéről a programozási nyelvek és az alkalmazások szintjén felmerülő biztonsági problémák, kihívások, és az azok megoldására használt módszerek elveinek és gyakorlati megvalósításainak bemutatásával. A tárgy olyan elvi tudás és gyakorlati képességek elsajátítását teszi lehetővé, melyek segítik a biztonságos alkalmazások tervezését és megkönnyítik a szoftverfejlesztés során előforduló tipikus programozási hibák elkerülését. A tárgyban szerzett ismeretek lehetővé teszik továbbá az alkalmazások biztonsági tesztélésének megfelelő tervezését és végrehajtását.

Tanulmányi eredmények

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Tudás

Nincsenek rögzített tanulási eredmények.

Képességek

Nincsenek rögzített tanulási eredmények.

Attitűd

Nincsenek rögzített tanulási eredmények.

Autonómia és felelősség

Nincsenek rögzített tanulási eredmények.

Oktatási módszertan

    Előadás      Tantermi gyakorlat     Önálló munka (házi feladat megoldása)

Tanulástámogató anyagok

Online források
The Cyber Security Body Of Knowledge (CyBOK) online gyűjtemény (https://www.cybok.org/) kapcsolódó fejezetei.; Ross Anderson, Security Engineering, Wiley, 2020; Loren Kohnfelder, Designing Secure Software: A Guide for Developers, No Starch Press, 2021; Jon Erickson, Hacking: The Art of Exploitation, 2nd Edition, No Starch Press, 2008

A tantárgy teljesítéséhez ajánlott előzetes ismeretek

Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
IT biztonság, A programozás alapjai 1-3, Szoftvertechnikák
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
IT biztonság, A programozás alapjai 1-3, Szoftvertechnikák
Általános szabályok
Követelmények: Szorgalmi időszakban      1 db ZH 2 db házi feladat   Az aláírás megszerzésének feltétele a ZH és mindkét házi feladat (egyenként is) sikeres teljesítése. Mind a ZH, mind a házi feladatok esetében, a sikeres teljesítéshez a maximálisan elérhető pontszám minimum 40%-át kell elérni.    A ZH eredménye nem számít bele a félévvégi jegybe. A házi feladatokból maximálisan 2x25 pont szerezhető, a teljesítésükhöz tehát minimum 2x10 pontot kell szerezni. A megszerzett pontok beszámítanak a félévvégi jegybe. Vizsgaidőszakban      Írásbeli vizsga   A vizsga sikeres teljesítéséhez a maximálisan elérhető pontszám minimum 40%-át kell elérni. A vizsgán maximálisan 50 pont szerezhető, a sikeres vizsgához tehát minimum 20 pontot kell elérni.   A tárgyból szerzett pontszám: P = V + HF1 + HF2, ahol V a vizsgán szerzett pontszám, HF1 és HF2 pedig a házi feladatokból szerzett pontszám.   A félévvégi jegy számítása: Jeles (5) – ha P >= 85 pont  jó (4) – ha P >= 70 pont közepes (3) – ha P >= 55 pont elégséges (2) – ha P >= 40 pont elégtelen (1) – ha P < 40 pont Pótlási lehetőségek: A sikertelen vagy mulasztott ZH egyszer pótolható. A házi feladatok beadási határideje a szorgalmi időszakban van, a pontos határidők kihirdetése a félév első hetében történik. A házi feladatok pótlólagosan a kihirdetett határidők után maximum 1 héttel adhatók be, az így beadott házi feladatokra azonban 15% pontlevonás kerül alkalmazásra.
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Szorgalmi időszakban végzett teljesítményértékelések részaránya

Nincs megadva részarány.

Vizsgaidőszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Vizsgarészek részaránya

Nincs megadva részarány.

Érdemjegy megállapítása

Nincs megadva érdemjegy határ.

Jelenléti és részvételi követelmények

Nincs megadva jelenléti követelmény.

Javítás, ismétlés és pótlás különös szabályai

Nincs megadva.

Rövid leírás

Nincs megadva.

Részletes leírás

Nincs megadva.

Ajánlott tantárgyak
IT biztonság, A programozás alapjai 1-3, Szoftvertechnikák
A tantárgy elvégzéséhez szükséges tanulmányi munka

Nincs megadva munkaidő bontás.

Tantárgykövetelmények hatályossága
Tantárgykövetelmények hatályosságának kezdete:
—
Tantárgykövetelmények hatályosságának vége:
—
Tantervi elhelyezés

Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.