---
# System prepended metadata

title: zBIRy

---

# Zagadnienia na egzamin – przedmiot BIR (realizacja 23Z

## W1- Wprowadzenie


1. **Cechy wyróżniające zagadnienia bezpieczeństwa systemów IoT względem tradycyjnych systemów IT.**

    Zagadnienia bezpieczeństwa systemów IoT różnią się od tradycyjnych systemów IT. Systemy IoT są złożone z wielu urządzeń, które komunikują się ze sobą i z siecią. W przeciwieństwie do tradycyjnych systemów IT, systemy IoT mają wiele punktów wejścia, co zwiększa ryzyko ataków. Ponadto, wiele urządzeń IoT ma ograniczone zasoby, co utrudnia stosowanie złożonych mechanizmów bezpieczeństwa. W celu zapewnienia bezpieczeństwa systemów IoT, należy stosować specjalne mechanizmy zabezpieczeń, takie jak segmentacja sieci, polityka NAC, protokoły szyfrujące, a także stosować zasady bezpieczeństwa na poziomie aplikacji.
    - Standardowe rozwiązania bezpieczeństwa IT mogą mieć zbyt rozbudowane funkcjonalności dla środowiska OT
    - budowa urządzeń IoT (zwłaszcza miniaturowych, zasilanych bateryjnie) tworzy warunki dla implementacji mechanizmów bezpieczeństwa niespotykane w innych obszarach IT
    - Duży udział bezpieczeństwa komunikacji bezprzewodowej
    - Jest ich dużo, mają być tanie więc są słabo zrobione
    - Customowe protokoły/krypto często mają dziury
    - Czesto wykorzystują mikrokontrolery niewiadomego pochodzenia
    - Mogą wysyłać coś do chińskiego clouda



2. **Wymień przynajmniej 5 różnych zagrożeń dla systemów IoT i krótko omów ich potencjalne lub realne konsekwencje.**

    - **Słaba ochrona za pomocą haseł**: Słabe lub łatwe do odgadnięcia hasła są jednym z najczęstszych sposobów ataku na systemy IoT. Atakujący może wykorzystać słabe hasła do uzyskania dostępu do urządzenia i przeprowadzenia ataku.
    - **Brak regularnych aktualizacji**: Brak regularnych aktualizacji oprogramowania urządzeń IoT może prowadzić do wystąpienia luk w zabezpieczeniach, które mogą zostać wykorzystane przez atakujących.
    - **Słabości mechanizmu aktualizacji**: Mechanizmy aktualizacji oprogramowania urządzeń IoT mogą mieć słabości, które mogą być wykorzystane przez atakujących do przeprowadzenia ataku.
    - **Niezabezpieczone interfejsy komunikacyjne**: Niezabezpieczone interfejsy komunikacyjne mogą umożliwić atakującym przechwycenie informacji przesyłanych między urządzeniami IoT i wykorzystanie ich do przeprowadzenia ataku.
    - **Słaba kryptografia** bo mało zasobów i prądu 
    - **Nieautoryzowane dostępy fizyczne**  Osoba fizycznie dostająca się do urządzenia może manipulować lub uszkodzić sprzęt, a także podejść do niego w celu kradzieży danych.
    - **Zaawansowane ataki hakerskie:** -  Ataki takie jak ataki zero-day lub ataki za pomocą zaawansowanych technik mogą umożliwić atakującym przeniknięcie do systemu IoT bez wykrycia.



3. **Sygnały w dziedzinie czasu i częstotliwości – np. zidentyfikuj częstotliwość fali nośnej, orientacyjną szerokość zajmowanego kanału oraz poziom sygnału na podstawie zmierzonego wykresu widma sygnału.**
![image](https://hackmd.io/_uploads/S1UN_Ry9a.png)



4. **Miara decybelowa w radiokomunikacji** – przeliczanie poziomów i stosunków mocy pomiędzy miarą liniową (waty, „razy”) a logarytmiczną („dBm”, „dB”), np. Zmierzono poziomy mocy sygnałów odebranych z dwóch czujników IoT: Pa = -40 dBm, Pb = -60 dBm. Oblicz stosunek tych poziomów i wyraź go w mierze logarytmicznej i liniowej. Podaj wartości zmierzonych mocy w mierze liniowej.

![image](https://hackmd.io/_uploads/ByfwOAy5a.png)

| stosunek | db - moc | db - apmlituda |
| -------- | -------- | -------- |
| 2     | 3dB     | 6dB     |
| 10     | 10dB     | 20dB     |

db dodajemy, a stosunki mnożymy:

```
    -40dBm = 10dB + 10dB + 10dB + 10dB = 10^4 razy słabiej 
    Więc jeśli był 1mW (10^-3 W) to teraz jest 10^-7W
    bo 10dB to 10 razy 

    -40dBm do -60dBm to stosunek -20dB (bo odejmujemy)
    -40dBm to 10^-7 -60dBm to 10^-9 stosunek 10^-2 to 100razy a to 20dB

    46dBm = 10 + 10 + 10 + 10 + 3 + 3 - 10^4 * 2 * 2 = 4*10^4mW = 40W


    -8dBm to będzie 3+3+3 (parwie 8 xd) - 2*2*2 - 8 razy mniej niż 1mW czyli 0.000125W


    16000 razy mocniej 
    2*2*2*2*10*10*10 = 3*4 + 10*3 = 42dB
```

## W2 - Protokoły sieciowe w IoT
1. **Jakie aspekty bezpieczeństwa rozwiązuje stosowanie TLS w systemie rozproszonym wykorzystującym protokół MQTT?**
    - weryfikacja tożsamości brokerów MQTT
    - weryfikacja tożsamości klientów MQTT
    - uwierzytelnianie stron MQTT transmisji na poziomie warstwy transportowej 
    - blokowanie nieprawidłowych klientów MQTT przed wysłaniem komunikatów MQTT CONNECT

2. **Narysować i opisać sekwencję komunikatów protokołu MQTT między klientem i serwerem przy włączonym QoS=2**

    - QOS 0 (0 albo raz) ![image](https://hackmd.io/_uploads/Bk95aC196.png)
    - QOS 1 (1 lub więcej, bo może zgubić się potwierdznie) ![image](https://hackmd.io/_uploads/rkeMXA0y9p.png)
    - QOS 2 (dokładnie raz, bo potwierdzamy otrzymanie potwierdzenia ) ![image](https://hackmd.io/_uploads/BJnP001qp.png)

3. **Wyjaśnić pojęcie usługi w OPC UA (idea, wzorzec komunikacyjny).**

W ramach protokołu OPC UA, usługa to zbiór operacji, które mogą być wykonane na obiektach w przestrzeni adresowej serwera. Usługi te obejmują m.in. odczyt i zapis wartości atrybutów obiektów, subskrypcję zmian wartości atrybutów, wywołanie metod obiektów, a także autoryzację i uwierzytelnienie użytkowników.


Better:

Usługa w **OPC UA** (Open Platform Communications Unified Architecture) odnosi się do funkcjonalności lub operacji dostępnych w ramach tego standardu komunikacyjnego. OPC UA to otwarty standard przeznaczony głównie do komunikacji między systemami automatyki przemysłowej.

**Idea usługi w OPC UA:**
OPC UA definiuje różne usługi, które umożliwiają wymianę informacji między klientami a serwerami w systemach automatyzacji.
Każda usługa realizuje konkretne funkcje, takie jak odczyt, zapis, subskrypcje danych, zarządzanie alarmami itp.

**Wzorzec komunikacyjny:**
Komunikacja w OPC UA oparta jest na wzorcu żądanie-odpowiedź (request-response).
Klienty wysyłają żądania do serwerów, a serwery odpowiadają na te żądania, realizując odpowiednie usługi.
Komunikacja odbywa się z wykorzystaniem protokołów transportowych, takich jak TCP, opcjonalnie z warstwą bezpieczeństwa.

## W3 – Podstawy komunikacji radiowej
1. Dla systemu radiowej transmisji danych z czujnika IoT, o parametrach podanych poniżej, określić maksymalną odległość odbioru danych z czujnika, jeśli przyjąć że poprawny odbiór jest możliwy gdy moc sygnału na wejściu odbiornika jest większa niż -70 dBm, a propagacja fali radiowej pomiędzy czujnikiem a odbiornikiem może być opisana modelem tłumienia wolnej przestrzeni. Dane systemu:
    - moc sygnału z nadajnika czujnika 10 dBm - 0.01W
    - zysk energetyczny anteny nadawczej czujnika 2 dBi
    - zysk enegetyczny anteny odbiornika 2 dBi
    - częstotliwość transmitowanej fali radiowej 433 MHz - $\frac{v}{f}$ = $\frac{3*10^8}{433*10^6}m$ = $\lambda$
    
    $$P_{R[W]} = P_{T[W]} * G_{T} * G_{R} * (\frac{\lambda[m]}{4*\pi*d[m]})^2$$
        
    $$d^2[m] = \frac{P_{T[W]} * G_{T} * G_{R}}{P_{R[W]}} * (\frac{\lambda[m]}{4*\pi})^2$$

    $d^2 = \frac{0.01 * 2 * 2}{10^{-10}} * (\frac{(3*10^8)^2}{4^2*3.14^2 * (433*10^6)^2})$
    $d^2 = \frac{10^{-2}}{10^{-10}} * \frac{2*2*9*10^{16}}{4^2*3.14^2 * 433^2 * 10^{12}}$
    $d^2 = \frac{2*2*9*10^{14}}{4^2*3.14^2 * 433^2 * 10^{2}}$
    $d^2 = \frac{36*10^{12}}{4^2*3.14^2 * 433^2}$
    $d^2 = \frac{36*10^{12}}{29577064}$
    $d^2 = 0.00000121715*10^{12}$
    $d = 0.00110324521*10^{6}$
    $d = 1103.24521 m$

```-------------------LUB-------------------```

$$P_{R[dBm]} = P_{T[dBm]} + G_{T[dB]} + G_{R[dB]} - L_{FS[dB]}$$

$$L_{FS[dB]} = -147.56 + 20log_{10}(d_{[m]}) + 20log_{10}(f_{[Hz]})$$

$$P_{R[dBm]} = P_{T[dBm]} + G_{T[dB]} + G_{R[dB]} - (-147.56 + 20log_{10}(d_{[m]}) + 20log_{10}(f_{[Hz]})))$$


$-70 = 10 + 2 + 2 - (-147.56 + 20log_{10}(d_{[m]}) + 20log_{10}(433*10^{6}))$
$-84 = 147.56 - 20log_{10}(d_{[m]}) - 20log_{10}(433*10^{6}))$
$-84 = 147.56 - 20log_{10}(d_{[m]}) - 20log_{10}(433*10^{6}))$
$231.56 = 20log_{10}(d_{[m]}) + 20log_{10}(433*10^{6}))$
$11.58 = log_{10}(d_{[m]}) + log_{10}(433*10^{6}))$
$11.58 = log_{10}(d_{[m]}*433*10^{6})$
$d_{[m]}*433*10^{6}=10^{11.58}$
$d_{[m]}=\frac{10^{11.58}}{433*10^{6}}$
$d_{[m]}=\frac{10^{5.58}}{433}$
$x=874m$



2. Dana z czujnika IoT transmitowane są drogą radiową na częstotliwości 150 MHz do odbiornika znajdującego się w odległości 100m od czujnika.
    Przyjmując, że:
    - moc sygnału z nadajnika czujnika ma wartość 1mW
    - w czujniku i w odbiorniku zastosowano anteny o zysku energetycznym równym 0 dBi 

    wyznaczyć moc sygnału doprowadzonego na wejście odbiornika, jeśli propagacja sygnału radiowego między czujnikiem a odbiornikiem może być opisana modelem wolnej przestrzeni.

    $$P_{R[W]} = P_{T[W]} * G_{T} * G_{R} * (\frac{\lambda[m]}{4*\pi*d[m]})^2$$
    $P_{R[W]} = 0.001 * 1 * 1 * (\frac{\frac{3*10^8}{150*10^6}}{4*3.14*100})^2$
    $P_{R[W]} = 0.001 * (\frac{0.02*10^2}{1256})^2$
    $P_{R[W]} = 0.001 * (\frac{2}{1256})^2$
    $P_{R[W]} = 0.001 * (0.0016)^2$
    $P_{R[W]} = 10^{-3} * 2.54 * 10^{-6}$
    $P_{R[W]} = 2.54 * 10^{-9}$
    $P_{R[W]} = 2.54*10^6mW$
```-------------------LUB-------------------```
$$P_{R[dBm]} = P_{T[dBm]} + G_{T[dB]} + G_{R[dB]} - (-147.56 + 20log_{10}(d[m]) + 20log_{10}(f[Hz]))$$
$P_{R[dBm]} = 1 + 0 + 0 - (-147.56 + 20log_{10}(100) + 20log_{10}(150*10^{6}))$
$P_{R[dBm]} = 148.56 - 20log_{10}(100) - 20log_{10}(150*10^{6})$
$P_{R[dBm]} = -54.96[dBm]$

## W8 – Sieci WiFi
1. **Jakie słabości protokołu WEP zostały wyeliminowane poprzez wprowadzenie protokołu WPA2? Jak zostało to osiągnięte?**
    - **Słabe szyfrowanie**: WEP używał słabego szyfrowania RC4, które było łatwe do złamania. WPA2 używa silniejszego szyfrowania AES.
    - **Słabe uwierzytelnianie**: WEP używał słabego mechanizmu uwierzytelniania opartego na współdzielonym kluczu, szyfrowanie zawsze identycznym kluczem. W WPA2 każda ramka szyfrowana innym kluczem
    - **Brak kontroli integralności**: WEP nie zapewniał kontroli integralności, co oznacza, że atakujący mógł modyfikować przesyłane dane bez wykrycia. WPA2 zapewnia kontrolę integralności za pomocą protokołu Michael, który umożliwia wykrycie modyfikacji danych.
    - **4-way handshake**: W WPA2 klucze szyfrujące wymieniane są za pomocą procedury 4-way handshake
![image](https://hackmd.io/_uploads/H1aFSKM5a.png)
![image](https://hackmd.io/_uploads/S1scrFMc6.png)
![image](https://hackmd.io/_uploads/Syeo8RGcT.png)



2. **Na czym polega i do czego jest wykorzystywana procedura 4-way handshake w sieciach WiFi? Jak ona przebiega?**
    Procedura 4-way handshake zapewnia bezpieczeństwo sieci Wi-Fi poprzez uwierzytelnienie klienta i nawiązanie bezpiecznego połączenia z punktem dostępowym. W ramach tej procedury wykorzystywane są klucze sesji, które są uzyskiwane na podstawie hasła użytkownika. Dzięki temu, że klucze te są generowane dynamicznie, a nie stałe, procedura 4-way handshake zapewnia wysoki poziom bezpieczeństwa sieci Wi-Fi
    1. AP wysyła do klienta nonce – pewną unikatową dla danej sesji wartość (określaną dalej jako ANonce).
    2. Klient wysyła własny nonce do AP (określany jako CNonce) wraz z sumą kontrolną MIC (Message Integrity Code).
    3. AP wysyła do klienta GTK(Group Temporal Key) numer sekwencyjny do transmisji grupowej oraz MIC.
    4. Klient wysyła potwierdzenie do AP.
        
    ![image](https://hackmd.io/_uploads/B1iNWle96.png)

3. **Jakie słabości protokołu WPA2 i w jaki sposób zostały wyeliminowane poprzez wprowadzenie protokołu WPA3?**
    - Ma zastąpić WPA2, usuwając większość jej słabości:
        - zmniejszenie bezpieczeństwa z powodu krótkich lub standardowych haseł
        - podatność na atak KRACK
        - podatność na anulowanie uwierzytelniani
    - Wprowadza modyfikację w procesie uzgadniania klucza tymczasowego. Klucz PMK ustalany jest przy wykorzystaniu protokołu SAE (Simultaneous Authentication of Equals) opartego na koncepcji dowodu z wiedzą zerową i kryptografii krzywych eliptycznych.
    - W WPA3 każde kolejne dołączenie wykorzystuje inny klucz PMK (Pairwise Master Key)
    - Znajomość hasła nie umożliwia ustalenia klucza tymczasowego danej sesji
    - Nasłuchiwanie wymiany komunikatów podczas ustalania klucza PTK nie pozwala na ustalenie hasła
    - Odporność na ataki słownikowe i analizę offline.

4. **Tryby pracy punktów dostępowych**

* AP mode - bezprzewodowa komunikacja klientów z lokalną siecią przewodową
* AP client mode - AP jako bezprzewodowa karta sieciowa, umożliwia podłączenie się do istniejącej sieci WLAN
* Bridge mode - tworzenie mostu bezprzewodowego do np dóch segmentów sieci LAN
* Reapeter mode -jednoczesna praca AP w charakterze AP i mostu, zwieksza pokrycie i umożliwia budowanie połączeń szkielotowych

## W9 - Bluetooth

1. **Jakie procesy są realizowane w poszczególnych fazach procedury parowania trybie LE Secure Connections? Proszę omówić modele asocjacji, które mogą być zastosowane w tej procedurze.**

    ![image](https://hackmd.io/_uploads/HJN3DYf96.png)

    Procedura parowania w trybie LE Secure Connections składa się z trzech faz:
![image](https://hackmd.io/_uploads/Hktw5Kfqp.png)
SMP (Security Manager Protocol)
![image](https://hackmd.io/_uploads/HJ7_9KGcT.png)


    W trybie LE Secure Connections można zastosować trzy modele asocjacji:
    - Just Works: jest przeznaczony do scenariuszy, w których przynajmniej jedno z urządzeń nie posiada wyświetlacza ani nie posiada klawiatury umożliwiającej wprowadzenie sześciu cyfr dziesiętnych. Model nie zapewnia ochrony przez atakami MITM ale zapewnia ochronę przed podsłuchem
    - Passkey Entry: został zaprojektowany na potrzeby scenariusza gdzie jedno urządzenie ma możliwość wprowadzania danych, ale nie ma możliwości wyświetlenia sześciu cyfr, a drugie urządzenie ma możliwości wyjściowe.
    - Numeric Comparison: jest przeznaczony dla scenariuszy, w których oba urządzenia mogą wyświetlać sześciocyfrową liczbę i oba umożliwiają wpisanie przez użytkownika „tak” lub „nie”.
    .
    - Out of Band (OOB) jest przeznaczony przede wszystkim dla scenariuszy gdzie zewnętrzny mechanizm jest używany do dystrybucji danych kryptograficznych wykorzystywanych w procesie parowania. Skuteczność modelu z punktu widzenia bezpieczeństwa zależy od zabezpieczenia kanału zewnętrznego np. przed atakami MITM.


2. **Jakie rodzaje adresów mogą być przypisane urządzeniom Bluetooth Low Energy? Jakie cechy posiadają poszczególne adresy? Na czym polega procedura powiązania (bonding)? Co jest jej skutkiem?** 
    - Public address: zaprogramowany w urządzeniu przez producenta i zarejestrowany w IEEE
    - Random static address: konfigurowalny podczas uruchamiania i stały przez cały okres użytkowania urządzenia. Nie wymaga rejestracji w IEEE
    - Resolvable random private address: adres, który zmienia się okresowo, ale można go odtworzyć za pomocą klucza IRK.
    - Non-resolvable random private address: adres, który zmienia się okresowo i którego nie można odtworzyć.

![image](https://hackmd.io/_uploads/ByRu5lx9T.png)



**Parring:**
   - **Cel:** Parowanie to proces ustanawiania połączenia między dwoma urządzeniami BLE.
   - **Wymiana klucza:** Podczas parowania, urządzenia wymieniają się informacjami niezbędnymi do utworzenia wspólnego klucza, często określanego jako "klucz łącza" lub "klucz tymczasowy".
   - **Częstotliwość:** Parowanie jest zazwyczaj jednorazowym procesem, który ma miejsce, gdy urządzenia są początkowo połączone.

**BLE Bonding:**
   - **Cel:** Łączenie jest procesem przechowywania klucza wygenerowanego podczas parowania do wykorzystania w przyszłości.
   - **Przechowywanie klucza:** Po pomyślnym sparowaniu urządzeń, łączenie umożliwia urządzeniom przechowywanie klucza łącza do późniejszego wykorzystania bez konieczności powtarzania procesu parowania.
   - **Korzyści:** Łączenie zapewnia bardziej płynne i wygodne doświadczenie dla użytkowników, ponieważ kolejne połączenia między sparowanymi urządzeniami mogą odbywać się bez konieczności interwencji użytkownika lub ponownego wprowadzania kluczy dostępu.




3. **Omówić procedurę rozsiewczą w BLE – czym się charakteryzuje, jakie kanały są w niej wykorzystywane, czym jest tzw. „zdarzenie”. Opisać tryby legacy i extended. Jaką modyfikację procedury rozsiewczej wprowadzono w wersji 5.1 i dlaczego? Jakie są 4 podstawowe typy pakietów rozsiewczych, krótko je opisać**.
    
    W kontekście technologii Bluetooth, zdarzenie (event) odnosi się do specyficznego wydarzenia lub sytuacji, które może wystąpić w trakcie komunikacji między urządzeniami Bluetooth. Zdarzenia są istotne, ponieważ pozwalają programom lub aplikacjom reagować na konkretne sytuacje, co umożliwia bardziej elastyczną i dynamiczną kontrolę nad działaniem systemu. Transmisje rozsiewcze są zorganizowane w zdarzenia (events) w ramach których muszą być zachowane ścisłe zależności czasowe
![image](https://hackmd.io/_uploads/HyC2nzec6.png)

    Od wersji 5.1 kolejność wyboru kanałów rozsiewczych 37,38,39 może być losowa (umożliwia to maksymalizację prawdopodobieństwa poprawnego odbioru)


Można rozróżnić następujące parametry pakietów rozsiewczych:
- connectable – z możliwością połączenia
- scannable – z możliwością przesłania dodatkowych informacji na prośbę urządzenia skanującego
- directed – skierowany do konkretnych urządzeń
- undirected – skierowany do wszystkich

4. **Bluetooth – przedstawić podstawowe parametry łącza radiowego (zakres częstotliwości, szerokości kanałów radiowych, modulacje). Jakie są dopuszczalne topologie w BR/EDR, a jakie w BLE, krótko je opisać. Omówić ogólną architekturę logiczną urządzenia działającego w standardzie Bluetooth, które jej elementy są niezbędne?**

Gaussian frequency-shift keying
Differential Quaternary Phase Shift Keying
Differential 8-Phase Shift Keying (D8PSK)
![image](https://hackmd.io/_uploads/rkD8l7gqp.png)
![image](https://hackmd.io/_uploads/Hk_jWme9p.png)




## W10 – Systemy łączności dalekiego zasięgu (LoRa)
1. **Co łączy a co dzieli LoRa i LoRaWAN? Opisz skrótowo oba pojęcia.**

    LoRa (Long Range) to technologia modulacji radiowej, która umożliwia transmisję danych na duże odległości przy minimalnym poborze mocy. LoRa opisuje format transmitowanej ramki. LoRa umożliwia komunikację pomiędzy End-device a Gateway (i nie tylko!)

    LoRaWAN (Long Range Wide Area Network) to protokół sieciowy oraz cała architektura sieci, który działa na warstwie MAC (Media Access Control) i umożliwia urządzeniom IoT komunikację z siecią LoRaWAN. LoRaWAN wykorzystuje LoRa do przesyłania ramek danych mających ustandaryzowaną sktrukturę, LoRaWAN definiuje także zasady transmisji (jak np zasada 1 do 99). LoRaWAN zapewnia bezpieczeństwo, szyfrowanie danych i uwierzytelnienie urządzeń. 
![image](https://hackmd.io/_uploads/SkEA-Xlcp.png)
![image](https://hackmd.io/_uploads/HJ49Clxca.png)
    LoRa i LoRaWAN są ze sobą powiązane, ale stanowią oddzielne pojęcia. 

2. **Opisz jak można przeprowadzić atak typu man in the middle w LoRa/LoRaWAN.**

    Atak typu man-in-the-middle (MitM) w sieciach LoRa/LoRaWAN polega na przechwyceniu i modyfikowaniu przesyłanych danych między urządzeniami IoT a siecią LoRa/LoRaWAN. Atakujący może przechwycić dane przesyłane między urządzeniami IoT i siecią LoRa/LoRaWAN, a następnie modyfikować je lub przesyłać dalej do docelowego urządzenia.

    W najprostszej warsji przeprowadzenie ataku MitM w sieciach LoRa/LoRaWAN, może polegać na synchronizowaniu się z parametrami transmisji wykorzystywanej przez urządzenie IoT, a następnie w momencie nadawania przez to urządzenie nadawać własny komunikat z wyższą mocą. Można też transmitować w innym czasie niż właściwy klient

## W11 – Systemy łączności bliskiego zasięgu (RFID, NFC)
1. **Podaj parametry transmisji dla technologii RFID i NFC, w szczególności zakres częstotliwości, orientacyjny zasięg transmisji oraz możliwości ewentualnej ingerencji w transmisję.**
![image](https://hackmd.io/_uploads/SkKIxZgqp.png)

2. **Przedstaw rodzaje anten stosowanych RFID i NFC**.
![chrome_vOyOxEfyBw](https://hackmd.io/_uploads/H1sd-Zxc6.png)

3. **Omów rodzaje tagów i ich budowę dla technologii RFID i NFC. Jakie są możliwości szyfrowania oraz zwiększenia bezpieczeństwa ich stosowania?**
    - klasa 0 - UHF, pasywne, nie można zapisywać 
    - klasa 1 - HF, pasywne, nie można zapisywać, mogą robić crc
    - klasa 2 - HF, pasywne, można zapisywać, mogą robić crc
    - klasa 3 - mają wbudowane zasilanie bo mają czujniki, są pasywne
    - klasa 4 - aktywne
    - klasa 5 - Mogą stanowić źródła zasilania, komunikować się z tagami wszystkich klas i pracować jako czytniki.

    Szyfrowanie, brak możliwości zmiany danych
    

4. **Podaj przynajmniej 10 potencjalnych zastosowań technologii RFID i NFC:**
    - Płatności zbilżeniowe
    - Karty dostępu do drzwi
    - Inwentaryzacja serwerowni
    - Automatyczne kasy w sklepach
    - Monitorowanie produkcji
    - Monitorowanie transportu
    - Pobieranie opłat na autostradach
    - Czipowanie zwierząt - dane właściciela
    - Ewidencja sprzętu na budowie
    - Wyszukiwanie książek/dokumentów

5. **Omów podobieństwa i różnice w technologii RFID i NFC.**

    Technologia RFID (Radio Frequency Identification) i NFC (Near Field Communication) są ze sobą powiązane, ale stanowią oddzielne pojęcia. Oto podobieństwa i różnice między nimi:


    **Podobieństwa:**
    - RFID i NFC wykorzystują fale radiowe do przesyłania danych bezprzewodowo.
    - RFID i NFC umożliwiają identyfikację przedmiotów za pomocą unikalnych identyfikatorów.
    - RFID i NFC są stosowane w wielu dziedzinach, takich jak logistyka, transport, magazynowanie, płatności bezdotykowe i wiele innych.
    
    **Różnice:**
    - NFC jest rozszerzeniem technologii RFID, ale działa tylko na krótkich dystansach (zwykle do 10 cm), podczas gdy RFID może działać na znacznie większych odległościach (do kilku metrów).
    - NFC umożliwia komunikację dwustronną, co oznacza, że urządzenia mogą przesyłać dane między sobą, podczas gdy RFID umożliwia tylko jednostronną komunikację (czytnik -> tag).
    - NFC jest stosowane głównie w urządzeniach mobilnych, takich jak smartfony i tablety, podczas gdy RFID jest stosowane w różnych urządzeniach, takich jak karty dostępu, etykiety logistyczne, karty płatnicze i wiele innych.
    
    Mimo że RFID i NFC są ze sobą powiązane, to mają różne zastosowania i charakterystyki
    
    
## W12, W13 – Inżynieria odwrotna urządzeń IoT
1. **Wymień i opisz (protokół, zastosowanie) najważniejsze interfejsy szeregowe stosowane w urządzeniach IoT. Jakie potencjalne możliwości można uzyskać z punktu widzenia bezpieczeństwa i inżynierii odwrotnej urządzenia IoT mając dostęp fizyczny do tych interfejsów.**
    - UART - umożliwia komunikację między dwoma urządzeniami za pomocą dwóch przewodów: Tx (transmit) i Rx (receive).
    - I2C -  umożliwia komunikację między urządzeniami za pomocą dwóch przewodów: SDA (Serial Data) i SCL (Serial Clock)
    - SPI - możliwia komunikację między urządzeniami za pomocą czterech przewodów: MOSI (Master Out Slave In), MISO (Master In Slave Out), SCK (Serial Clock) i SS (Slave Select)
    - JTAG

    Dostęp fizyczny do interfejsów szeregowych może umożliwić atakującemu odczytanie logów systemowych. Pozostawione debug porty umożliwiają interakcjie z użądzeniem jak np przerwanie procesu bootowania, wejście do bootloadera, dumpowanie wczytanie flasha do ramu, dumpowanie firmwaru

2. **Opisz typowy przebieg czynności jakie trzeba wykonać, żeby uzyskać dostęp do zawartości pamięci flash typowego urządzenia IoT. Napisz jakie potencjalne możliwości daje dostęp do zawartości pamięci flash. Jakie mogą pojawić się przeszkody w dostępie do takiej pamięci i do jej zawartości.**
    - Rozkręcenie urządzenia i zlokalizowanie jakiegoś interfejsu szeregowego
    - Przerwanie procesu bootowania urządzenia
    - Uzyskać dostęp do bootloadera
    - Załadować flash do ramu
    - Pobranie danych z ramu przez interejs szeregowy

    Daje to możliwości statycznej analizy firmwaru, reversowania kodu źródłowego w poszukiwaniu luk bezpieczeństwa. Mogą wystąpić problemy gdy nie ma dostępnego interfejsu szeregowego, wtedy można udlutować kość pamięci i próbować dumpować firmware bezpośrednio. Voltage glitching, Reversowanie bootloadera w poszukiwaniu trybu debug, JTAG

    

3. **W jaki sposób można przeprowadzić analizę pamięci flash. Wymień i opisz co może znajdować się w pamięci flash i w jaki sposób przeprowadzić analizę pamięci flash. Napisz jakie systemy plików występują w urządzeniach IoT. Jakie są podstawowe różnice w tych systemach plików.**

    Aby analizować pamięć flash musimy ją zdumpować, następnie możemy ją dzielić na partycje. Można wykorzystywać narzędzia jak binwalk w poszukiwaniu plików wykonywalnych. Można odtworzyć system plików i przeglądać znajdujące się w pamięci pliki (późnej reversować)

    - Squashfs
        - read-only
        - Wspiera kompresje
        - Używany np. na live boot USB/CD
    - Jffs2
        - Read-write
        - Wspiera kompresje
        - Popularny w Open-WRT
    - Yaffs
        - Read-write
        - Dedykowany do pamięci NAND
    - Ubifs
        - Często stawiany na UBI (warstwa zarządzania pamięcią NAND)
        - Bywa modyfikowany przez OEM



4. **Co to jest bootrom i do czego jest wykorzystywany w urządzeniach wbudowanch (IoT). Opisz różnice i przedstaw cechy charakterystyczne pomiędzy bootromem i bootloaderem.**

    Bootrom (Boot Read-Only Memory) to mała pamięć stała znajdująca się wewnątrz procesora, która zawiera kod uruchamiany jako pierwszy po włączeniu urządzenia. Bootrom jest zwykle zapisywany w pamięci stałej i nie może być modyfikowany. Bootrom decyduje, skąd ma zostać pobrany następny fragment kodu i jak lub czy ma być on weryfikowany pod kątem poprawności lub ważności. Bootrom może również zawierać dodatkowe funkcjonalności, które mogą być używane przez kod użytkownika podczas lub po uruchomieniu.

    Bootloader (w IoT zwykle Uboot) to program, który jest uruchamiany po bootromie i jest odpowiedzialny za znalezienie i załadowanie końcowego systemu operacyjnego lub firmware’u, który ma działać na chipie. Bootloader jest zwykle zapisywany w pamięci flash i może być zastąpiony lub uaktualniony. Bootloader może również wykonywać zadania, które są poza zakresem bootromu.

5. **Napisz na czym polega proces analizy oprogramowania wbudowanego w środowisku Ghidra. Na co należy zwrócić uwagę. Jakie mogą być różnice pomiędzy kodem skompilowanym z kodu źródłowego a kodem zdekompilowanym w środowisku Ghidra. Podaj przykłady.**


    Ghidra to narzędzie do analizy oprogramowania wbudowanego, które umożliwia deasemblację i dekompilację kodu maszynowego. Proces analizy oprogramowania wbudowanego w środowisku Ghidra składa się z kilku kroków:

    1. **Importowanie kodu maszynowego**: Pierwszym krokiem jest zaimportowanie kodu maszynowego do Ghidra. Kod maszynowy może być zaimportowany z pliku binarnego lub z urządzenia wbudowanego.
    2. **Dekompilacja kodu maszynowego**: Po analizie kodu maszynowego, Ghidra przeprowadza dekompilację kodu maszynowego na kod źródłowy w języku C. Kod źródłowy może być następnie edytowany i debugowany w środowisku Ghidra.
    3. **Manualna analiza kodu**: ustawianie nazw zmiennych i funkcji, odtworzenie struktur, identyfikacja funkcji bibliotecznych


    Przykłady różnic między kodem skompilowanym a zdekompilowanym w środowisku Ghidra to:
    - **Brak informacji o typach danych**: W niektórych przypadkach Ghidra może nie być w stanie określić typów danych, co może prowadzić do błędów w kodzie źródłowym.
    - **Brak informacji o wykorzystanych strukturach danych**
    - **Błędy dekompilacji**: Dekompilacja kodu maszynowego na kod źródłowy może nie zawsze być dokładna, co może prowadzić do błędów w kodzie źródłowym.
    - **Optymalizacja kodu**: Kompilator może optymalizować kod źródłowy, co może prowadzić do różnic między kodem skompilowanym a zdekompilowanym.
    - **Zgubienie kolejności if'ów**
    - **zamiana pętli for na while**



## W14 – Aspekty prawne moralne i praktyczne. Audyt bezpieczeństwa.

1. **Zaproponuj metodykę oceny bezpieczeństwa systemu IoT. Proponowana metodyka ma wskazywać:**
    - źródło wymagań bezpieczeństwa (standard, framework, itp.) dla listy kontrolnej
    - zastosowanie modelowanie scenariuszy zagrożeń / ataków / technik ofensywnych - jak umieścić?
    - przyjmowaną skalę ocen dla listy kontrolnej - wybrać jedną formę oceny i wskazać uzasadnienie

    Bierzemy wymagania bezpieczeństwa przygotowane przez NIST, zagrożenie z OWASP Top10 for IoT. Tworzymy macierz wymagań i zagrożeń. Następnie sprawdzamy które zagrożenia odnoszą siędo ocenianego systemu. Dla każdego zagrożenia zaznaczamy czy wymaganie jest spełnione w skali 0, 0.5, 1.


2. **Zaprezentuj model zagrożeń dla systemu IoT. Punktem wyjścia ma być referencyjny model systemu IoT - od urządzenia przez sieci lokalne, zdalne, chmurę i aplikacje sterujące. W ramach modelu zaproponować po jednym zagrożeniu / ataku / technice na jeden element modelu referencyjnego systemu IoT.**
![image](https://hackmd.io/_uploads/rJtilGgcp.png)
    - **endpoint** - zniszczenie fizyczne
    - **ebdpoint - gateway** - zagłuszenie/mitm
    - **gateway** - atak na łancuch dostaw aktualizacji
    - **gateway - cloud** - sakanowanie portów
    - **cloud** - zagrożenia prywatności i poufności
    - **aplikacja sterująca** - Analiza kodu źródłowego aplikacji
    - **aplikacja sterująca - cloud** - brak dostępu
    - **aplikacja sterująca - gateway** - Ataki na uwierzytelnie 
    - **cloud - 3rd party** - niezaufane zewnetrzne usługi


3. **Zaproponuj proces przeprowadzenia badań bezpieczeństwa IoT wybranego rozwiązania.**
    1. Identyfikację zagrożeń, którym może podlegać dane rozwiązanie
    2. Wybór wymagań, które są w stanie pokryć zagrożenia w sposób najbardziej efektywny kosztowo.
    3. Przejście przez realizacje wymagań i ocena spełnienia ich w skali [0, 0.5 , 1] 
    4. Ocena faktycznego stanu bezpieczeństwa systemu IoT


4. **Ocena bezpieczeństwa systemów IoT w ekosystemie podnoszenia cyberbezpieczeństwa produktów cyfrowych. Opisz wątki i trendy związane z tym zagadnieniem biorąc pod uwagę nadchodzące zmiany w Ustawie o Krajowym Systemie Cyberbezpieczeństwa, wymagania prezentowane na poziomie Unii Europejskiej oraz trendy kreowane w USA.**


    W Polsce, Ustawa o Krajowym Systemie Cyberbezpieczeństwa (KSC) wprowadza szereg zmian mających na celu zwiększenie poziomu bezpieczeństwa systemów IoT. Wśród najważniejszych zmian proponowanych w projekcie nowelizacji ustawy o KSC są: powołanie CSIRT sektorowych, utworzenie krajowego systemu certyfikacji cyberbezpieczeństwa oraz strategicznej sieci bezpieczeństwa

    Na poziomie Unii Europejskiej, Komisja Europejska opracowała szereg zasad i wytycznych dotyczących bezpieczeństwa systemów IoT. Komisja Europejska opublikowała wytyczne dotyczące bezpieczeństwa systemów IoT, które mają na celu zapewnienie bezpieczeństwa urządzeń IoT na poziomie europejskim. Wytyczne te obejmują szereg zasad dotyczących bezpieczeństwa urządzeń IoT, takich jak: minimalne wymagania dotyczące bezpieczeństwa, wymagania dotyczące aktualizacji oprogramowania, wymagania dotyczące uwierzytelniania i wiele innych.

    Ogólny trend jest taki żeby cały łańcuch dostaw certyfikat bezpieczeństwa (od procesora, przez płytki, moduły po produkt końcowy)


