K-INFO
HU
EN
Login

Secure Programming

Biztonságos programozás
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)
Course type lecture tutorial laboratory
hours (weekly) 4 0 0
type (linked/independent)
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.