"The S in IoT stands for Security" — czyli co jest nie tak z bezpieczeństwem IoT?

Wstęp

Internet Rzeczy (częściej określany angielskim terminem Internet of Things — IoT) to sieć połączonych ze sobą urządzeń wymieniających dane za pomocą różnych protokołów komunikacyjnych. Jest to zdecydowanie jedna z najdynamiczniej rozwijających się dziedzin IT, a ona sama staje się coraz bardziej obecna w naszym codziennym funkcjonowaniu.

Statystyki Przewiduje się, że do 2030 roku ilość podłączonych do sieci urządzeń IoT ulegnie podwojeniu, osiągając liczbę ponad 29 miliardów urządzeń.

Postęp technologiczny umożliwia wyposażenie niemal każdego urządzenia w systemy łączności kooperujące z systemami wbudowanymi i sensorami. Daje to potencjał na zrewolucjonizowanie naszego życia, począwszy od zastosowań w przemyśle czy logistyce, poprzez branżę automotive, na naszych własnych domach kończąc.

Jednak dążąc do tej technologicznej utopii, należy zdawać sobie sprawę z wyzwań technicznych, którym należy najpierw sprostać:

  • ograniczone zasoby sprzętowe — wiele urządzeń IoT jest projektowanych jako tanie, oszczędne układy o niskiej wydajności
  • kompatybilność — urządzenia IoT korzystają ze zróżnicowanej palety protokołów, standardów i mediów transmisyjnych, co może prowadzić do problemów w sytuacji, kiedy konieczne jest współdziałanie różnych urządzeń
  • bezpieczeństwo — największe wyzwanie związane z IoT o bardzo zróżnicowanym podłożu, nad którym będziemy się pochylać w tym i pewnie wielu następnych artykułach

Bezpieczeństwo Internetu Rzeczy

Kwestię bezpieczeństwa IoT można rozpatrywać na wielu płaszczyznach, które często wynikają bezpośrednio ze specyfiki tego sektora, w tym z wymienionych wcześniej dwóch pozostałych wyzwań związanych z Internetem Rzeczy, czyli ograniczonych zasobów sprzętowych i problemów z kompatybilnością.

Ograniczone zasoby sprzętowe stanowią niemały problem, kiedy przychodzi do tak oczywistej w branży bezpieczeństwa czynności, jak szyfrowanie danych za pomocą złożonych obliczeniowo algorytmów. Problem nasila się, kiedy mówimy o rozwiązaniach wymagających działania w czasie rzeczywistym, gdzie jakiekolwiek opóźnienia stają się niepożądane. Niektórzy producenci, stojąc przed dylematem zapewnienia właściwego bezpieczeństwa danych, ceną zwiększenia kosztów produkcji układu oraz prawdopodobnego zwiększenia zużycia energii produktu końcowego, wybierają oszczędności, co negatywnie odbija się na bezpieczeństwie urządzeń IoT. Problematycznie robi się również, kiedy mówimy o dostępnym dla urządzenia IoT pasmie. Nierzadko jest ono mocno ograniczone, przez co dodatkowy narzut związany ze stosowaniem odpowiednich mechanizmów bezpieczeństwa staje się w pewien sposób niepożądany, znowu stwarzając dylemat: sprawne działanie IoT przy zachowaniu niskich kosztów, czy zadbanie o kwestie bezpieczeństwa systemu.

Zapewnienie kompatybilności urządzeń IoT stanowi wyzwanie dla specjalistów z branży bezpieczeństwa, ponieważ muszą oni zadbać o bezpieczeństwo zróżnicowanego ekosystemu, a szczególnie newralgicznymi punktami są miejsca styku różnych rozwiązań stosowanych w urządzeniach Internetu Rzeczy. Różnorodność IoT prowadzi do sytuacji, w której każde urządzenie odznacza się swoim unikalnym zbiorem problemów do rozwiązania, jeśli chodzi o kwestie bezpieczeństwa, a specjaliści muszą się nad każdym z nich pochylać z osobna, o ile nie wykorzystuje on bardziej powszechnych rozwiązań.

Poważnym problemem bezpieczeństwa urządzeń IoT jest powszechny brak odpowiedniej polityki aktualizacji oprogramowania. Problem ten wynika z wielu czynników. Jednym z nich jest brak odpowiedniego wsparcia ze strony samego producenta. Często wynika to z czynników ekonomicznych — wspieranie zróżnicowanej palety urządzeń IoT i ich oprogramowania pociąga za sobą niemałe koszty. Jeśli jednak producent wydaje aktualizacje, chociażby w formie samych łatek bezpieczeństwa, natrafiamy na kolejny problem w momencie ich dystrybuowania. Urządzenia Internetu Rzeczy często nie posiadają odpowiednich mechanizmów aktualizacji oprogramowania, a użytkownicy nierzadko muszą tego dokonywać ręcznie, co staje się szczególnie kłopotliwe wraz ze wzrostem ilości wymagających aktualizacji urządzeń. Na myśl nasuwa się rozwiązanie w postaci wymuszenia automatycznych aktualizacji, W praktyce to nie takie proste, ponieważ niesie to ze sobą ryzyko przeprowadzenia ataku na masową skalę przez hakerów, którzy uzyskali odpowiedni dostęp do systemów producenta, dokonując tzw. ataku na łańcuch dostaw (ang. supply chain attack).

W przypadku systemów czasu rzeczywistego natrafiamy na kolejny oczywisty problem — aktualizacja do pewnego stopnia zaburzy ich funkcjonowanie, choćby i ze względu na ograniczenie i tak już ograniczonych zasobów sprzętowych, które będą musiały zostać wykorzystane w trakcie aktualizacji oprogramowania.

Prywatność jest jednym z najważniejszych zagadnień, kiedy mówi się o kwestiach bezpieczeństwa urządzeń IoT. Urządzenia tego typu zbierają i przetwarzają pokaźną ilość danych, a przez wzgląd na fakt, że w obecnych czasach są coraz powszechniejsze, należy zwrócić, że wśród informacji przetwarzanych przez te systemy znajdują się również szczegóły dotyczące naszego prywatnego życia. Przez wzgląd na to w interesie użytkownika końcowego jest zapewnienie jak największego bezpieczeństwa tych danych. Z tym niestety bywa różnie, zaczynając od wspomnianego wcześniej braku odpowiedniego zabezpieczania danych, a kończąc na przypadkach, kiedy to sam producent nie dba o prywatność użytkownika, którego dane lądują na serwerach twórców urządzenia.

Najczęstsze ataki na urządzenia IoT

Cyberprzestępcy wykazują zainteresowanie urządzeniami IoT z wielu różnych powodów. Przykładowo mogą być zainteresowani pozyskaniem zasobów sprzętowych urządzenia w celu kopania kryptowalut, bądź wykorzystywania ich w celu przeprowadzania ataków typu DDoS. Przejęte urządzenia Internetu Rzeczy mogą być wykorzystywane jako pośrednicy w ruchu sieciowym (proxy, VPN) dla zwiększenia anonimowości ruchu sieciowego. Dostęp do przejętego urządzenia umożliwia wykorzystanie go do dalszego rekonesansu sieci. Celem mogą być również same przetwarzane dane, co szczególnie niebezpieczne jest w przypadku kamer sieciowych. Jak przekonała się pewna Rosjanka (uwaga, treści NSFW), nie warto kupować tanich chińskich kamer z AliExpress, ponieważ nigdy nie wiadomo, czy nie znajdzie się potem swoich niekoniecznie korzystnych zdjęć i nagrań po chińskiej stronie internetu.

No więc w jaki sposób cyberprzestępcy zazwyczaj przejmują urządzenia IoT?

Najczęściej dochodzi do tego wskutek pozostawienia domyślnych danych dostępowych. Ten grzech pierworodny użytkownika sprawia, że dla hakera uzyskanie dostępu do urządzenia jest rzeczą trywialną, wystarczy sprawdzić model urządzenia i wyszukać w instrukcji domyślny login i hasło np. admin:admin. Co ambitniejsi cyberprzestępcy mogą to z powodzeniem zautomatyzować.

Kolejnym sposobem często wykorzystywanym przy atakach na urządzenia IoT jest prymitywny, ale zaskakująco skuteczny atak brute-force. Powodzeniu tych ataków sprzyja ludzka skłonność do ustawiania banalnych haseł (więcej o bezpieczeństwie haseł przeczytać można w tym artykule). Kolejnym sprzyjającym czynnikiem jest wykorzystywanie przez wiele urządzeń starego, nieszyfrowanego w żaden sposób protokołu Telnet. Przez wzgląd na brak stosowania szyfrowania, atak brute-force na urządzenie obsługujące protokół Telnet, wymaga mniejszych zasobów, w porównaniu z szyfrowanym SSH.

Kontynuując temat protokołów obsługujących zdalne terminale, telnet czyni urządzenie podatnym na przechwycenie nieszyfrowanych danych dostępowych, w sytuacji, kiedy atakujący uzyskał już dostęp do jakiegoś urządzenia w atakowanej sieci.

Na końcu naszej wyliczanki znajdziemy wykorzystywanie podatności w oprogramowaniu. Teoretycznie jest to bardziej wymagająca sztuka od zaprezentowanych powyżej metod, jednakże, biorąc pod uwagę wspomniane wcześniej problemy z utrzymaniem aktualności oprogramowania urządzeń IoT, bardzo często dochodzi do sytuacji, kiedy powszechnie wykorzystywane są wersje oprogramowania, które nie dość, że mają już często wiele zgłoszonych CVE, to jeszcze w przypadku tych starszych podatności, krążą swobodnie ich PoC, które mogą być wykorzystane przez byle script kiddie.

Co robić, jak żyć?

Z perspektywy bezpieczeństwa użytkownika końcowego kluczowe jest dokonanie analizy wykorzystywanych urządzeń IoT przede wszystkim pod kątem producenta, jego reputacji oraz polityk prywatności i aktualizacji oprogramowania. Pamiętać należy o tym, żeby zawsze ustawić własne dane dostępowe. A jeśli urządzenie wspiera protokół SSH, można rozważyć wykorzystywanie kluczy w celu autoryzacji. Przede wszystkim jednak należy zadbać o regularne aktualizowanie oprogramowania urządzeń.