10:05
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:

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

Przeczytaj także:



27 komentarzy

Dodaj komentarz
  1. “Impreza pod Krzyżem przed Pałacem Prezydenckim” rozwaliło mnie :D W Polsce chyba nie ma co liczyć na zniżki itp., nie?

  2. Chyba się walnęliście w adresie Foursquare’a (s/net/com/) ;)

  3. U mnie i tak pokazuje Warszawę mimo iż mieszkam 200km od niej. :D

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

  5. 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 ;)

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

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

  8. 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 :)

  9. mysle, ze alibi sami uniemozliwiliscie tym postem :)

    • @up: bo my zawsze za uczciwością i sprawiedliwością a przede wszystkim zgodnie z etyką zawodową ;)

  10. 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ł? :)

  11. @Torwald: Bo ja wiem… http://bit.ly/bwiTrg

  12. @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” :-)

  13. @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 ;)

  14. @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 :)

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

  16. @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.

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

  18. motyw na pewno ma wielki potencjal

  19. 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. :)

  20. O co chodzi z Post Scriptum? Co ma się dziac na rynku? :)

  21. serio ludzie korzystaja z takich bzdurnych uslug jakie oferuje 4square?

  22. @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 ;)

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: