Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Androidowy DroidStealth – szyfruje i ukrywa dane

15 lutego 2015, 14:30 | Aktualności | 0 komentarzy

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?

  1. DroidStealth nie jest widoczny na liście zainstalowanych tzw. ’app drawer’
  2. Aplikacja jest uruchamiana poprzez 5-krotne naciśnięcie niewidocznego widżetu, którego lokalizację konfiguruje się w czasie pierwszego uruchomienia.

    droidstealthscreen

    Konfiguracja ukrywania widżetu uruchamiającego DroidStealth, źródło: Delft University of Technology

  3. 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.

    Algorytm uruchamiana DroidStealt

    Algorytm uruchamiana DroidStealth za pomocą dialera, źródło: Delft University of Technology

  4. 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).
  5. 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.
  6. 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

 

 

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

Odpowiedz