Számítógép-biztonság

A tantárgy angol neve: Computer Security

Adatlap utolsó módosítása: 2015. szeptember 10.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
MSc Mérnök-informatikus Szak
IT biztonság mellékspecializáció

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIHIMA06 2 2/1/0/v 4  
3. A tantárgyfelelős személy és tanszék Dr. Buttyán Levente,
4. A tantárgy előadója
Név:
Beosztás:
Tanszék, Int.:
Dr. Buttyán Levente
egyetemi docens
Hálózati Rendszerek és Szolgáltatások Tanszék
Dr. Bencsáth Boldizsár
egyetemi adjunktus
Hálózati Rendszerek és Szolgáltatások Tanszék
5. A tantárgy az alábbi témakörök ismeretére épít Operációs rendszerek, Programozás alapjai
6. Előtanulmányi rend
Kötelező:
NEM
(TárgyEredmény( "BMEVIHIMA21", "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIHIMA21", "FELVETEL", AktualisFelev()) > 0)

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

Ajánlott:
Ajánlott az Operációs rendszerek és a Programozás alapjai tárgyak meghallgatása a Számítógép-biztonság tárgy felvétele előtt.
7. A tantárgy célkitűzése A tárgy célja a számítógépekhez kapcsolódó főbb biztonsági problémák ismertetése, és az azok megoldását szolgáló elvek és a gyakorlatban használt módszerek és eszközök bemutatása. Számítógép alatt különböző típusú számítástechnikai eszközöket értünk (pl. személyi számítógépeket, szervereket, mobil eszközöket, beágyazott számítógépeket, stb).  A tárgy lefedi ezen eszközök fizikai és operációs rendszer szintű biztonságát, valamint az eszközökön futó alkalmazások biztonsági kérdéseit; foglalkozik a biztonságot érintő programozási hibákkal, a biztonságos szoftverfejlesztés módszereivel, és a rosszindulatú szoftverekkel (malware).
8. A tantárgy részletes tematikája 1. hét: Bevezetés és motiváció
Számítógép-biztonsági problémák a gyakorlatban, illusztratív példák, főbb számítógép-biztonsági követelmények, a számítógép-biztonság különböző szintjei.

2-3. hét: Operációs rendszer szintű biztonság
Felhasználóhitelesítés, jogosultságkezelés és hozzáférésvédelem módszereinek részletes tárgyalása, gyakorlati illusztráció Windows és Unix/Linux rendszerekből vett példákon keresztül. Kernel integritás, process izoláció, memória védelem. Megerősített operációs rendszerek, pl: Linux Security Modules.

4-5. hét: Vezérlésfolyam elleni támadások
Programvégrehajtás, függvényhívás és -visszatérés mechanizmusainak átismétlése. Overflow támadások (stack overflow, heap overflow), format string támadás, Return Oriented Programming (ROP), hook-olási technikák. Illusztratív példák.

6-7. hét: Szoftverbiztonság
Szoftverek biztonsági elemzése és tesztelése (code review, fuzzing), a tesztelést segítő eszközök. Biztonságos szoftverfejlesztési módszertanok, illusztratív példák. Különböző programozási nyelvek (C/C++, Java, script nyelvek) és keretrendszerek sajátosságai szoftverbiztonsági hibák szempontjából.

8-9. hét: Rosszindulatú szoftverek (malware)
Rosszindulatú szoftverek típusai (vírusok, férgek, trójaiak, stb.), működésük, terjedési és rejtőzködési módszereik (rootkit technikák). Szignatúra alapú és heurisztikus malware detekciós módszerek, malware incidensek kezelése. Malware analízis (reverse engineering), statikus és dinamikus analízis eszközök és technikák a gyakorlatban.

10. hét: Browserek biztonsága
Biztonsági veszélyek és beépített biztonsági mechanismusok modern browserekben. A beépülő modulok és egyéb helper objektumok biztonsági veszélyei.

11. hét: Mobile platformok biztonsága
Android és iOS platformok biztonsági architektúrája, alkalmazás permission modellek. Mobil malware-ek típusai, működésük. Egyéb biztonsági és privacy problémák mobil környezetben.  

12. hét: Felhő alapú számítástechnikai rendszerek biztonsági problémái
A virtualizáció, mint a felhő alapú számítástechnika alapjának bevezetése, a virtualizáció szintjei és fajtái. Guest-to-guest, guest-to-host, és guest-to-hypervisor támadások virtualizált környezetben. Egyéb támadások virtualizált rendszerekben. Virtualizáció detekciója és a transzparenciát segítő módszerek.  

13. hét: Fizikai biztonság, bontás-ellenálló eszközök
A bontás-ellenállóság szintjei, a FIPS 140-2 szabány. Támadás típusok bontás-ellenálló eszközök ellen: invasive és non-invasive támadások, side channel támadások, és API támadások. Intelligens chip kártyák és high-end hardver biztonsági modulok (HSM).

14. hét: Trusted computing
Trusted Computing elvi háttere, Trusted Platform Module (TPM) felépítése, funkciói, és a kapcsolódó protokollok működése. A TPM alkalmazási területei. Távoli kódellenőrzés (remote code attestation) problémái, megvalósítása különböző számítástechnikai környezetekben.


A gyakorlatok az előadáson elhangzott anyagot egészítik ki konkrét eszközök használatának illusztrálásával, támadási és programozási technikák bemutatásával, valamint gyakorló feladatok végrehajtásával az alábbi bontásban:
1.    Windows jogosultságkezelés és hozzáférésvédelem: komplex beállítási lehetőségek szemléltetése példákon keresztül
2.    Linux jogosultságkezelés és hozzáférésvédelem: komplex beállítási lehetőségek szemléltetése példákon keresztül
3.    Vezérlésfolyam elleni támadások: stack overflow, heap overflow, format string támadás szemléltetése konkrét példák részletes analízisén keresztül
4.    Vezérlésfolyam elleni támadások: Return Oriented Programming (ROP), és hook-olási technikák szemléltetése konkrét példák részletes analízisén keresztül
5.    Szoftverek biztonsági ellenőrzése, tesztelése: konkrét szoftver tesztelési eszközök (pl. fuzzing tool-ok) használatának bemutatása
6.    Malware elemzés statikus analízis módszerekkel: IDApro disassembler használatának bemutatása egy malware analízisén keresztül
7.    Malware elemzés dinamikus analízis módszerekkel: Cuckoo sandbox környezet használatának bemutatása egy malware analízisén keresztül

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Előadás és gyakorlat
10. Követelmények

A szorgalmi időszakban:
2 db házi feladat (HF1, HF2) sikeres teljesítése.

HF1 kiadása az 3. héten, beadása a 7. héten, értékelése a 8. héten történik.
A határidőre beadott HF1 a 9. héten az értékelés alapján javítva ismét
beadható.

HF2 kiadása a 7. héten, beadása a 11. héten, értékelése a 12. héten
történik.
A határidőre beadott HF2 a 13. héten az értékelés alapján javítva ismét
beadható.

Határidőre bedott HF estében javító céllal beadott (ha a hallgató élt
ennek lehetőségével) változatra kapott érdemjegy érvényes.
Határidő után beadott HF nem javítható.

A vizsgaidőszakban:
Szóbeli vizsga (V).

A félévi jegy számításának módja: 0.2*HF1 + 0.2*HF2 + 0.6*V a
legközelebbi egészre kerekítve.

11. Pótlási lehetőségek

A VIK KTB 2014. nov. 19-i határozata értelmében:
- a határidőre be nem adott HF1 késedelmesen csak a 9. hétig adható be,
  ha a hallgató a beadási határidő lejárta előtt a késést méltányolható
  okkal nem menti ki,
- a határidőre be nem adott HF2 késedelmesen csak a 13. hétig adható be,
  ha a hallgató a beadási határidő lejárta előtt a késést méltányolható
  okkal nem menti ki.

A beadási határidő lejárta előtt méltányolható okkal kimentett késés
miatt be nem adott HF a szorgalmi időszak végéig pótolható.

12. Konzultációs lehetőségek Előadókkal külön egyeztetett időpontban.
13. Jegyzet, tankönyv, felhasználható irodalom Előadások anyaga on-line elérhető, minden témakörhöz külön irodalomjegyzékkel ellátva.
14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra42
Félévközi készülés órákra 
Felkészülés zárthelyire 
Házi feladat elkészítése30
Kijelölt írásos tananyag elsajátítása 
Vizsgafelkészülés48
Összesen120
15. A tantárgy tematikáját kidolgozta
Név:
Beosztás:
Tanszék, Int.:
Dr. Buttyán Levente
egyetemi docens
Hálózati Rendszerek és Szolgáltatások Tanszék