Czy urządzenia embedded można zhakować? | Blog | Solwit

Czy urządzenia embedded można zhakować?

Autor: Piotr Strzałkowski (Embedded Domain Manager)

Wydawać by się mogło, że oprogramowanie wbudowane (embedded) jest odporne na cyberataki. Czy tak jest w istocie? Czy są sposoby jak się przed nimi obronić? Przeczytaj i dowiedz się więcej.

hakowanie embedded

Haking

Jeszcze jakiś czas temu temat hakowania urządzeń lub systemów, o którym usłyszałby zwykły Kowalski w Polsce można było wpisać w nurt filmów since fiction. Od czasu do czasu można było usłyszeć, że pewien genialny haker włamał się do CIA lub zrobił psikusa na popularnej stronie internetowej. Inne sytuacje, to gdy ktoś w magiczny sposób zadzwonił za darmo z budki telefonicznej, albo obszedł zabezpieczenia popularnej konsoli do gier, czy też zrobił żart koledze i w lokalnej sieci sterował jego CD-romem. Jednak większość incydentów dotyczyła innych systemów niż embedded, a ich autorzy w większości przypadków hakowali, by się uczyć, wygłupiać lub zdobyć sławę w cyberświecie.

Chiny – nowy gracz na rynku

Kiedy światowa produkcja przeniosła się do Chin, na masową skalę pojawiły się plagiaty rozwiązań. Chińczycy kopiowali niemal wszystko, co się dało. Blady strach padł na producentów popularnych urządzeń embedded w momencie, kiedy na rynku zaczęły się pojawiać tańsze kopie ich rozwiązań. Na początku pojawiły się głosy, że nikt nie będzie kupował tych bubli, było jednak inaczej. Trzeba było przeciwdziałać kopiowaniu, więc pojawiły różne sposoby, które miały uniemożliwić kopiowanie urządzeń i ich oprogramowania.

Niektórzy producenci zaczęli korzystać z mechanizmów zabezpieczających procesory przed odczytaniem pamięci flash. Zaczęto korzystać z szyfrowanych bootloaderów, czy innych prostych mechanizmów umożliwiających potwierdzenie, że dany hardware (HW) jest wyprodukowany przez odpowiedniego producenta. Jednak druga strona też się nie poddawała i wdrażała coraz bardziej zaawansowane mechanizmy umożliwiające obejście zabezpieczeń, co powodowało popularyzację tego procederu i obniżkę cen usług hakowania mikrokontrolera, czy też skopiowania całego urządzenia. Tym samym hackerstwo (szpiegostwo przesyłowe) zaczęło przyjmować formę zarobkową.

Internet

Popularyzacja Internetu na całym świecie spowodowała, że zaczęliśmy podłączać do sieci wszystko co możliwe, nawet żarówki, lodówki, suszarki do włosów, czy samochody. Nie wszystko jednak zostało zaprojektowane tak, by bezpiecznie współpracować z siecią, ponieważ ich twórcy w pierwotnych założeniach nie przewidzieli możliwości podłączenia takich urządzeń do internetu.

Dodatkowo cykliczny wzrost mocy obliczeniowej systemów embedded, który w dzisiejszych czasach przewyższa mocą obliczeniową komputerów PC z zeszłej dekady oraz duży nacisk ze strony producentów na szybszy development sprawia, że większość urządzeń bazuje na rozwiązaniach open source.

Niestety czas na testy czy analizę jakości kodu zostaje ograniczony do minimum lub testy w ogóle nie są wykonywane. Nieprzygotowane na obronę przed atakami z sieci systemy embedded, stanowią tylko zachętę dla przestępców. Dodatkowo hakerstwo w głównej mierze przeistoczyło się z formy nauki i popisywania się, w nielegalny i przestępczy proceder. Dziś hakerzy (blackhat) kradną i wyłudzają pieniądze, sprzedają informacje o osobach, organizacjach i systemach, czy też szantażują zaatakowane ofiary.

Czy jesteś bezpieczny?

A kto się będzie chciał tu włamać? A po co komu te informacje? A co mnie to obchodzi, przecież nie mam nic do ukrycia. Wiele osób bagatelizuje w ten sposób zagrożenie atakami hakerów. A obecnie to nie kwestia tego czy ktoś się włamie, ale kiedy.

Dlaczego?

Statystyki organów ścigania są przerażające. W 2020 roku, w Polsce odnotowano około 55 tysięcy cyberprzestępstw, podczas gdy cztery lata wcześniej było ich o połowę mniej. Dodatkowo niektóre państwa dysponują zespołami hakerów, którzy na ich zlecenie wykonują nie do końca legalne zadania związane z pozyskiwaniem danych czy też unieruchamiają wybrane systemy przemysłowe. Na dowód moich słów proponuję przeczytać poniższe artykuły:

Niebezpiecznik – Stuxnet

10 godzin bez prądu, czyli potężna awaria elektrowni w Turcji. Czy to cyberatak?

Dodatkowo trzeba pamiętać, że nie zawsze włamywaczom chodzi o nasze dane umieszczone w systemie. Czasem przejętą maszynę wykorzystuje się jako źródło dostępu do mocy obliczeniowej, zasobów, mikrofonów, kamer lub innych informacji, które mogą posłużyć w innym przestępstwie lub być źródłem wywiadowczym o użytkowniku urządzenia.

Ale czy tak naprawdę ktoś się włamuje do systemów embedded?

Poświęcając tylko chwilkę na przeszukanie zasobów Internetu można odnaleźć mnóstwo artykułów opisujących podatności czy też incydenty związane z zabawkami dla dzieci, bardziej lub mniej pikantnymi urządzeniami IoT, czy też poważnymi systemami embedded takimi jak samochody, kamery czy routery.

Wszystkie te incydenty pokazują, że przed nami – programistami systemów embedded, jest jeszcze bardzo dużo pracy związanej z bezpieczeństwem w systemach embedded bez względu na wielkość i zaawansowanie systemów, a lekceważenie tematu może grozić utratą zaufania do marki i produktu.

Poniżej kilka ciekawych artykułów, które są tylko namiastką przykładów takich włamań.

Krytyczne podatności w “inteligentnej” frytkownicy!

Zhackowali firmę obsługującą kamery IoT. Dostęp do banków, więzień, szpitali, szkół, …

https://plblog.kaspersky.com/insecure-vibrator/5264/

Luki w bezpieczeństwie – otwarcie drzwi w 10 sekund za pomocą zabawki?

Interaktywne zabawki zagrożeniem dla prywatności

Najgorsze i najdziwniejsze włamania do urządzeń Internetu rzeczy | RETAIL360.PL

Badacze zhakowali Teslę – klonowanie kluczyka w dwie sekundy | Zaufana Trzecia Strona

Nowa metoda kradzieży samochodów marki Citroen i Peugeot | Zaufana Trzecia Strona

Czy możemy się przed tym uchronić?

Oczywiście, że tak! Chociaż walka jest nierówna. Ponieważ my, jako programiści, czy konstruktorzy musimy się starać załatać wszelkie podatności systemu, a bandyci muszą znaleźć tylko jedną małą dziurę w naszym systemie obrony, żeby ją wykorzystać. Jednak nawet dobrze zaprojektowane podstawowe zabezpieczenia pozwolą nam zniechęcić pewną grupę przestępców, a bardziej zaawansowanym utrudnić trochę życie. Trzeba jednak pamiętać nie ma 100% zabezpieczeń. Mimo to, wznosząc kolejne „mury i fosy” naszej „twierdzy” przesuwamy granicę w rejony nieopłacalności ataku lub bardzo wysokiego zaawansowania technicznego atakującego. To zdecydowanie zniechęca cyberprzestępców – w końcu chodzi im albo o szybki i łatwy zarobek albo kosztowną zdobycz.

Co możesz zrobić, kiedy produkt jest na rynku lub kończysz jego wytwarzanie?

W pierwszej kolejności warto sprawdzić stan naszego systemu zlecając specjalistyczne testy bezpieczeństwa. Takie testy nazywamy testami penetracyjnymi. Testy te powinny wykazać nam pewną pulę słabości naszego systemu. Raport z takich testów będzie dobrym wstępem do przeprowadzenia analizy podatności naszego oprogramowania w celu określenia zagrożeń i ryzyk z nim związanych. Następnie na bazie przygotowanej analizy i wyników z testów, powinniśmy wdrożyć odpowiednie mechanizmy obniżające ryzyko występowania określonych zagrożeń, a także naprawić podatności (luki), jeśli takowe zostały znalezione podczas testów.

Do takich mechanizmów może należeć odpowiednie zabezpieczanie komunikacji w systemie. W innych przypadkach, wprowadzenie całkowicie nowego procesu developmentu uzbrojonego w mechanizmy obostrzające wytwarzanie kodu. W jeszcze innych zastosowanie harwdware (HW) crypto elementów na PCB czy też zabezpieczenia JTAGa lub innych peryferiów zewnętrznych. Aby móc sprawdzić, czy wdrożone procesy dają wymierne korzyści, warto rozszerzyć swój proces testowy o wybrane typy testów bezpieczeństwa takie jak fuzz testy na różnych poziomach systemu, testy algorytmów szyfrujących, czy też dedykowane odpowiednim modułom – testy penetracyjne biało/szaro lub czarno skrzynkowe.

Podsumowanie

Na bezpieczeństwo naszego systemu można wydać ogromne pieniądze. Aby tego uniknąć, ważne jest przeprowadzenie skrupulatnej i dogłębnej analizy naszego systemu, aby jak najlepiej dopasować zastosowane mechanizmy i testy do naszych potrzeb. Dodatkowo warto wiedzieć, że, mimo iż temat bezpieczeństwa jest bardzo skomplikowany i kosztowny to jednak inwestycja w podstawową ochronę jest lepsza niż zignorowanie problemu. Trzeba również pamiętać, że ogólna świadomość społeczeństwa (użytkowników jak i rządów) ciągle rośnie i bagatelizowanie tematu bezpieczeństwa może w krótkim czasie obrócić się bezpowrotnie przeciwko nam. Już widać tendencję, że rządy w niedługim czasie wprowadzą normy bezpieczeństwa (patrz artykuły poniżej), bez których spełnienia nie będziemy mogli sprzedawać swoich urządzeń lub co gorsza trafimy na celownik niechlubnych bandytów tracąc wiarygodność wśród swoich użytkowników. Tak więc nie bagatelizujmy tematu bezpieczeństwa, bo jak pokazują fakty zagrożenie jest realne i może dotknąć nas w każdej chwili.

Bezpieczeństwo w IoT stanie się wymogiem prawnym

Bezpieczeństwo IoT – zagrożenia i przeciwdziałanie im

Czym jest automotive cybersecurity management system (en).

W Solwicie zawsze stawiamy bezpieczeństwo systemów wysoko na liście priorytetów. Przez ostatnich 10 lat zrealizowaliśmy projekty, które wymagały spełnienia bardzo restrykcyjnych norm bezpieczeństwa, również tych zgodnych ze standardami ISTQB.

Potrzebujesz konsultacji? Chcesz sprawdzić czy Twoje oprogramowanie jest odporne na ataki hackerów? Napisz do nas!

Najnowsze wpisy na blogu