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
Wymagania wstępne
KOD | Wymaganie wstępne |
---|---|
W-1 | Podstawy ochrony informacji |
W-2 | Programowanie 2 |
W-3 | Inżynieria oprogramowania |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | zapoznanie studentów z wybranymi zagrożeniami bezpieczeństwa oprogramowania |
C-2 | zapoznanie studentów z zasadami projektowania bezpiecznego oprogramowania |
C-3 | ukształtowanie umiejętności z zakresu implementowania bezpiecznego oprogramowania |
C-4 | ukształtowanie umiejętności z zakresu analizy i testowania bezpiecznego oprogramowania |
Treści programowe z podziałem na formy zajęć
KOD | Treść programowa | Godziny |
---|---|---|
laboratoria | ||
T-L-1 | Przegląd ataków na oprogramowanie: ataki w warunkach wyścigu (Race Condition Vulnerability, Dirty COW Attack) | 2 |
T-L-2 | Przegląd ataków na oprogramowanie: ataki wykorzystujące przepełnienie bufora (Buffer Overflow Vulnerability, Return-to-libc Attack) | 2 |
T-L-3 | Przegląd ataków na oprogramowanie: atak typu shellshock | 2 |
T-L-4 | Przegląd ataków na oprogramowanie: wykorzystanie ciągów formatujących | 2 |
T-L-5 | Przegląd ataków na oprogramowanie: ataki na aplikacji webowe na przykładzie XSS i SQL Injection. | 2 |
T-L-6 | Opracowanie wizji i wymagań projektowych z uwzględnieniem bezpieczeństwa oprogramowania. | 2 |
T-L-7 | Projekt bezpiecznej aplikacji sieciowej (backand, frontend, serwisy) z uwzględnieniem wzorców i zaleceń wytwarzania bezpiecznego oprogramowania. | 2 |
T-L-8 | Implementacja 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-9 | Testy 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-1 | Przegląd znanych klas podatności oprogramowania, znane wektory ataków, analiza wybranych przypadków | 6 |
T-W-2 | Inżynieria oprogramowania a bezpieczeństwo systemów informatycznych. Uwzględnienie bezpieczeństwa w cyklu życia oprogramowania | 2 |
T-W-3 | Koncepcja programowania defensywnego | 2 |
T-W-4 | Opracowywanie wymagań projektowych dla bezpiecznego oprogramowania. Inicjatywy i zalecenia wspierające tworzenie bezpiecznego oprogramowania | 2 |
T-W-5 | Projektowanie bezpiecznych aplikacji. Eliminacja znanych podatności i błędów na etapie projektowania | 2 |
T-W-6 | Implementowanie bezpiecznego oprogramowania. Normy, zalecenia i dobre praktyki. Studium przypadków dla wybranych platform i języków programowania | 2 |
T-W-7 | Testowanie oprogramowania w kontekście jego bezpieczeństwa. Studium przypadków dla wybranych platform i języków programowania | 2 |
18 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | Udział w zajęciach laboratoryjnych | 18 |
A-L-2 | Przygotowanie do zajęć laboratoryjnych | 20 |
38 | ||
wykłady | ||
A-W-1 | Udział w wykładzie | 18 |
A-W-2 | Przygotowanie do zaliczenia | 18 |
A-W-3 | Udział w konsultacjach | 2 |
38 |
Metody nauczania / narzędzia dydaktyczne
KOD | Metoda nauczania / narzędzie dydaktyczne |
---|---|
M-1 | wykład informacyjny |
M-2 | ćwiczenia laboratoryjne |
Sposoby oceny
KOD | Sposób oceny |
---|---|
S-1 | Ocena formująca: wejściówka (ocena przygotowania do zajęć) |
S-2 | Ocena formująca: ocena wykonywanego zadania programistycznego lub projektowego (ocena pracy wykonywanej na zajęciach) |
S-3 | Ocena podsumowująca: testowy egzamin pisemny (student może korzystać z dowolnych materiałów dydaktycznych) |
S-4 | Ocena 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ó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_1A_D02.11.2_W01 potrafi wymienić i scharakteryzować typowe podatności oprogramowania mające wpływ na jego bezpieczeństwo | I_1A_W07 | — | — | C-1 | T-W-1, T-L-3, T-L-4, T-L-1, T-L-2, T-L-5 | M-1, M-2 | S-3 |
I_1A_D02.11.2_W02 potrafi wymienić i opisać poszczególne etapy procesu tworzenia bezpiecznego oprogramowania (wymagania, projektowanie, implementacja, testowanie) | I_1A_W08 | — | — | C-2, C-3, C-4 | T-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-7 | M-1, M-2 | S-3 |
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_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_U12 | — | — | C-1, C-2, C-3, C-4 | 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-7 | M-1, M-2 | S-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ó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_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_K02 | — | — | C-1, C-2 | T-W-1, T-W-2, T-W-3, T-L-3, T-L-4, T-L-1, T-L-2, T-L-5 | M-1, M-2 | S-3, S-4 |
Kryterium oceny - wiedza
Efekt uczenia się | Ocena | Kryterium 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,0 | potrafi wymienić wybrane podstawowe klasy podatności | |
3,5 | potrafi wymienić i krótko scharakteryzować wybrane klasy podatności | |
4,0 | potrafi wymienić i krótko scharakteryzować większość klas podatności posługując się konkretnymi przypadkami | |
4,5 | potrafi sklasyfikować podatności według ich wpływu na bezpieczeństwo aplikacji | |
5,0 | potrafi 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,0 | potrafi wymienić i krótko opisać poszczególne etapy wytwarzania bezpiecznego oprogramowania | |
3,5 | potrafi opisać proces definiowania wymagań bezpieczeństwa dla oprogramowania | |
4,0 | potrafi wskazać i opisać narzędzi pozwalające na projektowanie bezpiecznych aplikacji | |
4,5 | potrafi wskazać wymienić i krótko scharakteryzować wybrane zalecenia implementacyjne związane z wytwarzaniem oprogramowania w językach C i Java | |
5,0 | potrafi wymienić i krótko scharakteryzować procedury testowe bezpieczeństwa kodu i systemów oprogramowania |
Kryterium oceny - umiejętności
Efekt uczenia się | Ocena | Kryterium 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,0 | potrafi 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,5 | potrafi 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,0 | potrafi praktycznie wykorzystać wskazania norm i zbiorów dobrych praktyk dotyczących implementacji bezpiecznego oprogramowania w danym języku | |
4,5 | potrafi przeprowadzić w ograniczonym zakresie testy bezpieczeństwa stworzonego oprogramowania | |
5,0 | potrafi 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ę | Ocena | Kryterium 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,0 | ma świadomość istnienia norm, zaleceń i zbiorów dobrych praktyk związanych z wytwarzaniem bezpiecznego oprogramowania | |
3,5 | potrafi wskazać wybrane normy, zalecenia i dobre praktyki związane z wytwarzaniem bezpiecznego oprogramowania, których użył podczas rozwiązywania zadań | |
4,0 | ma świadomość jakie przepisy prawa mogą zostać naruszone w wyniku korzystania z wadliwego i niebezpiecznego oprogramowania | |
4,5 | aktywnie uzupełnia wiedzę o najnowsze informacje mogące mieć wpływ na bezpieczeństwo wytwarzanego i eksploatowanego oprogramowania | |
5,0 | zna metody udostępniania własnej wiedzy mogącej mieć wpływ na bezpieczeństwo wytwarzanego i eksploatowanego oprogramowania |
Literatura podstawowa
- Ross Anderson, Security Engineering: A Guide to Building Dependable Distributed Systems, Wiley, 2000, 3, ISBN-10 1119642787
Literatura dodatkowa
- Izar Tarandach, Matthew Coles, Threat Modeling: A Practical Guide for Development Teams, O'Reilly Media, 2020, ISBN-10 1492056553
- Gus Khawaja, Kali Linux Penetration Testing Bible, Wiley, 2011, ISBN-10 1119719089