Tantárgy » BMEVIMIBV08
Biztonságos programozás
Secure Programming
A tantárgyleírás hatályossága
Hatályosság kezdete:
—
Hatályosság vége:
—
| Tantárgy neve (magyarul, angolul) |
Biztonságos programozás
Secure Programming
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Tantárgykód | BMEVIMIBV08 | ||||||||||||
| Tantárgyjelleg | — | ||||||||||||
| Képzési szint | — | ||||||||||||
| Kurzustípusok és óraszámok (heti/féléves) |
|
||||||||||||
| Tanulmányi teljesítmény/értékelés típusa | vizsga | ||||||||||||
| Tantárgy kreditértéke | 4 | ||||||||||||
| Tantárgyfelelős |
Hornák Zoltán
beosztás: tanársegéd
|
||||||||||||
| Tantárgyat gondozó oktatási szervezeti egység |
—
|
||||||||||||
| Kar | |||||||||||||
| Tantárgy weboldala | http://www.mit.bme.hu/oktatas/targyak/vimivb08/ | ||||||||||||
| 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
Biztonsági szempontból veszélyes programozói hibák
Kihasználható biztonsági lyukak veszélyei
Biztonsági lyukak rendszerezése
Gyakori programozói hibákból eredő biztonsági lyukak
Verem túlcsordulás (stack overflow / buffer overflow – BoF)
Halom túlcsordulás (heap overflow)
Szám túlcsordulás (integer overflow) / előjeles hiba (signedness bug)
Formázó string sebezhetősége (printf format string vulnerability – PFS)
Tömbindexelési hiba (array indexing error) / unicode bug
Nem kifejezetten programozói hibákból eredő biztonsági lyukak
Mellék csatornás támadások (side channel attacks) – RSA timing attack
Sorrendi hibák, versenyhelyzetek (time-of-checking-to-time-of-usage – toctou / serialization errors / racing conditions)
Protokoll hibák és következményeik
Védekezés a biztonsági lyukak ellen – alapelvek
IT biztonság tervezési alapmódszerek
Védekezési alapelvek
Specifikus védelem a típushibák ellen – veszélyforrás alapú megközelítés
Különböző szintű specifikus védelmek
Védekezés a biztonsági lyukak ellen – gyakorlati módszerek
Verem túlcsordulás (stack overflow)
Halom túlcsordulás (heap overflow)
Szám túlcsordulás (integer overflow, signedness bug)
Rejtett csatornák kivédése (timing channel)
Biztonságos programozási technikák
Saltzer 8 alapelve
Bishop féle robosztus programozási alapelvek
Az Internet technológia és a Web szolgáltatások veszélyei
Az Internet technológia és veszélyei
Internet biztonsági követelményei
Veszélyforrások modellezése
Web Services veszélyforrások
Web szolgáltatások biztonsága
Web services biztonsági alapok
Személyazonosság-kezelés (Identity management)
Alap technológiák
Web Services biztonsági szabványok
Security Assertion Markup Language (SAML)
SAML Profilok
SAML Architektúra
Kapcsolódó szabványok
J2EE Security
Java 2 Platform Security alapok
J2EE Biztonsági architektúrája
Deklaratív és programozott biztonsági szolgáltatások
J2EE Component/Tier-Level Security
J2EE Security
JAVA és a rejtjelezés
J2EE Client Security
JAVA specifikus sérülékenységek
JAVA nyelv sajátosságai, biztonsági előnyei (C/C++-szal szemben)
API hívások típushibái (API Abuse)
Gyenge kódminőségből származó veszélyek (Code Quality)
Információ-beágyazási hibák (Encapsulation)
Környezeti veszélyek (Environment)
Programhibákból származó biztonsági veszélyek (Errors)
Bemenet-ellenőrzési hibák (Input validation and representation)
Biztonsági funkciók (Security Features)
Időzétési és állapotproblémák (Time and State)
Az előadások során a hallgatók megismerhetik a tipikus programozói hibákból eredő biztonsági lyukakat, az ezekre épülő támadási és védekezési módszereket, valamint a C/C++ és a JAVA nyelv, illetve a WEB-es technológiák specifikus sérülékenységeit. A tantárgy célja, hogy – nem csak biztonság-kritikus rendszereket fejleszteni kívánókkal – megismertesse a programhibákból eredő biztonsági lyukak veszélyeit és olyan fejlesztési módszerekre képezze őket, amelyek betartásával ezen hibák, ennek eredményeként pedig a tipikus biztonsági lyukak elkerülhetőek.
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.
Tanulástámogató anyagok
Online források
Elektronikus jegyzetek:; cím: "Védekezés a biztonsági szempontból veszélyes programozói hibák ellen"; ; terjedelem: 50 oldal, magyar ; szerző: Hornák Zoltán; cím: "Secure C, C++, and Java Programming"; terjedelem: Power Point slide sorozat, 590 oldal, magyar ; szerző: Hornák Zoltán
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)
C/C++ és JAVA programozási ismeretek
Alapvető hálózati ismeretek
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)
C/C++ és JAVA programozási ismeretek
Alapvető hálózati ismeretek
Általános szabályok
Követelmények:
a. A szorgalmi időszakban: kötelező házi feladat
b. A vizsgaidőszakban: szóbeli vizsga
c. Elővizsga: nincs
Pótlási lehetőségek:
A házi feladat (új forma: otthoni feladat) beadása a pótlási időszakban is lehetséges.
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
-
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.