Po kilku uważnych lekturach pytania coś się wyróżniało:
Poza ogromnymi kwotami w 3G ten telefon spędził bardzo mało czasu poza Wi-Fi.
Twój iPhone, gdy jest w trybie uśpienia, wyłącza radio WiFi, aby oszczędzać energię baterii . Jeśli więc masz aplikacje wymagające dużej ilości danych, które działają w tle, gdy telefon śpi / jest zablokowany, robią to przez 3G. Należy pamiętać, że zachowanie trybu Wi-Fi w trybie uśpienia jest nieco niespójne. Ale możesz zapewnić, że 3G nie będzie używany przez telefon podczas wykonywania tych testów, wyłączając dane komórkowe. W ten sposób, gdy śpi, będzie nadal korzystać z danych WiFi, a nie 3G, i będziesz mieć pewność, że przechwycisz cały ruch w sieci monitorowania.
Możesz połączyć kilka technologii, które mogą pomóc w wytropieniu sprawcy.
W ramach pierwszego przejścia możesz spróbować monitorować telefon, gdy jest podłączony do sieci Wi-Fi za pomocą mitmproxy. Z tego doskonałego postu na blogu mclov.in możesz skonfigurować serwer proxy dla swojego telefonu na komputerze Mac i filtrować przez niego cały ruch http / s:
- Pobierz narzędzie mitmproxy i skonfiguruj je, przechodząc do folderu mitmproxy i uruchamiając sudo python setup.py install. Jeśli wszystko pójdzie dobrze, mitmproxy musi być dostępny w twojej ŚCIEŻCE $.
- Uruchom mitmproxy, uruchamiając mitmproxy.
- Uzyskaj adres IP swojego komputera, uruchamiając ifconfig en1 (lub inny używany interfejs).
- Ustaw proxy na swoim iPhonie, przechodząc do ustawień bezprzewodowych, ustawiając proxy na „Ręcznie”, i ustaw IP na IP twojego komputera i port na 8080.
Jeśli ustawisz mitmproxy na rejestrowanie wywołań http / s do pliku, możesz go przeanalizować po pewnym czasie i poszukać trendów. Będziesz także mógł sprawdzić ładunki połączeń http / s, aby w ten sposób można było wykryć niezwykle duże żądania.
Oczywiście: takie podejście zakłada, że winowajca używa http / s do komunikacji. Jeśli tak nie jest, nie zobaczysz problemu za pośrednictwem mitmproxy i musisz skorzystać z rozwiązania niższego poziomu.
Musisz monitorować cały ruch w kontrolowanej sieci Wi-Fi, aby pomóc w wytropieniu przynajmniej punktów końcowych transferu danych. Monitorowanie przepustowości nie jest trudne do skonfigurowania, ale prowadzenie dziennika adresów IP i punktów końcowych jest naprawdę trudne w przypadku sprzętu klasy konsumenckiej, ponieważ może to być MASYWA. Każdy pakiet musi zostać sprawdzony pod kątem pochodzenia, miejsca docelowego, zarejestrowany pod względem czasu i rozmiaru - dodaje się bardzo szybko.
Ale możesz uzyskać przyzwoite liczby i zawęzić przestrzeń wyszukiwania, aby było to potencjalnie możliwe do przeanalizowania przez człowieka.
Po pierwsze: musisz skonfigurować sieć z monitorowaniem przepustowości na poziomie IP. W tym celu polecam konsumencki router WiFi Linksys WRT54GL z systemem Tomato oraz dodatek TeamanIPTraffic do śledzenia przepustowości na poziomie IP.
Po drugie: ustaw DNS na routerze, aby korzystał z OpenDNS . Na koncie OpenDNS do śledzenia wyszukiwań DNS:
- Zaloguj się do https://dashboard.opendns.com/
- Kliknij kartę „Ustawienia”
- Kliknij adres IP sieci powiązanej z routerem
- Kliknij „Statystyki i dzienniki” po lewej stronie
- Upewnij się, że opcja „Włącz statystyki i dzienniki” jest zaznaczona, a następnie kliknij przycisk „Zastosuj”
Teraz wszystkie wyszukiwania DNS wykonywane w sieci będą rejestrowane.
Przypisz telefonowi statyczny adres IP w tej sieci, aby łatwiej go było śledzić.
I ... czekaj i patrz.
Będziesz monitorować aktywność adresu IP przypisanego do telefonu w tabelach aktywności routera dla poszczególnych adresów IP. Gdy aktywność danych dla tego adresu IP gwałtownie wzrośnie, przejdziesz do konsoli OpenDNS i spojrzysz na statystyki i dzienniki wyszukiwania DNS dla okresu, w którym ruch danych był wysoki dla twojego telefonu.
Powinno to dać krótką listę nazw hostów, które były wtedy rozstrzygane. Uzbrojony w tę listę możesz zawęzić ją do aplikacji.