Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Androidowy DroidStealth – szyfruje i ukrywa dane
Technologia Stealth kojarzona jest z myśliwcami US Air Force i służy do zmniejszenia skutecznej powierzchni odbicia w przypadku opromieniowania samolotu przez radary. Badacze z holenderskiego uniwersytetu Delft University of Technology postanowili wykorzystać ideę „bycia stealth” w przypadku szyfrowania danych dla urządzeń z systemem Android. Aplikacja przez nich stworzona – DroidStealth – nie tylko szyfruje dane ale przede wszystkim stosuje kilka technik, w celu ich ukrycia. Co więcej aplikacja nie tylko stara się ukryć dane ale również ukrywa własne istnienie w systemie, czyli jest stealthy. Naukowcy opisali swój program w artykule A Self-Compiling Android Data Obfuscation Tool. Motywacją do napisania takiej aplikacji były wydarzenia „Arabskiej Wiosny”, gdy władze państwowe masowo rekwirowały i przeszukiwały urządzenia protestujących, którzy przekazywali sobie zdjęcia i filmy zawierające dowody represji wobec opozycji.
DroidStealth pod względem szyfrowania nie wnosi nic nowego do świata mobilnych urządzeń, co więcej posiada wszystkie słabości związane z lokalnym szyfrowaniem danych opisane w OWASP Mobile Top 10 Risks. Tym co wyróżnia tę aplikację to właśnie pomysł, żeby ukryć fakt, że na urządzeniu zainstalowane jest oprogramowanie, które szyfruje dane. Ciekawe jest to, w jaki sposób programiści podeszli do problemu ukrycia tej aplikacji w systemie – czyli tak naprawdę aplikacja musi posiadać cechy zbliżone do rootkita.
W jaki sposób realizowane jest ukrywanie?
- DroidStealth nie jest widoczny na liście zainstalowanych tzw. ’app drawer’
- Aplikacja jest uruchamiana poprzez 5-krotne naciśnięcie niewidocznego widżetu, którego lokalizację konfiguruje się w czasie pierwszego uruchomienia.
- Drugą metodą uruchomienia DroidStealth jest użycie dialera. W przypadku wprowadzenia poprawnego PIN’u. DroidStealth dba o to, aby numer ten nie został zapisany w historii wybieranych numerów telefonicznych.
- Alternatywnie użytkownik, może nie korzystać z powyższych technik i 'ukryć’ DroidStealth’ pod inną nazwą, ze zmienioną ikoną oraz zmienioną nazwą pakietu, która wpływa na nazwę folderu aplikacji. W tym celu aplikacja przeprowadza ponowną kompilację pakietu i podpisuje ją testowym kluczem (morphing).
- Zaszyfrowane dane i aplikacja przechowywane są w osobnych katalogach. Katalog aplikacji jest folderem ukrytym. Do szyfrowania wykorzystywane jest Facebook Conceal API bazujące na OpenSSL. Szyfrowane są poszczególne pliki a nie katalog, co ma na celu ograniczenie skutków ujawnienia wszystkich danych w przypadku przechwycenia urządzenia z uruchomionym DroidStealth.
- Proces DroidStealth jest nieaktywny, gdy aplikacja nie jest używana i nie występuje na liście ostatnio używanych aplikacji.
Słabości
- Techniki, które wykorzystuje DroidStealth mocno pachną podejściem 'security by obscurity’. Rozwiązania dotyczące szyfrowania i ukrywania mogą być skuteczne w przypadku rutynowych przeszukań, jednak można założyć, że okażą się nieskuteczne w przypadku przeprowadzania dokładnej analizy przeprowadzanej przez specjalistów od informatyki śledczej.
- W przypadku aktualizacji DroidStealth (przypadek aplikacji 'morficznej’, czyli rekompilowanej w celu zmiany nazwy i pakietu) istnieje ryzyko, że dane które nie zostały odszyfrowane, nie będą dostępne ponieważ aplikacja została podpisana nowym kluczem.
- Mimo, że DroidStealth nie jest widoczny w ’app drawer’, jednakże można znaleźć informację o tym oprogramowaniu na liście zainstalowanych aplikacji w Ustawieniach systemu.
- Dane są szyfrowane i odszyfrowane na urządzeniu.
- Twórcy zwracają uwagę, że w przypadku wymuszonego zamknięcia aplikacji może dojść do utraty możliwości ich ponownego odszyfrowania.
Dystrybucja oprogramowania
DroidStealth nie jest dostępny na Google Play, co mogłoby w łatwy sposób ujawnić obecność tej aplikacji na urządzeniu. Programiści zdecydowali się zrezygnować z tej metody dystrybucji, żeby nie osłabić idei stojącej za DroidStealth. Zamiast tego kod źródłowy można pobrać z githuba, również tam można ściągnąć skompilowany .apk Aplikacja nie wymaga 'zrootowanego’ urządzenia. Twórcy DroidStealth zaimplementowali w nim również funkcję dystrybucji aplikacji pomiędzy urządzeniami Android za pomocą WiFi, Bluetooth i Android Beam (NFC). W taki sposób można też wymieniać poufne dane pomiędzy użytkownikami znajdującymi się w bliskiej odległości od siebie z pominięciem sieci operatorów publicznych.
–j23