Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (N1)
specjalność: Inżynieria systemów informacyjnych

Sylabus przedmiotu Bezpieczeństwo oprogramowania:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia niestacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów charakterystyki PRK, kompetencje inżynierskie PRK
Profil ogólnoakademicki
Moduł
Przedmiot Bezpieczeństwo oprogramowania
Specjalność Inżynieria oprogramowania
Jednostka prowadząca Katedra Inżynierii Oprogramowania
Nauczyciel odpowiedzialny Tomasz Hyla <Tomasz.Hyla@zut.edu.pl>
Inni nauczyciele Tomasz Hyla <Tomasz.Hyla@zut.edu.pl>
ECTS (planowane) 3,0 ECTS (formy) 3,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny 7 Grupa obieralna 2

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
wykładyW7 18 1,50,50zaliczenie
laboratoriaL7 18 1,50,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1Podstawy ochrony informacji
W-2Programowanie 2
W-3Inżynieria oprogramowania

Cele przedmiotu

KODCel modułu/przedmiotu
C-1zapoznanie studentów z wybranymi zagrożeniami bezpieczeństwa oprogramowania
C-2zapoznanie studentów z zasadami projektowania bezpiecznego oprogramowania
C-3ukształtowanie umiejętności z zakresu implementowania bezpiecznego oprogramowania
C-4ukształtowanie umiejętności z zakresu analizy i testowania bezpiecznego oprogramowania

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

KODTreść programowaGodziny
laboratoria
T-L-1Przegląd ataków na oprogramowanie: ataki w warunkach wyścigu (Race Condition Vulnerability, Dirty COW Attack)2
T-L-2Przegląd ataków na oprogramowanie: ataki wykorzystujące przepełnienie bufora (Buffer Overflow Vulnerability, Return-to-libc Attack)2
T-L-3Przegląd ataków na oprogramowanie: atak typu shellshock2
T-L-4Przegląd ataków na oprogramowanie: wykorzystanie ciągów formatujących2
T-L-5Przegląd ataków na oprogramowanie: ataki na aplikacji webowe na przykładzie XSS i SQL Injection.2
T-L-6Opracowanie wizji i wymagań projektowych z uwzględnieniem bezpieczeństwa oprogramowania.2
T-L-7Projekt bezpiecznej aplikacji sieciowej (backand, frontend, serwisy) z uwzględnieniem wzorców i zaleceń wytwarzania bezpiecznego oprogramowania.2
T-L-8Implementacja wybranych elementów zaprojektowanej aplikacji sieciowej z uwzględnieniem zaleceń bezpieczeństwa dotyczących użytych platform i języków programowania.2
T-L-9Testy zaimplementowanych elementów aplikacji sieciowej z uwzględnieniem zaleceń bezpieczeństwa dotyczących użytych platform i języków programowania. Testy penetracyjne.2
18
wykłady
T-W-1Przegląd znanych klas podatności oprogramowania, znane wektory ataków, analiza wybranych przypadków6
T-W-2Inżynieria oprogramowania a bezpieczeństwo systemów informatycznych. Uwzględnienie bezpieczeństwa w cyklu życia oprogramowania2
T-W-3Koncepcja programowania defensywnego2
T-W-4Opracowywanie wymagań projektowych dla bezpiecznego oprogramowania. Inicjatywy i zalecenia wspierające tworzenie bezpiecznego oprogramowania2
T-W-5Projektowanie bezpiecznych aplikacji. Eliminacja znanych podatności i błędów na etapie projektowania2
T-W-6Implementowanie bezpiecznego oprogramowania. Normy, zalecenia i dobre praktyki. Studium przypadków dla wybranych platform i języków programowania2
T-W-7Testowanie oprogramowania w kontekście jego bezpieczeństwa. Studium przypadków dla wybranych platform i języków programowania2
18

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

KODForma aktywnościGodziny
laboratoria
A-L-1Udział w zajęciach laboratoryjnych18
A-L-2Przygotowanie do zajęć laboratoryjnych20
38
wykłady
A-W-1Udział w wykładzie18
A-W-2Przygotowanie do zaliczenia18
A-W-3Udział w konsultacjach2
38

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1wykład informacyjny
M-2ćwiczenia laboratoryjne

Sposoby oceny

KODSposób oceny
S-1Ocena formująca: wejściówka (ocena przygotowania do zajęć)
S-2Ocena formująca: ocena wykonywanego zadania programistycznego lub projektowego (ocena pracy wykonywanej na zajęciach)
S-3Ocena podsumowująca: testowy egzamin pisemny (student może korzystać z dowolnych materiałów dydaktycznych)
S-4Ocena podsumowująca: semestralne sprawozdanie dotyczące używanych podczas rozwiązywania zadań programistycznych środowisk, bibliotek i narzędzi

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_1A_D02.11.2_W01
potrafi wymienić i scharakteryzować typowe podatności oprogramowania mające wpływ na jego bezpieczeństwo
I_1A_W07C-1T-W-1, T-L-3, T-L-4, T-L-1, T-L-2, T-L-5M-1, M-2S-3
I_1A_D02.11.2_W02
potrafi wymienić i opisać poszczególne etapy procesu tworzenia bezpiecznego oprogramowania (wymagania, projektowanie, implementacja, testowanie)
I_1A_W08C-2, C-3, C-4T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-L-6, T-L-9, T-L-8, T-L-7M-1, M-2S-3

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_1A_D02.11.2_U01
potrafi określić wymagania bezpieczeństwa, zaprojektować i zaimplementować bezpieczną aplikację zgodnie z przyjętymi normami, zaleceniami i dobrymi praktykami
I_1A_U10, I_1A_U12C-1, C-2, C-3, C-4T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-L-6, T-L-9, T-L-8, T-L-7M-1, M-2S-1, S-2

Zamierzone efekty uczenia się - inne kompetencje społeczne i personalne

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_1A_D02.11.2_K01
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_1A_K02C-1, C-2T-W-1, T-W-2, T-W-3, T-L-3, T-L-4, T-L-1, T-L-2, T-L-5M-1, M-2S-3, S-4

Kryterium oceny - wiedza

Efekt uczenia sięOcenaKryterium oceny
I_1A_D02.11.2_W01
potrafi wymienić i scharakteryzować typowe podatności oprogramowania mające wpływ na jego bezpieczeństwo
2,0
3,0potrafi wymienić wybrane podstawowe klasy podatności
3,5potrafi wymienić i krótko scharakteryzować wybrane klasy podatności
4,0potrafi wymienić i krótko scharakteryzować większość klas podatności posługując się konkretnymi przypadkami
4,5potrafi sklasyfikować podatności według ich wpływu na bezpieczeństwo aplikacji
5,0potrafi wskazać aktualne zalecenia (np. organizacji OWASP) dla najważniejszych klas podatności
I_1A_D02.11.2_W02
potrafi wymienić i opisać poszczególne etapy procesu tworzenia bezpiecznego oprogramowania (wymagania, projektowanie, implementacja, testowanie)
2,0
3,0potrafi wymienić i krótko opisać poszczególne etapy wytwarzania bezpiecznego oprogramowania
3,5potrafi opisać proces definiowania wymagań bezpieczeństwa dla oprogramowania
4,0potrafi wskazać i opisać narzędzi pozwalające na projektowanie bezpiecznych aplikacji
4,5potrafi wskazać wymienić i krótko scharakteryzować wybrane zalecenia implementacyjne związane z wytwarzaniem oprogramowania w językach C i Java
5,0potrafi wymienić i krótko scharakteryzować procedury testowe bezpieczeństwa kodu i systemów oprogramowania

Kryterium oceny - umiejętności

Efekt uczenia sięOcenaKryterium oceny
I_1A_D02.11.2_U01
potrafi określić wymagania bezpieczeństwa, zaprojektować i zaimplementować bezpieczną aplikację zgodnie z przyjętymi normami, zaleceniami i dobrymi praktykami
2,0
3,0potrafi określić i formalnie zapisać wymagania bezpieczeństwa dla prostego systemu oprogramowania oraz wykorzystać rozszerzenia języka UML do przestawienia 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 w danym języku
4,5potrafi przeprowadzić w ograniczonym zakresie testy bezpieczeństwa stworzonego oprogramowania
5,0potrafi przeprowadzić proces tworzenia oprogramowania wymagany na ocenę 4,5 dla alternatywnego języka oprogramowania

Kryterium oceny - inne kompetencje społeczne i personalne

Efekt uczenia sięOcenaKryterium oceny
I_1A_D02.11.2_K01
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,0
3,0ma świadomość istnienia norm, zaleceń i zbiorów dobrych praktyk związanych z wytwarzaniem bezpiecznego oprogramowania
3,5potrafi wskazać wybrane normy, zalecenia i dobre praktyki związane z wytwarzaniem bezpiecznego oprogramowania, których użył podczas rozwiązywania zadań
4,0ma świadomość jakie przepisy prawa mogą zostać naruszone w wyniku korzystania z wadliwego i niebezpiecznego oprogramowania
4,5aktywnie uzupełnia wiedzę o najnowsze informacje mogące mieć wpływ na bezpieczeństwo wytwarzanego i eksploatowanego oprogramowania
5,0zna metody udostępniania własnej wiedzy mogącej mieć wpływ na bezpieczeństwo wytwarzanego i eksploatowanego oprogramowania

Literatura podstawowa

  1. Ross Anderson, Security Engineering: A Guide to Building Dependable Distributed Systems, Wiley, 2000, 3, ISBN-10 1119642787

Literatura dodatkowa

  1. Izar Tarandach, Matthew Coles, Threat Modeling: A Practical Guide for Development Teams, O'Reilly Media, 2020, ISBN-10 1492056553
  2. Gus Khawaja, Kali Linux Penetration Testing Bible, Wiley, 2011, ISBN-10 1119719089

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Przegląd ataków na oprogramowanie: ataki w warunkach wyścigu (Race Condition Vulnerability, Dirty COW Attack)2
T-L-2Przegląd ataków na oprogramowanie: ataki wykorzystujące przepełnienie bufora (Buffer Overflow Vulnerability, Return-to-libc Attack)2
T-L-3Przegląd ataków na oprogramowanie: atak typu shellshock2
T-L-4Przegląd ataków na oprogramowanie: wykorzystanie ciągów formatujących2
T-L-5Przegląd ataków na oprogramowanie: ataki na aplikacji webowe na przykładzie XSS i SQL Injection.2
T-L-6Opracowanie wizji i wymagań projektowych z uwzględnieniem bezpieczeństwa oprogramowania.2
T-L-7Projekt bezpiecznej aplikacji sieciowej (backand, frontend, serwisy) z uwzględnieniem wzorców i zaleceń wytwarzania bezpiecznego oprogramowania.2
T-L-8Implementacja wybranych elementów zaprojektowanej aplikacji sieciowej z uwzględnieniem zaleceń bezpieczeństwa dotyczących użytych platform i języków programowania.2
T-L-9Testy zaimplementowanych elementów aplikacji sieciowej z uwzględnieniem zaleceń bezpieczeństwa dotyczących użytych platform i języków programowania. Testy penetracyjne.2
18

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Przegląd znanych klas podatności oprogramowania, znane wektory ataków, analiza wybranych przypadków6
T-W-2Inżynieria oprogramowania a bezpieczeństwo systemów informatycznych. Uwzględnienie bezpieczeństwa w cyklu życia oprogramowania2
T-W-3Koncepcja programowania defensywnego2
T-W-4Opracowywanie wymagań projektowych dla bezpiecznego oprogramowania. Inicjatywy i zalecenia wspierające tworzenie bezpiecznego oprogramowania2
T-W-5Projektowanie bezpiecznych aplikacji. Eliminacja znanych podatności i błędów na etapie projektowania2
T-W-6Implementowanie bezpiecznego oprogramowania. Normy, zalecenia i dobre praktyki. Studium przypadków dla wybranych platform i języków programowania2
T-W-7Testowanie oprogramowania w kontekście jego bezpieczeństwa. Studium przypadków dla wybranych platform i języków programowania2
18

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Udział w zajęciach laboratoryjnych18
A-L-2Przygotowanie do zajęć laboratoryjnych20
38
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Udział w wykładzie18
A-W-2Przygotowanie do zaliczenia18
A-W-3Udział w konsultacjach2
38
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_1A_D02.11.2_W01potrafi wymienić i scharakteryzować typowe podatności oprogramowania mające wpływ na jego bezpieczeństwo
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W07Posiada wiedzę w zakresie ochrony i zarządzania informacją oraz bezpieczeństwa systemów informatycznych, jest świadomy obowiązujących norm prawnych i etycznych oraz zagrożeń w dziedzinie przestępczości elektronicznej.
Cel przedmiotuC-1zapoznanie studentów z wybranymi zagrożeniami bezpieczeństwa oprogramowania
Treści programoweT-W-1Przegląd znanych klas podatności oprogramowania, znane wektory ataków, analiza wybranych przypadków
T-L-3Przegląd ataków na oprogramowanie: atak typu shellshock
T-L-4Przegląd ataków na oprogramowanie: wykorzystanie ciągów formatujących
T-L-1Przegląd ataków na oprogramowanie: ataki w warunkach wyścigu (Race Condition Vulnerability, Dirty COW Attack)
T-L-2Przegląd ataków na oprogramowanie: ataki wykorzystujące przepełnienie bufora (Buffer Overflow Vulnerability, Return-to-libc Attack)
T-L-5Przegląd ataków na oprogramowanie: ataki na aplikacji webowe na przykładzie XSS i SQL Injection.
Metody nauczaniaM-1wykład informacyjny
M-2ćwiczenia laboratoryjne
Sposób ocenyS-3Ocena podsumowująca: testowy egzamin pisemny (student może korzystać z dowolnych materiałów dydaktycznych)
Kryteria ocenyOcenaKryterium oceny
2,0
3,0potrafi wymienić wybrane podstawowe klasy podatności
3,5potrafi wymienić i krótko scharakteryzować wybrane klasy podatności
4,0potrafi wymienić i krótko scharakteryzować większość klas podatności posługując się konkretnymi przypadkami
4,5potrafi sklasyfikować podatności według ich wpływu na bezpieczeństwo aplikacji
5,0potrafi wskazać aktualne zalecenia (np. organizacji OWASP) dla najważniejszych klas podatności
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_1A_D02.11.2_W02potrafi wymienić i opisać poszczególne etapy procesu tworzenia bezpiecznego oprogramowania (wymagania, projektowanie, implementacja, testowanie)
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W08Posiada poszerzoną wiedzę w zakresie analizy, konfiguracji, integracji i bezpieczeństwa systemów i usług informatycznych.
Cel przedmiotuC-2zapoznanie studentów z zasadami projektowania bezpiecznego oprogramowania
C-3ukształtowanie umiejętności z zakresu implementowania bezpiecznego oprogramowania
C-4ukształtowanie umiejętności z zakresu analizy i testowania bezpiecznego oprogramowania
Treści programoweT-W-2Inżynieria oprogramowania a bezpieczeństwo systemów informatycznych. Uwzględnienie bezpieczeństwa w cyklu życia oprogramowania
T-W-3Koncepcja programowania defensywnego
T-W-4Opracowywanie wymagań projektowych dla bezpiecznego oprogramowania. Inicjatywy i zalecenia wspierające tworzenie bezpiecznego oprogramowania
T-W-5Projektowanie bezpiecznych aplikacji. Eliminacja znanych podatności i błędów na etapie projektowania
T-W-6Implementowanie bezpiecznego oprogramowania. Normy, zalecenia i dobre praktyki. Studium przypadków dla wybranych platform i języków programowania
T-W-7Testowanie oprogramowania w kontekście jego bezpieczeństwa. Studium przypadków dla wybranych platform i języków programowania
T-L-6Opracowanie wizji i wymagań projektowych z uwzględnieniem bezpieczeństwa oprogramowania.
T-L-9Testy zaimplementowanych elementów aplikacji sieciowej z uwzględnieniem zaleceń bezpieczeństwa dotyczących użytych platform i języków programowania. Testy penetracyjne.
T-L-8Implementacja wybranych elementów zaprojektowanej aplikacji sieciowej z uwzględnieniem zaleceń bezpieczeństwa dotyczących użytych platform i języków programowania.
T-L-7Projekt bezpiecznej aplikacji sieciowej (backand, frontend, serwisy) z uwzględnieniem wzorców i zaleceń wytwarzania bezpiecznego oprogramowania.
Metody nauczaniaM-1wykład informacyjny
M-2ćwiczenia laboratoryjne
Sposób ocenyS-3Ocena podsumowująca: testowy egzamin pisemny (student może korzystać z dowolnych materiałów dydaktycznych)
Kryteria ocenyOcenaKryterium oceny
2,0
3,0potrafi wymienić i krótko opisać poszczególne etapy wytwarzania bezpiecznego oprogramowania
3,5potrafi opisać proces definiowania wymagań bezpieczeństwa dla oprogramowania
4,0potrafi wskazać i opisać narzędzi pozwalające na projektowanie bezpiecznych aplikacji
4,5potrafi wskazać wymienić i krótko scharakteryzować wybrane zalecenia implementacyjne związane z wytwarzaniem oprogramowania w językach C i Java
5,0potrafi wymienić i krótko scharakteryzować procedury testowe bezpieczeństwa kodu i systemów oprogramowania
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_1A_D02.11.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_1A_U10Potrafi projektować i implementować systemy informatyczne posługując się narzędziami wspomagającymi proces wytwarzania oprogramowania na różnych jego etapach.
I_1A_U12Potrafi konfigurować systemy komputerowe i usługi, w zakresie bezpieczeństwa, sieci komputerowych, zasobów sprzętowych i oprogramowania.
Cel przedmiotuC-1zapoznanie studentów z wybranymi zagrożeniami bezpieczeństwa oprogramowania
C-2zapoznanie studentów z zasadami projektowania bezpiecznego oprogramowania
C-3ukształtowanie umiejętności z zakresu implementowania bezpiecznego oprogramowania
C-4ukształtowanie umiejętności z zakresu analizy i testowania bezpiecznego oprogramowania
Treści programoweT-W-3Koncepcja programowania defensywnego
T-W-4Opracowywanie wymagań projektowych dla bezpiecznego oprogramowania. Inicjatywy i zalecenia wspierające tworzenie bezpiecznego oprogramowania
T-W-5Projektowanie bezpiecznych aplikacji. Eliminacja znanych podatności i błędów na etapie projektowania
T-W-6Implementowanie bezpiecznego oprogramowania. Normy, zalecenia i dobre praktyki. Studium przypadków dla wybranych platform i języków programowania
T-W-7Testowanie oprogramowania w kontekście jego bezpieczeństwa. Studium przypadków dla wybranych platform i języków programowania
T-L-6Opracowanie wizji i wymagań projektowych z uwzględnieniem bezpieczeństwa oprogramowania.
T-L-9Testy zaimplementowanych elementów aplikacji sieciowej z uwzględnieniem zaleceń bezpieczeństwa dotyczących użytych platform i języków programowania. Testy penetracyjne.
T-L-8Implementacja wybranych elementów zaprojektowanej aplikacji sieciowej z uwzględnieniem zaleceń bezpieczeństwa dotyczących użytych platform i języków programowania.
T-L-7Projekt bezpiecznej aplikacji sieciowej (backand, frontend, serwisy) z uwzględnieniem wzorców i zaleceń wytwarzania bezpiecznego oprogramowania.
Metody nauczaniaM-1wykład informacyjny
M-2ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: wejściówka (ocena przygotowania do zajęć)
S-2Ocena formująca: ocena wykonywanego zadania programistycznego lub projektowego (ocena pracy wykonywanej na zajęciach)
Kryteria ocenyOcenaKryterium oceny
2,0
3,0potrafi określić i formalnie zapisać wymagania bezpieczeństwa dla prostego systemu oprogramowania oraz wykorzystać rozszerzenia języka UML do przestawienia 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 w danym języku
4,5potrafi przeprowadzić w ograniczonym zakresie testy bezpieczeństwa stworzonego oprogramowania
5,0potrafi przeprowadzić proces tworzenia oprogramowania wymagany na ocenę 4,5 dla alternatywnego języka oprogramowania
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_1A_D02.11.2_K01ma ś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_1A_K02Ma świadomość znaczenia wiedzy (w szczególności jej niewłaściwego użycia) w procesie rozwiązywania szeregu problemów inżynierskich i technicznych w dziedzinie informatyki.
Cel przedmiotuC-1zapoznanie studentów z wybranymi zagrożeniami bezpieczeństwa oprogramowania
C-2zapoznanie studentów z zasadami projektowania bezpiecznego oprogramowania
Treści programoweT-W-1Przegląd znanych klas podatności oprogramowania, znane wektory ataków, analiza wybranych przypadków
T-W-2Inżynieria oprogramowania a bezpieczeństwo systemów informatycznych. Uwzględnienie bezpieczeństwa w cyklu życia oprogramowania
T-W-3Koncepcja programowania defensywnego
T-L-3Przegląd ataków na oprogramowanie: atak typu shellshock
T-L-4Przegląd ataków na oprogramowanie: wykorzystanie ciągów formatujących
T-L-1Przegląd ataków na oprogramowanie: ataki w warunkach wyścigu (Race Condition Vulnerability, Dirty COW Attack)
T-L-2Przegląd ataków na oprogramowanie: ataki wykorzystujące przepełnienie bufora (Buffer Overflow Vulnerability, Return-to-libc Attack)
T-L-5Przegląd ataków na oprogramowanie: ataki na aplikacji webowe na przykładzie XSS i SQL Injection.
Metody nauczaniaM-1wykład informacyjny
M-2ćwiczenia laboratoryjne
Sposób ocenyS-3Ocena podsumowująca: testowy egzamin pisemny (student może korzystać z dowolnych materiałów dydaktycznych)
S-4Ocena podsumowująca: semestralne sprawozdanie dotyczące używanych podczas rozwiązywania zadań programistycznych środowisk, bibliotek i narzędzi
Kryteria ocenyOcenaKryterium oceny
2,0
3,0ma świadomość istnienia norm, zaleceń i zbiorów dobrych praktyk związanych z wytwarzaniem bezpiecznego oprogramowania
3,5potrafi wskazać wybrane normy, zalecenia i dobre praktyki związane z wytwarzaniem bezpiecznego oprogramowania, których użył podczas rozwiązywania zadań
4,0ma świadomość jakie przepisy prawa mogą zostać naruszone w wyniku korzystania z wadliwego i niebezpiecznego oprogramowania
4,5aktywnie uzupełnia wiedzę o najnowsze informacje mogące mieć wpływ na bezpieczeństwo wytwarzanego i eksploatowanego oprogramowania
5,0zna metody udostępniania własnej wiedzy mogącej mieć wpływ na bezpieczeństwo wytwarzanego i eksploatowanego oprogramowania