Detail předmětu

Vývoj bezpečných aplikací

FEKT-BPC-VBAAk. rok: 2023/2024

  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á

eLearning

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.

eLearning