Dane części klientów sklepu Empik.com w „głębokim ukryciu”

dodał 22 października 2013 o 21:02 w kategorii Prywatność, Wpadki  z tagami:
Dane części klientów sklepu Empik.com w „głębokim ukryciu”

Czasem kilka drobnych błędów w konfiguracji serwera www może przerodzić się w poważny problem. W przypadku Empik.com takie właśnie błędy mogły doprowadzić do wycieku danych osobowych klientów firmy i innych potencjalnie wrażliwych danych.

Błędy typu „ujawnienie informacji” często traktowane są jako problemy drugiej lub trzeciej kategorii. Nie prowadzą do nieautoryzowanego wykonania kodu na serwerze, nie umożliwiają manipulacji zawartością bazy danych ani nawet jej odczytu i rzadko ich bezpośrednim skutkiem jest wyciek wrażliwych informacji. Tym razem jednak mogło być inaczej.

Błąd znany od 14 lat

Anonimowy czytelnik wskazał nam na istnienie w serwisie internetowym Empik.com dość trywialnego błędu – administratorzy serwera www włączyli moduł mod_status i zapomnieli ograniczyć do niego dostęp. Sam błąd znany jest od roku 1999 i kiedyś już go opisywaliśmy. Na serwerze Empik.com był obecny co najmniej od roku. Pozwalał on dowolnemu użytkownikowi, który otwarł w przeglądarce link

http://www.empik.com/server-status

na zapoznanie się z kilkoma ciekawymi informacjami. Po pierwsze moduł wyświetla statystyki działania serwera.

Statystyki serwera

Statystyki serwera

Raj dla podglądaczy (i pentesterów)

Statystyki, choć czasem ciekawe, nie są jednak najciekawsze. Dużo bardziej interesująca może być lista otwartych sesji http/https. Zawiera ona adresy IP klientów, status połączenia, otwierane linki oraz powiązane z nimi lokalne zasoby. Jej fragment wygląda na przykład tak:

Fragment listy połączeń

Fragment listy połączeń

Na żywo działanie modułu możecie zobaczyć np. na stronie apache.org (ponieważ serwis Empik.com rzeczony moduł już wyłączył). Jak się pewnie domyślacie, zanim funkcjonalność została wyłączona, na liście sesji http, oprócz informacji, kto czego w sklepie szuka, można było trafić na różne perełki.

Faktury z danymi klientów

Najpoważniejszym problemem, o którym się dowiedzieliśmy, był dostęp do danych osobowych części klientów sklepów internetowych Empik.com oraz Smyk.com. Dotyczył on według naszej wiedzy klientów, którym wystawiono faktury korygujące. Obrazy tych faktur, w plikach PDF, były dostępne bez żadnej autoryzacji dla każdego, kto poznał odpowiedni link, na przykład

http://infopunkt.empik.amg.net.pl/faktury_spl/20130831/95445_08_ECS2K_13_DUPLIKAT.pdf

Jak pewnie się domyślacie, manipulacja fragmentem linku odpowiedzialnym za numer faktury oraz datę pozwalała na wyświetlenie kolejnych lub poprzednich faktur. Przykładowa faktura wyglądała tak:

Przykładowa faktura korygująca

Przykładowa faktura korygująca

Choć podgląda sesji http pozwalał na zapoznanie się z adresami URL mechanizmów obsługi klienta, zazwyczaj dostępnych jedynie dla obsługi, to dostęp do tych mechanizmów był prawidłowo zabezpieczony za pomocą autoryzacji www. Niestety tym samym zabezpieczeniem nie objęto folderów z obrazami faktur.

Publicznie dostępne API

Podobny – choć na szczęście już lżejszy w potencjalnych skutkach – problem był z dostępem do sklepowego API. Znajomość odpowiednich linków oraz przekazywanych w nich kluczy pozwalała dowolnemu użytkownikowi na generowanie różnych zestawień w formacie json – np. listy produktów oferowanych w danej kategorii. Np. wywołanie adresu (kluczowe zmienne ukryte)

https://services.empik.com/bobile-api/v2/mob/pl/productLists?signature=xxx&nonce=yyy&category_id=3501

dawało w odpowiedzi

{"productLists":[{"items":[{"author":"Roberts Nora","format":"EPUB","size":"0.6","title":"Alex. Szczęśliwa pomyłka","price":{"currency":"PLN","amount":32.99},"owned":false,"rateCount":0,"rateScore":0.0,"basePrice":null,"flags":{"top":false,"payback":true,"exclusiveness":false,"okazja":false,"patronate":false,"bestRoku":false,"nowosc_beauty":false},"category_id":["35010116"],"product_id":"p1068464234","cover_url":"http://ecsmedia.pl/c/alex-szczesliwa-pomylka-a-iext21483076.jpg"} itd.

A mógł to być tylko wierzchołek góry lodowej

Tak jak wspominaliśmy, możliwość podglądu aktywnych sesji http dawała atakującemu możliwość zapoznania się z pełna strukturą mechanizmów obsługi klienta, działających w oparciu o serwis www, dostępny z zewnątrz. Wiedza ta (jak chociażby prawidłowe parametry zapytań POST lub GET) mogła dać podstawę do prób przeprowadzania ataków (chociażby SQLi czy XSS), których skutki mogły być znacznie bardziej poważne.

Jak więc widać, nawet banalne błędy w konfiguracji modułów serwera www oraz uprawnień do zdawało by się trudnych do namierzenia plików mogą okazać się poważnym zagrożeniem dla bezpieczeństwa danych. Według naszych informacji błędy te występowały w witrynie Empik.com co najmniej od roku. Na szczęście po otrzymaniu od nas informacji o ich istnieniu, serwis szybko poprawił odkryte usterki. Poniżej przedstawiamy oficjalny komunikat, przekazany przez Dorotę Bachman, Dyrektora ds. Marketingu i Rozwoju Biznesu E-commerce Services, spółki prowadzącej sklepy Empik.com i Smyk.com:

Jesteśmy wdzięczni za zgłoszenie problemu. We wszystkich obszarach naszej działalności jesteśmy otwarci na cenne uwagi, które przyczyniają się do poprawy jakości świadczonych usług.

Zidentyfikowana luka występowała na serwerze technicznym, działającym poza platformową sklepową, który służy do przechowywania faktur korygujących w postaci plików pdf. Sytuacja nie stanowiła żadnego zagrożenia dla bezpieczeństwa kont klientów, które są zlokalizowane w odrębnym systemie i przechowywane na oddzielnych serwerach.

Luka została przez nas naprawiona bezpośrednio po otrzymaniu informacji o jej zaistnieniu.