Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (S2)

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 Włodzimierz Bielecki <Wlodzimierz.Bielecki@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

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
laboratoriaL3 30 1,50,50zaliczenie
wykładyW3 30 1,50,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1Inżynieria oprogramowania
W-2Sieci Komputerowe
W-3Podstaw ochrony informacji

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Zapoznanie 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-2Ukształ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ęć

KODTreść programowaGodziny
laboratoria
T-L-1Tworzenie profilu i zadań zabezpieczeń aplikacji z użyciem oprogramowania CCtoolbox4
T-L-2Zarzadzania konfiguracją aplikacji (zarządzanie wersjami i zmianami zgodnie z wymaganiami CC) z wykorzystaniem narzędzi (GitLab/Subversion)4
T-L-3Przygotowanie projektu aplikacji z wykorzystaniem wzorców projektowych4
T-L-4Wykorzystanie narzędzi (np. code climate, codacy czy SonarQube) do sprawdzania jakości kodu aplikacji4
T-L-5Testowania (test funkcjonalny, pokrycia i głębokości z wykorzystaniem ECJTiger, EMMA, Metasploit) kodów aplikacji oraz ich bezpieczeństwa (testy penetracyjne).4
T-L-6Tworzenie, ocena i przygotowania aplikacji do certyfikacji na zgodność z metodyką CEM10
30
wykłady
T-W-1Wprowadzenie do projektowania zabezpieczeń – omówienie podstawowych pojęć związanych z bezpieczeństwem teleinformatycznym. Obowiązujące normy i standardy.2
T-W-2Systemy 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-3Metodyki 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-4Projektowanie 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-5Konstruowanie 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-6Testowanie 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 specyfikacjami4
30

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1Uczestnictwo w zajęciach30
A-L-2Przygotowanie do ćwiczeń laboratoryjnych8
38
wykłady
A-W-1Uczestnictwo w zajęciach30
A-W-2Przygotowanie do zaliczenia6
A-W-3Udział w konsultacjach2
38

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1Wykład informacyjno-konwersatoryjny
M-2Cwiczenia laboratoryjne

Sposoby oceny

KODSposób oceny
S-1Ocena 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-2Ocena 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ówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposó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_W07C-1T-W-2, T-W-3, T-W-4, T-W-5, T-W-6M-1S-2

Zamierzone efekty uczenia się - umiejętności

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposó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_U10C-2T-L-1, T-L-2, T-L-3, T-L-4, T-L-5M-2S-1

Kryterium oceny - wiedza

Efekt uczenia sięOcenaKryterium 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,0Student nie posiada wiedzy umożliwiającej mu uzyskanie zaliczenia
3,0Student posiada podstawowej wiedzy z zarządzaniem i projektowaniem bezpiecznych aplikacji
3,5Wymagania na 3.0 plus dodatkowo: Student zna techniki śledzenie i usuwania błędów w okresie wspierania aplikacji
4,0Wymagania 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,5Wymagania 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,0Wymagania 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ęOcenaKryterium 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,0Student nie posiada umiejętność umożliwiających mu uzyskanie zaliczenia.
3,0Student potrafi tworzyć profilu i/lub zadania zabezpieczeń aplikacji na zgodność z Common Criteria
3,5Wymagania na 3.0 plus dodatkowo: Student potrafi zadządzać konfiguracją aplikacji z wykorzystaniem środowisku GitLab i/lub Sabversion
4,0Wymagania na 3.5 plus dodatkowo: Student potrafi zaprojektować mechanizmów zabezpieczeń aplikacji z wykorzystaniem odpowiednich wzorców
4,5Wymagania na 4.0 plus dodatkowo: Student potrafi sprawdzać jakość kodu aplikacji oraz penetrować go w poszukiwaniu podatności na ataki
5,0Wymagania na 4.5 plus dodatkowo: Student potrafi zaprojektować i ocenić aplikacji na zgodność z CC

Literatura podstawowa

  1. 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
  2. International Standard Organization, Common Criteria for Information Technology Security Evaluation, Introduction and general model, Common Criteria, Szwajcaria, 2017, Version 3.1, https://commoncriteriaportal.org
  3. International Standard Organization,, Common Criteria for Information Technology Security Evaluation, Security functional components, Common Criteria, Szwajcaria, 2017, https://commoncriteriaportal.org
  4. Marcin Lis, Tworzenie bezpiecznych aplikacji internetowych, Helion, Warszawa, 2014, 978-83-246-8131-0
  5. Mark G. Graff, Kenneth R. van Wyk, Secure Coding: Principles and Practices, O'Reilly, USA, 2011, 1st Edition
  6. 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

  1. Geargia Weidman, Penetration Testing: A Hands-On Introduction to Hacking, William Pollock, USA, 2014, 1st Edition

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Tworzenie profilu i zadań zabezpieczeń aplikacji z użyciem oprogramowania CCtoolbox4
T-L-2Zarzadzania konfiguracją aplikacji (zarządzanie wersjami i zmianami zgodnie z wymaganiami CC) z wykorzystaniem narzędzi (GitLab/Subversion)4
T-L-3Przygotowanie projektu aplikacji z wykorzystaniem wzorców projektowych4
T-L-4Wykorzystanie narzędzi (np. code climate, codacy czy SonarQube) do sprawdzania jakości kodu aplikacji4
T-L-5Testowania (test funkcjonalny, pokrycia i głębokości z wykorzystaniem ECJTiger, EMMA, Metasploit) kodów aplikacji oraz ich bezpieczeństwa (testy penetracyjne).4
T-L-6Tworzenie, ocena i przygotowania aplikacji do certyfikacji na zgodność z metodyką CEM10
30

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Wprowadzenie do projektowania zabezpieczeń – omówienie podstawowych pojęć związanych z bezpieczeństwem teleinformatycznym. Obowiązujące normy i standardy.2
T-W-2Systemy 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-3Metodyki 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-4Projektowanie 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-5Konstruowanie 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-6Testowanie 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 specyfikacjami4
30

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Uczestnictwo w zajęciach30
A-L-2Przygotowanie do ćwiczeń laboratoryjnych8
38
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Uczestnictwo w zajęciach30
A-W-2Przygotowanie do zaliczenia6
A-W-3Udział w konsultacjach2
38
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_2A_D02.04_W01Potrafi tworzyć wizję i profil zabezpieczeń, zaprojektować, implementować i testować oraz ocenić dowolną aplikacji na jej zgodność z wymaganiami Common Criteria.
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_W07Posiada poszerzoną wiedzę teoretyczną i praktyczną w zakresie bezpieczeństwa systemów informatycznych
Cel przedmiotuC-1Zapoznanie 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.
Treści programoweT-W-2Systemy 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.).
T-W-3Metodyki oceny bezpiecznych aplikacji – omówienie metodyk oceny bezpiecznych aplikacji CEM. Omówienie techniki tworzenia wizji, profilu i zadań zabezpieczeń zgodnie w wymaganiami COMMON CRITERIA.
T-W-4Projektowanie 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.
T-W-5Konstruowanie 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.
T-W-6Testowanie 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
Metody nauczaniaM-1Wykład informacyjno-konwersatoryjny
Sposób ocenyS-2Ocena formująca: Test (jednokrotnego lub wielokrotnego wyboru) oraz pytania otwarte (zadania problemowe)
Kryteria ocenyOcenaKryterium oceny
2,0Student nie posiada wiedzy umożliwiającej mu uzyskanie zaliczenia
3,0Student posiada podstawowej wiedzy z zarządzaniem i projektowaniem bezpiecznych aplikacji
3,5Wymagania na 3.0 plus dodatkowo: Student zna techniki śledzenie i usuwania błędów w okresie wspierania aplikacji
4,0Wymagania 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,5Wymagania 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,0Wymagania na 4.5 plus dodatkowo: Student zna metody oceny profilu i zadaniu zabezpieczeń oraz TOE zgodnie z wymagania Common Cryteria
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_2A_D02.04_U01Umie ocenić system/aplikacji, generować raporty z ocenę i wskazać najlepszych rozwiązań na poziomie (profilu i zadania zabezpieczeń, TOE) zgodnie z wytycznymi Comman Criteria
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_U10Potrafi projektować zgodnie z przyjętą specyfikacją złożony system informatyczny lub jego fragment oraz porównywać i krytycznie oceniać wybrane rozwiązania projektowe
Cel przedmiotuC-2Ukształtowanie umiejętności projektowania i wytwarzania bezpiecznych aplikacji w dedykowanym środowisko i w oparciu o wymagań norm.
Treści programoweT-L-1Tworzenie profilu i zadań zabezpieczeń aplikacji z użyciem oprogramowania CCtoolbox
T-L-2Zarzadzania konfiguracją aplikacji (zarządzanie wersjami i zmianami zgodnie z wymaganiami CC) z wykorzystaniem narzędzi (GitLab/Subversion)
T-L-3Przygotowanie projektu aplikacji z wykorzystaniem wzorców projektowych
T-L-4Wykorzystanie narzędzi (np. code climate, codacy czy SonarQube) do sprawdzania jakości kodu aplikacji
T-L-5Testowania (test funkcjonalny, pokrycia i głębokości z wykorzystaniem ECJTiger, EMMA, Metasploit) kodów aplikacji oraz ich bezpieczeństwa (testy penetracyjne).
Metody nauczaniaM-2Cwiczenia laboratoryjne
Sposób ocenyS-1Ocena 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ęć
Kryteria ocenyOcenaKryterium oceny
2,0Student nie posiada umiejętność umożliwiających mu uzyskanie zaliczenia.
3,0Student potrafi tworzyć profilu i/lub zadania zabezpieczeń aplikacji na zgodność z Common Criteria
3,5Wymagania na 3.0 plus dodatkowo: Student potrafi zadządzać konfiguracją aplikacji z wykorzystaniem środowisku GitLab i/lub Sabversion
4,0Wymagania na 3.5 plus dodatkowo: Student potrafi zaprojektować mechanizmów zabezpieczeń aplikacji z wykorzystaniem odpowiednich wzorców
4,5Wymagania na 4.0 plus dodatkowo: Student potrafi sprawdzać jakość kodu aplikacji oraz penetrować go w poszukiwaniu podatności na ataki
5,0Wymagania na 4.5 plus dodatkowo: Student potrafi zaprojektować i ocenić aplikacji na zgodność z CC