Jak mawiał trener Piechniczek
„Jeśli chcesz grać w piłkę musisz myśleć jak piłka”
AlcMan
Słowem wstępu
Jeszcze nie tak dawno zarówno projektanci, jak i użytkownicy systemów wbudowanych żyli w błogim przeświadczeniu, że ich urządzenia nie są narażone na ryzyko utraty poufnych danych. Niewielkie, proste, często przenośne systemy elektroniczne wydawały się być poza zainteresowaniem atakujących.
Z jednej strony często nie przechowywały one żadnych wrażliwych czy cennych informacji, a nawet jeżeli, tak to samo zachowanie wspomnianych danych przez producenta w pamięci urządzenia i sprzętowe zabezpieczenie przed odczytem, uważano za w pełni wystarczające.
Z drugiej zaś ataki hakerskie długo uznawano za domenę wielkich systemów: bankowych, rządowych, korporacyjnych. Przy ich wielkości oraz wartości przechowywanych w nich danych bledła wartość np. loginu i hasła do WiFi, przechowywanego w naszym urządzeniu wbudowanym.
Wraz ze wzrostem ilości urządzeń połączonych w naszym otoczeniu wzrosła też podatność całego systemu, całej otaczającej nas infrastruktury na lukę wywołaną utratą wspomnianego już hasła.
W ramach poniższego artykułu wybierzemy się, drodzy czytelnicy, na ciemną stronę mocy, gdzie postaram się przybliżyć Wam szereg metod, jakimi posługują się osoby łamiące zabezpieczenia urządzeń wbudowanych celem wyciągnięcia przechowywanych w nich danych.
W drodze na ciemną stronę
Czym kierują się łamiący zabezpieczenia?
Celem atakującego nie zawsze jest bezpośredni zysk na złamaniu zabezpieczenia. Bardzo często kieruje nim zwyczajna ciekawość, chęć sprawdzenia swojej wiedzy i umiejętności w starciu z projektantem systemu. Czasami przekłada się to na próbę uruchomienia ukrytej/dodatkowo płatnej funkcjonalności.
Dodatkowym aspektem może być też chęć skompromitowania producenta. Znalezienie luki w zabezpieczeniach i wykazanie, że za pomocą wykradzionych danych jest się w stanie podszyć pod użytkownika i regulować temperaturę w jego mieszkaniu, może być wystarczającym powodem do utraty zaufania do danej marki produktów. Co przekłada się na straty finansowe producenta.
Warto też wspomnieć o próbie skopiowania urządzenia w części bądź w całości. Kopiując rozwiązania sprzętowe, układ scalony bądź jego fragment i wchodząc w posiadanie wykradzionych/odczytanych z pamięci plików binarnych, atakujący jest w stanie rozpocząć produkcję urządzenia bez poświęcania środków na jego opracowanie.
Metody i wektory ataków
Wszelka elektronika, będąca w posiadaniu użytkownika końcowego (a więc laptopy, karty płatnicze, dekodery, smartfony, inteligentne lodówki, elektroniczne głowice termostatyczne) jest potencjalnie narażona na atak z wykorzystaniem szeregu stosunkowo prostych metod i technik.
Do wykonania większości z nich nie jest potrzebne zaawansowane oprzyrządowanie bądź akademicka wiedza. Wymagana jest znajomość podstaw działania elektroniki, umiejętność posłużenia się przyrządami laboratoryjnymi w postaci oscyloskopu, zasilacza, generatora przebiegów. Przydatna też jest pewna doza szczęścia, bowiem niektóre z opisanych niżej ataków powiodą się w pojedynczych przypadkach, na konkretnym egzemplarzu rządzenia. Inne zaś egzemplarze będą na atak odporne bądź od razu ulegną uszkodzeniu.
Side channel analysis
(polskojęzyczny odpowiednik tego pojęcia nie istnieje/jest potworkiem językowym)
Za pomocą szeregu nieskomplikowanych technik obejmujących:
- pomiar chwilowego zużycia energii
- pomiar czasu wykonania operacji dla różnych parametrów wejściowych
Potencjalny atakujący stara się zdobyć informację na temat:
- ilości poprawnych cyfr w podanym przez niego numerze PIN/ilości poprawnych znaków w podanym haśle (przy założeniu, że nie korzystamy z obliczania funkcji skrótu z hasła)
- wartości zwracanych przez funkcje, szczególnie jeżeli zwracają wartości typu 0x00/0xFF
- wag Hamminga przetwarzanych przez CPU wartości
Do wykonania tego typu ataku wystarczy prosty układ, składający się z zasilacza laboratoryjnego, oscyloskopu i rezystora o niewielkiej wartości, wpiętego w szereg z zasilaniem atakowanego układu scalonego.
Error injection
W tym przypadku, atakujący stara się wyjść poza dopuszczalne ramy, zdefiniowane przez producenta urządzenia i sprowokować je do nieprawidłowego działania za pomocą:
- manipulacji napięciem zasilającym (zbyt wysokie/zbyt niskie)
- przegrzewania/skrajnego ochładzania urządzenia
- emisji zakłóceń elektromagnetycznych (wyładowań) w bezpośredniej bliskości urządzenia
Za ich pomocą atakujący może sprowokować urządzenie do nieokreślonego działania, mogącego skutkować:
- błędami w odczycie danych z pamięci nieulotnych (np. odczytywaniem zer zamiast wartości faktycznie zapisanych)
- pomijaniem przez CPU kilku instrukcji w chwili wystąpienia zakłócenia
- losową zmianą zawartości komórek pamięci RAM
Ataki tego typu są niezwykle tanie – na dobrą sprawę wystarczy zasilacz laboratoryjny, żarówka 50W ze szkłem powiększającym, czy też piezoelektryczna zapalarka wymontowana z zapalniczki. We wszystkich powyższych przypadkach jest to działanie na przysłowiowe chybił-trafił i niesie ze sobą realne ryzyko nieodwracalnego uszkodzenia danego urządzenia.
Tym niemniej możliwość zmiany zawartości komórki pamięci/rejestru (np. używanego do zwracania wyniku działania funkcji) jest kusząca dla atakującego, nawet jeżeli musi wykonać atak wiele razy pod rząd, aby coś za jego pomocą osiągnąć.
Physical attacks
Ataki fizyczne wymagają zastosowania bardziej wyrafinowanych metod – poza samym wylutowaniem mikrokontrolera z płytki drukowanej wymagane jest jeszcze wyciągnięcie struktury krzemowej z układu scalonego.
Możemy do tego użyć zarówno kwasu azotowego jak i promieniowania laserowego np. za pomoca urządzenia do laserowego grawerowania. Aby zobrazować efekt posłużę się krótkim filmikiem, przygotowanym przez firmę Controllaser (controllaser.com)
https://www.youtube.com/watch?v=LIb__2FrT4s
Tak spreparowaną strukturę krzemową należy następnie zasilić i podłączyć do niej zestaw nanosond, za pomocą których atakujący jest w stanie zmierzyć przebiegi elektryczne na:
- każdej szynie danych
- wyprowadzeniach z poszczególnych bloków funkcjonalnych układu scalonego
- elektrodach pojedynczego tranzystora
Kopiowanie układów scalonych
Ostatnią omawianą w ramach niniejszego artykułu kwestią jest kopiowanie układów scalonych bądź ich fragmentów celem produkowania bezlicencyjnych kopii. Atakujący oszczędzają w ten sposób środki, które prawowity producent poświęcił na opracowanie konkretnego rozwiązania sprzętowego. Jakby tego nie nazwał – jest to po prostu kradzież.
Wyciągniętą z obudowy strukturę krzemową należy sfotografować w powiększeniu i przeprowadzić proces jego analizy z pomocą metod inżynierii wstecznej. Powstały w ten sposób model na poziomie RTL (register transfer level) jest następnie bazą do przygotowania kopii układu scalonego.
Nie istnieją w pełni skuteczne metody na zabezpieczenie układu scalonego przed kopiowaniem. Możemy jedynie starać się utrudnić zadanie potencjalnemu złodziejowi poprzez takie rozłożenie poszczególnych elementów w strukturze krzemowej, aby maksymalnie ją skomplikować i wydłużyć czas trwania analizy, tym samym podnosząc jej koszt.
Gdyby przedstawić strukturę pojedynczej warstwy układu scalonego w formie schematu, pokazującego granicę poszczególnych bloków funkcjonalnych to możemy zauważyć, że atakujący jest w stanie w prosty sposób wybrać sobie te bloki, które chce skopiować i tym samym zaoszczędzić środki na procesie analizy. Znaczącym utrudnieniem jest rozbicie poszczególnych bloków na podbloki i rozrzucenie ich na powierzchni warstwy. Powoduje to każdorazową konieczność analizy całej warstwy układu, co podnosi jej koszty.
Pokazane powyżej podejście powoduje niestety wzrost negatywnych efektów związanych z długościami połączeń między poszczególnymi elementami pojedynczego podbloku. Stąd zaprezentowany na obrazku efekt jest czysto poglądowy.
Podsumowanie
Metody łamania zabezpieczeń, omówione w powyższym artykule to jedynie wierzchołek góry lodowej. Skupiłem się bowiem tylko na tych, które nie wymagają inwestowania znacznych środków w narzędzia i dostępne są dla przysłowiowego przeciętnego zjadacza chleba.
Świadomość istnienia, działania i dostępności w/w metod jest podstawą do zaplanowania środków zaradczych na każdym etapie rozwoju naszego, bezpiecznego urządzenia. Ten temat poruszę w kolejnej odsłonie niniejszego artykułu.
.223rem
Zostaw komentarz