22.10.2013 | 21:02

Adam Haertle

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.

Powrót

Komentarze

  • 2013.10.22 21:47 Jakub

    otwarł?

    Odpowiedz
    • 2013.10.22 22:00 Adam

      Gdybyś otwarł lub otworzył słownik języka polskiego, to zobaczyłbyś, że obie formy są poprawne.

      Odpowiedz
    • 2013.11.05 16:11 styrlic

      a widział ty kiedyś sklep, który na drzwiach ma napisane „godziny otworzenia” ? albo który ma tabliczkę „otworzone” ?

      Odpowiedz
      • 2015.08.24 11:56 kszh

        Ja jeszcze nie, ale kto wie, może na PKP lub Poczcie Polskiej już wktrótce. Wszak mają powszechne „Przerwa technologiczna. Przepraszamy!”, więc mogliby też „Otworzone. Zapraszamy!”.

        Odpowiedz
  • 2013.10.23 00:27 nissan33

    już myślałem że ktoś wykradł pół bazy czy przynajmniej hasła

    „adres IP klientów” – przecież widać na skrinie że to IP jakiegoś ich serwera wewnętrznego/pośredniczącego a nie konkretnych klientów

    „publicznie dostępne API” – wchodzę na ich stronę i widzę te same dane

    cienkie te rewelacje, artykuł na poziomie artykułów onet’owych :P

    Odpowiedz
    • 2013.10.23 09:30 Adam

      Fragment o dostępie do faktur (zapewne tysięcy klientów) przeoczyłeś przypadkowo czy celowo?
      Publiczne adresy IP również pojawiały się w logu – choć nie zawsze.
      Jeśli API miało być dostępne publicznie, to ciekawe, czemu nie było do niego linku na głównej…

      Odpowiedz
      • 2013.10.23 10:55 nissan33

        może niesłusznie potraktowałem fragment o fv jako mało istotny, ale po przeczytaniu nagłówka „błąd znany od 14 lat” sugerującego że to u nich jest ten błąd od 14 lat, cały artykuł stracił dla mnie na wartości

        wracając do faktur to nie jest podane ile rzeczywiście wyciekło, żadnych szacunków
        piszesz „zapewne tysiące” – rozumiem że nie wiadomo ile, ja tutaj widzę jedną, może to jest faktura anonimowego donosiciela ;), nie widzę potwierdzenia dla „zabezpieczeniem nie objęto folderów z obrazami faktur” – gdyby był podany screen z listingiem katalogu wtedy byłoby potwierdzenie „tysięcy”

        jeżeli chodzi o API to przypuszczam że jest to rozwiązanie dla jakiegoś partnera, może dają je tylko dla zainteresowanych, dane są ogólnodostępne więc nie ma sensu jakoś szczególnie tego zabezpieczać, druga sprawa to chyba bez sensu byłoby pokazywać to na stronie głównej, gdzie 99,99% użytkowników tego nie potrzebuje :)

        morał: jaki kraj taki wyciek ;)

        Odpowiedz
        • 2013.10.23 12:14 Adam

          No to jeszcze gwoli wyjaśnienia, bo może niedostatecznie dużą czcionką napisano w artykule.

          Błąd od 14 lat – w tym akapicie wyraźnie napisano, że błąd, znany od 14 lat, od co najmniej roku występował na serwerze Empik.com.

          Co do faktur – również wyraźnie napisano, że wystarczyło zmienić numer faktury, by zobaczyć kolejne dokumenty. Umieszczanie zrzutów ekranu 5 czy 50 faktur chyba było bez sensu.

          Odpowiedz
  • 2013.10.23 09:30 zenek

    Sebastian Malinowski :)

    Odpowiedz
  • 2013.10.24 13:08 Adrian

    Co jeśli dostępne są dane po dopisaniu server-status do adresu, ale są skrócone – ExtendedStatus Off, czy da się z tego wyciągnąć jakieś informacje?

    Odpowiedz

Zostaw odpowiedź do nissan33

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

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

Komentarze