Świadectwo Weeve – zaufany krok w kierunku zabezpieczenia ekonomii maszyn

(Gaurav Tiwari) (6 maja 2020 r.)

Dane porównano do towarów, takich jak ropa czy złoto. W tym połączonym świecie coraz więcej wysokiej jakości danych będzie wspierać inteligentny proces podejmowania decyzji w przypadku maszyn rozmieszczonych w fabryce lub różnych gadżetów rozmieszczonych w naszych domach. Ale przed nami wielkie wyzwanie – w jaki sposób można bezpiecznie dostarczać wysokiej jakości i zaufane dane w skalowalny i zautomatyzowany sposób? Liderzy branży w zakresie tanich urządzeń wbudowanych ciężko pracują, aby zapewnić najlepsze rozwiązania w zakresie bezpieczeństwa sprzętu i oprogramowania, szeroko dostępne w urządzeniach z wyższej półki, do tych mikrokontrolerów. Ograniczone zasoby w mikrokontrolerach i przy tak wielu systemach operacyjnych i stosach rozwiązań prowadzą do złożonego i wymagającego środowiska dla wbudowanych zabezpieczeń.

Możemy podzielić scenariusze ochrony danych w następujący sposób;

  • Dane w spoczynku
  • Dane w drodze
  • Dane w użyciu

Weeve opracowujemy rozwiązania dostosowane do bezpieczeństwa danych dla urządzeń IoT opartych na mikrokontrolerach.

  • Chronimy dane w spoczynku korzysta z zaufanego rozwiązania do przechowywania. Te dane zawierają zasoby kryptograficzne, takie jak klucze lub niektóre zasoby cyfrowe, takie jak wirtualne monety itp.
  • W przypadku przesyłania danych opracowaliśmy Weeve MQTTS, lekką i bezpieczną publikację-subskrypcję opartą na protokole MQTT dostosowaną do urządzeń z niższej półki. Jest to alternatywa dla MQTT przez TLS, która zużywa więcej zasobów energii na krawędzi.
  • Dla używanych danych zajmujemy się integralnością procesu działającego na urządzeniu IoT. Ten proces może polegać na zbieraniu użytecznych danych za pomocą czujników lub wykonywaniu etapu przetwarzania danych, a nawet wykonywaniu logiki biznesowej w przypadku urządzenia uruchamiającego. Wykrywanie i zapobieganie lukom w oprogramowaniu procesu jest tutaj kluczowe. Opracowujemy Weeve Testimony , aplikację poświadczającą kontrolę w czasie rzeczywistym, która jest tematem tej serii blogów.

Zanim wprowadzimy Weeve Świadectwo, oto trochę informacji technicznych dotyczących problemów, które rozwiązujemy, oraz technologii używanych w naszym rozwiązaniu.

Problemy z lukami w zabezpieczeniach programów C

Prawie całe oprogramowanie wbudowane i oprogramowanie układowe niskiego poziomu są tworzone w języku programowania C. Brak odpowiednich kontroli granic dla zamierzonej przydzielonej pamięci jest źródłem dużych zagrożeń bezpieczeństwa. Oprócz przepełnienia bufora program C cierpi na przepełnienie liczb całkowitych, podatność na błędy w formacie ciągów, nadpisanie adresu zwrotnego itp. Istnieje również nowa klasa zagrożeń bezpieczeństwa dla programu C, na przykład return-to-libc i bardziej ogólne programowanie zorientowane na zwrot (ROP) , które są bardzo skuteczne w walce z popularnymi technikami łagodzenia skutków, takimi jak Zapobieganie wykonywaniu danych i podpisywanie kodu. Prawidłowy przegląd kodu za pomocą statycznych i dynamicznych narzędzi bezpieczeństwa aplikacji może zmniejszyć wagę takich luk. Istnieją inne techniki w łańcuchu narzędzi, takie jak ochrona przed zniszczeniem stosu, w samym sprzęcie, takie jak zestaw bitów NX dla segmentów danych, w czasie wykonywania, takie jak randomizacja układu przestrzeni adresowej (ASLR). Ale programowi nadal daleko do uczciwej gwarancji braku luk. W kontekście słabszych urządzeń opartych na mikrokontrolerach, najskuteczniejsza technika łagodzenia skutków ASLR nie jest zaimplementowana ze względów praktycznych, aby uniknąć ładowania w czasie wykonywania.

Nasze podejście do ograniczania luk w zabezpieczeniach programu C

Aby rozwiązać problemy z lukami w zabezpieczeniach programu C, zakładamy, że w programie zawsze będą luki w zabezpieczeniach, dlatego też ośmielamy się je wykrywać w czasie wykonywania. Wyobrażamy sobie istnienie bardziej uprzywilejowanego izolowanego procesu ochrony, który bada i świadczy zachowanie działającego programu w C (oprogramowanie układowe MCU). Proces ochrony musi być odizolowany i bardziej uprzywilejowany niż normalne oprogramowanie układowe, ponieważ jeśli jest częścią tego samego procesu lub podobnego poziomu uprawnień co normalne oprogramowanie układowe, haker będzie mógł zhakować proces ochrony, wykorzystując tę ​​samą lukę w normalnym oprogramowaniu układowym . Przewidujemy również potrzebę zdalnej jednostki poświadczającej, która zna z wyprzedzeniem (za pomocą naszego narzędzia do profilowania) wszystkie prawidłowe migawki wykonania normalnego wykonywania oprogramowania układowego i okresowo poświadcza te migawki.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *