Miliardy Wycieków Z Aplikacji Facebooka

Nadałem temu wpisowi tytuł, aby utrzymać dramatyzm sytuacji, która jednak wcale nie jest taka straszna jak podaje Symantec i media. Producenci antywirusów uwielbiają siać panikę kosztem prawdy, media kochają takie historie. Dlatego to taki wspaniały tandem. Zajmijmy się jednak sprawą od strony programisty aplikacji na Facebooka i oceńmy realne ryzyko dla Facebookowiczów.

Symantec opisał przedwczoraj sytuację, w której może dojść do wycieku danych userów przez aplikacje. Problem dotyczy właściwie wszystkich, którzy korzystają z SDK w PHP przynajmniej do wersji 2.12, które w metodzie $facebook->getLoginUrl korzysta z login.php. Tutaj jest informacja o zmianach w celu poprawy bezpieczeństwa użytkowników, a tutaj już zaktualizowana dokumentacja z instrukcją jak uwierzytelnić usera w dobry sposób przez oAuth.

Problem dotyczy wszystkich, którzy korzystają ze standardowej biblioteki SDK PHP, którą dostarcza Facebook. Firma przygotuje nową wersję na 1 lipiec, więc niezbyt szybko.

Jakie jest ryzyko istnienia tej luki? Chodzi o to, że w czasie obsługi getLoginUrl access_token jest widoczny z ramek iFRAME w aplikacji. Parametr access_token pozwala aplikacji i każdemu kto go posiada komunikować się z Facebookiem wykorzystując zestaw wszystkich dostępnych uprawnień jakie aplikacja posiada. Czyli innymi słowy, żeby ktoś obcy skorzystał z tej luki musiałby mieć dostęp do źródła strony, którą osadzasz w aplikacji przez IFRAME i przechwycić tam ten parametr. Dla wyjaśnienia: nie chodzi o ramkę iFRAME aplikacji, ale o ramki IFRAME wewnątrz ramki aplikacji . Oprócz ramek wewnątrz aplikacji też o ile się orientuję, access_token może być przejęty przez skrypty firm trzecich np. sieci reklamowych.

Aby uchronić się przed problemami należy sprawdzić czy nie korzystacie z ramek IFRAME  i osadzonych skryptów JS  z niepewnych źródeł. W zasadzie więc, choć przejęcie kodu jest możliwe, to ryzyko gdy nie masz niepewnego kodu JS albo IFRAME jest niskie.

Wiele uwagi poświęcono temu, że luka pozwala na wyciek danych użytkowników. Prawda jest taka, że osoba przejmująca access_token może uzyskać dostęp tylko do użytkowników Twojej aplikacji i to w zakresie uprawnień jakie posiadasz. Innymi słowy jeżeli Twoja aplikacja żąda tylko podstawowych informacji, które są widoczne dla wszystkich, to włamywacz niewiele zyska. Przypomnijmy, że podstawowe dane to:  nazwisko,  płeć,  awatar i lista znajomych.

Czytaj podobne  Dlaczego nie zgłaszam już błędów Microsoftowi

Tak naprawdę więc problem powinien zainteresować twórców tych aplikacji, którzy uzyskali od userów sporo uprawnień. Czyli twórcy nadgorliwych konkursów, które pytają się czasem nawet na zgodę na zmianę testamentu. Oni powinni szczególnie zwrócić uwagę na JS i IFRAME, a także zrewidować, czy wymagane uprawnienia są im potrzebne. Najlepiej w ogóle jest prosić o jak najmniej uprawnień, bo nie ma później takich problemów.

Także jak widać problem nie jest taki znowu wielki. Ale nie powstrzymało to Symanteca przed robieniem paniki, którą podchwyciły w mniej lub bardziej wyrafinowany sposób media 🙂 :

Symantec napisał:  “We estimate that as of April 2011, close to 100,000 applications were enabling this leakage”. Duża liczba robi wrażenie, Symantec powtórzył to chyba z 5 razy. Ale właściwie co on oszacował? Ilość aplikacji na Fejsie? Ilość aplikacji, które mają JS i IFRAME z niepewnego źródła jest zapewne o wiele mniej.  Dlaczego tak sądzę? Bo rzadko kiedy używa się ich w kodzie. No oczywiście poza sieciami reklamowymi. One rzeczywiście jakby chciały.. ale wtedy Facebook zapewne wykryłby masowy wzrost liczby zapytań z różnych kont z jakiegoś zakresu IP hakerów z sieci reklamowej? 🙂

Napisał też: “Third parties, in particular advertisers, have accidentally had access to Facebook users’ accounts including profiles, photographs, chat, and also had the ability to post messages and mine personal information.”  Symantec zapomina, że do uzyskania dostępu do zdjęć, czata, wiadomości i danych prywatnych (poza podstawowymi) trzeba mieć specjalną zgodę. Tylko niewielka część aplikacji taką zgodę uzyskaną od użytkowników posiada. I nadal nie wiadomo ile z nich mogło mieć kod IFRAME i JS z niewiadomego pochodzenia.

Czytaj podobne  Jak stworzyć aplikację na Facebooku

Jest dramatycznie, a dalej to już media tylko podkręciły:

Chip napisał: “Innymi słowy, jeżeli zezwoliliśmy aplikacji „Jaki jest mój ulubiony wykonawca pop” dostęp do naszego profilu, a owa aplikacja zawiera powyższego „backdoora”, to bardzo możliwe, że praktycznie każdy ma dostęp do informacji na naszym profilu. A przynajmniej każdy zainteresowany.”. Nie “praktycznie każdy” i nie ma dostępu do informacji na naszym profilu. Jak napisałem tylko do danych wg. uprawień aplikacji i nie każdy, ale haker, który podmieni stronę IFRAME o ile ta aplikacja z quizami taką posiada. Ale bez niuansów brzmi bardziej dramatycznie nie? 🙂

GazetaPrawna.pl z kolei napisała:  “Z Facebooka doszło w ostatnich latach do przypadkowego wycieku danych osobowych użytkowników tego portalu społecznościowego – wynika z raportu firmy informatycznej Symantec Corp. Dane te trafiały głównie do reklamodawców.”  Biorąc pod uwagę wszystkie czynniki jakie muszą wystąpić, żeby doszło do uzyskania dostępu do danych, oraz potencjalnej skali, ja nie mówiłbym o wycieku, bo wyciek mi kojarzy się z wyciekiem dużej liczby, milionów użytkowników. Poza tym Symantec napisał, że firmy trzecie nie znały tej możliwości. Więc drugie zdanie to kłamstwo.

Jedziemy dalej: “Tylko w kwietniu 2011 roku wyciekło co najmniej 100 tys. aplikacji.” Też nieprawda. Jest różnica między czymś co może przeciec, przeciekło a wyciekło. Wyciekło brzmi jakby kody i bazy aplikacji wyciekły, a nie o to tu chodzi. Jak już to nawet nie przeciekły, ale mogły przeciec.

I jeszcze: “Firma jednak usunęła przestarzałą aplikacje API (Application Programing Interface), o której wspominał Symantec.” Facebook nie usunął jeszcze przestarzałej… aplikacji …. API??? Nie usunął i nie API. Przestarzała jest metoda uwierzytelniania, a Facebook usunie ją dopiero we wrześniu.

Czytaj podobne  Twórz gry online na Facebooku dzięki Online FB Games API

Fakt.pl (prawie dorównuje GazeciePrawnej :)): “Według przeprowadzonej ostatnio przez firmę Symantec kontroli informacje profilowe, w tym zdjęcia i prywatne rozmowy użytkowników Facebooka, w ostatnich latach lat regularnie wyciekały z serwisu”. Fakt.pl powiela tutaj nieścisłości, które stworzył Symantec i zamienia “umożliwiały przeciekanie” na “przeciekały”. Drobna różnica.

Pisze też, że “Zewnętrzne firmy, a szczególności reklamodawcy, miały dostęp do prywatnych danych użytkowników Facebooka, a w niektórych przypadkach nawet możliwość wysyłania wiadomości z ich profili.”.  Znowu: niektóre zewnętrzne firmy, nie miały dostępu do prywatnych danych użytkowników, ale do części i nie wszystkie aplikacje bo tylko te z odpowiednimi uprawnieniami. Tekst o wysyłaniu wiadomości to już inwencja własna Fakt.pl 🙂

“W przypadku 100 tys. aplikacji rocznie dochodzi do ujawnienia osobom umieszczającym aplikacje kodów umożliwiających dostęp do poufnych danych, np. prywatnego profilu użytkownika.” -Symantec nie podał informacji, że 100 tyś. aplikacji ujawnia dostęp do danych poufnych, tylko, że bardzo spekulatywnie może 🙂

Największą szopkę chyba zrobiło z tego TVN24 w swoim raporcie. Według serwisu informacje nie “mogły wyciec” ale już “regularnie wyciekały“. Firmy nie “miały możliwości dostępu“, ale to twórcy aplikacji “dawali im dostęp“,

Podał za to chociaż opinię samego Facebooka:  “Przeprowadziliśmy wewnętrzne śledztwo, z którego wynika, że nie ma dowodów na to, że prywatne dane użytkowników wyciekły do nieautoryzowanych podmiotów zewnętrznych” – zapewniła rzeczniczka firmy Malorie Lucich.

Gazeta.pl: “mogło dać dostęp” -> “dawało dostęp”, “dostęp do kont użytkowników” – brzmi jak dawanie kontroli nad kontem, a to nie prawda. “Symantec z kolei używa porównania “zapasowego klucza”, zaszytego w feralnych aplikacjach” ?? “Facebook ogłosił już na swoim blogu, że luka została załatana” Nie do końca.

Według przeprowadzonej ostatnio przez firmę Symantec kontroli informacje profilowe, w tym zdjęcia i prywatne rozmowy użytkowników Facebooka, w ostatnich latach lat regularnie wyciekały z serwisu

Przeczytaj też

Najlepsza książka do Pythona Nie wiesz, z jakiej książki/ebooka uczyć się programowania w języku Python? Postanowiłem zrobić zestawienie 10 książek z Heliona na ten temat, abyś mó...
Komplet 28 ebooków i kursów, aby zostać programist... Od jakiegoś czasu dostaję zapytania na temat tego jakie książki, kursy i ebooki polecam. W związku z tym postanowiłem przygotować dzisiaj zestaw, któr...
120 tapet programistycznych za darmo do pobrania Trochę mi się nudziło, więc przygotowałem zestaw 120 tapet dla programistów. Możesz go pobrać. Tapety są w rozdzielczości 1366x768. Podzielone ...
10 fiszek do nauki programowania w Pythonie Uczysz się programowania w Pythonie? Pobierz te 10 fiszek, które ułatwią Ci zapamiętanie funkcji wbudowanych* w Pythona! Programowanie potrafi ...
Napisano w Kolumna Tagi: , , ,

Menu