SlideShare ist ein Scribd-Unternehmen logo
1 von 62
Downloaden Sie, um offline zu lesen
Bezpieczenstwo Otwartych Rozwiazan 
Programowych Bezzałogowych Platform Latajacych 
Wojciech Janusz w.janusz@logicaltrust.net 
Mateusz Kocielski m.kocielski@logicaltrust.net 
Borys Łacki b.lacki@logicaltrust.net 
LogicalTrust 
Secure 2014 
Warszawa, 22 pazdziernika 2014
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
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
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
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
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”
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
Stan prawny - egzamin 
Zródło: http://www.ulc.gov.pl/_download/personel_lotniczy/szkolenie/biuletyn_11_04_2014.pdf
Stan prawny - egzamin 
Zródło: http://www.ulc.gov.pl/_download/personel_lotniczy/szkolenie/biuletyn_11_04_2014.pdf
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
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
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
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/
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/
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!
Ł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
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
Jak działa BPL?
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
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
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
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
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
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)
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...
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.
”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.
”Bezpieczna” BPL 
Zalecenia beda dotyczyc trzech składowych systemu: 
I oprogramowania autopilota, 
I stacji kontroli naziemnej, 
I komunikacji pomiedzy BPL, a SKN. 
ZZaalleecceenniiaa ((TTeessttyy))
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.
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.
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.
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.
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?
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),
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?
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?
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).
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.
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?
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
Otwarte rozwiazania - Ardupilot - architektura 
Ardupilot Różne obiekty bezzałogowe 
SKN AP
Ardupilot - Lista kontrolna 
Producent Ardupilota, udostepnia przykładowa liste kontrolna poprze-dzajaca 
start statku bezzałogowego:
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
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)) {
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; 
}
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,
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.
Otwarte rozwiazania i ich analiza - MAVLink 
Zródło: https://en.wikipedia.org/wiki/MAVLink
Otwarte rozwiazania i ich analiza - ArduPilot - SITL 
Zródło: http://plane.ardupilot.com/wiki/sitl-3/
Otwarte rozwiazania i ich analiza - MAVLink 
Zródło: http://dev.ardupilot.com/wiki/setting-up-sitl-on-linux/
Otwarte rozwiazania i ich analiza - ArduPilot - SITL 
battery 
Flight battery 20 percent 
Flight battery warning 
18800 
18600 
Flight battery 10 percent 
Flight battery warning 
18400 
Flight battery -10 percent 
Flight battery warning 
18200 
18000 
Flight battery -20 percent 
Flight battery warning 
17800
Otwarte rozwiazania i ich analiza - ArduPilot - SITL 
battery c.d. 
Flight battery -110 percent 
Flight battery warning 
15400 
Flight battery -130 percent 
Flight battery warning 
15200 
15000 
Flight battery 120 percent 
14800 
Flight battery 110 percent
Otwarte rozwiazania i ich analiza - ArduPilot - SITL 
testing (ASAN) 
CRASH - buffer overflow 
Zródło: http://wikipedia.org/
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/
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
Otwarte rozwiazania i ich analiza - ArduPilot - SITL testing 
$4 = {v4_float = {100, 0, 0, 0}, v2_double = {5.5355285709140466e-315, 0}, 
v16_int8 = {0, 0, -56, 66, 0 <repeats 12 times>}, v8_int16 = {0, 17096, 0, 0, 0, 0, 0}, 
v4_int32 = {1120403456, 0, 0, 0}, v2_int64 = {1120403456, 0}, uint128 = 
1120403456} 
(gdb) print $xmm1 
$5 = {v4_float = {1.329228e+38, 0, 0, 0}, v2_double = 
{1.0508956205988904e-314, 0}, v16_int8 = {0, 0, -56, 126, 0 <repeats 12 
times>}, v8_int16 = {0, 32456, 0, 0, 0, 0, 0, 
0}, v4_int32 = {2127036416, 0, 0, 0}, v2_int64 = {2127036416, 0}, uint128 
= 2127036416} 
=> 0x41495b <_ZN11GCS_MAVLINK13handleMessageEP17__mavlink_message+5437>: 
mulss %xmm1,%xmm0 
STABILIZE> setspeed 100
Otwarte rozwiazania i ich analiza - ArduPilot - dalsze 
badania... 
I coverage - badanie pokrycia testami kodu 
I formalna weryfikacja krytycznych czesci kodu 
I weryfikacja sterowników
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
Podziekowania 
Podziekowania za konsultacje merytoryczna: 
I dr inz. Roman Czyba 
I mgr inz. Grzegorz Szafranski
Czas na pytania (i odpowiedzi) 
Q&A
Bezpieczeństwo Otwartych Rozwiązań Programowych Bezzałogowych Platform Latających [Secure 2014]

Weitere ähnliche Inhalte

Mehr von Logicaltrust pl

Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24
Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24
Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24Logicaltrust pl
 
Security Awareness po polsku - webinar 2019.11.29
Security Awareness po polsku - webinar 2019.11.29Security Awareness po polsku - webinar 2019.11.29
Security Awareness po polsku - webinar 2019.11.29Logicaltrust pl
 
8 zasad skutecznego security awareness
8 zasad skutecznego security awareness8 zasad skutecznego security awareness
8 zasad skutecznego security awarenessLogicaltrust pl
 
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019Logicaltrust pl
 
Ataki socjotechniczne w praktyce - Confidence 2019
Ataki socjotechniczne w praktyce - Confidence 2019Ataki socjotechniczne w praktyce - Confidence 2019
Ataki socjotechniczne w praktyce - Confidence 2019Logicaltrust pl
 
Minerva_lib - fuzzing tool
Minerva_lib - fuzzing toolMinerva_lib - fuzzing tool
Minerva_lib - fuzzing toolLogicaltrust pl
 
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018Logicaltrust pl
 
Spear phishing - jak się bronić? Case studies - Confidence 2018
Spear phishing - jak się bronić? Case studies - Confidence 2018Spear phishing - jak się bronić? Case studies - Confidence 2018
Spear phishing - jak się bronić? Case studies - Confidence 2018Logicaltrust pl
 
Redteaming in Poland - test cases (Security)
Redteaming in Poland - test cases (Security)Redteaming in Poland - test cases (Security)
Redteaming in Poland - test cases (Security)Logicaltrust pl
 
Redteaming w Polsce - przykłady
Redteaming w Polsce - przykładyRedteaming w Polsce - przykłady
Redteaming w Polsce - przykładyLogicaltrust pl
 
Testy bezpieczeństwa - niesztampowe przypadki
Testy bezpieczeństwa - niesztampowe przypadkiTesty bezpieczeństwa - niesztampowe przypadki
Testy bezpieczeństwa - niesztampowe przypadkiLogicaltrust pl
 
Krytyczne błędy konfiguracji
Krytyczne błędy konfiguracjiKrytyczne błędy konfiguracji
Krytyczne błędy konfiguracjiLogicaltrust pl
 
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...Logicaltrust pl
 
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?Logicaltrust pl
 
Torturing the PHP interpreter
Torturing the PHP interpreterTorturing the PHP interpreter
Torturing the PHP interpreterLogicaltrust pl
 
Socjotechnika w Internecie - metody ataku i obrony
Socjotechnika w Internecie - metody ataku i obronySocjotechnika w Internecie - metody ataku i obrony
Socjotechnika w Internecie - metody ataku i obronyLogicaltrust pl
 
Wyciek danych w aplikacjach - Artur Kalinowski, 4Developers
Wyciek danych w aplikacjach - Artur Kalinowski, 4DevelopersWyciek danych w aplikacjach - Artur Kalinowski, 4Developers
Wyciek danych w aplikacjach - Artur Kalinowski, 4DevelopersLogicaltrust pl
 
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...Logicaltrust pl
 

Mehr von Logicaltrust pl (20)

Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24
Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24
Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24
 
Security Awareness po polsku - webinar 2019.11.29
Security Awareness po polsku - webinar 2019.11.29Security Awareness po polsku - webinar 2019.11.29
Security Awareness po polsku - webinar 2019.11.29
 
8 zasad skutecznego security awareness
8 zasad skutecznego security awareness8 zasad skutecznego security awareness
8 zasad skutecznego security awareness
 
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019
 
Ataki socjotechniczne w praktyce - Confidence 2019
Ataki socjotechniczne w praktyce - Confidence 2019Ataki socjotechniczne w praktyce - Confidence 2019
Ataki socjotechniczne w praktyce - Confidence 2019
 
Minerva_lib - fuzzing tool
Minerva_lib - fuzzing toolMinerva_lib - fuzzing tool
Minerva_lib - fuzzing tool
 
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018
 
Spear phishing - jak się bronić? Case studies - Confidence 2018
Spear phishing - jak się bronić? Case studies - Confidence 2018Spear phishing - jak się bronić? Case studies - Confidence 2018
Spear phishing - jak się bronić? Case studies - Confidence 2018
 
Redteaming in Poland - test cases (Security)
Redteaming in Poland - test cases (Security)Redteaming in Poland - test cases (Security)
Redteaming in Poland - test cases (Security)
 
Redteaming w Polsce - przykłady
Redteaming w Polsce - przykładyRedteaming w Polsce - przykłady
Redteaming w Polsce - przykłady
 
Testy bezpieczeństwa - niesztampowe przypadki
Testy bezpieczeństwa - niesztampowe przypadkiTesty bezpieczeństwa - niesztampowe przypadki
Testy bezpieczeństwa - niesztampowe przypadki
 
Krytyczne błędy konfiguracji
Krytyczne błędy konfiguracjiKrytyczne błędy konfiguracji
Krytyczne błędy konfiguracji
 
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
 
Devops/Sysops security
Devops/Sysops securityDevops/Sysops security
Devops/Sysops security
 
Devops security
Devops securityDevops security
Devops security
 
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
 
Torturing the PHP interpreter
Torturing the PHP interpreterTorturing the PHP interpreter
Torturing the PHP interpreter
 
Socjotechnika w Internecie - metody ataku i obrony
Socjotechnika w Internecie - metody ataku i obronySocjotechnika w Internecie - metody ataku i obrony
Socjotechnika w Internecie - metody ataku i obrony
 
Wyciek danych w aplikacjach - Artur Kalinowski, 4Developers
Wyciek danych w aplikacjach - Artur Kalinowski, 4DevelopersWyciek danych w aplikacjach - Artur Kalinowski, 4Developers
Wyciek danych w aplikacjach - Artur Kalinowski, 4Developers
 
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
 

Bezpieczeństwo Otwartych Rozwiązań Programowych Bezzałogowych Platform Latających [Secure 2014]

  • 1.
  • 2. Bezpieczenstwo Otwartych Rozwiazan Programowych Bezzałogowych Platform Latajacych Wojciech Janusz w.janusz@logicaltrust.net Mateusz Kocielski m.kocielski@logicaltrust.net Borys Łacki b.lacki@logicaltrust.net LogicalTrust Secure 2014 Warszawa, 22 pazdziernika 2014
  • 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/
  • 52. Otwarte rozwiazania i ich analiza - ArduPilot - SITL battery Flight battery 20 percent Flight battery warning 18800 18600 Flight battery 10 percent Flight battery warning 18400 Flight battery -10 percent Flight battery warning 18200 18000 Flight battery -20 percent Flight battery warning 17800
  • 53. Otwarte rozwiazania i ich analiza - ArduPilot - SITL battery c.d. Flight battery -110 percent Flight battery warning 15400 Flight battery -130 percent Flight battery warning 15200 15000 Flight battery 120 percent 14800 Flight battery 110 percent
  • 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
  • 57. Otwarte rozwiazania i ich analiza - ArduPilot - SITL testing $4 = {v4_float = {100, 0, 0, 0}, v2_double = {5.5355285709140466e-315, 0}, v16_int8 = {0, 0, -56, 66, 0 <repeats 12 times>}, v8_int16 = {0, 17096, 0, 0, 0, 0, 0}, v4_int32 = {1120403456, 0, 0, 0}, v2_int64 = {1120403456, 0}, uint128 = 1120403456} (gdb) print $xmm1 $5 = {v4_float = {1.329228e+38, 0, 0, 0}, v2_double = {1.0508956205988904e-314, 0}, v16_int8 = {0, 0, -56, 126, 0 <repeats 12 times>}, v8_int16 = {0, 32456, 0, 0, 0, 0, 0, 0}, v4_int32 = {2127036416, 0, 0, 0}, v2_int64 = {2127036416, 0}, uint128 = 2127036416} => 0x41495b <_ZN11GCS_MAVLINK13handleMessageEP17__mavlink_message+5437>: mulss %xmm1,%xmm0 STABILIZE> setspeed 100
  • 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
  • 60. Podziekowania Podziekowania za konsultacje merytoryczna: I dr inz. Roman Czyba I mgr inz. Grzegorz Szafranski
  • 61. Czas na pytania (i odpowiedzi) Q&A