M9, M10 ORAZ LUKI W BACKENDZIE
Do kategorii M9 zaliczany jest brak ochrony kodu aplikacji przed inżynierią wsteczną. Niepowołana osoba, która podejmie się takich działań, dysponując niezabezpieczonym kodem źródłowym aplikacji, może na podstawie jego analizy uzyskać wiele informacji, z jej punktu widzenia użytecznych, zaś dla bezpieczeństwa programu groźnych.
Przykładowo poznając działanie zaimplementowanych algorytmów i wykorzystywane biblioteki, może odkryć jego najsłabsze punkty. Aby to utrudnić, stosuje się różne techniki, na przykład zaciemnianie kodu. Polega ono na wprowadzaniu w nim takich zmian, które utrudniają jego zrozumienie, lecz nie wpływają na jego działanie.
Najprostsze z nich polegają na stosowaniu takich nazw zmiennych i metod, na podstawie których nie można wywnioskować ich znaczenia. Te bardziej skomplikowane wymagają zmodyfikowania na przykład działania pętli czy relacji dziedziczenia. Niestety w ponad połowie przetestowanych aplikacji nie zastosowano żadnej ochrony przed inżynierią odwrotną.
Do kategorii dziesiątej zalicza się różnego typu rozwiązania zaimplementowane w kodzie aplikacji, dla których nie ma żadnego praktycznego zastosowania w ramach gwarantowanej funkcjonalności programu (na przykład uprawnienia do rejestrowania głosu bez zastosowania dla nagrań) i takie wykorzystywane jedynie na etapie tworzenia kodu, nieprzeznaczone do użytku w środowisku produkcyjnym. Są one niepożądane, gdyż atakujący może je wykorzystać w sposób trudny do przewidzenia. W prawie jednej czwartej sprawdzonych aplikacji wykryto luki kategorii M10.
Chociaż nie było to głównym celem badań specjalistów z firmy Embedi i IOActive, sprawdzili oni również podatność na ataki od strony backendu. Jak się okazało, najczęściej występującą luką był brak zabezpieczeń serwerów SCADA przed atakiem typu SQL injection. Niefiltrowanie po stronie serwera danych użytkownika wykorzystywanych do tworzenia zapytań do bazy danych okazało się dużą niespodzianką, ponieważ nie jest to zagrożenie nowe, a wręcz przeciwnie, zaś sposoby na jego ograniczenie są powszechnie znane.
DOBRE RADY
W podsumowaniu wniosków z przeprowadzonych testów aplikacji mobilnych HMI twórcy raportu "SCADA and mobile security in the Internet of Things era" podali kilka zaleceń, które powinni wziąć pod uwagę ich twórcy. Przede wszystkim muszą pamiętać, że tworzone przez nich oprogramowanie stanowi swego rodzaju bramę do kluczowych dla funkcjonowania zakładów przemysłowych instalacji, maszyn i systemów.
Powinno to wpłynąć na decyzje projektowe, w tym dotyczące danych wejściowych i wyjściowych aplikacji. Muszą też podjąć wszelkie możliwe starania, które zapobiegną awariom oprogramowania lub wprowadzaniu jego użytkowników w błąd. Tworząc kod, powinni mieć stale w pamięci wytyczne takich organizacji jak OWASP i innych, które opracowują dobre praktyki w zakresie projektowania aplikacji mobilnych.
Testy jednostkowe i funkcjonalne muszą być przeprowadzane obowiązkowo, aby uzyskać pewność, że przynajmniej podstawowe zabezpieczenia, takie jak uwierzytelnianie i autoryzacja dostępu, działają prawidłowo. Powinno się również unikać przechowywania oraz przesyłania danych uwierzytelniających sposobami, które nie spełniają standardów bezpieczeństwa i nie przechowywać wrażliwych danych na kartach pamięci bez wprowadzenia kontroli dostępu.
Trzeba ponadto zapewnić poufność oraz integralność danych aplikacji. Połączenie z serwerem powinno być szyfrowane. Do zadania obsługi wyjątków trzeba podejść bardzo poważnie. W przypadku, gdy wystąpi nieprzewidziany błąd, należy zadbać, aby aplikacja zakończyła pracę w sposób zrozumiały dla użytkownika. Ważne także, by w logach programu w zapisach odnotowujących wystąpienie wyjątków przypadkiem nie umieszczać informacji wrażliwych. Poza tym nie wolno zapominać o zaciemnianiu kodu i wdrożeniu rozwiązań, które nie pozwolą na zewnętrzną ingerencję w kod aplikacji.
PODSUMOWANIE
Jeszcze do niedawna nikt nie przewidywał, że smartfony i tablety znajdą w przemyśle profesjonalne zastosowanie, a tym bardziej że za pośrednictwem urządzeń konsumenckich będzie można uzyskać dostęp do kluczowych maszyn oraz instalacji w zakładzie.
Biorąc jednak pod uwagę przedstawione w artykule korzyści, jakie to ze sobą niesie i fakt, że świadomość w zakresie cyberbezpieczeństwa wciąż rośnie, co wcześniej czy później wymusi na twórcach aplikacji mobilnych dla przemysłu uwzględnienie zaleceń specjalistów w tej dziedzinie, można jedynie oczekiwać dalszej popularyzacji przenośnych HMI.
Na to, że nie ma już właściwie od tej tendencji odwrotu, wskazuje również fakt, że na rynek pracy zaczynają wkraczać młodzi ludzie na co dzień nierozstający się ze smartfonami, którzy możliwości korzystania z nich będą oczekiwać również w życiu zawodowym.
Monika Jaworowska