Detail předmětu

Vývoj bezpečných aplikací

FEKT-BPC-VBAAk. rok: 2024/2025

    1. Metodiky vývoje software, RAD, SCRUM, apod.

    2. Systémy správy zdrojových souborů, SVN, GIT, atd.

    3. Testy řízené programování, jednotkové testy, analýza pokrytí kódu.

    4. Přístup k souborovému systému, správa oprávnění.

    5. Generování náhodných čísel, privátní a soukromý klíč, hashovací funkce.

    6. Certifikační autorita, správa certifikátů, zneplatnění certifikátu.

    7. Správa přihlašovacích údajů, hesel, certifikátů a klíčů.

    8. Zranitelnosti programovacích jazyků - buffer overflow, integer overflow, atd.

    9. Nástroje pro dynamickou analýzu kódu, hledání zranitelností.

    10. Databáze nalezených zranitelností, ověření systému.

     

    Jazyk výuky

    čeština

    Počet kreditů

    5

    Vstupní znalosti

    Jsou požadovány základní znalosti programování v jazyce C a terminologie v oblasti kryptografie. Student by měl být schopen: - popsat základní termíny kryptografie (certifikát, privátní klíč, veřejný klíč, atd.), - vysvětlit základní příkazy jazyka ANSI C, - aplikovat základní příkazy jazyka ANSI C a implementovat jednoduchý program.

    Pravidla hodnocení a ukončení předmětu

    Řešení samostatného projektu 20 bodů Test ve cvičeních 10 bodů Úlohy ve cvičeních 10 bodů Písemná zkouška 60 bodů
    Účast na přednáškách je nepovinná Účast na počítačových cvičení je povinná Odevzdání samostatného projektu je povinné Závěrečná písemná zkouška je povinná

    Zařazení předmětu ve studijních plánech

    • Program BPC-IBE bakalářský 2 ročník, letní semestr, povinný

    Typ (způsob) výuky

     

    Přednáška

    13 hod., nepovinná

    Vyučující / Lektor

    Osnova

    1. Metodika vývoje software, RAD, SCRUM, apod.

    2. Generace privátního a veřejného klíče, generování klíče pro symetrické šifrování. Certifikační autorita, distribuce klíčů, revokace certifikátů.

    3. Správa přihlašovacích údajů, certifikátů a klíčů, kernel keyrings, windows credential manager/certutil - jak a kde přidat certifikát autority v různých systémech.

    4. Zranitelnost kompilovaných jazyků - správa paměti, útoky typu buffer overflow, integer overflow.

    5. Dynamická analýza kódu, nástroje pro analýzu kódu.

    6. Bezpečné zavádění software - secure boot, podpisy ovladačů, TPM (Trusted Platform Module).

     

    Cvičení na počítači

    39 hod., povinná

    Vyučující / Lektor

    Osnova

    1. Organizace kurzu, vývojové prostředí, rozdělení do skupin.

    2. Správa zdrojových souborů, systém GIT, synchronizace repozitářů.

    3. Jednotkové testy (cunit), vytváření testů, spouštění, analýza pokrytí kódu (gcov).

    4. Bezpečný přístup k souborovému systému, oprávnění souborů a adresářů.

    5. Bezpečné generování náhodných čísel.

    6. Bezpečné generování kontrolních součtů.

    7. Bezpečné ukládání hesel, kontrola hesel.

    8. Generace certifikátů, využití knihoven OpenSSL.

    9. Zranitelnosti kompilovaných jazyků, buffer overrun, integer overflow, apod.

    10. Databáze chyb, CVE, hledání známých zranitelností, Valgrind, apod.

    11.Samostatný projekt.

    12. Samostatný projekt.

    13.Odevzdání samostatného projektu.