Kurs: Bezpieczeństwo aplikacji

Język wykładowy Angielski
Semestr Letni
Status Wycofana z oferty
Opiekun Paweł Rajba
Liczba godzin 30 (wyk.) 30 (prac.)
Rodzaj K2 - kurs zaawansowany
ECTS 5
Polecany dla I roku Nie
Egzamin Nie
Grupy efektów kształcenia Inżynieria oprogramowania (L)

Opis przedmiotu:

Celem zajeć jest zaprezentowanie różnych aspektów bezpieczeństwa aplikacji. Omówione zostaną często spotykane luki bezpieczeństwa wraz ze sposobami na ich unikanie, komponenty aplikacji krytyczne pod względem bezpieczeństwa oraz dodatkowe elementy związane z bezpieczeństwem, jak np. testowanie czy normy ISO. Wszystkie prezentowane zagadnienia będą podparte stroną praktyczną, czyli przeglądem produktów dostępnych na rynku wraz z przykładowym kodem w ulubionym języku programowania. ##### **Program** 1. Bezpieczeństwo informacji i aplikacji * wprowadzenie do zagadnienia * przegląd często spotykanych zagrożeń... * ... i sposoby na ich unikanie * rankingi OWASP i CWE * podstawy kryptografii 2. Certyfikaty, podpisy elektroniczne, znaczniki czasu * podstawy teoretyczne, PKI, zastosowania certyfikatów * certyfikaty dostępne na rynku, rola Narodowego Centrum Certyfikacji, usługi kwalifikowane * strona praktyczna, przegląd rozwiązań, tworzenie własnych centrów certyfikacji 3. Uwierzytelnianie i autoryzacja * komponenty składowe rozwiązania i ich rola * znaczenie w różnych warstwach sieciowych * przegląd protokołów i rozwiązań dostępnych na rynku, w tym NTLM i Kerberos * mechanizmy kontroli dostępu, w tym RBAC & ABAC * procesy związane zarządzaniem tożsamościami i dostępem 4. Federacja tożsamości i delegacja autoryzacji * protokoły OAuth2, OpenID Connect i XACML * bezpieczeństwo w różnych typach architektury * integracja z usługami firm trzecich: SMS, systemy płatności, Auth0, Google, Facebook 5. Bezpieczeństwo baz danych * przykład rozwiązań proponowanych przez Microsoft SQL Server 6. Bezpieczeństwo na poziomie infrastruktury * bezpieczeństwo serwerów aplikacji * przegląd komponentów jak firewalle, proxy, IDS/IPS, WAF * znaczenie monitoringu, rola SIEM 7. Architektura zabezpieczeń * znaczenie dobrych wymagań * rodzaje kontrolek i ich zastosowanie * przegląd i znaczenie podstawowych zasad bezpieczeństwa (ang. security principles) * przegląd warstw architektury i ich rola * koncepcja tzw. security domains 8. Testowanie bezpieczeństwa * testy penetracyjne i skany podatności, rodzaje, metodyki * przegląd narzędzi do przeprowadzania testów * wprowadzenie do hakowania 9. End-to-end protection i modelowanie zagrożeń * metodyka STRIDE * zastosowanie narzędzi wspierających * baza CVE, kalkulator CVSS * przepływy informacji i ich zabezpieczenie * kompletność bezpieczeństwa rozwiązania 10. Bezpieczeństwo w procesie wytwarzania oprogramowania * omówienie procesu, przegląd głównych etapów * przegląd ważniejszych aktywności, m.in. zbieranie wymagań, analiza ryzyka, threat modelling. 11. Znaczenie wprowadzenia i utrzymywania polityki bezpieczeństwa