Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2024/2025

Bezpečný kód

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
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ů:
Platnost dat k 21. 11. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet6702806.html