Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (S1)
specjalność: systemy komputerowe i oprogramowanie

Sylabus przedmiotu Problemy bezpieczeństwa w inżynierii oprogramowania:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia stacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów nauk technicznych, studiów inżynierskich
Profil ogólnoakademicki
Moduł
Przedmiot Problemy bezpieczeństwa w inżynierii oprogramowania
Specjalność systemy komputerowe i oprogramowanie
Jednostka prowadząca Katedra Inżynierii Oprogramowania
Nauczyciel odpowiedzialny Witold Maćków <Witold.Mackow@zut.edu.pl>
Inni nauczyciele
ECTS (planowane) 2,0 ECTS (formy) 2,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny 5 Grupa obieralna 8

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
laboratoriaL7 15 1,20,50zaliczenie
wykładyW7 15 0,80,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1ukończony kurs Podstawy ochrony informacji
W-2ukończony kurs Podstawy programowania
W-3ukończony kurs Inż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-1Analiza podatności oprogramowania zaimplementowanego w języku C na wybrane ataki.2
T-L-2Analiza podatności oprogramowania zaimplementowanego w języku Java na wybrane ataki.2
T-L-3Analiza podatności oprogramowania webowego na wybrane ataki. Wykorzystanie cech oprogramowania nie wynikających z użytego języka.2
T-L-4Wykorzystanie rozszerzeń języka modelowania UML do projektowania bezpiecznych aplikacji (SecureUML).3
T-L-5Implementacja i testowanie bezpiecznego kodu. Studium przypadku dla języka C.3
T-L-6Implementacja i testowanie bezpiecznego kodu. Studium przypadku dla języka C.3
15
wykłady
T-W-1Problem bezpieczeństwa oprogramowania. Iinżynieria oprogramowania a bezpieczeństwo systemów informatycznych.1
T-W-2Przegląd znanych podatność oprogramowania. Oprogramowanie webowe. Studium przypadków dla języków C i Java.3
T-W-3Opracowywanie wymagań projektowych dla bezpiecznego oprogramowania. Inicjatywy i zalecenia wspierające tworzenie bezpiecznego oprogramowania (np. OWASP.org i CERT.org).1
T-W-4Architektury i projektowanie bezpiecznych aplikacji. Eliminacja znanych podatności i błędów na etapie projektowania. Narzędzia do projektowania bezpiecznych aplikacji (np. SecureUML).3
T-W-5Implementowanie bezpiecznego oprogramowania. Normy, zalecenia i dobre praktyki. Studium przypadków dla języków C i Java.4
T-W-6Testowanie bezpieczeństwa oprogramowania. Analiza statyczna. Studium przypadków dla języków C i Java.3
15

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

KODForma aktywnościGodziny
laboratoria
A-L-1Udział w zajęciach laboratoryjnych15
A-L-2Przygotowanie do zajęć laboratoryjnych14
A-L-3Udział w konsultacjach2
A-L-4Przygotowanie się do zaliczenia formy zajęć6
37
wykłady
A-W-1Udział w wykładzie15
A-W-2Przygotowanie do zaliczenia formy zajęć8
A-W-3Udział w konsultacjach1
24

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: sprawozdanie z wykonywanego zadania (ocena pracy wykonywanej na zajęciach)
S-3Ocena podsumowująca: zaliczenie ustne

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łceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_O8/10_W01
potrafi wymienić i scharakteryzować typowe podatności oprogramowania mające wpływ na jego bezpieczeństwo
I_1A_W06, I_1A_W22T1A_W03, T1A_W05, T1A_W06, T1A_W07, T1A_W08, T1A_W09InzA_W01, InzA_W02, InzA_W03, InzA_W04, InzA_W05C-1T-W-2, T-W-1, T-L-2, T-L-1, T-L-3M-2, M-1S-3
I_1A_O8/10_W02
potrafi wymienić i opisać poszczególne etapy procesu tworzenia bezpiecznego oprogramowania (wymagania, projektowanie, implementacja, testowanie)
I_1A_W22, I_1A_W06T1A_W03, T1A_W05, T1A_W06, T1A_W07, T1A_W08, T1A_W09InzA_W01, InzA_W02, InzA_W03, InzA_W04, InzA_W05C-4, C-2, C-3T-W-4, T-W-5, T-W-3, T-W-6, T-L-4, T-L-5, T-L-6M-2, M-1S-3

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łceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_O8/10_U02
potrafi określić wymagania bezpieczeństwa, zaprojektować i zaimplementować bezpieczną aplikację zgodnie z przyjętymi normami, zaleceniami i dobrymi praktykami
I_1A_U01, I_1A_U10T1A_U01, T1A_U02, T1A_U04, T1A_U07, T1A_U08, T1A_U09, T1A_U10, T1A_U11, T1A_U12, T1A_U13, T1A_U14, T1A_U15, T1A_U16InzA_U01, InzA_U02, InzA_U03, InzA_U04, InzA_U05, InzA_U06, InzA_U07, InzA_U08C-3, C-2T-W-5, T-L-6, T-L-5, T-W-6, T-L-4, T-W-3, T-W-4M-2, M-1S-2, S-1

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łceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_O8/10_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_K01, I_1A_K02T1A_K01, T1A_K02, T1A_K05, T1A_K07InzA_K01C-1, C-2T-W-1, T-L-1, T-L-2, T-L-3, T-W-2M-2, M-1S-3, S-2

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium oceny
I_1A_O8/10_W01
potrafi wymienić i scharakteryzować typowe podatności oprogramowania mające wpływ na jego bezpieczeństwo
2,0nie spełnia kryteriów określonych dla oceny 3
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
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_O8/10_W02
potrafi wymienić i opisać poszczególne etapy procesu tworzenia bezpiecznego oprogramowania (wymagania, projektowanie, implementacja, testowanie)
2,0nie spełnia kryteriów określonych dla oceny 3
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 (przykładowo rozszerzenie języka modelowania SecureUML)
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 kształceniaOcenaKryterium oceny
I_1A_O8/10_U02
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 wykorzystać rozszerzenia języka UML (np. SecureUML) 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 kształceniaOcenaKryterium oceny
I_1A_O8/10_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,0nie spełnia kryteriów określonych dla oceny 3
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. Julia H. Allen, Sean J. Barnum, Robert J. Ellison, Gary McGraw, Nancy R. Mead, Software Security Engineering: A Guide for Project Managers, Addison-Wesley Professional, 2008
  2. Robert C. Seacord, The CERT C Secure Coding Standard, Addison-Wesley Professional, 2008
  3. Fred Long, Dhruv Mohindra, Robert C. Seacord, Dean F. Sutherland, David Svoboda, The CERT® Oracle® Secure Coding Standard for Java, Addison-Wesley Professional, 2011

Literatura dodatkowa

  1. Maura A. van der Linden, Testing Code Security, Auerbach Publications, 2007
  2. Brian Chess, Jacob West, Secure Programming with Static Analysis, Addison-Wesley, 2007
  3. Mark Curphey, Joel Scambray, Erik Olson, Improving Web Application Security. Threats and Countermeasures, Microsoft, 2003

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Analiza podatności oprogramowania zaimplementowanego w języku C na wybrane ataki.2
T-L-2Analiza podatności oprogramowania zaimplementowanego w języku Java na wybrane ataki.2
T-L-3Analiza podatności oprogramowania webowego na wybrane ataki. Wykorzystanie cech oprogramowania nie wynikających z użytego języka.2
T-L-4Wykorzystanie rozszerzeń języka modelowania UML do projektowania bezpiecznych aplikacji (SecureUML).3
T-L-5Implementacja i testowanie bezpiecznego kodu. Studium przypadku dla języka C.3
T-L-6Implementacja i testowanie bezpiecznego kodu. Studium przypadku dla języka C.3
15

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Problem bezpieczeństwa oprogramowania. Iinżynieria oprogramowania a bezpieczeństwo systemów informatycznych.1
T-W-2Przegląd znanych podatność oprogramowania. Oprogramowanie webowe. Studium przypadków dla języków C i Java.3
T-W-3Opracowywanie wymagań projektowych dla bezpiecznego oprogramowania. Inicjatywy i zalecenia wspierające tworzenie bezpiecznego oprogramowania (np. OWASP.org i CERT.org).1
T-W-4Architektury i projektowanie bezpiecznych aplikacji. Eliminacja znanych podatności i błędów na etapie projektowania. Narzędzia do projektowania bezpiecznych aplikacji (np. SecureUML).3
T-W-5Implementowanie bezpiecznego oprogramowania. Normy, zalecenia i dobre praktyki. Studium przypadków dla języków C i Java.4
T-W-6Testowanie bezpieczeństwa oprogramowania. Analiza statyczna. Studium przypadków dla języków C i Java.3
15

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Udział w zajęciach laboratoryjnych15
A-L-2Przygotowanie do zajęć laboratoryjnych14
A-L-3Udział w konsultacjach2
A-L-4Przygotowanie się do zaliczenia formy zajęć6
37
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Udział w wykładzie15
A-W-2Przygotowanie do zaliczenia formy zajęć8
A-W-3Udział w konsultacjach1
24
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O8/10_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_W06zna wybrane języki i techniki programowania, podstawowe techniki projektowania i wytwarzania aplikacji oraz systemów informatycznych
I_1A_W22zna podstawy zasad zapewniania bezpieczeństwa systemów informatycznych
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_W03ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną obejmującą kluczowe zagadnienia z zakresu studiowanego kierunku studiów
T1A_W05ma podstawową wiedzę o trendach rozwojowych z zakresu dziedzin nauki i dyscyplin naukowych, właściwych dla studiowanego kierunku studiów
T1A_W06ma podstawową wiedzę o cyklu życia urządzeń, obiektów i systemów technicznych
T1A_W07zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
T1A_W08ma podstawową wiedzę niezbędną do rozumienia społecznych, ekonomicznych, prawnych i innych pozatechnicznych uwarunkowań działalności inżynierskiej
T1A_W09ma podstawową wiedzę dotyczącą zarządzania, w tym zarządzania jakością, i prowadzenia działalności gospodarczej
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_W01ma podstawową wiedzę o cyklu życia urządzeń, obiektów i systemów technicznych
InzA_W02zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
InzA_W03ma podstawową wiedzę niezbędną do rozumienia społecznych, ekonomicznych, prawnych i innych uwarunkowań działalności inżynierskiej
InzA_W04ma podstawową wiedzę dotyczącą zarządzania, w tym zarządzania jakością, i prowadzenia działalności gospodarczej
InzA_W05zna typowe technologie inżynierskie w zakresie studiowanego kierunku studiów
Cel przedmiotuC-1zapoznanie studentów z wybranymi zagrożeniami bezpieczeństwa oprogramowania
Treści programoweT-W-2Przegląd znanych podatność oprogramowania. Oprogramowanie webowe. Studium przypadków dla języków C i Java.
T-W-1Problem bezpieczeństwa oprogramowania. Iinżynieria oprogramowania a bezpieczeństwo systemów informatycznych.
T-L-2Analiza podatności oprogramowania zaimplementowanego w języku Java na wybrane ataki.
T-L-1Analiza podatności oprogramowania zaimplementowanego w języku C na wybrane ataki.
T-L-3Analiza podatności oprogramowania webowego na wybrane ataki. Wykorzystanie cech oprogramowania nie wynikających z użytego języka.
Metody nauczaniaM-2ćwiczenia laboratoryjne
M-1wykład informacyjny
Sposób ocenyS-3Ocena podsumowująca: zaliczenie ustne
Kryteria ocenyOcenaKryterium oceny
2,0nie spełnia kryteriów określonych dla oceny 3
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
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 kształceniaI_1A_O8/10_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_W22zna podstawy zasad zapewniania bezpieczeństwa systemów informatycznych
I_1A_W06zna wybrane języki i techniki programowania, podstawowe techniki projektowania i wytwarzania aplikacji oraz systemów informatycznych
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_W03ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną obejmującą kluczowe zagadnienia z zakresu studiowanego kierunku studiów
T1A_W05ma podstawową wiedzę o trendach rozwojowych z zakresu dziedzin nauki i dyscyplin naukowych, właściwych dla studiowanego kierunku studiów
T1A_W06ma podstawową wiedzę o cyklu życia urządzeń, obiektów i systemów technicznych
T1A_W07zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
T1A_W08ma podstawową wiedzę niezbędną do rozumienia społecznych, ekonomicznych, prawnych i innych pozatechnicznych uwarunkowań działalności inżynierskiej
T1A_W09ma podstawową wiedzę dotyczącą zarządzania, w tym zarządzania jakością, i prowadzenia działalności gospodarczej
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_W01ma podstawową wiedzę o cyklu życia urządzeń, obiektów i systemów technicznych
InzA_W02zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
InzA_W03ma podstawową wiedzę niezbędną do rozumienia społecznych, ekonomicznych, prawnych i innych uwarunkowań działalności inżynierskiej
InzA_W04ma podstawową wiedzę dotyczącą zarządzania, w tym zarządzania jakością, i prowadzenia działalności gospodarczej
InzA_W05zna typowe technologie inżynierskie w zakresie studiowanego kierunku studiów
Cel przedmiotuC-4ukształtowanie umiejętności z zakresu analizy i testowania bezpiecznego oprogramowania
C-2zapoznanie studentów z zasadami projektowania bezpiecznego oprogramowania
C-3ukształtowanie umiejętności z zakresu implementowania bezpiecznego oprogramowania
Treści programoweT-W-4Architektury i projektowanie bezpiecznych aplikacji. Eliminacja znanych podatności i błędów na etapie projektowania. Narzędzia do projektowania bezpiecznych aplikacji (np. SecureUML).
T-W-5Implementowanie bezpiecznego oprogramowania. Normy, zalecenia i dobre praktyki. Studium przypadków dla języków C i Java.
T-W-3Opracowywanie wymagań projektowych dla bezpiecznego oprogramowania. Inicjatywy i zalecenia wspierające tworzenie bezpiecznego oprogramowania (np. OWASP.org i CERT.org).
T-W-6Testowanie bezpieczeństwa oprogramowania. Analiza statyczna. Studium przypadków dla języków C i Java.
T-L-4Wykorzystanie rozszerzeń języka modelowania UML do projektowania bezpiecznych aplikacji (SecureUML).
T-L-5Implementacja i testowanie bezpiecznego kodu. Studium przypadku dla języka C.
T-L-6Implementacja i testowanie bezpiecznego kodu. Studium przypadku dla języka C.
Metody nauczaniaM-2ćwiczenia laboratoryjne
M-1wykład informacyjny
Sposób ocenyS-3Ocena podsumowująca: zaliczenie ustne
Kryteria ocenyOcenaKryterium oceny
2,0nie spełnia kryteriów określonych dla oceny 3
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 (przykładowo rozszerzenie języka modelowania SecureUML)
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 kształceniaI_1A_O8/10_U02potrafi 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_U01potrafi w zakresie podstawowym projektować, implementować i testować oprogramowanie
I_1A_U10potrafi na poziomie podstawowym administrować bezpieczeństwem i oceniać bezpieczeństwo systemów informatycznych
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_U01potrafi pozyskiwać informacje z literatury, baz danych oraz innych właściwie dobranych źródeł, także w języku angielskim lub innym języku obcym uznawanym za język komunikacji międzynarodowej w zakresie studiowanego kierunku studiów; potrafi integrować uzyskane informacje, dokonywać ich interpretacji, a także wyciągać wnioski oraz formułować i uzasadniać opinie
T1A_U02potrafi porozumiewać się przy użyciu różnych technik w środowisku zawodowym oraz w innych środowiskach
T1A_U04potrafi przygotować i przedstawić w języku polskim i języku obcym prezentację ustną, dotyczącą szczegółowych zagadnień z zakresu studiowanego kierunku studiów
T1A_U07potrafi posługiwać się technikami informacyjno-komunikacyjnymi właściwymi do realizacji zadań typowych dla działalności inżynierskiej
T1A_U08potrafi planować i przeprowadzać eksperymenty, w tym pomiary i symulacje komputerowe, interpretować uzyskane wyniki i wyciągać wnioski
T1A_U09potrafi wykorzystać do formułowania i rozwiązywania zadań inżynierskich metody analityczne, symulacyjne oraz eksperymentalne
T1A_U10potrafi - przy formułowaniu i rozwiązywaniu zadań inżynierskich - dostrzegać ich aspekty systemowe i pozatechniczne
T1A_U11ma przygotowanie niezbędne do pracy w środowisku przemysłowym oraz zna zasady bezpieczeństwa związane z tą pracą
T1A_U12potrafi dokonać wstępnej analizy ekonomicznej podejmowanych działań inżynierskich
T1A_U13potrafi dokonać krytycznej analizy sposobu funkcjonowania i ocenić - zwłaszcza w powiązaniu ze studiowanym kierunkiem studiów - istniejące rozwiązania techniczne, w szczególności urządzenia, obiekty, systemy, procesy, usługi
T1A_U14potrafi dokonać identyfikacji i sformułować specyfikację prostych zadań inżynierskich o charakterze praktycznym, charakterystycznych dla studiowanego kierunku studiów
T1A_U15potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania prostego zadania inżynierskiego o charakterze praktycznym, charakterystycznego dla studiowanego kierunku studiów oraz wybrać i zastosować właściwą metodę i narzędzia
T1A_U16potrafi - zgodnie z zadaną specyfikacją - zaprojektować oraz zrealizować proste urządzenie, obiekt, system lub proces, typowe dla studiowanego kierunku studiów, używając właściwych metod, technik i narzędzi
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_U01potrafi planować i przeprowadzać eksperymenty, w tym pomiary i symulacje komputerowe, interpretować uzyskane wyniki i wyciągać wnioski
InzA_U02potrafi wykorzystać do formułowania i rozwiązywania zadań inżynierskich metody analityczne, symulacyjne oraz eksperymentalne
InzA_U03potrafi - przy formułowaniu i rozwiązywaniu zadań inżynierskich - dostrzegać ich aspekty systemowe i pozatechniczne
InzA_U04potrafi dokonać wstępnej analizy ekonomicznej podejmowanych działań inżynierskich
InzA_U05potrafi dokonać krytycznej analizy sposobu funkcjonowania i ocenić - zwłaszcza w powiązaniu ze studiowanym kierunkiem studiów - istniejące rozwiązania techniczne, w szczególności urządzenia, obiekty, systemy, procesy, usługi
InzA_U06potrafi dokonać identyfikacji i sformułować specyfikację prostych zadań inżynierskich o charakterze praktycznym, charakterystycznych dla studiowanego kierunku studiów
InzA_U07potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania prostego zadania inżynierskiego o charakterze praktycznym, charakterystycznego dla studiowanego kierunku studiów oraz wybrać i zastosować właściwą metodę i narzędzia
InzA_U08potrafi - zgodnie z zadaną specyfikacją - zaprojektować proste urządzenie, obiekt, system lub proces, typowe dla studiowanego kierunku studiów, używając właściwych metod, technik i narzędzi
Cel przedmiotuC-3ukształtowanie umiejętności z zakresu implementowania bezpiecznego oprogramowania
C-2zapoznanie studentów z zasadami projektowania bezpiecznego oprogramowania
Treści programoweT-W-5Implementowanie bezpiecznego oprogramowania. Normy, zalecenia i dobre praktyki. Studium przypadków dla języków C i Java.
T-L-6Implementacja i testowanie bezpiecznego kodu. Studium przypadku dla języka C.
T-L-5Implementacja i testowanie bezpiecznego kodu. Studium przypadku dla języka C.
T-W-6Testowanie bezpieczeństwa oprogramowania. Analiza statyczna. Studium przypadków dla języków C i Java.
T-L-4Wykorzystanie rozszerzeń języka modelowania UML do projektowania bezpiecznych aplikacji (SecureUML).
T-W-3Opracowywanie wymagań projektowych dla bezpiecznego oprogramowania. Inicjatywy i zalecenia wspierające tworzenie bezpiecznego oprogramowania (np. OWASP.org i CERT.org).
T-W-4Architektury i projektowanie bezpiecznych aplikacji. Eliminacja znanych podatności i błędów na etapie projektowania. Narzędzia do projektowania bezpiecznych aplikacji (np. SecureUML).
Metody nauczaniaM-2ćwiczenia laboratoryjne
M-1wykład informacyjny
Sposób ocenyS-2Ocena formująca: sprawozdanie z wykonywanego zadania (ocena pracy wykonywanej na zajęciach)
S-1Ocena formująca: wejściówka (ocena przygotowania do zajęć)
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 wykorzystać rozszerzenia języka UML (np. SecureUML) 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 kształceniaI_1A_O8/10_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_K01świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą
I_1A_K02świadomie stosuje przepisy prawa i przestrzega zasad etyki zawodowej
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_K01rozumie potrzebę uczenia się przez całe życie; potrafi inspirować i organizować proces uczenia się innych osób
T1A_K02ma świadomość ważności i zrozumienie pozatechnicznych aspektów i skutków działalności inżynierskiej, w tym jej wpływu na środowisko, i związanej z tym odpowiedzialności za podejmowane decyzje
T1A_K05prawidłowo identyfikuje i rozstrzyga dylematy związane z wykonywaniem zawodu
T1A_K07ma świadomość roli społecznej absolwenta uczelni technicznej, a zwłaszcza rozumie potrzebę formułowania i przekazywania społeczeństwu, w szczególności poprzez środki masowego przekazu, informacji i opinii dotyczących osiągnięć techniki i innych aspektów działalności inżynierskiej; podejmuje starania, aby przekazać takie informacje i opinie w sposób powszechnie zrozumiały
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_K01ma świadomość ważności i rozumie pozatechniczne aspekty i skutki działalności inżynierskiej, w tym jej wpływu na środowisko, i związanej z tym odpowiedzialności za podejmowane decyzje
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-1Problem bezpieczeństwa oprogramowania. Iinżynieria oprogramowania a bezpieczeństwo systemów informatycznych.
T-L-1Analiza podatności oprogramowania zaimplementowanego w języku C na wybrane ataki.
T-L-2Analiza podatności oprogramowania zaimplementowanego w języku Java na wybrane ataki.
T-L-3Analiza podatności oprogramowania webowego na wybrane ataki. Wykorzystanie cech oprogramowania nie wynikających z użytego języka.
T-W-2Przegląd znanych podatność oprogramowania. Oprogramowanie webowe. Studium przypadków dla języków C i Java.
Metody nauczaniaM-2ćwiczenia laboratoryjne
M-1wykład informacyjny
Sposób ocenyS-3Ocena podsumowująca: zaliczenie ustne
S-2Ocena formująca: sprawozdanie z wykonywanego zadania (ocena pracy wykonywanej na zajęciach)
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 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