Bezpečný kód
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
BI-BEK.21 | Z,ZK | 5 | 2P+2C | česky |
- Garant předmětu:
- Josef Kokeš
- Přednášející:
- Josef Kokeš
- Cvičící:
- Josef Kokeš
- Předmět zajišťuje:
- katedra informační bezpečnosti
- Anotace:
-
Studenti se naučí posuzovat a zohledňovat bezpečnostní rizika při návrhu svého kódu a řešení v běžné inženýrské praxi. Od teorie modelování bezpečnostních rizik přistoupí k praxi, ve které si vyzkouší běh programů pod nižšími oprávněními a jak tato oprávnění stanovovat, protože ne každý program musí nutně běžet s administrátorským oprávněním. Budou také prakticky demonstrována rizika spojená s přetečením bufferu. Dále se studenti budou krátce věnovat zabezpečení dat a jak toto zabezpečení souvisí s databázovými systémy a webem. V závěru se budou věnovat útokům typu DoS (Denial of Service) a obraně proti nim.
- Požadavky:
-
Programování v C, znalost základních programových rozhraní a architektur počítačových systémů, základní znalost SQL, základní znalost Javascriptu. Je doporučeno souběžné studium předmětu Kryptografie a bezpečnost (BI-KAB).
- Osnova přednášek:
-
1. Úvod do bezpečného programování, modelování bezpečnostních rizik
2. Generování kódu a struktura spustitelného souboru
3. Přetečení bufferu
4. Psaní bezpečného kódu v C
5. Úrovně bezpečnostních oprávnění, ACL
6. Běh programu při nízkých oprávněních
7. Zabezpečení a integrita dat
8. Datový vstup, kanonická reprezentace a bezpečnost
9. Databáze a bezpečnost
10. Bezpečnost webových aplikací
11. Bezpečnost socketů
12. Útoky typu denial-of-service
- Osnova cvičení:
-
1. Úvod do nástrojů pro ladění
2. Generování kódu a rozbor existující aplikace
3. Přetečení bufferu
4. Přetečení bufferu II
5. Psaní bezpečného kódu v C
6. Zabezpečení a integrita dat
7. Běh při nízkých oprávněních
8. SQL injection
9. Bezpečné programování pro databázové systémy
10. Bezpečnost webových aplikací
11. Přetečení bufferu na haldě
12. Malware
- Cíle studia:
-
Po absolvování předmětu bude student rozumět bezpečnosti v kontextu vývoje softwaru a bude schopen uplatnit tyto znalosti jak při vývoji vlastního softwaru, tak při analýze softwaru cizího.
- Studijní materiály:
-
[1] Howard, M. - LeBlanc, D.: Writing Secure Code, 2nd Edition. Microsoft Press, 2003, 9780735617223.
[2] Howard, M. - LeBlanc, D.: Writing Secure Code for Windows Vista. Microsoft Press, 2007, 9780735623934.
[3] Seacord, R. C.: Secure Coding in C and C++, 2nd Edition. Addison-Wesley Professional, 2013, 9780321822130.
[4] Zhirkov, I.: Low-Level Programming: C, Assembly, and Program Execution on Intel 64 Architecture. Apress, 2017, 9781484224021.
[5] Shostack, A.: Threat Modeling: Designing for Security. Wiley, 2014, 9781118809990.
[6] Hoffman, A.: Web Application Security: Exploitation and Countermeasures for Modern Web Applications. O'Reilly Media, 2020, 9781492053118.
- Poznámka:
-
Chybí některá textová pole,vyplněny mají být anotace, požadavky, osnova (sylabus), osnova cvičení, studijní materiály, klíčová slova, CZ i EN, webová strana předmětu
- Rozvrh na zimní semestr 2024/2025:
- Rozvrh není připraven
- Rozvrh na letní semestr 2024/2025:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Bc. specializace Informační bezpečnost, 2021 (PS)
- Bc. specializace Manažerská informatika, 2021 (volitelný předmět)
- Bc. specializace Počítačová grafika, 2021 (volitelný předmět)
- Bc. specializace Počítačové inženýrství, 2021 (povinně volitelný předmět, volitelný předmět)
- Bc. program, pro fázi studia bez specializace, 2021 (VO)
- Bc. specializace Webové inženýrství, 2021 (volitelný předmět)
- Bc. specializace Umělá inteligence, 2021 (volitelný předmět)
- Bc. specializace Teoretická informatika, 2021 (volitelný předmět)
- Bc. specializace Softwarové inženýrství, 2021 (volitelný předmět)
- Bc. specializace Počítačové systémy a virtualizace, 2021 (volitelný předmět)
- Bc. specializace Počítačové sítě a Internet, 2021 (volitelný předmět)
- Bc. specializace Informační bezpečnost, 2024 (PS)
- Bc. program, pro fázi studia bez specializace, 2024 (VO)
- Bc. specializace Manažerská informatika, 2024 (volitelný předmět)
- Bc. specializace Počítačová grafika, 2024 (volitelný předmět)
- Bc. specializace Softwarové inženýrství, 2024 (volitelný předmět)
- Bc. specializace Webové inženýrství, 2024 (volitelný předmět)
- Bc. specializace Počítačové sítě a Internet, 2024 (volitelný předmět)
- Bc. specializace Počítačové inženýrství, 2024 (povinně volitelný předmět, volitelný předmět)
- Bc. specializace Počítačové systémy a virtualizace, 2024 (volitelný předmět)
- Bc. specializace Umělá inteligence, 2024 (volitelný předmět)
- Bc. specializace Teoretická informatika, 2024 (volitelný předmět)