A tantárgyleírás hatályossága
Hatályosság kezdete:
—
Hatályosság vége:
—
| Subject name (Hungarian, English) |
Biztonságos programozás
Secure Programming
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Subject code | BMEVIMIBV08 | ||||||||||||
| Subject type | — | ||||||||||||
| Training Level | — | ||||||||||||
| Course types and hours (weekly/semester) |
|
||||||||||||
| Assessment type | vizsga | ||||||||||||
| Credits | 4 | ||||||||||||
| Subject coordinator |
Hornák Zoltán
position: tanársegéd
|
||||||||||||
| Responsible department |
—
|
||||||||||||
| Faculty | |||||||||||||
| Subject website | http://www.mit.bme.hu/oktatas/targyak/vimivb08/ | ||||||||||||
| Primary curriculum type | — | ||||||||||||
| Direct prerequisites – Strong prerequisite | none | ||||||||||||
| Direct prerequisites – Weak prerequisite | none | ||||||||||||
| Direct prerequisites – Parallel prerequisite | none | ||||||||||||
| Direct prerequisites – Milestone prerequisite | none | ||||||||||||
| Direct prerequisites – Exclusion | none |
Objectives
Programme
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.
Learning outcomes
Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:
Knowledge
No learning outcomes recorded.
Skills
No learning outcomes recorded.
Attitudes
No learning outcomes recorded.
Autonomy and responsibility
No learning outcomes recorded.
Oktatási módszertan
Előadás.
Tanulástámogató anyagok
Not provided.
Recommended preliminary knowledge for completing the subject
Knowledge type competencies
(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
Skill type competencies
(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
Recommended (non-compulsory) preliminary competencies
(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
General rules
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.
Assessment methods
In-term assessments
No detailed assessments provided.
Weight of in-term assessments
No weights provided.
Exam-period assessments
No detailed assessments provided.
Weight of exam elements
No weights provided.
Grade calculation
No grade thresholds provided.
Attendance requirements
No attendance requirements provided.
Rules for retake and resubmission
Not provided.
Short description
Not provided.
Detailed description
Not provided.
Recommended courses
-
Workload to complete the subject
No workload breakdown provided.
Validity of subject requirements
Requirements valid from:
—
Requirements valid until:
—
Curriculum placement
No curriculum placements recorded for this subject version.