Karta Przedmiotu

Politechnika Białostocka Wydział Informatyki
Kierunek studiów Cyberbezpieczeństwo Poziom i forma
studiów
pierwszego stopnia
stacjonarne
Grupa przedmiotów /
specjalność
Bezpieczeństwo aplikacji Profil kształcenia ogólnoakademicki
Nazwa przedmiotu Algorytmy, struktury danych i inżynieria bezpiecznego oprogramowania Kod przedmiotu CYB1ASD
Rodzaj zajęć obieralny
Formy zajęć i liczba godzin W Ć L P Ps T S Semestr 5,6
26 26 Punkty ECTS 4
Program obowiązuje od 2026/2027
Przedmioty wprowadzające Architektura komputerów i systemy operacyjne (CYB1SOP),   Elementy matematyki wyższej I (CYB1MAT1),   Podstawy cyberbezpieczeństwa (CYB1PCY),   Podstawy programowania (CYB1PPR),   Sieci komputerowe I (CYB1SKO1),  
Cele przedmiotu Przekazanie zaawansowanej wiedzy na temat struktur danych i algorytmów w specyficznym kontekście inżynierii bezpieczeństwa, ze szczególnym uwzględnieniem algorytmów probabilistycznych, grafowych oraz kryptograficznych.
Wykształcenie umiejętności doboru i bezpiecznej implementacji struktur danych (m.in. kopców, filtrów Blooma, drzew Merkle'a) pod kątem minimalizacji powierzchni ataku oraz ochrony przed algorytmicznymi atakami odmowy usługi (DoS).
Zapoznanie studentów z algorytmicznymi podstawami działania profesjonalnych narzędzi bezpieczeństwa oraz analizy incydentów (IDS/IPS, skanery AV, systemy SIEM, narzędzia Forensics oraz Binary Diffing).
Rozwijanie kompetencji w zakresie projektowania systemów zgodnie z paradygmatem Secure by Design, w tym analizy zależności oprogramowania (SBOM) oraz zapewniania integralności danych w systemach rozproszonych.
Ramowe treści programowe Program obejmuje analizę złożoności obliczeniowej algorytmów pod kątem odporności systemów IDS/IPS na ataki typu Algorithmic Complexity Attacks (DoS). Omawiane są efektywne metody sortowania zewnętrznego (External Merge Sort) dużych zbiorów danych w systemach SIEM oraz techniki zarządzania pamięcią przy użyciu QuickSort i HeapSort. Wykład omawia implementację kolejek priorytetowych opartych na kopcach binarnych. Istotnym elementem jest analiza struktur drzewiastych (Trie, B-drzewa) stosowanych w informatyce śledczej (Forensics) i indeksowaniu danych. Poruszane są zagadnienia struktur probabilistycznych, takich jak Filtry Blooma, wykorzystywanych do monitorowania ruchu sieciowego przy ograniczonych zasobach. Program obejmuje algorytmy tekstowe, w tym algorytm Aho-Corasick stanowiący fundament skanerów antywirusowych. Przedmiot uczy wykorzystania teorii grafów do analizy ścieżek infekcji (Lateral Movement) oraz projektowania bezpiecznego przesyłania danych przy użyciu algorytmu Dijkstry. Studenci poznają techniki Binary Diffing oparte na algorytmie LCS. Kurs obejmuje mechanizmy kryptograficznej kontroli integralności danych z wykorzystaniem funkcji skrótu SHA-256 oraz drzew Merkle.
Inne informacje o przedmiocie przedmiot ma związek z prowadzoną na Uczelni działalnością naukową
przedmiot kształtuje umiejętności praktyczne
Wyliczenie: Nakład pracy studenta związany z: Godzin
ogółem
W tym
kontaktowych
W tym
praktycznych
udziałem w wykładach 26 26
udziałem w innych formach zajęć 26 26 26
przygotowaniem do bieżących zajęć o charakterze praktycznym 13 13
implementacja zadań 20 20
przygotowanie do zaliczenia wykładu 15
Razem godzin: 100 52 59
Razem punktów ECTS: 4 2.1 2.4
Zakładane kierunkowe efekty uczenia się Wiedza Umiejętności Kompetencje
społeczne
CYB1_W01 CYB1_U03 CYB1_K01
CYB1_W02 CYB1_U07 CYB1_K02
CYB1_W03 CYB1_U10 CYB1_K03
CYB1_W06 CYB1_U12
CYB1_W09 CYB1_U18
CYB1_W11 CYB1_U19
CYB1_W14
Cele i treści ramowe sformułował(a) dr inż. Anna Borowska, dr Joanna Karbowska-Chilińska, dr inż. Krzysztof Ostrowski Data: 08/04/2026
Realizacja w roku akademickim 2028/2029
 
Treści programowe
Wykład
1. Analiza złożoności a bezpieczeństwo systemów: Wprowadzenie do notacji O, Omega, Theta. Dlaczego teoretyczna wydajność ma znaczenie w cyberbezpieczeństwie? Analiza ataków typu Algorithmic Complexity Attacks na systemy IDS/IPS (paraliż sieci przez O(n^2)
2. Sortowanie i analiza logów (SIEM): Charakterystyka QuickSort, HeapSort i MergeSort. Bezpieczeństwo implementacji: unikanie Stack Overflow przy rekurencji. Sortowanie zewnętrzne (External Merge Sort) jako metoda przetwarzania wieloterabajtowych logów systemowych
3. Struktury liniowe i kolejki priorytetowe w systemach monitorowania SOC: Listy, stosy i kolejki. Wykorzystanie kopca binarnego w kolejkach priorytetowych do obsługi zdarzeń krytycznych. Problem przepełnienia kolejek (Queue Overflow) i strategie zarządzania kolejkami podczas masowych ataków (np. DDoS)
4. Tablice mieszające i bezpieczeństwo skrótów: Metody obsługi kolizji a wydajność wyszukiwania. Funkcje skrótu w strukturach danych a haszowanie kryptograficzne. Zastosowania: szybkie sprawdzanie sygnatur malware (IOC) oraz bezpieczne przechowywanie haseł (salting). Ataki na bazy poświadczeń: Rainbow Tables, kolizje
5. Struktury hierarchiczne w systemach plików i bazach danych. Drzewa przeszukiwań (BST, AVL, Czerwono-Czarne) w optymalizacji dostępu do danych. B-drzewa i B+drzewa jako fundament systemów plików (NTFS, Ext4). Informatyka śledcza (Forensics): wykorzystanie struktur drzewiastych do rekonstrukcji metadanych i odzyskiwania usuniętych plików. [temat b. obszerny ze względu na struktury drzewiaste (materiał z pełnym opisem do samodzielnej nauki + podsumowanie na wykładzie)]
6. Struktury probabilistyczne w monitoringu sieci: Filtry Blooma i ich zastosowanie w czarnych listach URL (Google Safe Browsing). Algorytm Count-Min Sketch jako metoda estymacji natężenia ruchu i wykrywania anomalii przy ograniczonych zasobach
7. Wyszukiwanie wzorców i sygnatur (Deep Packet Inspection): Algorytmy tekstowe w skanerach AV i systemach IDS. Praktyczna charakterystyka algorytmów KMP, Rabina-Karpa oraz Boyera-Moore’a w kontekście analizy ruchu sieciowego. Porównanie efektywności wyszukiwania sygnatur w strumieniach danych
8. Zaawansowane algorytmy tekstowe i routing: Drzewa Trie i problem najdłuższego wspólnego prefiksu (LPM) w tablicach routingu. Algorytm Aho-Corasick jako podstawa wielowzorcowego dopasowania w systemach IDS (Snort/Suricata). Odległość Levenshteina w wykrywaniu typosquattingu
9. Algorytmy grafowe w analizie propagacji zagrożeń: Reprezentacje grafowe sieci i relacji między procesami. Wykorzystanie przeszukiwania BFS/DFS w mapowaniu botnetów, analizie ścieżek infekcji oraz zależności w oprogramowaniu (SBOM)
10. Bezpieczny routing i odporność topologii: Algorytmy Dijkstry i Bellmana-Forda w bezpiecznym przesyłaniu danych. Odporność protokołu STP na ataki (algorytmy MST). Modele przepływów (Ford-Fulkerson) w analizie przepustowości łącza pod atakiem
11. Integralność danych i Binary Diffing: Drzewa Merkle w monitorowaniu integralności plików i Certificate Transparency. Wykorzystanie algorytmu LCS (najdłuższy wspólny podciąg) w narzędziach typu BinDiff do analizy porównawczej wersji złośliwego kodu
12. Fundamenty kryptograficzne i Secure SDLC: Bezpieczna implementacja RSA/ECC oraz generatorów liczb losowych (CSPRNG). Integracja struktur danych z zasadami Secure Design (Defense in Depth) – podsumowanie przedmiotu
13. Zaliczenie wykładu
Pracownia specjalistyczna
1. Konfiguracja środowiska i narzędzi programistycznych (C#/Python). Bezpieczne przetwarzanie plików. Zadanie1 (Skaner sygnatur malware (Aho-Corasick))
2. Analiza wydajności algorytmów wyszukiwania sygnatur
3. Modelowanie hierarchicznej bazy wzorców (Trie).
4. Implementacja automatu Aho-Corasick
5. Finalizacja wielowzorcowego skanera sygnatur
6. Odwzorowanie struktury systemu plików
7. Zastosowanie funkcji skrótu w weryfikacji danych
8. Budowa struktur kontroli integralności (Drzewa Merkle’a)
9. Modelowanie relacji między procesami systemowymi z wykorzystaniem grafowej struktury list sąsiedztwa
10. Analiza propagacji zagrożeń w grafie (BFS)
11. Wyznaczanie ścieżek infekcji w systemie
12. Analiza porównawcza zmian w kodzie (Binary Diffing)
13. Weryfikacja i prezentacja zrealizowanych modułów
Metody dydaktyczne
(realizacja stacjonarna)
W wykład informacyjny (prezentacja multimedialna), wykład problemowy
Ps samodzielne / zespołowe projektowanie i implementacja bezpiecznego modułu oprogramowania
Metody dydaktyczne
(realizacja zdalna)
W wykład realizowany w czasie rzeczywistym z wykorzystaniem platformy MS Teams
-
Forma zaliczenia
W zaliczenie pisemne w formie testu otwartego
Ps wejściówki, prezentacja i obrona zadań programistycznych
Warunki zaliczenia
W Uzyskanie min. 30% punktów z każdego efektu uczenia się z zakresu wiedzy, a po spełnieniu tego warunku ostateczna ocena wynika z sumy uzyskanych punktów z testu otwartego.
Kryteria oceny:
[ 0 – 50]% punktów – 2.0
(50 – 60]% punktów – 3.0
(60 – 70]% punktów – 3.5
(70 – 80]% punktów – 4.0
(80 – 90]% punktów – 4.5
(90 – 100]% punktów – 5.0
Ps Minimalne wymagania odnośnie efektów uczenia się:
E4 - implementacja i obrona zadania 1 na co najmniej 50% punktów.
E5 - implementacja i obrona zadania 2 na co najmniej 50% punktów.
E6 - implementacja i prezentacja zadania 2 na co najmniej 50% punktów.
E7 - prezentacja i obrona zadań 1-2, każde na co najmniej 50% punktów
E8 - zaliczenie wejściówek i obrona zadań 1-2, każde na co najmniej 50% punktów

Ocena końcowa składa się z następujących elementów:
- wejściówki: 2 po 10 pkt,
- zadania programistyczne + obrona + prezentacja (Z1 30pkt, Z2 50pkt),

Kryteria oceny:
[ 0 – 50]% punktów – 2.0
(50 – 60]% punktów – 3.0
(60 – 70]% punktów – 3.5
(70 – 80]% punktów – 4.0
(80 – 90]% punktów – 4.5
(90 – 100]% punktów – 5.0
Symbol efektu Zakładane efekty uczenia się Odniesienie do efektów uczenia się zdefiniowanych dla kierunku studiów
Wiedza Umiejętności Kompetencje
społeczne
Wiedza: student zna i rozumie
E1 metody klasyfikacji algorytmów pod kątem ich złożoności obliczeniowej i pamięciowej oraz mechanizmy powstawania podatności typu Algorithmic Complexity Attacks
E2 zasady działania struktur hierarchicznych, probabilistycznych oraz grafowych stosowanych w monitorowaniu bezpieczeństwa i informatyce śledczej
E3 zasady wytwarzania bezpiecznego kodu, w tym mechanizmy kontroli integralności danych oraz techniki wykrywania i analizy incydentów
Umiejętności: student potrafi
E4 tworzyć i analizować programy komputerowe realizujące zadania z zakresu cyberbezpieczeństwa, dobierając odpowiednie struktury danych do rozwiązywania problemów inżynierskich
E5 identyfikować i modelować zagrożenia w systemach ICT oraz analizować ścieżki infekcji z wykorzystaniem algorytmów grafowych i tekstowych
E6 wykorzystywać podstawowe narzędzia do zabezpieczania cyfrowych śladów oraz analizy logów i artefaktów systemowych związanych z incydentem bezpieczeństwa
Kompetencje społeczne: student jest gotów do
E7 krytycznej oceny posiadanej wiedzy oraz profesjonalnego przyjmowania odpowiedzialności za bezpieczeństwo i jakość opracowanych rozwiązań
E8 działania w sytuacjach wymagających szybkiego podejmowania decyzji pod presją czasu, typowych dla obsługi incydentów bezpieczeństwa
Symbol efektu Sposób weryfikacji efektu uczenia się Forma zajęć na której zachodzi weryfikacja
E1 zaliczenie pisemne W
E2 zaliczenie pisemne W
E3 zaliczenie pisemne W
E4 implementacja, obrona zadania programistycznego Ps
E5 implementacja, obrona zadania programistycznego Ps
E6 implementacja, prezentacja zadania programistycznego Ps
E7 prezentacja, obrona zadania programistycznego Ps
E8 wejściówka, obrona zadania programistycznego Ps
Literatura podstawowa
1. W. Stallings, Bezpieczeństwo systemów informatycznych. Zasady i praktyka, Wydawnictwo Helion, 2021 (wydanie IV)
2. P. Wróblewski, Algorytmy, struktury danych i techniki programowania, Wydawnictwo Helion, 2019 (wydanie VI)
3. L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury danych, Wydawnictwo Naukowe PWN, 2018
4. R. Sedgewick, K. Wayne, Algorytmy, Wydawnictwo Helion, 2017 (wydanie IV)
5. T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Wprowadzenie do algorytmów, Wydawnictwo Naukowe PWN, 2012
Literatura uzupełniająca
1. B. Carrier, Informatyka śledcza systemów plików. Analiza struktur danych w systemach plików, Wydawnictwo Helion, 2008
2. W. Stallings, Kryptografia i bezpieczeństwo sieci komputerowych. Koncepcje i praktyki, Wydawnictwo Helion, 2020 (wydanie VII)
3. M. Sikorski, A. Honig, Praktyczna analiza złośliwego oprogramowania, Wydawnictwo Naukowe PWN, 2019
4. J.F. Kurose, K.W. Ross, Sieci komputerowe. Ujęcie całościowe, Wydawnictwo Helion, 2021 (wydanie VIII)
5. K. Krysiak, Sieci komputerowe. Kompendium, Wydawnictwo Helion, 2023 (wydanie III)
Koordynator przedmiotu: dr inż. Anna Borowska, dr Joanna Karbowska-Chilińska, dr inż. Krzysztof Ostrowski Data: 08/04/2026