25/8/2010
O usługach geolokalizacyjnych pisaliśmy juz w tekście “Proszę, obrabuj mnie“, zwracając uwagę na to, żę udostępniając światu informację gdzie teraz jesteśmy, udostępniamy także informację gdzie nas nie ma (w domu, z tą zarąbistą plazmą, którą chwaliliśmy się w publicznie dostępnym albumie na Facebooku).
Foursquare
Foursquare to jedna z usług geolokalizacyjnych — instalujemy aplikację na telefonie, ta na podstawie danych z GPS wyszukuje miejsca w pobliżu, do których możemy się wirtualnie “zameldować”. Jeśli gdzieś meldujesz się częściej niż inni, zostajesz gospodarzem (ang. mayor) i jeśli jest to np. restauracja, to możesz od jej szefa dostać sporą zniżkę.
A teraz porozmawiajmy o tym, jak w 9 liniach perla oszukać foursquare i zostać majorem dowolnego miejsca:
#!/usr/bin/perl -W use IO::Socket; srand; sleep(rand()*600); my $sock = IO::Socket::INET->new(PeerAddr=>'api.foursquare.com', PeerPort=>80, Proto =>'tcp', Type=>SOCK_STREAM) or die; $ARGV[1] += rand() * 0.0001 - 0.00005; $ARGV[2] += rand() * 0.0001 - 0.00005; my $str = "vid=$ARGV[0]&private=0&geolat=$ARGV[1]&geolong=$ARGV[2]"; print $sock "POST /v1/checkin HTTP/1.1\r\nHost: api.foursquare.com\r\nUser-Agent:" ." Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ " ."(KHTML, like Gecko) Version/3.0 Mobile/1C10 Safari/419.3\r\nContent" ."-Type: application/x-www-form-urlencoded\r\nAuthorization: Basic " ."XXXXXX\r\nContent-length: ", length($str)+2, "\r\n\r\n$str\r\n"; $_=<$sock>;
Oczywiście XXXXX podmieniamy na wynik funkcji base64(“email:password”), a sam skrypt wywołujemy z 3 parametrami:
- id miejsca do którego chcemy się zameldować (bierzemy je z foursquare, np. “Impreza pod Krzyżem przed Pałacem Prezydenckim” ma ID o wartości 7002890)
- długością oraz szerokością geograficzną w jego okolicy (bierzemy z google maps)
Teraz wystarczy odpalić to w pętli (albo cronie), i czekać na koronę “mayora”. Skrypt wprowadza losowe odchylenia od podanej pozycji oraz losowe opóźnienia (w granicy 10 min.) aby “uwiarygodnić” meldunki :>
Kto zauważył że…
Logowanie do usług geolokalizacyjnych takich jak Foursquare czy Gowalla przesyła wasze dane (e-mail i hasło) plaintekstem? Wprowadzony niedawno Facebook Places (który nie jest jeszcze dostępny w Polsce) jako jedyny uwierzytelnia użytkownika via SSL…
Darmowe Alibi?
Ciekawym wątkiem spoofowania meldunków w usługach geolokalizacyjnych jest możliwość zapewnienia sobie szybkiego i darmowego alibi :-) Wysoki sądzie, to nie ja wyniosłem bazę z Filmwebu, ja tego dnia byłem w Kutnie!
P.S. Trzymajcie się z dala od rynku w Krakowie, nie psujcie nam zabawy ;P
“Impreza pod Krzyżem przed Pałacem Prezydenckim” rozwaliło mnie :D W Polsce chyba nie ma co liczyć na zniżki itp., nie?
Chyba się walnęliście w adresie Foursquare’a (s/net/com/) ;)
U mnie i tak pokazuje Warszawę mimo iż mieszkam 200km od niej. :D
Zawsze można “oszukać” 4sq przez wersję mobilną – tyle że takie oszukiwanie mija się z celem.
Sławek: chyba, że weźmiesz pod uwagę chęć pozyskania jakiegoś alibi ;) (i nie jestem pewien, czy oficjalny klient, w “oszukańczym” żądaniu do 4sq, wraz z wybranym z listy miejscem oddalonym o 500 kilometrów nie wysyła aktualnych koordynatów GPS)
Jakoś nie wierzę, żeby sąd w polsce przejął się takim wirtualnym dowodem. Ale sam pomysł ciekawy i trochę straszny – pokazuje jak bardzo ludzie się odsłaniają przez sieć i jak łatwo można to wykorzystać.
Sergi: sąd nie, ale np. dziewczyna, która podejrzewa swojego chłopaka o to, że wcale nie był w delegacji, a spotyka się z Mariolką, w większości przypadków uwierzy, że ON jednak był w Kutnie, bo facebook tak mówi ;)
zawsze mozna wyslac, jakis mobilny zabawek poczta polska, wlaczony i poczekac az wroci, niech zbiera dane, no dla bezpieczesntwa powrotu niech to bedzie DHL :D
@RafalB – myślę, że cokolwiek leżące w zamkniętej paczce, wożonej dostawczakami ma małe szanse na złapanie sygnały GPS – a wystająca antena może popsuć całą zabawę :P
Angielskie “mayor” nijak ma się do polskiego majora, który jest stopniem oficerskim (po angielsku, niespodzianka!, major).
Mayor to osoba sprawująca władzę samorządową, w polskich warunkach prezydent (miasta) bądź burmistrz i tak należy to tłumaczyć. Zresztą nie widzę sensu w odniesieniach militarnych do Foursquare. bo okupacja tych miejsc jest raczej… pokojowa :)
mysle, ze alibi sami uniemozliwiliscie tym postem :)
@up: bo my zawsze za uczciwością i sprawiedliwością a przede wszystkim zgodnie z etyką zawodową ;)
W zasadzie to nie jest hackowanie geolokacji, tylko aplikacji webowej. Dobry przykład, że dane przychodzące od klienta (przekraczające trust boundary) nie są zaufane. I tego, że klient/atakujący wcale nie musi korzystać z tego klienta, którego mu dasz.
Ciekawym zadaniem może być zaproponowanie modyfikacji sposobu działania aplikacji w taki sposób, by takie oszustwo nie było możliwe. Ktoś ma jakiś pomysł? :)
@Torwald: Bo ja wiem… http://bit.ly/bwiTrg
@Paweł: Zabezpieczenie aplikacji byłoby możliwe, gdyby wraz z żądaniem meldunku do danego miejsca wysyłane były aktualne koordynaty GPS, a 4sq po stronie serwera nie pozwalałby na meldunek do danego miejsca z pozycji oddalonej dalej niż powiedzmy 100m.
I tak w zasadzie jest to teraz robione, z tym, że aplikacja nie ma przecież pewności (i nigdy mieć nie będzie), że pozycja przekazywana przez telefon jest prawdziwa — w końcu na większości telefonów można przechwycić odwołanie aplikacji do modułu GPS i podsunąc swoje dane. (Nawet jeśli ktoś rozwiąże problem zaufania do modułu GPS, to zostaje spoofing GPS poprzez zagłuszanie sygnału satelitów *EG*)
Można też pojść w statystykę i prawdopodobieństwo w oparciu o odległości czasowe i fizyczne pomiędzy poszczególnymi meldunkami. Meldunek na Hawajach i 5 min. później meldunek “we Warszawie” to sytuacja niemożliwa bez umiejętności teleportacji — serwis ubija więc oba meldunki, banuje użytkownika albo melduje go na trzy dni w “Piekle oszustów” :-)
@Piotr: Bardziej chodzi mi o to, że w takim modelu nie ruszając się z domu mogę wysyłać do serwisów ślady GPS, które będą sugerowały, że podróżuję po świecie jak krasnal z Amelii. I nie muszę do tego wykorzystać telefonu, przechwytywania modułu lub zakłócania sygnału GPS albo innych cudów. Taki serwis nie ma możliwości weryfikacji autentyczności przesłanych danych.
Paweł: pozostaje jeszcze metoda weryfikacji stara jak świat: zdjęcie na tle lokalnej gazety ;)
@Piotr: Zdjęcie, które też dostarczasz właśnie ty i jesteś w stanie praktycznie dowolnie nim manipulować? :) Ciekawe zagadnienie – jak efektywny byłby system automatycznej weryfikacji autentyczności zdjęcia?
Paweł: To może notariusz 4sq w każdym venue, weryfikujący Twoją bytność? …i oczywiścice niepodatny na łapówki :)
Foursquare już się w pewien sposób zabezpiecza przed spoofingiem i zdobywaniem “mayorów”:
“A mayor in foursquare is the user with the most number of *days* with check-ins at a specific place within the past 60 days. Only one check-in per day counts towards your mayorship tally. If you have a lot of check-ins that seem fake or consistently far away from where you are checking in, these check-ins will not count towards the mayorship total.”
Źródło: http://support.foursquare.com/entries/231262-what-is-a-mayor
@Aorta – nic z tego nie wynika, poza tym, że nie można sobie tak łatwo “nabić” odwiedzin.
Randomizacja meldunków eliminuje też problem podejrzanych check-in (chyba że sprawdzają aż tak dokładnie i odróżniają prawdziwie losowe dane od pseudolosowych). Choć niewykluczone, że istnieje specjalny skrypt obliczający odległości od punktów i prędkość przemieszczania się userów.
Jako pomysł ciekawe, ale:
1. Aktualnie używana funkcja randomizująca sama wystawi oszusta przy większej ilości próbek – ma rzadko spotykany w naturze rozkład, więc jak ktoś porówna wyniki i/lub czas… ;-)
2. Na poważniejsze alibi się nie nadaje. Mamy ustawę o retencji danych która nakazuje/pozwala (mniejsza o interpretację w tej chwili) na logowanie połączeń. Świetnie, że jest podana lokalizacja “z aplikacji z komórki”, ale brak połączenia do transmisji tychże danych, albo, co gorsza, jest połączenie z BTS kilkaset km dalej w tym czasie.
motyw na pewno ma wielki potencjal
Niezły sposób na zorganizowanie promocji jakiegoś lokalu. Wystarczy, że spora grupka zjawi się w pewnym miejscu i już taki ruch można zauważyć. Myślę, że taką usługę można spokojnie wykorzystać w celach marketingowych jakiegoś miejsca. :)
O co chodzi z Post Scriptum? Co ma się dziac na rynku? :)
serio ludzie korzystaja z takich bzdurnych uslug jakie oferuje 4square?
@RafalB
Kurier nie gubi paczek raczej, więc jak się coś wysyła można zawsze wrzucić komórkę z GPSem i zobaczyć jaką trasę pokonała paczka ;).
W sumie wpadłem na lepszy pomysł. Wrzucić do takiej paczki jakiś sensor przyspieszenia, żeby sprawdzić jak mocno rzucają tymi paczkami ze sprzętem komputerowym, który zamawiamy przez internet ;)