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

62

description

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.

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

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

Bezpieczeństwo Otwartych RozwiązańProgramowych Bezzałogowych Platform Latających

Wojciech Janusz [email protected]

Mateusz Kocielski [email protected]

Borys Łącki [email protected]

LogicalTrust

Secure 2014Warszawa, 22 października 2014

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

LogicalTrust

Naszą misją jest ochrona naszych Klientów przed realnymi stratamifinansowymi. Wykorzystując ponad 10 lat doświadczenia, świadczymyusługi z zakresu bezpieczeństwa IT:

I testy penetracyjneI audyty bezpieczeństwaI szkoleniaI konsultacjeI informatyka śledczaI bezpieczeństwo aplikacji mobilnych

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

O nas

I Borys ŁąckiI SECURE, Atak i Obrona, Internet Security Banking, SecureCON,

SEConference, SekIT, ISSA, Open Source Security, PLNOG, ...I 7 lat blogowania o cyberprzestępcach: www.bothunters.pl

I Wojciech JanuszI Unmanned Unmanned Aircraft Systems (ICUAS) 2013, 14th

International conference of young specialists onmicro/nanotechnologies and electron devices EDM 2013

I Doktorant - Politechnika Śląska (platformy bezzałogowe)I Mateusz Kocielski

I Confidence, SecDay, SecurityBSides, OWASPI (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

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

Platformy bezzałogowe

Platformy bezzałogowe możemy podzielić na:I naziemne (Unmanned Ground Vehicles)I latające (Unmanned Aerial Vehicles, Remotely Piloted Aircraft

Systems)I pływające: nawodne i podwodne (Unmanned Surface/Underwater

Vehicles)

Pojazd mogący posiadać różny stopień autonomii, na pokładzie któregonie są przewożone osoby np.:

I zdalne sterowanie ruchem platformyI autonomiczna realizacja zadanej trajektoriiI autonomiczne generowanie i realizacja trajektorii

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

Bezzałogowe platformy latające (BPL)

I platformy wielowirnikoweI płatowceI inne

Źródła: http://upload.wikimedia.org/wikipedia/commons/0/08/MQ-1_Predator_unmanned_aircraft.jpghttp://www.dnip.pl/2013/theme/wystawcy/aei/2.jpg

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

Stan prawny

W Polsce w przypadku lotów innych niż rekreacyjne i sportowe należyposiadać:

I świadectwo kwalifikacji (trzeba zdać egzamin!)I badania lotniczo-lekarskie odpowiedniej klasyI ubezpieczenie OC

Bezzałogowce cięższe niż 25 kg muszą uzyskać pozwolenie na wykony-wanie lotów w kategorii specjalnej, natomiast loty poza zasięg wzrokuoperatora możliwe są jedynie w wydzielonych strefach.1

(1) ”Raport o aktualnym stanie prawnym odnoszącym się do bezzałogowych statków powietrznych ”, Urząd LotnictwaCywilnego”, ”Rozporządzenie Ministra Transportu, Budownictwa i Gospodarki Morskiej z dnia 26 marca 2013 r. w sprawiewyłączenia zastosowania niektórych przepisów ustawy – Prawo lotnicze do niektórych rodzajów statków powietrznych orazokreślenia warunków i wymagań dotyczących używania tych statków”

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

Stan prawny c.d.Brak w regulacjach, ograniczeń dotyczących odbywania lotów w pobli-żu zabudowań lub skupisk ludzkich (jak ma to miejsce np. w WielkiejBrytanii).

Źródło: https://twitter.com/sikorskiradek

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

Stan prawny - egzamin

Źródło: http://www.ulc.gov.pl/_download/personel_lotniczy/szkolenie/biuletyn_11_04_2014.pdf

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

Stan prawny - egzamin

Źródło: http://www.ulc.gov.pl/_download/personel_lotniczy/szkolenie/biuletyn_11_04_2014.pdf

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

Gdzie są wykorzystywane bezzałogowce

I wykonywanie mapI akcje ratunkoweI filmowanie wydarzeń masowychI inspekcja infrastruktury przemysłowejI monitorowanie stanu środowiskaI monitorowanie granicI dostarczanie ładunku

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

Zastosowanie bezzałogowców c.d.

Źródła: https://www.facebook.com/video.php?v=10152433577871801&set=p.10152433577871801&type=2&theaterhttps://www.youtube.com/watch?v=pfLCb4ewDDc

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

Zastosowanie bezzałogowców c.d.

Źró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

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

Zastosowanie bezzałogowców c.d.

Dron-ptak rozbity w sierpniu 2011 r. w Pakistanie.

Źródło: http://www.wired.com/2011/08/weird-birdlike-mystery-drone-crashes-in-pakistan/

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

Spektakularne w(y)padkiStatki bezzałogowe są podatne na problemy związane z utratą łącznościz operatorem, utratą lub zakłóceniem sygnału GPS.

I Iran–U.S, RQ-170 - przypuszczenia o wykorzystaniu techniki GPSspoofing, celem przejęcia amerykańskiej maszyny

I zaginiony polski dron (FlyEye) - maj 2014 r.I Internetowa baza doniesień o wypadkach wojskowych BPL:http://dronewars.net/drone-crash-database/

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

Zagrożenia

I częste korzystanie z kanałów łączności, nieprzystosowanych dotego typu zastosowań

I przeprowadzanie lotów w pobliżu ludzi lub zabudowańI niedoskonałe rozwiązania sprzętowe lub programoweI brak świadomości zagrożeń spowodowany popularnością

”dronów”

Czy poważny wypadek to tylko kwestia czasu?Osobną kwestią jest ochrona prywatności!

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

Ładunek platformyI kamery (światła widzialnego, podczerwieni)I skanery laserowe terenuI czujniki pomiarowe gazu (w aplikacjach monitorowania stanu

środowiska)I brońI wiele, wiele innych

Źró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

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

Stacja kontroli naziemnej

Interfejs, za pomocą którego możliwe jest sterowanie oraz definiowaniezadań realizowanych przez platformę:

I wizualizacja stanu platformyI umożliwienie manualnego sterowania platformąI interfejs definiowania misji

Źródła: http://www.uavm.com/images/291_E-4-1_Ground_Co_CrSep15_0406PM.jpg

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

Jak działa BPL?

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

Układ sterowaniaW jaki sposób operator wysyła komendy do BPL?

SKN

BPLWysyłanie poleceń

Wysyłane polecenia mogą zawierać:I informację o zadanej orientacji platformyI zadaną wysokość, na której ma znajdować się platformaI zadane położenie geograficzneI zadaną trasę przelotuI bardziej skomplikowane polecenia związane z coraz większym

stopniem autonomii BPL

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

Układ sterowania

Skąd platforma wie w jaki sposób oddziaływać na silniki, by realizowaćotrzymywane polecenia?

Fizyczne oddziaływanie

Regulator

Jednostki

napędowe

Urządzenia

pomiarowe

DO SKNZ SKN

Dynamika

platformy

Sygnały sterujące

Przetworzona informacjapomiarowa

Wielkości fizyczne

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

Co może pójść źle? (Wybrane przypadki!)

Urządzenia

wykonawcze

Ładunek

Autopilot

Regulacja

Logika

Moduł

radiowyStacja 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 GPSI awarie systemów pomiarowychI GPS spoofing

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

Co może pójść źle? (Wybrane przypadki!) c.d.

Urządzenia

wykonawcze

Ładunek

Autopilot

Regulacja

Logika

Moduł

radiowyStacja 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łędy w oprogramowaniu autopilotaI błędy w sprzęcie

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

Co może pójść źle? (Wybrane przypadki!) c.d.

Urządzenia

wykonawcze

Ładunek

Autopilot

Regulacja

Logika

Moduł

radiowyStacja kontroli

naziemnej

Dynamika

platformy

Przetwarzanie

danych pom.

Układ

pomiarowy

Software + Implementacja

Bezzałogowa Platforma LatającaOtoczenie

Wpływ otoczenia

Zasilanie

Zakłócenia lub brak komunikacji

I zakłócenie komunikacjiI podsłuchanie komunikacjiI spoofing przesyłanych pakietówI opóźnianie przesyłanych pakietów

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

Co może pójść źle? (Wybrane przypadki!)

Urządzenia

wykonawcze

Ładunek

Autopilot

Regulacja

Logika

Moduł

radiowyStacja kontroli

naziemnej

Dynamika

platformy

Przetwarzanie

danych pom.

Układ

pomiarowy

Software + Implementacja

Bezzałogowa Platforma LatającaOtoczenie

Wpływ otoczenia

Zasilanie

Błędy w oprogramowaniu stacji bazowej

I błędy w oprogramowaniu stacji bazowejI atak na stację bazową (np. poprzez złośliwe oprogramowanie)

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

Najbardziej prawdopodobne awarie BPL

Awaria

Inne przyczyny awarii:I mechaniczne uszkodzenia (np. czy złącza są zabezpieczone przed

drganiami?)I awarie silników, ich kontrolerów, uszkodzenia śmigiełI błędy spowodowane niewłaściwą obsługą BPL! (czynnik ludzki)I inne...

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

Najbardziej prawdopodobne awarie BPL

Niemożliwym zadaniem jest opracowanie systemu, który byłby odpornyna wszelkie ewentualności.

Spróbujmy sformułować zestawu zaleceń, które mogłyby służyć jakopodstawa do budowy bezpiecznego systemu.

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

”Bezpieczna” BPL

Rozpatrywana platforma:I operowanie platformą odbywa się na dystansie umożliwiającym,

utrzymywanie z nią kontaktu wzrokowego,I autonomia platformy ogranicza się do stabilizacji jej orientacji,

wysokości nad ziemią oraz trybu utrzymywania danej pozycji,I w skład systemu wchodzą BPL oraz SKN z manipulatorami.

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

”Bezpieczna” BPL

Zalecenia będą dotyczyć trzech składowych systemu:I oprogramowania autopilota,I stacji kontroli naziemnej,I komunikacji pomiędzy BPL, a SKN.

Zalecenia (Testy)Zalecenia (Testy)

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

Autopilot

Polecenia z SKN

Sygnały pom.

Dane do SKN

Sygnały sterujące

Umownie można wyróżnić trzy funkcje:I realizacja zaimplementowanego prawa sterowania

odpowiedzialnego za sterowanie platformą,I część zawierająca logikę (np. zarządzanie fazami misji, obsługa

dodatkowych funkcji itd.),I część odpowiedzialna za przetwarzanie danych pomiarowych.

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

Autopilot - testy poprzez symulację HIL (Hardware In theLoop)

Autopilot

Regulacja

Logika

Moduł

radiowyStacja 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 się autopilota w sytuacjach awaryjnych.

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

Proponowane testy

I Testy układu regulacji,I Testy logiki AP,I Zachowanie się AP w sytuacjach awaryjnych,I Testy SKN,I Testy komunikacji BPL z SKN.

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

Testy pracy w normalnych warunkach

I Jak zachowuje się autopilot podczas długiej pracy,I Jak zachowuje się autopilot podczas różnych faz lotu (start,

lądowanie, utrzymywanie pozycji itd.),I Czy utrzymywany jest stały cykl pętli sterowania we wszystkich

warunkach pracy?I Czy nie występują problemy związane z wielowątkowością

aplikacji autopilota, priorytetami przerwań itd.I Jak wygląda kwestia pracy autopilota gdy różne częstotliwości

pracy posiadają: czujniki pomiarowe, pętla sterowania, pętlakomunikacji z SKN.

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

Testy układu regulacji

I Jak zachowuje się układ regulacji w obliczu zakłóceń (zakłóceniapomiarowe, wiatr itd.),

I Czy jakość regulacji jest zadowalająca?I Czy BPL zachowuje stabilność w pełnym zakresie warunków w

jakich ma pracować?I Czy przebiegi sygnałów sterujących są zadowalające?I Jak układ regulacji radzi sobie ze zmianami parametrów obiektu?I Czy wyniki przetwarzania danych pomiarowych, są właściwe dla

pełnego zakresu sygnałów pochodzących z czujników?

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

Testy logiki AP

I Czy oprogramowanie autopilota wymusza zachowanie przyjętegociągu działań? (np. niemożność wyłączenia silników podczas lotu,konieczność przejścia procedury inicjalizacyjnej przedrozpoczęciem misji itd. ),

I Czy dane pochodzące od SKN są w jakikolwiek sposóbwalidowane? (np. wartości nastaw regulatorów, wartości zadane),

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

Zachowanie się AP w sytuacjach awaryjnych

I Jak zachowa się AP gdy dane pomiarowe będą przekłamane?(GPS spoofing, awaria jednego z czujników itd.),

I Jak zachowa się AP gdy przestanie otrzymywać pakiety ze SKNlub gdy będą one błędne?

I Jak zachowa się AP gdy zostanie wykryty niski poziom baterii?

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

Testy stacji kontroli naziemnej

I w jaki sposób zachowa się SKN na rozłączenie jej elementówpodczas pracy,

I jak zachowa się SKN podczas zatrzymania/restartuoprogramowania PC,

I jak zachowa się SKN podczas otrzymania błędnych danych zBPL,

I czy zachowana jest niezależność działania komunikacji ioprogramowania na PC,

I czy istnieje możliwość sterowania ręcznego BPL,I czy ewentualne interfejsy sieciowe udostępniane przez SKN są

bezpieczne?

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

SKN

Pożądane cechy SKN z punktu widzenia bezpieczeństwaI Możliwość sterowania ręcznego BPL w przypadku awarii PC,I Logowanie obustronnej komunikacji z BPL oraz stanu SKN,I Wyraźne informowanie o stanach alarmowych BPL oraz SKN,I Oprogramowanie stacji bazowej, skonstruowane w sposób

wymuszający bezpieczne użytkowanie systemu (np. w formie”checklisty” jaka musi być wypełniona przed rozpoczęciem misji),

I Niezależność działania komunikacji i oprogramowania na PC(brak zależności czasowej pomiędzy tymi elementami).

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

Testy SKN

Testowanie SKN podobnie jak poprzednio może być realizowane wstrukturze HIL.

I W jaki sposób zachowa się SKN podczas rozłączania/łączenia jejelementów podczas jej pracy,

I Jak zachowa się SKN podczas zatrzymania/restartuoprogramowania PC.

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

Komunikacja

Komunikacja z BPL do SKN

Komunikacja z SKN do BPL

Kluczowe kwestie dotyczące komunikacji:I czy komunikacja jest szyfrowana,I jak zachowa się system podczas utraty lub zagłuszenia

komunikacji?I czy zaimplementowano techniki gwarantujące zachowanie

integralności komunikacji?

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

Otwarte rozwiązania - Ardupilot

I otwarte rozwiązanie na licencji GPLv3I autopilot dla wielu platform bezzałogowych:

I ArduCopter - wielowirnikowceI ArduPlane - płatowiecI ArduRover - platforma jezdna

I popularny wśród zastosowań amatorskich

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

Otwarte rozwiązania - Ardupilot - architektura

SKN

AP

Ardupilot Różne obiekty bezzałogowe

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

Ardupilot - Lista kontrolnaProducent Ardupilota, udostępnia przykładową listę kontrolną poprze-dzającą start statku bezzałogowego:

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

Otwarte rozwiązania - Ardupilot - kod

I ok. 300 tysięcy linii kodu w języku C++I zestawy testów dostarczone z kodem (z obsługą valgrinda!)I changelog zawiera szczątkowe opisy błędówI wsparcie dla wielu platform sprzętowych m.in.:

I PX4 FMU - ARM 32-bitI Flymaple - ARM 32-bitI BeagleBone Black - ARM 32-bitI AP2 - AVR2560 8 bit

I kod zawiera:I sterowniki do sprzętu (GPS, magnetometr, etc.)I wysokopoziomową logikę (obsługa misji, tryby autopilota)I biblioteki do obsługi protokołów komunikacyjnychI kod specyficzny dla bezzałogowcaI kod testowy

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

Otwarte rozwiązania - Ardupilot - kod

ostrzeżenia kompilatora:ArduCopter/crash_check.pde: In function ’void parachute_check()’:ArduCopter/crash_check.pde:113:108: warning: comparison between signed andunsigned integer expressions [-Wsign-compare]

if (control_loss_count == 0 && parachute.alt_min() != 0 && (baro_alt <(uint32_t)parachute.alt_min() * 100)) {

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

Otwarte rozwiązania - Ardupilot - kod

AP InertialSensor/AP InertialSensor L3GD20.cppuint8_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;

}

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

Otwarte rozwiązania - Ardupilot - komunikacjaMAVLink - otwarty protokół przeznaczony dla obiektów bezzałogowych,za pomocą którego odbywa się komunikacja pomiędzy platformą, a sta-cją naziemną.

AP

MAVLink

SKNSKN

Awaryjne sterowanie ręczne

(opcjonalne)

Protokół MAVLink, ze względu na swoją popularność był już przedmio-tem rozważań na temat bezpieczeństwa 1. Wykazano możliwość prze-prowadzenia ataku Man In The Middle na system korzystający z tegoprotokołu oraz przejęcie platformy bezzałogowej.(1)Vulnerability Analysis of the MAVLink Protocol for Command and Control of Unmanned Aircraft Joseph A. Marty,

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

Otwarte rozwiązania i ich analiza - MAVLink

Komunikacja poprzez MAVLink, może bazować na takich protokołachjak ZigBee, Wi-Fi lub wykorzystywać inne technologie.

MAVLink

ZigBee Wi-Fi Inne

Jednym z popularniejszych rozwiązań, jest wykorzystanie XBee działa-jącego w oparciu o ZigBee.

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

Otwarte rozwiązania i ich analiza - MAVLink

Źródło: https://en.wikipedia.org/wiki/MAVLink

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

Otwarte rozwiązania i ich analiza - ArduPilot - SITL

Źródło: http://plane.ardupilot.com/wiki/sitl-3/

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

Otwarte rozwiązania i ich analiza - MAVLink

Źródło: http://dev.ardupilot.com/wiki/setting-up-sitl-on-linux/

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

Otwarte rozwiązania i ich analiza - ArduPilot - SITLbattery

Flight battery 20 percentFlight battery warning1880018600Flight battery 10 percentFlight battery warning18400Flight battery -10 percentFlight battery warning1820018000Flight battery -20 percentFlight battery warning17800

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

Otwarte rozwiązania i ich analiza - ArduPilot - SITLbattery c.d.

Flight battery -110 percentFlight battery warning15400Flight battery -130 percentFlight battery warning1520015000Flight battery 120 percent14800Flight battery 110 percent

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

Otwarte rozwiązania i ich analiza - ArduPilot - SITLtesting (ASAN)

CRASH - buffer overflowŹródło: http://wikipedia.org/

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

Otwarte rozwiązania i ich analiza - ArduPilot - MAVLinkfuzzer

I napisaliśmy fuzzer protokołu mavlinkI ok. 1KLOC w Pythonie, shI opcja mutowania oraz wysyłania losowych pakietów

Źródło: http://plane.ardupilot.com/wiki/sitl-3/

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

Otwarte rozwiązania 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_dpsNo symbol "turn_rate_dps" in current context.(gdb) x/i $rip=> 0x4225cb <_ZL28set_auto_yaw_look_at_headingffah+298>: cvttss2si%xmm0,%eax

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

Otwarte rozwiązania 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, 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 12times>}, 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,%xmm0STABILIZE> setspeed 100

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

Otwarte rozwiązania i ich analiza - ArduPilot - dalszebadania...

I coverage - badanie pokrycia testami koduI formalna weryfikacja krytycznych części koduI weryfikacja sterowników

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

WnioskiDrony to wyzwanie:

I prawo,I technika,I prywatność...

UWAGA DRASTYCZNE: http://chrismeme11.over-blog.com/article-36258812.html

Źródło: http://a398.idata.over-blog.com/600x450/2/70/46/36/Articles--divers-BLOG/Prevention-Securite/ACCICENT-HELICO-VOITURE.jpg

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

Podziękowania

Podziękowania za konsultację merytoryczną:I dr inż. Roman CzybaI mgr inż. Grzegorz Szafrański

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

Czas na pytania (i odpowiedzi)

Q&A

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