Wydział Informatyki - Informatyka (S2)
specjalność: Programowanie gier komputerowych
Sylabus przedmiotu Projektowanie bezpiecznych aplikacji:
Informacje podstawowe
Kierunek studiów | Informatyka | ||
---|---|---|---|
Forma studiów | studia stacjonarne | Poziom | drugiego stopnia |
Tytuł zawodowy absolwenta | magister inżynier | ||
Obszary studiów | charakterystyki PRK, kompetencje inżynierskie PRK | ||
Profil | ogólnoakademicki | ||
Moduł | — | ||
Przedmiot | Projektowanie bezpiecznych aplikacji | ||
Specjalność | Projektowanie oprogramowania | ||
Jednostka prowadząca | Katedra Inżynierii Oprogramowania | ||
Nauczyciel odpowiedzialny | Imed El Fray <Imed.El Fray@zut.edu.pl> | ||
Inni nauczyciele | Imed El Fray <Imed.El Fray@zut.edu.pl>, Mirosław Łazoryszczak <Miroslaw.Lazoryszczak@zut.edu.pl> | ||
ECTS (planowane) | 3,0 | ECTS (formy) | 3,0 |
Forma zaliczenia | zaliczenie | Język | polski |
Blok obieralny | — | Grupa obieralna | — |
Formy dydaktyczne
Wymagania wstępne
KOD | Wymaganie wstępne |
---|---|
W-1 | Inżynieria oprogramowania |
W-2 | Sieci Komputerowe |
W-3 | Podstaw ochrony informacji |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | Zapoznanie studentów z narzędziami informatycznymi stosowanymi do zbierania wymagań, projektowania i wytwarzania aplikacji w oparciu o dostępnych metod i technik zgodnie z obowiązującymi normami. |
C-2 | Ukształtowanie umiejętności projektowania i wytwarzania bezpiecznych aplikacji w dedykowanym środowisko i w oparciu o wymagań norm. |
Treści programowe z podziałem na formy zajęć
KOD | Treść programowa | Godziny |
---|---|---|
laboratoria | ||
T-L-1 | Tworzenie profilu i zadań zabezpieczeń aplikacji z użyciem oprogramowania CCtoolbox | 4 |
T-L-2 | Zarzadzania konfiguracją aplikacji (zarządzanie wersjami i zmianami zgodnie z wymaganiami CC) z wykorzystaniem narzędzi (GitLab/Subversion) | 4 |
T-L-3 | Przygotowanie projektu aplikacji z wykorzystaniem wzorców projektowych | 4 |
T-L-4 | Wykorzystanie narzędzi (np. code climate, codacy czy SonarQube) do sprawdzania jakości kodu aplikacji | 4 |
T-L-5 | Testowania (test funkcjonalny, pokrycia i głębokości z wykorzystaniem ECJTiger, EMMA, Metasploit) kodów aplikacji oraz ich bezpieczeństwa (testy penetracyjne). | 4 |
T-L-6 | Tworzenie, ocena i przygotowania aplikacji do certyfikacji na zgodność z metodyką CEM | 10 |
30 | ||
wykłady | ||
T-W-1 | Wprowadzenie do projektowania zabezpieczeń – omówienie podstawowych pojęć związanych z bezpieczeństwem teleinformatycznym. Obowiązujące normy i standardy. | 2 |
T-W-2 | Systemy zarządzania konfiguracją – wprowadzenie do zasad zarządzania projektem teleinformatycznym. Podział na role i odpowiedzialności w projekcie. Omówienie procedur zarządzania wersjami i zmianami oraz systemów wspomagających nadzór nad procesem (GitLab, Subversion itp.). | 4 |
T-W-3 | Metodyki oceny bezpiecznych aplikacji – omówienie metodyk oceny bezpiecznych aplikacji CEM. Omówienie techniki tworzenia wizji, profilu i zadań zabezpieczeń zgodnie w wymaganiami COMMON CRITERIA. | 6 |
T-W-4 | Projektowanie aplikacji – omówienie narzędzi wspomagających wytwarzanie bezpiecznych aplikacji oraz sposoby ich wykorzystania. Omówienie wzorców projektowych wymaganych do obsługi złożonych aplikacji. Omówienie technik przeglądu jakości kodu oraz jego refaktoringu. | 8 |
T-W-5 | Konstruowanie i wsparcie w cyklu życia aplikacji – zdefiniowanie narzędzi konstrukcyjnych stosowanych do analizy i implementacji aplikacji oraz omówienie techniki śledzenia i usuwania błędów odkrywanych w okresie wspierania aplikacji. Omówienie techniki tworzenia dokumentacji dla wymagań funkcjonalnych, projekt niskiego i wysokiego poziomu oraz uzasadnienie zgodności między nimi. | 6 |
T-W-6 | Testowanie bezpieczeństwa aplikacji – omówienie rodzajów wymaganych testów oraz narzędzi. Omówienie techniki tworzenia scenariuszy, przypadków i procedur testowych wraz ze specyfikacjami | 4 |
30 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | Uczestnictwo w zajęciach | 30 |
A-L-2 | Przygotowanie do ćwiczeń laboratoryjnych | 8 |
38 | ||
wykłady | ||
A-W-1 | Uczestnictwo w zajęciach | 30 |
A-W-2 | Przygotowanie do zaliczenia | 6 |
A-W-3 | Udział w konsultacjach | 2 |
38 |
Metody nauczania / narzędzia dydaktyczne
KOD | Metoda nauczania / narzędzie dydaktyczne |
---|---|
M-1 | Wykład informacyjno-konwersatoryjny |
M-2 | Cwiczenia laboratoryjne |
Sposoby oceny
KOD | Sposób oceny |
---|---|
S-1 | Ocena formująca: Ocena na podstawie wejsciówki, stopnia wykonania (pod koniec zajęć) scenariuszy formułowanych w oparciu o konspekty laboratoryjne i/lub sprawozdania z zajęć |
S-2 | Ocena formująca: Test (jednokrotnego lub wielokrotnego wyboru) oraz pytania otwarte (zadania problemowe) |
Zamierzone efekty uczenia się - wiedza
Zamierzone efekty uczenia się | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_2A_D02.04_W01 Potrafi tworzyć wizję i profil zabezpieczeń, zaprojektować, implementować i testować oraz ocenić dowolną aplikacji na jej zgodność z wymaganiami Common Criteria. | I_2A_W07 | — | — | C-1 | T-W-3, T-W-4, T-W-2, T-W-5, T-W-6 | M-1 | S-2 |
Zamierzone efekty uczenia się - umiejętności
Zamierzone efekty uczenia się | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_2A_D02.04_U01 Umie ocenić system/aplikacji, generować raporty z ocenę i wskazać najlepszych rozwiązań na poziomie (profilu i zadania zabezpieczeń, TOE) zgodnie z wytycznymi Comman Criteria | I_2A_U10 | — | — | C-2 | T-L-1, T-L-3, T-L-4, T-L-2, T-L-5 | M-2 | S-1 |
Kryterium oceny - wiedza
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
I_2A_D02.04_W01 Potrafi tworzyć wizję i profil zabezpieczeń, zaprojektować, implementować i testować oraz ocenić dowolną aplikacji na jej zgodność z wymaganiami Common Criteria. | 2,0 | Student nie posiada wiedzy umożliwiającej mu uzyskanie zaliczenia |
3,0 | Student posiada podstawowej wiedzy z zarządzaniem i projektowaniem bezpiecznych aplikacji | |
3,5 | Wymagania na 3.0 plus dodatkowo: Student zna techniki śledzenie i usuwania błędów w okresie wspierania aplikacji | |
4,0 | Wymagania na 3.5 plus dodatkowo: Student zna techniki tworzenia dokumentacji dla dla wymagań funkcjonalnych, projekt niskiego i wysokiego poziomu oraz uzasadnienie zgodności między nimi | |
4,5 | Wymagania na 4.0 plus dodatkowo: Student zna techniki tworzenia tworzenia scenariuszy, przypadków i procedur testowych wraz ze specyfikacjami dla aplikacji zgodnie z wymagania Common Cryteria | |
5,0 | Wymagania na 4.5 plus dodatkowo: Student zna metody oceny profilu i zadaniu zabezpieczeń oraz TOE zgodnie z wymagania Common Cryteria |
Kryterium oceny - umiejętności
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
I_2A_D02.04_U01 Umie ocenić system/aplikacji, generować raporty z ocenę i wskazać najlepszych rozwiązań na poziomie (profilu i zadania zabezpieczeń, TOE) zgodnie z wytycznymi Comman Criteria | 2,0 | Student nie posiada umiejętność umożliwiających mu uzyskanie zaliczenia. |
3,0 | Student potrafi tworzyć profilu i/lub zadania zabezpieczeń aplikacji na zgodność z Common Criteria | |
3,5 | Wymagania na 3.0 plus dodatkowo: Student potrafi zadządzać konfiguracją aplikacji z wykorzystaniem środowisku GitLab i/lub Sabversion | |
4,0 | Wymagania na 3.5 plus dodatkowo: Student potrafi zaprojektować mechanizmów zabezpieczeń aplikacji z wykorzystaniem odpowiednich wzorców | |
4,5 | Wymagania na 4.0 plus dodatkowo: Student potrafi sprawdzać jakość kodu aplikacji oraz penetrować go w poszukiwaniu podatności na ataki | |
5,0 | Wymagania na 4.5 plus dodatkowo: Student potrafi zaprojektować i ocenić aplikacji na zgodność z CC |
Literatura podstawowa
- Common Criteria, Common Methodologyfor Information TechnologySecurity Evaluation, The governmental organisations listed in The Common Criteria Association, Szwajcaria, 2011, CCMB-2017-04-004, https://commoncriteriaportal.org
- International Standard Organization, Common Criteria for Information Technology Security Evaluation, Introduction and general model, Common Criteria, Szwajcaria, 2017, Version 3.1, https://commoncriteriaportal.org
- International Standard Organization,, Common Criteria for Information Technology Security Evaluation, Security functional components, Common Criteria, Szwajcaria, 2017, https://commoncriteriaportal.org
- Marcin Lis, Tworzenie bezpiecznych aplikacji internetowych, Helion, Warszawa, 2014, 978-83-246-8131-0
- Mark G. Graff, Kenneth R. van Wyk, Secure Coding: Principles and Practices, O'Reilly, USA, 2011, 1st Edition
- Mark Dowd, John McDonald, Justin Schuh, The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities, Pearson Education, Inc, USA, 2006, 1st Edition
Literatura dodatkowa
- Geargia Weidman, Penetration Testing: A Hands-On Introduction to Hacking, William Pollock, USA, 2014, 1st Edition