Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (S2)

Sylabus przedmiotu Bezpieczeństwo informacji i architektury zabezpieczeń - Przedmiot obieralny II:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia stacjonarne Poziom drugiego stopnia
Tytuł zawodowy absolwenta magister
Obszary studiów nauki techniczne
Profil ogólnoakademicki
Moduł
Przedmiot Bezpieczeństwo informacji i architektury zabezpieczeń - Przedmiot obieralny II
Specjalność inżynieria oprogramowania
Jednostka prowadząca Katedra Inżynierii Oprogramowania
Nauczyciel odpowiedzialny Jerzy Pejaś <Jerzy.Pejas@zut.edu.pl>
Inni nauczyciele
ECTS (planowane) 2,0 ECTS (formy) 2,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny 2 Grupa obieralna 1

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
laboratoriaL2 15 0,90,50zaliczenie
wykładyW2 15 1,10,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1Słuchacz musi posiadać podstawową wiedzę w zakresie podstaw ochrony informacji, inżynierii oprogramowania, sieci komputerowych i baz danych

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Zpoznanie studenta z metodami i projektowaniem zabezpieczeń oprogramowania oraz ocena zagrożeń i podatności
C-2Ukształtowanie umiejętności identyfikacji podatnościami oprogramowania, które mogą się w nim pojawić ze względu na cechy zastosowanego języka programowania oraz złe nawyki programistyczne
C-3Ukształtowanie umiejętności korzystnia z programowych i sprzętowychi architektur zabezpieczeń

Treści programowe z podziałem na formy zajęć

KODTreść programowaGodziny
laboratoria
T-L-1Tworzenie exploitów i stosowanie bezpiecznych funkcji bibliotecznych2
T-L-2Analiza i stosowanie narzędzi do wykrywania podatności oprogramowania na ataki2
T-L-3Stosowanie mechanizmów kontroli dostępu na poziomie języka Java.2
T-L-4Przykłady ataków na bazy danych i ich zabezpieczenie2
T-L-5Zarządzanie kontrolą dostępu na poziomie języka (.NET Framework)2
T-L-6Zaawansowana kontrola dostępu - system SELinux3
T-L-7Wiarygodna baza obliczeniowa - moduł TPM2
15
wykłady
T-W-1Modele zabezpieczeń. Architektura zabezpieczeń na bazie modelu OSI. Wpływ zabezpieczeń na architekturę oprogramowania. Analiza zabezpieczeń systemu.2
T-W-2Ocena zabezpieczeń produktów i systemów. Kryteria oceny, profile zabezpieczeń2
T-W-3Praktyka stosowania zabezpieczeń na poziomie systemów operacyjnych.2
T-W-4Przepełnienie bufora i warunki wyścigu. Narzędzia do przeprowadzania audytu zabezpieczeń na poziomie kodu2
T-W-5Przegląd metod doboru języków programowania, systemów operacyjnych oraz mechanizmów uwierzytelniania i autoryzacji2
T-W-6Zabezpieczenia baz danych2
T-W-7Zabezpieczenia aplikacji klienckich i serwerowych, architektura zorientowana na usługi i jej zabezpieczenia, wiarygodne platformy obliczeniowe3
15

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

KODForma aktywnościGodziny
laboratoria
A-L-1Udział w laboratoriach15
A-L-2Przygotowanie i opracowanie sprawozdań laboratoryjnych w domu13
A-L-3Udzał w konsultacjach i zaliczeniu formy zajęć2
30
wykłady
A-W-1Udział, dyskusje i rozwiązywanie problemów formułowanych podczas wykładów15
A-W-2Przygotowanie do egzaminu i udział w egzaminie13
A-W-3Udział w konsultacjachUdzał w konsultacjach i zaliczeniu formy zajęć2
30

Metody nauczania / narzędzia dydaktyczne

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

Sposoby oceny

KODSposób oceny
S-1Ocena formująca: Ocena na podstawie wejsciówki, stopnia wykonania (pod koniec zajec) scenariuszy formułowanych w oparciu o konspekty laboratoryjne i/lub sprawozdania z zajęć
S-2Ocena podsumowująca: Test (jednokrotnego lub wielokrotnego wyboru) oraz pytania otwarte (zadania problemowe)

Zamierzone efekty kształcenia - wiedza

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D14/O1/2-2_W01
Identyfikuje podatności oprogramowania, zna ogólne techniki umożliwiającei podniesienie poziomu bezpieczeństwa aplikacji oraz potrafi wskazać odpowiednie architektury zabezpieczeń
I_2A_W04, I_2A_W05, I_2A_W06, I_2A_W10C-2, C-1T-L-3, T-L-5, T-L-7, T-L-6, T-W-1, T-W-3, T-W-5, T-W-6, T-W-7M-1, M-2S-1, S-2

Zamierzone efekty kształcenia - umiejętności

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D14/O1/2-2_U01
Potrafi określić wymagania bezpieczeństwa, zaprojektować i zaimplementować bezpieczną aplikację zgodnie z przyjętymi normami, zaleceniami i dobrymi praktykami
I_2A_U10, I_2A_U04, I_2A_U12C-2, C-1T-L-4, T-L-5, T-L-6, T-L-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-7M-1, M-2S-1, S-2

Zamierzone efekty kształcenia - inne kompetencje społeczne i personalne

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D14/O1/2-2_K01
Student ma świadomość wpływu posiadanej wiedzy, jej aktualności, jakości własnej pracy oraz znajomości przepisów prawa w zakresie bezpieczeństwa informacji na bezpieczeństwo projektowanych systemów informatycznych i przetwarzanych przez nie informacji
I_2A_K06, I_2A_K02C-2, C-3T-L-3, T-W-3, T-W-5M-1, M-2S-1, S-2

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium oceny
I_2A_D14/O1/2-2_W01
Identyfikuje podatności oprogramowania, zna ogólne techniki umożliwiającei podniesienie poziomu bezpieczeństwa aplikacji oraz potrafi wskazać odpowiednie architektury zabezpieczeń
2,0nie spełnia kryteriów określonych dla oceny 3
3,0- potrafi wymienić wybrane podstawowe klasy podatności - potrafi wymienić i krótko zdefiniować poszczególne etapy wytwarzania bezpiecznego oprogramowania
3,5- potrafi wymienić i krótko scharakteryzować dowolne klasy podatności - potrafi zdefiniować podstawowe wymagania bezpieczeństwa dla oprogramowania
4,0- potrafi precyzyjnie opisać wybrane klasy podatności - potrafi precyzyjnie opisać proces definiowania wymagań bezpieczeństwa dla oprogramowania
4,5- potrafi sklasyfikować podatności według ich wpływu na bezpieczeństwo aplikacji - potrafi wskazać i precyzyjnie scharakteryzować wybrane techniki i zalecenia implementacyjne związane z wytwarzaniem bezpiecznego oprogramowania na platformy językowe typu .NET i Java
5,0- potrafi wskazać aktualne zalecenia bepieczeństwa dla najważniejszych klas podatności oprogramowania oraz ich związek z architekturami zabezpieczeń

Kryterium oceny - umiejętności

Efekt kształceniaOcenaKryterium oceny
I_2A_D14/O1/2-2_U01
Potrafi określić wymagania bezpieczeństwa, zaprojektować i zaimplementować bezpieczną aplikację zgodnie z przyjętymi normami, zaleceniami i dobrymi praktykami
2,0nie spełnia kryteriów określonych dla oceny 3
3,0potrafi określić i formalnie zapisać wymagania bezpieczeństwa dla prostego systemu oprogramowania oraz zaproponować odpowiednie architektury oprogramowania na bazie określonych wymagań bezpieczeństwa
3,5potrafi zaimplementować oprogramowanie w wybranym języku na bazie opracowanego projektu z uwzględnieniem konieczności wykorzystania mechanizmów poprawiających bezpieczeństwo w oparciu o określone wcześniej wymagania
4,0potrafi praktycznie wykorzystać wskazania norm i zbiorów dobrych praktyk dotyczących implementacji bezpiecznego oprogramowania
4,5Potrafi zaprojketować aplikację wykorzystującą mechanizmy zabezpieczeń wbudowane w platformy językowe typu .NET i Java
5,0Spełnia wymagania na ocenę 4,5 oraz dodatkowo potrafi wykorzystać mechnaizmy zabezpieczajace wbudowane w moduł TPM

Kryterium oceny - inne kompetencje społeczne i personalne

Efekt kształceniaOcenaKryterium oceny
I_2A_D14/O1/2-2_K01
Student ma świadomość wpływu posiadanej wiedzy, jej aktualności, jakości własnej pracy oraz znajomości przepisów prawa w zakresie bezpieczeństwa informacji na bezpieczeństwo projektowanych systemów informatycznych i przetwarzanych przez nie informacji
2,0nie spełnia kryteriów określonych dla oceny 3
3,0ma świadomość istnienia norm, zaleceń i zbiorów dobrych praktyk związanych z bezpieczeństwem informacji
3,5potrafi wskazać wybrane normy, zalecenia i dobre praktyki związane z bezpieczeństwem informacj, których użył podczas rozwiązywania zadań
4,0ma świadomość, któe przepisy prawa mogą zostać naruszone w wyniku korzystania z systemów niewłaściwie chroniących informację
4,5aktywnie uzupełnia wiedzę o najnowsze informacje mogące mieć wpływ na bezpieczeństwo informacji
5,0zna metody udostępniania własnej wiedzy mogącej mieć wpływ na bezpieczeństwo wytwarzanego i eksploatowanego systemu sprzętowo-programowego

Literatura podstawowa

  1. Dieter Gollmann, Computer Security, John Wiley & Sons, New York, 2006
  2. Robert C. Seacord, Secure Coding in C and C++, Addision Wesley Professional, New York, 2005
  3. J.D. Meier, Alex Mackman, Michael Dunner, Srinath Vasireddy, Tworzenie Bezpiecznych Aplikacji Microsoft ASP.NET, Microsoft Press, Redmond, 2002
  4. Killmeyer, Jan, Information Security Architecture: An Integrated Approach to Security in the Organization, Auerbach Publications, New York, 2006

Literatura dodatkowa

  1. Bernard, Scott A., An Introduction to Enterprise Architecture, AuthorHouse, Bloomington, 2004
  2. Special publications SP 800-33, Underlying Technical Models for Information Technology Security, NIST, New York, 2001
  3. Paul C. Brown, Implementing SOA: Total Architecture in Practice, Addison Wesley Professional, New York, 2008

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Tworzenie exploitów i stosowanie bezpiecznych funkcji bibliotecznych2
T-L-2Analiza i stosowanie narzędzi do wykrywania podatności oprogramowania na ataki2
T-L-3Stosowanie mechanizmów kontroli dostępu na poziomie języka Java.2
T-L-4Przykłady ataków na bazy danych i ich zabezpieczenie2
T-L-5Zarządzanie kontrolą dostępu na poziomie języka (.NET Framework)2
T-L-6Zaawansowana kontrola dostępu - system SELinux3
T-L-7Wiarygodna baza obliczeniowa - moduł TPM2
15

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Modele zabezpieczeń. Architektura zabezpieczeń na bazie modelu OSI. Wpływ zabezpieczeń na architekturę oprogramowania. Analiza zabezpieczeń systemu.2
T-W-2Ocena zabezpieczeń produktów i systemów. Kryteria oceny, profile zabezpieczeń2
T-W-3Praktyka stosowania zabezpieczeń na poziomie systemów operacyjnych.2
T-W-4Przepełnienie bufora i warunki wyścigu. Narzędzia do przeprowadzania audytu zabezpieczeń na poziomie kodu2
T-W-5Przegląd metod doboru języków programowania, systemów operacyjnych oraz mechanizmów uwierzytelniania i autoryzacji2
T-W-6Zabezpieczenia baz danych2
T-W-7Zabezpieczenia aplikacji klienckich i serwerowych, architektura zorientowana na usługi i jej zabezpieczenia, wiarygodne platformy obliczeniowe3
15

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Udział w laboratoriach15
A-L-2Przygotowanie i opracowanie sprawozdań laboratoryjnych w domu13
A-L-3Udzał w konsultacjach i zaliczeniu formy zajęć2
30
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Udział, dyskusje i rozwiązywanie problemów formułowanych podczas wykładów15
A-W-2Przygotowanie do egzaminu i udział w egzaminie13
A-W-3Udział w konsultacjachUdzał w konsultacjach i zaliczeniu formy zajęć2
30
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/O1/2-2_W01Identyfikuje podatności oprogramowania, zna ogólne techniki umożliwiającei podniesienie poziomu bezpieczeństwa aplikacji oraz potrafi wskazać odpowiednie architektury zabezpieczeń
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_W04Ma wiedzę z zakresu zaawansowanych technik programowania systemów informatycznych w wybranym obszarze zastosowań
I_2A_W05Ma rozszerzoną i podbudowaną teoretycznie wiedzę z zakresu metod informatyki wykorzystywanych do rozwiązywania problemów w wybranych obszarach nauki i techniki
I_2A_W06Posiada wiedzę o narzędziach sprzętowo-programowych wspomagających rozwiązywanie wybranych i złożonych problemów w różnych obszarach nauki i techniki
I_2A_W10Ma poszerzoną wiedzę dotyczącą trendów rozwojowych i możliwości zastosowania informatyki w wybranych obszarach nauki i techniki
Cel przedmiotuC-2Ukształtowanie umiejętności identyfikacji podatnościami oprogramowania, które mogą się w nim pojawić ze względu na cechy zastosowanego języka programowania oraz złe nawyki programistyczne
C-1Zpoznanie studenta z metodami i projektowaniem zabezpieczeń oprogramowania oraz ocena zagrożeń i podatności
Treści programoweT-L-3Stosowanie mechanizmów kontroli dostępu na poziomie języka Java.
T-L-5Zarządzanie kontrolą dostępu na poziomie języka (.NET Framework)
T-L-7Wiarygodna baza obliczeniowa - moduł TPM
T-L-6Zaawansowana kontrola dostępu - system SELinux
T-W-1Modele zabezpieczeń. Architektura zabezpieczeń na bazie modelu OSI. Wpływ zabezpieczeń na architekturę oprogramowania. Analiza zabezpieczeń systemu.
T-W-3Praktyka stosowania zabezpieczeń na poziomie systemów operacyjnych.
T-W-5Przegląd metod doboru języków programowania, systemów operacyjnych oraz mechanizmów uwierzytelniania i autoryzacji
T-W-6Zabezpieczenia baz danych
T-W-7Zabezpieczenia aplikacji klienckich i serwerowych, architektura zorientowana na usługi i jej zabezpieczenia, wiarygodne platformy obliczeniowe
Metody nauczaniaM-1Wykład informacyjno-konwersatoryjny
M-2Ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: Ocena na podstawie wejsciówki, stopnia wykonania (pod koniec zajec) scenariuszy formułowanych w oparciu o konspekty laboratoryjne i/lub sprawozdania z zajęć
S-2Ocena podsumowująca: Test (jednokrotnego lub wielokrotnego wyboru) oraz pytania otwarte (zadania problemowe)
Kryteria ocenyOcenaKryterium oceny
2,0nie spełnia kryteriów określonych dla oceny 3
3,0- potrafi wymienić wybrane podstawowe klasy podatności - potrafi wymienić i krótko zdefiniować poszczególne etapy wytwarzania bezpiecznego oprogramowania
3,5- potrafi wymienić i krótko scharakteryzować dowolne klasy podatności - potrafi zdefiniować podstawowe wymagania bezpieczeństwa dla oprogramowania
4,0- potrafi precyzyjnie opisać wybrane klasy podatności - potrafi precyzyjnie opisać proces definiowania wymagań bezpieczeństwa dla oprogramowania
4,5- potrafi sklasyfikować podatności według ich wpływu na bezpieczeństwo aplikacji - potrafi wskazać i precyzyjnie scharakteryzować wybrane techniki i zalecenia implementacyjne związane z wytwarzaniem bezpiecznego oprogramowania na platformy językowe typu .NET i Java
5,0- potrafi wskazać aktualne zalecenia bepieczeństwa dla najważniejszych klas podatności oprogramowania oraz ich związek z architekturami zabezpieczeń
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/O1/2-2_U01Potrafi określić wymagania bezpieczeństwa, zaprojektować i zaimplementować bezpieczną aplikację zgodnie z przyjętymi normami, zaleceniami i dobrymi praktykami
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_U10Potrafi wykorzystywać oprogramowanie wspomagające rozwiązywanie wybranych problemów
I_2A_U04Potrafi wybrać, krytycznie ocenić przydatność i zastosować metodę i narzędzia rozwiązania złożonego zadania inżynierskiego
I_2A_U12Ma umiejętność stosowania zaawansowanych technik programowania i metodyki projektowania systemów informatycznych w wybranym obszarze zastosowań
Cel przedmiotuC-2Ukształtowanie umiejętności identyfikacji podatnościami oprogramowania, które mogą się w nim pojawić ze względu na cechy zastosowanego języka programowania oraz złe nawyki programistyczne
C-1Zpoznanie studenta z metodami i projektowaniem zabezpieczeń oprogramowania oraz ocena zagrożeń i podatności
Treści programoweT-L-4Przykłady ataków na bazy danych i ich zabezpieczenie
T-L-5Zarządzanie kontrolą dostępu na poziomie języka (.NET Framework)
T-L-6Zaawansowana kontrola dostępu - system SELinux
T-L-1Tworzenie exploitów i stosowanie bezpiecznych funkcji bibliotecznych
T-W-2Ocena zabezpieczeń produktów i systemów. Kryteria oceny, profile zabezpieczeń
T-W-3Praktyka stosowania zabezpieczeń na poziomie systemów operacyjnych.
T-W-4Przepełnienie bufora i warunki wyścigu. Narzędzia do przeprowadzania audytu zabezpieczeń na poziomie kodu
T-W-5Przegląd metod doboru języków programowania, systemów operacyjnych oraz mechanizmów uwierzytelniania i autoryzacji
T-W-7Zabezpieczenia aplikacji klienckich i serwerowych, architektura zorientowana na usługi i jej zabezpieczenia, wiarygodne platformy obliczeniowe
Metody nauczaniaM-1Wykład informacyjno-konwersatoryjny
M-2Ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: Ocena na podstawie wejsciówki, stopnia wykonania (pod koniec zajec) scenariuszy formułowanych w oparciu o konspekty laboratoryjne i/lub sprawozdania z zajęć
S-2Ocena podsumowująca: Test (jednokrotnego lub wielokrotnego wyboru) oraz pytania otwarte (zadania problemowe)
Kryteria ocenyOcenaKryterium oceny
2,0nie spełnia kryteriów określonych dla oceny 3
3,0potrafi określić i formalnie zapisać wymagania bezpieczeństwa dla prostego systemu oprogramowania oraz zaproponować odpowiednie architektury oprogramowania na bazie określonych wymagań bezpieczeństwa
3,5potrafi zaimplementować oprogramowanie w wybranym języku na bazie opracowanego projektu z uwzględnieniem konieczności wykorzystania mechanizmów poprawiających bezpieczeństwo w oparciu o określone wcześniej wymagania
4,0potrafi praktycznie wykorzystać wskazania norm i zbiorów dobrych praktyk dotyczących implementacji bezpiecznego oprogramowania
4,5Potrafi zaprojketować aplikację wykorzystującą mechanizmy zabezpieczeń wbudowane w platformy językowe typu .NET i Java
5,0Spełnia wymagania na ocenę 4,5 oraz dodatkowo potrafi wykorzystać mechnaizmy zabezpieczajace wbudowane w moduł TPM
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/O1/2-2_K01Student ma świadomość wpływu posiadanej wiedzy, jej aktualności, jakości własnej pracy oraz znajomości przepisów prawa w zakresie bezpieczeństwa informacji na bezpieczeństwo projektowanych systemów informatycznych i przetwarzanych przez nie informacji
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_K06Potrafi myśleć i działać w sposób kreatywny i przedsiębiorczy
I_2A_K02Świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą
Cel przedmiotuC-2Ukształtowanie umiejętności identyfikacji podatnościami oprogramowania, które mogą się w nim pojawić ze względu na cechy zastosowanego języka programowania oraz złe nawyki programistyczne
C-3Ukształtowanie umiejętności korzystnia z programowych i sprzętowychi architektur zabezpieczeń
Treści programoweT-L-3Stosowanie mechanizmów kontroli dostępu na poziomie języka Java.
T-W-3Praktyka stosowania zabezpieczeń na poziomie systemów operacyjnych.
T-W-5Przegląd metod doboru języków programowania, systemów operacyjnych oraz mechanizmów uwierzytelniania i autoryzacji
Metody nauczaniaM-1Wykład informacyjno-konwersatoryjny
M-2Ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: Ocena na podstawie wejsciówki, stopnia wykonania (pod koniec zajec) scenariuszy formułowanych w oparciu o konspekty laboratoryjne i/lub sprawozdania z zajęć
S-2Ocena podsumowująca: Test (jednokrotnego lub wielokrotnego wyboru) oraz pytania otwarte (zadania problemowe)
Kryteria ocenyOcenaKryterium oceny
2,0nie spełnia kryteriów określonych dla oceny 3
3,0ma świadomość istnienia norm, zaleceń i zbiorów dobrych praktyk związanych z bezpieczeństwem informacji
3,5potrafi wskazać wybrane normy, zalecenia i dobre praktyki związane z bezpieczeństwem informacj, których użył podczas rozwiązywania zadań
4,0ma świadomość, któe przepisy prawa mogą zostać naruszone w wyniku korzystania z systemów niewłaściwie chroniących informację
4,5aktywnie uzupełnia wiedzę o najnowsze informacje mogące mieć wpływ na bezpieczeństwo informacji
5,0zna metody udostępniania własnej wiedzy mogącej mieć wpływ na bezpieczeństwo wytwarzanego i eksploatowanego systemu sprzętowo-programowego