W ostatnim czasie daje się zauważyć gwałtowny wzrost zainteresowania tematyką bezzałogowych platform latających (BPL), jest to spowodowane coraz powszechniejszym dostępem do tego typu gotowych obiektów oraz coraz większą liczbą otwartych rozwiązań, które często służą jako podstawa do budowania takiego systemu. Ze względu na fakt, iż coraz więcej osób (gdzie znaczną większość stanowią amatorzy) buduje a następnie obsługuje BPL, zasadne zaczyna być pytanie o bezpieczeństwo ich użytkowania. W prezentacji zostanie przedstawiona analiza kodu źródłowego najpopularniejszych otwartych rozwiązań. Analiza dotyczyć będzie zarówno zagadnienia komunikacji, poprawności implementacji, zastosowanych algorytmów regulacji oraz przetwarzania danych pomiarowych.
Prezentacja jest zorganizowana w następujący sposób: na początku przedstawione zostaną podstawowe pojęcia związane z platformami bezzałogowymi, ich charakterystyka, podstawowe oprzyrządowanie oraz obecne trendy rozwojowe. Następnie zaproponowany będzie zestaw warunków bez spełnienia których system bezzałogowy nie będzie można uważać za bezpieczny. Pod kątem tych warunków zostanie przeprowadzona analiza kodu najpopularniejszych otwartych rozwiązań, wraz z przedstawieniem możliwych ataków mogących być przeprowadzonych przeciwko BPL opartej na danym rozwiązaniu. Prezentacja zostanie zakończona przykładowym zestawem testów jakie naszym zdaniem powinien przejść system nim zostanie uznany za bezpieczny.
3. LogicalTrust
Nasza misja jest ochrona naszych Klientów przed realnymi stratami
finansowymi. Wykorzystujac ponad 10 lat doswiadczenia, swiadczymy
usługi z zakresu bezpieczenstwa IT:
I testy penetracyjne
I audyty bezpieczenstwa
I szkolenia
I konsultacje
I informatyka sledcza
I bezpieczenstwo aplikacji mobilnych
4. O nas
I Borys Łacki
I SECURE, Atak i Obrona, Internet Security Banking, SecureCON,
SEConference, SekIT, ISSA, Open Source Security, PLNOG, ...
I 7 lat blogowania o cyberprzestepcach: www.bothunters.pl
I Wojciech Janusz
I Unmanned Unmanned Aircraft Systems (ICUAS) 2013, 14th
International conference of young specialists on
micro/nanotechnologies and electron devices EDM 2013
I Doktorant - Politechnika Slaska (platformy bezzałogowe)
I Mateusz Kocielski
I Confidence, SecDay, SecurityBSides, OWASP
I (co-)Autor raportów dot. Apache, OpenSSH, Stunnel, PHP,
Microsoft IIS, NetBSD (CVE-2014-5015, CVE-2014-0226,
CVE-2014-0117, CVE-2013-1762, ...)
I członek projektów PHP, NetBSD
5. Platformy bezzałogowe
Platformy bezzałogowe mozemy podzielic na:
I naziemne (Unmanned Ground Vehicles)
I latajace (Unmanned Aerial Vehicles, Remotely Piloted Aircraft
Systems)
I pływajace: nawodne i podwodne (Unmanned Surface/Underwater
Vehicles)
Pojazd mogacy posiadac rózny stopien autonomii, na pokładzie którego
nie sa przewozone osoby np.:
I zdalne sterowanie ruchem platformy
I autonomiczna realizacja zadanej trajektorii
I autonomiczne generowanie i realizacja trajektorii
6. Bezzałogowe platformy latajace (BPL)
I platformy wielowirnikowe
I płatowce
I inne
Zródła: http://upload.wikimedia.org/wikipedia/commons/0/08/MQ-1_Predator_unmanned_aircraft.jpg
http://www.dnip.pl/2013/theme/wystawcy/aei/2.jpg
7. Stan prawny
W Polsce w przypadku lotów innych niz rekreacyjne i sportowe nalezy
posiadac:
I swiadectwo kwalifikacji (trzeba zdac egzamin!)
I badania lotniczo-lekarskie odpowiedniej klasy
I ubezpieczenie OC
Bezzałogowce ciezsze niz 25 kg musza uzyskac pozwolenie na wykony-wanie
lotów w kategorii specjalnej, natomiast loty poza zasieg wzroku
operatora mozliwe sa jedynie w wydzielonych strefach.1
(1) ”Raport o aktualnym stanie prawnym odnoszacym sie do bezzałogowych statków powietrznych ”, Urzad Lotnictwa
Cywilnego”, ”Rozporzadzenie Ministra Transportu, Budownictwa i Gospodarki Morskiej z dnia 26 marca 2013 r. w sprawie
wyłaczenia zastosowania niektórych przepisów ustawy – Prawo lotnicze do niektórych rodzajów statków powietrznych oraz
okreslenia warunków i wymagan dotyczacych uzywania tych statków”
8. Stan prawny c.d.
Brak w regulacjach, ograniczen dotyczacych odbywania lotów w pobli-zu
zabudowan lub skupisk ludzkich (jak ma to miejsce np. w Wielkiej
Brytanii).
Zródło: https://twitter.com/sikorskiradek
9. Stan prawny - egzamin
Zródło: http://www.ulc.gov.pl/_download/personel_lotniczy/szkolenie/biuletyn_11_04_2014.pdf
10. Stan prawny - egzamin
Zródło: http://www.ulc.gov.pl/_download/personel_lotniczy/szkolenie/biuletyn_11_04_2014.pdf
11. Gdzie sa wykorzystywane bezzałogowce
I wykonywanie map
I akcje ratunkowe
I filmowanie wydarzen masowych
I inspekcja infrastruktury przemysłowej
I monitorowanie stanu srodowiska
I monitorowanie granic
I dostarczanie ładunku
12. Zastosowanie bezzałogowców c.d.
Zródła: https://www.facebook.com/video.php?v=10152433577871801&set=p.10152433577871801&type=2&theater
https://www.youtube.com/watch?v=pfLCb4ewDDc
13. Zastosowanie bezzałogowców c.d.
Zródła: http://www.deccanchronicle.com/141009/world-middle-east/article/
drone-captures-isis-member-having-sex-donkey
http://www.hrw.org/reports/2013/10/22/between-drone-and-al-qaeda-0
14. Zastosowanie bezzałogowców c.d.
Dron-ptak rozbity w sierpniu 2011 r. w Pakistanie.
Zródło: http://www.wired.com/2011/08/weird-birdlike-mystery-drone-crashes-in-pakistan/
15. Spektakularne w(y)padki
Statki bezzałogowe sa podatne na problemy zwiazane z utrata łacznosci
z operatorem, utrata lub zakłóceniem sygnału GPS.
I Iran–U.S, RQ-170 - przypuszczenia o wykorzystaniu techniki GPS
spoofing, celem przejecia amerykanskiej maszyny
I zaginiony polski dron (FlyEye) - maj 2014 r.
I Internetowa baza doniesien o wypadkach wojskowych BPL:
http://dronewars.net/drone-crash-database/
16. Zagrozenia
I czeste korzystanie z kanałów łacznosci, nieprzystosowanych do
tego typu zastosowan
I przeprowadzanie lotów w poblizu ludzi lub zabudowan
I niedoskonałe rozwiazania sprzetowe lub programowe
I brak swiadomosci zagrozen spowodowany popularnoscia
”dronów”
Czy powazny wypadek to tylko kwestia czasu?
Osobna kwestia jest ochrona prywatnosci!
17. Ładunek platformy
I kamery (swiatła widzialnego, podczerwieni)
I skanery laserowe terenu
I czujniki pomiarowe gazu (w aplikacjach monitorowania stanu
srodowiska)
I bron
I wiele, wiele innych
Zródło: http://i00.i.aliimg.com/wsphoto/v0/877589416_1/
Brushless-motor-Control-Gimbal-PTZ-Camera-Mount-for-Card-Camera-Gopro-ILDC-FPV.jpg
18. Stacja kontroli naziemnej
Interfejs, za pomoca którego mozliwe jest sterowanie oraz definiowanie
zadan realizowanych przez platforme:
I wizualizacja stanu platformy
I umozliwienie manualnego sterowania platforma
I interfejs definiowania misji
Zródła: http://www.uavm.com/images/291_E-4-1_Ground_Co_CrSep15_0406PM.jpg
20. Układ sterowania
W jaki sposób operator wysyła komendy do BPL?
SKN
BPL
Wysyłanie
poleceń
Wysyłane polecenia moga zawierac:
I informacje o zadanej orientacji platformy
I zadana wysokosc, na której ma znajdowac sie platforma
I zadane połozenie geograficzne
I zadana trase przelotu
I bardziej skomplikowane polecenia zwiazane z coraz wiekszym
stopniem autonomii BPL
21. Układ sterowania
Skad platforma wie w jaki sposób oddziaływac na silniki, by realizowac
otrzymywane polecenia?
Fizyczne oddziaływanie
Jednostki
napędowe
Dynamika
platformy
Z SKN DO SKN
Regulator
Urządzenia
pomiarowe
Sygnały sterujące
Przetworzona informacja
pomiarowa
Wielkości fizyczne
22. Co moze pójsc zle? (Wybrane przypadki!)
Urządzenia
wykonawcze
Ładunek
Autopilot
Logika
Regulacja
Moduł
radiowy
Stacja kontroli
naziemnej
Dynamika
platformy
Przetwarzanie
danych pom.
Układ
pomiarowy
Software + Implementacja
Bezzałogowa Platforma Latająca
Otoczenie
Wpływ otoczenia
Zasilanie
Brak lub błędna informacja pomiarowa
I zakłócenie sygnału GPS
I awarie systemów pomiarowych
I GPS spoofing
23. Co moze pójsc zle? (Wybrane przypadki!) c.d.
Urządzenia
wykonawcze
Ładunek
Autopilot
Logika
Regulacja
Moduł
radiowy
Stacja kontroli
naziemnej
Dynamika
platformy
Przetwarzanie
danych pom.
Układ
pomiarowy
Software + Implementacja
Bezzałogowa Platforma Latająca
Otoczenie
Wpływ otoczenia
Zasilanie
Błędy w implementacji autopilota
I błedy w oprogramowaniu autopilota
I błedy w sprzecie
24. Co moze pójsc zle? (Wybrane przypadki!) c.d.
Urządzenia
wykonawcze
Zakłócenia lub brak komunikacji
Ładunek
Autopilot
Logika
Regulacja
Moduł
radiowy
Stacja kontroli
naziemnej
Dynamika
platformy
Przetwarzanie
danych pom.
Układ
pomiarowy
Software + Implementacja
Bezzałogowa Platforma Latająca
Otoczenie
Wpływ otoczenia
Zasilanie
I zakłócenie komunikacji
I podsłuchanie komunikacji
I spoofing przesyłanych pakietów
I opóznianie przesyłanych pakietów
25. Co moze pójsc zle? (Wybrane przypadki!)
Błędy w oprogramowaniu stacji bazowej
Urządzenia
wykonawcze
Ładunek
Autopilot
Logika
Regulacja
Moduł
radiowy
Stacja kontroli
naziemnej
Dynamika
platformy
Przetwarzanie
danych pom.
Układ
pomiarowy
Software + Implementacja
Bezzałogowa Platforma Latająca
Otoczenie
Wpływ otoczenia
Zasilanie
I błedy w oprogramowaniu stacji bazowej
I atak na stacje bazowa (np. poprzez złosliwe oprogramowanie)
26. Najbardziej prawdopodobne awarie BPL
Awaria
Inne przyczyny awarii:
I mechaniczne uszkodzenia (np. czy złacza sa zabezpieczone przed
drganiami?)
I awarie silników, ich kontrolerów, uszkodzenia smigieł
I błedy spowodowane niewłasciwa obsługa BPL! (czynnik ludzki)
I inne...
27. Najbardziej prawdopodobne awarie BPL
Niemozliwym zadaniem jest opracowanie systemu, który byłby odporny
na wszelkie ewentualnosci.
Spróbujmy sformułowac zestawu zalecen, które mogłyby słuzyc jako
podstawa do budowy bezpiecznego systemu.
28. ”Bezpieczna” BPL
Rozpatrywana platforma:
I operowanie platforma odbywa sie na dystansie umozliwiajacym,
utrzymywanie z nia kontaktu wzrokowego,
I autonomia platformy ogranicza sie do stabilizacji jej orientacji,
wysokosci nad ziemia oraz trybu utrzymywania danej pozycji,
I w skład systemu wchodza BPL oraz SKN z manipulatorami.
29. ”Bezpieczna” BPL
Zalecenia beda dotyczyc trzech składowych systemu:
I oprogramowania autopilota,
I stacji kontroli naziemnej,
I komunikacji pomiedzy BPL, a SKN.
ZZaalleecceenniiaa ((TTeessttyy))
30. Autopilot
Polecenia z SKN
Sygnały pom.
Dane do SKN
Sygnały sterujące
Umownie mozna wyróznic trzy funkcje:
I realizacja zaimplementowanego prawa sterowania
odpowiedzialnego za sterowanie platforma,
I czesc zawierajaca logike (np. zarzadzanie fazami misji, obsługa
dodatkowych funkcji itd.),
I czesc odpowiedzialna za przetwarzanie danych pomiarowych.
31. Autopilot - testy poprzez symulacje HIL (Hardware In the
Loop)
Autopilot
Logika
Regulacja
Moduł
radiowy
Stacja kontroli
naziemnej
Przetwarzanie
danych pom.
Software + Implementacja
"Bezzałogowa Platforma Latająca"
Symulowany wpływ otoczenia
Symulator BPL
I testy pracy w normalnych warunkach,
I testy układu regulacji,
I testy logiki autopilota,
I zachowanie sie autopilota w sytuacjach awaryjnych.
32. Proponowane testy
I Testy układu regulacji,
I Testy logiki AP,
I Zachowanie sie AP w sytuacjach awaryjnych,
I Testy SKN,
I Testy komunikacji BPL z SKN.
33. Testy pracy w normalnych warunkach
I Jak zachowuje sie autopilot podczas długiej pracy,
I Jak zachowuje sie autopilot podczas róznych faz lotu (start,
ladowanie, utrzymywanie pozycji itd.),
I Czy utrzymywany jest stały cykl petli sterowania we wszystkich
warunkach pracy?
I Czy nie wystepuja problemy zwiazane z wielowatkowoscia
aplikacji autopilota, priorytetami przerwan itd.
I Jak wyglada kwestia pracy autopilota gdy rózne czestotliwosci
pracy posiadaja: czujniki pomiarowe, petla sterowania, petla
komunikacji z SKN.
34. Testy układu regulacji
I Jak zachowuje sie układ regulacji w obliczu zakłócen (zakłócenia
pomiarowe, wiatr itd.),
I Czy jakosc regulacji jest zadowalajaca?
I Czy BPL zachowuje stabilnosc w pełnym zakresie warunków w
jakich ma pracowac?
I Czy przebiegi sygnałów sterujacych sa zadowalajace?
I Jak układ regulacji radzi sobie ze zmianami parametrów obiektu?
I Czy wyniki przetwarzania danych pomiarowych, sa własciwe dla
pełnego zakresu sygnałów pochodzacych z czujników?
35. Testy logiki AP
I Czy oprogramowanie autopilota wymusza zachowanie przyjetego
ciagu działan? (np. niemoznosc wyłaczenia silników podczas lotu,
koniecznosc przejscia procedury inicjalizacyjnej przed
rozpoczeciem misji itd. ),
I Czy dane pochodzace od SKN sa w jakikolwiek sposób
walidowane? (np. wartosci nastaw regulatorów, wartosci zadane),
36. Zachowanie sie AP w sytuacjach awaryjnych
I Jak zachowa sie AP gdy dane pomiarowe beda przekłamane?
(GPS spoofing, awaria jednego z czujników itd.),
I Jak zachowa sie AP gdy przestanie otrzymywac pakiety ze SKN
lub gdy beda one błedne?
I Jak zachowa sie AP gdy zostanie wykryty niski poziom baterii?
37. Testy stacji kontroli naziemnej
I w jaki sposób zachowa sie SKN na rozłaczenie jej elementów
podczas pracy,
I jak zachowa sie SKN podczas zatrzymania/restartu
oprogramowania PC,
I jak zachowa sie SKN podczas otrzymania błednych danych z
BPL,
I czy zachowana jest niezaleznosc działania komunikacji i
oprogramowania na PC,
I czy istnieje mozliwosc sterowania recznego BPL,
I czy ewentualne interfejsy sieciowe udostepniane przez SKN sa
bezpieczne?
38. SKN
Pozadane cechy SKN z punktu widzenia bezpieczenstwa
I Mozliwosc sterowania recznego BPL w przypadku awarii PC,
I Logowanie obustronnej komunikacji z BPL oraz stanu SKN,
I Wyrazne informowanie o stanach alarmowych BPL oraz SKN,
I Oprogramowanie stacji bazowej, skonstruowane w sposób
wymuszajacy bezpieczne uzytkowanie systemu (np. w formie
”checklisty” jaka musi byc wypełniona przed rozpoczeciem misji),
I Niezaleznosc działania komunikacji i oprogramowania na PC
(brak zaleznosci czasowej pomiedzy tymi elementami).
39. Testy SKN
Testowanie SKN podobnie jak poprzednio moze byc realizowane w
strukturze HIL.
I W jaki sposób zachowa sie SKN podczas rozłaczania/łaczenia jej
elementów podczas jej pracy,
I Jak zachowa sie SKN podczas zatrzymania/restartu
oprogramowania PC.
40. Komunikacja
Komunikacja z SKN do BPL
Komunikacja z BPL do SKN
Kluczowe kwestie dotyczace komunikacji:
I czy komunikacja jest szyfrowana,
I jak zachowa sie system podczas utraty lub zagłuszenia
komunikacji?
I czy zaimplementowano techniki gwarantujace zachowanie
integralnosci komunikacji?
41. Otwarte rozwiazania - Ardupilot
I otwarte rozwiazanie na licencji GPLv3
I autopilot dla wielu platform bezzałogowych:
I ArduCopter - wielowirnikowce
I ArduPlane - płatowiec
I ArduRover - platforma jezdna
I popularny wsród zastosowan amatorskich
42. Otwarte rozwiazania - Ardupilot - architektura
Ardupilot Różne obiekty bezzałogowe
SKN AP
43. Ardupilot - Lista kontrolna
Producent Ardupilota, udostepnia przykładowa liste kontrolna poprze-dzajaca
start statku bezzałogowego:
44. Otwarte rozwiazania - Ardupilot - kod
I ok. 300 tysiecy linii kodu w jezyku C++
I zestawy testów dostarczone z kodem (z obsługa valgrinda!)
I changelog zawiera szczatkowe opisy błedów
I wsparcie dla wielu platform sprzetowych m.in.:
I PX4 FMU - ARM 32-bit
I Flymaple - ARM 32-bit
I BeagleBone Black - ARM 32-bit
I AP2 - AVR2560 8 bit
I kod zawiera:
I sterowniki do sprzetu (GPS, magnetometr, etc.)
I wysokopoziomowa logike (obsługa misji, tryby autopilota)
I biblioteki do obsługi protokołów komunikacyjnych
I kod specyficzny dla bezzałogowca
I kod testowy
45. Otwarte rozwiazania - Ardupilot - kod
ostrzezenia kompilatora:
ArduCopter/crash_check.pde: In function ’void parachute_check()’:
ArduCopter/crash_check.pde:113:108: warning: comparison between signed and
unsigned integer expressions [-Wsign-compare]
if (control_loss_count == 0 && parachute.alt_min() != 0 && (baro_alt <
(uint32_t)parachute.alt_min() * 100)) {
46. Otwarte rozwiazania - Ardupilot - kod
AP InertialSensor/AP InertialSensor L3GD20.cpp
uint8_t AP_InertialSensor_L3GD20::set_samplerate(uint8_t frequency)
{
uint8_t bits = REG1_POWER_NORMAL | REG1_Z_ENABLE | REG1_Y_ENABLE |
REG1_X_ENABLE;
if (frequency == 0)
frequency = 760;
/* use limits good for H or non-H models */
if (frequency <= 100) {
// _current_rate = 95;
bits |= RATE_95HZ_LP_25HZ;
} else if (frequency <= 200) {
// _current_rate = 190;
bits |= RATE_190HZ_LP_50HZ;
} else if (frequency <= 400) {
// _current_rate = 380;
bits |= RATE_380HZ_LP_50HZ;
} else if (frequency <= 800) {
// _current_rate = 760;
bits |= RATE_760HZ_LP_50HZ;
} else {
return -1;
}
_register_write(ADDR_CTRL_REG1, bits);
return 0;
}
47. Otwarte rozwiazania - Ardupilot - komunikacja
MAVLink - otwarty protokół przeznaczony dla obiektów bezzałogowych,
za pomoca którego odbywa sie komunikacja pomiedzy platforma, a sta-cja
naziemna.
AP
MAVLink
SSKKNN
Awaryjne sterowanie ręczne
(opcjonalne)
Protokół MAVLink, ze wzgledu na swoja popularnosc był juz przedmio-tem
rozwazan na temat bezpieczenstwa 1. Wykazano mozliwosc prze-prowadzenia
ataku Man In The Middle na system korzystajacy z tego
protokołu oraz przejecie platformy bezzałogowej.
(1)Vulnerability Analysis of the MAVLink Protocol for Command and Control of Unmanned Aircraft Joseph A. Marty,
48. Otwarte rozwiazania i ich analiza - MAVLink
Komunikacja poprzez MAVLink, moze bazowac na takich protokołach
jak ZigBee, Wi-Fi lub wykorzystywac inne technologie.
MAVLink
ZigBee Wi-Fi Inne
Jednym z popularniejszych rozwiazan, jest wykorzystanie XBee działa-jacego
w oparciu o ZigBee.
49. Otwarte rozwiazania i ich analiza - MAVLink
Zródło: https://en.wikipedia.org/wiki/MAVLink
50. Otwarte rozwiazania i ich analiza - ArduPilot - SITL
Zródło: http://plane.ardupilot.com/wiki/sitl-3/
51. Otwarte rozwiazania i ich analiza - MAVLink
Zródło: http://dev.ardupilot.com/wiki/setting-up-sitl-on-linux/
54. Otwarte rozwiazania i ich analiza - ArduPilot - SITL
testing (ASAN)
CRASH - buffer overflow
Zródło: http://wikipedia.org/
55. Otwarte rozwiazania i ich analiza - ArduPilot - MAVLink
fuzzer
I napisalismy fuzzer protokołu mavlink
I ok. 1KLOC w Pythonie, sh
I opcja mutowania oraz wysyłania losowych pakietów
Zródło: http://plane.ardupilot.com/wiki/sitl-3/
56. Otwarte rozwiazania i ich analiza - ArduPilot - SITL testing
501 int32_t turn_rate = (wrap_180_cd(yaw_look_at_heading -
curr_yaw_target) / 100) / turn_rate_dps;
(gdb) print turn_rate_dps
No symbol "turn_rate_dps" in current context.
(gdb) x/i $rip
=> 0x4225cb <_ZL28set_auto_yaw_look_at_headingffah+298>: cvttss2si
%xmm0,%eax
58. Otwarte rozwiazania i ich analiza - ArduPilot - dalsze
badania...
I coverage - badanie pokrycia testami kodu
I formalna weryfikacja krytycznych czesci kodu
I weryfikacja sterowników
59. Wnioski
Drony to wyzwanie:
I prawo,
I technika,
I prywatnosc...
UWAGA DRASTYCZNE: http://chrismeme11.over-blog.com/article-36258812.html
Zródło: http://a398.idata.over-blog.com/600x450/2/70/46/36/Articles--divers-BLOG/Prevention-Securite/
ACCICENT-HELICO-VOITURE.jpg