JAK WYKRYĆ ZROOTOWANIE?
Kolejną grupę stanowią niedociągnięcia, przez które złośliwe oprogramowanie może ingerować w kod aplikacji. W większości tych, które na celownik wzięli specjaliści z Embedi i IOActive (94%), nie zaimplementowano przeciwko temu żadnych środków zaradczych. Zaledwie w dwóch z nich został wprowadzony prosty mechanizm detekcji wykrywający to, czy urządzenie, na którym jest zainstalowana aplikacja, zostało zrootowane.
W praktyce oznacza to, że użytkownik uzyskał prawa administratora, a zatem może dodawać, usuwać lub modyfikować komponenty systemowe, będące poza zasięgiem "zwykłych" użytkowników. Wadą tego rozwiązania jest to, że wtedy w niektórych urządzeniach analogiczne uprawnienia zyskują również aplikacje, które takie operacje mogą wykonywać bez wiedzy użytkownika na prywatnych folderach i plikach innych programów.
Wykrywanie tego, czy urządzenie zostało zrootowane, jest realizowane na kilka sposobów. Na przykład można wprowadzić mechanizm sprawdzania, czy zainstalowano oprogramowanie, z którego korzysta się, aby uzyskać uprawnienia roota. Ponadto podejmuje się próbę modyfikacji chronionych folderów, sprawdza ustawiania systemowe i próbuje się je zmieniać. W przypadku wykrycia stanu zrootowania aplikacja powinna ostrzec o tym użytkownika.
Co zagraża bezpieczeństwu mobilnych HMI?Pierwszym z głównych zagrożeń jest nieautoryzowany fizyczny dostęp do urządzenia. Może ono trafić w ręce osoby nieuprawnionej, jeżeli na przykład zostanie zgubione albo ukradzione. Na podstawie pozyskanych w ten sposób danych aplikacji taka osoba zyska wgląd w przebieg procesów produkcyjnych, pozna szczegóły wyposażenia zakładu oraz jego organizacji. Może także zdobyć informacje wymagane przy autoryzacji dostępu. Niebezpieczna jest nie tylko utrata sprzętu. "Specjaliście" wystarczy zaledwie kilka minut, żeby z włączonego lub niechronionego hasłem urządzenia pozostawionego bez opieki pobrać potrzebne dane, zrobić zdjęcie ekranu, na którym są widoczne albo zaszkodzić w inny sposób, na przykład zmieniając ustawienia maszyn na nieprawidłowe. Kolejne zagrożenie to atak typu man in the middle, do którego może dojść, jeżeli korzysta się z niezabezpieczonego kanału łączności. Trzeci problem stanowią błędy i luki w zabezpieczeniach oprogramowania po stronie serwera, jak i aplikacji mobilnych, po stronie klienta. Scenariusze atakówAtaki wykorzystujące wyżej wymienione możliwości dzieli się na dwie grupy. Do pierwszej zaliczane jest pośrednie albo bezpośrednie wpływanie przez hakera na procesy produkcyjne, zaś do drugiej sytuacje, w których to operator, na skutek starań przestępcy, podejmuje nieświadomie działania szkodliwe dla funkcjonowania zakładu. Mogą one przebiegać według różnych scenariuszy. Przykładem pierwszej kategorii jest atak man in the middle, podczas którego przestępca zmienia komendy albo ustawienia wprowadzane przez operatora za pośrednictwem aplikacji mobilnej. Podobnie może zaszkodzić, jeżeli dzięki poznaniu danych uwierzytelniających będzie się podszywał pod pracownika zakładu. Kolejnym przykładem jest sytuacja, w której pracownik nieświadomie zainstaluje na urządzeniu używanym do obsługi systemów zakładowych złośliwe oprogramowanie. Wykorzystując luki we właściwej aplikacji, może ono wpływać na treść komend docierających do urządzeń docelowych. Złośliwe oprogramowanie potrafi również zmieniać dane aplikacji, jeśli są zapisane w pamięci urządzenia, a dostęp do nich nie jest odpowiednio chroniony. W atakach zaliczanych do drugiej kategorii celem hakera jest skłonienie operatora do podjęcia w dobrej wierze błędnej decyzji, wywołania przez niego nieuzasadnionego alarmu, wprowadzenia nieprawidłowych ustawień albo jakiegokolwiek innego działania na szkodę systemu, który obsługuje za pośrednictwem aplikacji mobilnej. Przykładowy scenariusz może zakładać przeprowadzenie ataku man in the middle, podczas którego przestępca modyfikuje informacje przesyłane z systemu do operatora. Fałszywe dane, które są wówczas prezentowane na ekranie smartfona, mają za cel wprowadzić pracownika w błąd. Inny przykład to działanie złośliwego oprogramowania polegające na zmianie danych oraz ustawień aplikacji w taki sposób, żeby uniemożliwić operatorowi właściwe zinterpretowanie informacji odbieranych z systemu, na przykład przez ukrycie części z nich lub wyłączenie alarmów. |