Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Quick Tip – Modyfikacja ruchu sieciowego urządzeń mobilnych
Kilka razy spotkałem się z sytuacją, kiedy testerzy lub developerzy, znający elementarne zasady bezpieczeństwa aplikacji webowych oraz podstawy działania narzędzi takich jak Burp Suite lub Telerik Fiddler, nie potrafili użyć tej wiedzy w projektach mobilnych. Zmiana systemu, urządzenia oraz przekleństwo nauki nowych narzędzi powoduje, że dużo osób przechodzących w świat urządzeń mobilnych zapomina chociażby o programach do modyfikacji ruchu sieciowego.
Tymczasem, aby testować bezpieczeństwo aplikacji mobilnych – chociażby w kontekście komunikacji z web serwisami – wcale nie trzeba instalować specjalnych programów, nie trzeba również „Jailbreakować” czy „rootować” swojego smartfona ani nawet poznawać nowych narzędzi. Wszystkie zabawki po prostu zostały już zainstalowane i trzeba tylko zacząć je używać.
Użycie ulubionego proxy w aplikacjach mobilnych
Przekierowanie ruchu z przeglądarki internetowej do proxy działa w ten sam sposób, jak przekierowanie ruchu z urządzenia mobilnego. Poniżej opiszę przykład ustawień systemu iOS 7 oraz Android 4, które zmuszę do komunikacji z Burp Suite oraz Wireshark. Zaprezentowana technika nie jest niczym zaawansowanym i w analogiczny sposób można jej użyć zarówno w innych systemach czy proxy, takich jak OWASP ZAP, Telerik Fiddler itp.
1. Ustaw lokalne proxy na swoim komputerze
W większości przypadków lokalne proxy konfiguruje się w taki sposób, aby nasłuchiwało na interfejsie lokalnym oraz porcie 8080. W tym wypadku proxy musi nasłuchiwać na interfejsie, do którego można wysyłać zapytania z urządzenia mobilnego (port może być oczywiście dowolny).
2. Wskaż proxy w urządzeniu mobilnym
Podłącz smartfona lub tablet do sieci Wi-Fi, najlepiej do tej samej, z której korzysta komputer pełniący rolę proxy. Następnie skonfiguruj ręcznie ustawienia proxy w ustawieniach sieci Wi-Fi w taki sposób, aby wskazać adres interfejsu ustawionego w punkcie 1. wraz z odpowiednim numerem portu.
Od tego momentu ruch sieciowy generowany przez urządzenie mobilne zostanie przekierowany przez nasze ulubione proxy, w którym będziemy mieli możliwość podglądania oraz modyfikowania ruchu – tak samo jak podczas testowania aplikacji webowych w przeglądarce internetowej.
Powyższy sposób jest bardzo prosty i skuteczny, może jednak powodować pewien problem dotyczący komunikacji SSL, w szczególności na „niezłamanych urządzeniach”. Sytuacja taka powstaje przez fakt podstawiania fałszywego certyfikatu przez proxy, przez co część połączeń może kończyć się błędem. Tego typu problemy są jednak tematem na inną część artykułu z serii Quick Tip. :)
Podsumowanie
Warto czasem wychodzić ze swojej strefy komfortu i spróbować wykorzystać coś dobrze znanego w całkowicie nowych warunkach – z pewnością szybko odnajdziemy wspólny mianownik między znanymi technikami i nowo poznawanym obszarem.
Nie przejmujmy się złudną barierą technologiczną – opisany w tym artykule sposób przekierowania ruchu sieciowego nie jest niczym odkrywczym, ale najważniejsze jest to, że zadziałała na każdym urządzeniu, które umożliwia konfigurację proxy – wliczając w to niektóre sterowniki przemysłowe, konsole, SmartTV, a w niedalekiej przyszłości może nawet lodówki i inny sprzęt AGD.
Czasem też po prostu fajnie jest zobaczyć, co dzieje się „pod spodem” naszej ulubionej aplikacji. Może się okazać, że po krótkiej analizie całkowicie zmienimy o niej zdanie…
Adrian “Vizzdoom” Michalczyk
Dobry artykuł – zgadzam się :), czasem wystarczy podłączenie pod XCODE IDE telefonu lub tabletu i efekt jest podobny – przestajesz używać aplikacji bo widzisz jak się komunikuje…
Dobry art :)
BTW, zestaw zaprezentowany przez Adriana (Burp + Wireshark) to potęga, jeśli chodzi o analizę ruchu sieciowego. W każdym przypadku ;)
Na moim SG3 (Android 4.3) jest taki fuckup, że po zmianie opcji proxy na „Ręcznie” nie można zapisać ustawień (wyszarzony przycisk „Zapisz”) cokolwiek bym nie poprzestawiał. Na googlach ludzie mają podobne problemy ale nie znalazłem niestety żadnego rozwiązania. Any ideas ? :)
Czasem tak niestety bywa. Podobny problem miałem kiedyś z ActiveSync gdzie usługę miałem wystawioną na niestandardowym porcie. Nie było możliwości zapisania konfiguracji wykorzystującej port inny niż 443/80.
Poradnik bardzo ciekawy… mam jednak prośbę, mógłby mi ktoś rzucić linkiem, wskazówką, czymkolwiek jjak zmodyfikować przesłane dane?