20:53
15/10/2012

Pewien klient banku Santander, sfrustrowany 2 letnią walką z bankiem w kwestiach bezpieczeństwa ujawnił dziś kilka wstydliwych szczegółów dotyczących tego jak funkcjonuje Santanderowa bankowość online.

Co bank Santander trzyma w ciasteczku?

Okazuje się, że brytyjski Santander trzyma w ciasteczku kilka “wrażliwych” danych:

  • Pełne imię i nazwisko właściciela konta
  • Numer karty kredytowej
  • Numer rachunku bankowego
  • ID użytkownika i jego alias

Przypomnijmy, że dane w ciasteczkach ustawionych przez domenę X przeglądarka wysyła tylko do tej domeny (z pewnymi wyjątkami, np. korzystając z podatności XSS niekiedy atakujący może odczytać ciastko ofiary). Teoretycznie więc przetrzymywanie tam nawet największych sekretów nie powinno stanowić wielkiego problemu o ile ciasteczka w transporcie są szyfrowane (ustawiona flaga Secure), ciasteczek nie da się odczytać poprzez XSS (ustawiona flaga httpOnly), a do naszego komputera nikt niepowołany nie ma dostępu (nie odczyta ciasteczka z dysku).

Niestety Santander nie stosuje na ciasteczku flagi HttpOnly; a podatność XSS wg oburzonego klienta, przez rok znajdowała się na stronie logowania…

Ciasteczka zawierające “wrażliwe” dane to rinfo oraz NewUniversalCookie. Na marginesie, zawartością tego drugiego ciasteczka jest XML zakodowany w base64; niewykluczone więc, że znajduje się tu jeszcze jedna podatność).

Żeby było śmieszniej, ciasteczka Santandera są ustawione jako sesyjne (niszczenie po zamknięciu przeglądarki) ale ich zawartość nie jest nadpisywana po wciścięciu linka “wyloguj” — a zatem ciastko będzie można odczytać nawet jeśli ktoś się wyloguje, ale nie zamknie przeglądarki. Odrobinę zwiększa to “powierzchnię” ataku.

Santander niezgodny z PCI DSS

Należy także pamiętać, że operacje na kartach kredytowych reguluje m.in. norma/standard PCI DSS, która co prawda pozwala na przechowywanie numeru karty w systemie informatycznym (ale zgodnie z wymogiem 3.4, każe go uczynić “nieczytelnym”).

PCI DSS

PCI DSS

Wymóg 3.4 PCI DSS:
Render PAN unreadable anywhere it is stored (including on portable digital media, backup media, and in logs)

Santander przeczy sam sobie…

Jakby tego było mało, sam Santader w swojej polityce bezpieczeństwa i prywatności twierdzi, że stosowane przez niego ciasteczka nie zawierają danych osobowych.

Jak straszna jest to dziura?

Podsumowując, póki nie znaleziona zostanie jeszcze jedna podatność w webaplikacji Santandera do bankowości internetowej, tego typu niedbałość w przechowywaniu danych użytkownika nie jest “superkrytyczną dziurą”, jak już piszą niektórzy, ale zdecydowanie należy ją zaliczyć do nagannych praktyk. Delikatnie zwracamy uwagę, że gdyby wykradanie zawartości ciasteczek było tak łatwe do wykonania, w internecie co chwile słyszelibyśmy o masowych przejęciach kont użytkowników (w końcu to w ciasteczkach w większości przypadków trzymane są identyfikatory sesji).

Zdecydowanie poważniejszą wpadką był zeszłoroczny fail Citibanku, który pozwalał na kradzież numerów kart kredytowych klientów jedynie poprzez inkrementację identyfikatora w parametrze w URL…

P.S. Wszystkim, którzy twierdzą, że błąd jest poważny dlatego, że malware może odczytać dane z ciasteczek klienta Santandera przypominamy, że mając malware na komputerze, można przeprowadzić ciekawsze i znacznie poważniejsze ataki ;)

Przeczytaj także:



22 komentarzy

Dodaj komentarz
  1. Santander jest Hiszpański – pochodzi z miasta Santander. Warto podkreślić że chodzi o jego brytyjski oddział.

    • przeciez jest w 2’gim akapicie ,,brytyjskie Santander”

  2. i jest właścicielem bzwbk i niedługo planuje rebranding

    • rebranding czego na co?
      jest już Santander Consumer Bank S.A. – co jeszcze będzie..?

    • Rebranding dotyczy nie BZWBK a Kredyt Banku, którego fuzja nastąpiła z BZWBK :)

    • O ile wiem, zmiana BZ WBK na Santander będzie, już gdzieniegdzie jest czerwono. Ale to potrwa.

  3. Niektóre instytucje bagatelizują tego typu dziury dopóki nie stracą przez nie grubszej forsy.
    BTW niebezpiecznik wykrywa u mnie wirusa ? Serio ?

    • O ile się mylę to masz na myśli chmurę CloudFlare, w tym wypadku raczej nie musisz się martwić. Nie wiem czemu większość ludzi tak reaguje. Zresztą ten komunikat jest drażniący, u mnie się wyświetla kiedy wchodzę na jakąś stronę pierwszy raz/po czyszczeniu danych przeglądarki.

    • Podpinam sie pod Twoj komentarz, bo w domu za kazdym razem gdy proboje wejsc na niebezpiecznika dostaje taka ot informacje. Przez chwile sie balem ze moze ktos mi moze zrootowal router, ktory dolaczyl do botnetu wojownikow 4chana, jednak… RACZEJ nie ;) Coz poradzic w tej drazniacej sytuacji?

    • Jak masz dynamiczne IP, to odświeżyć lease, jak wychodzisz NAT-em, to znaczy, że w sieci masz spamera, który wpadł na honeypoty.

  4. No to jeszcze trzeba sprawdzić, czy w ciasteczku nie ma SQLi. W WebGoat był, o ile mnie pamięć nie myli :)

  5. A propos PCI DSS: “Acquirers are not currently mandated to carry out any specific PCI DSS validation or certification process.”

    Więc niby banki są zobowiązane do przestrzegania reguł pci dss, ale nikt ich w tym zakresie nie weryfikuje.

    • Nikt ich nie weryfikuje, bo nie ma do tego prawa*.

      * – w przypadku kiedy w umowie z MasterCard/Visa/Amercan_Express lub centrum rozliczeniowym nie masz w umowie zapisu o tym, że musisz osiągnąć i utrzymać zgodność z PCI DSS. Niestety, nad czym również ubolewam, takich zapisów w praktyce nie ma lub zazwyczaj nie ma. Mowa oczywiście o bankach w Polsce. Winne moim zdaniem nie są banki, a wyżej wymienieni, którzy podpisują umowy z bankami bez stosownych zapisów o PCI DSS.

  6. Dochodzi jeszcze możliwość kradzieży zahibernowanego/uśpionego komputera (dziś z dużą pewnością będzie to laptop)?

  7. Swoją drogą, bank musi taki PAN trzymać w formie zahashowanej, żeby np. stwierdzić, czy karta należy do niego (powiedzmy przy transakcjach). Czyli z odzyskaniem numerów kart z dumpa bazy danych albo backupów nie powinno być problemu. No, chyba że używają soli i mają na to jakiś sprytny sposób (solenie CVV2 i PINem raczej odpadają, są za krótkie).
    Czy ktoś ma może inne refleksje?

    • Sorry, brak refleksji. W tematach informatycznych mam tylko wnioski oparte na obserwacjach, a nie na ‘wydaje mi się’.

  8. PAN to nie to samo, co numer karty kredytowej, to jest numer rachunku bankowego.
    Full Mag-stripe data już jest odrobinę bliżej, ale – nadal nie to samo.
    I czego się czepiacie standardu? Przecież nic nie mówi o CC#…
    Macie rację, numer karty nie powinien być id sesji, to inna sprawa, ale raczej z dziedziny session-hijacking.

    • Nie, nie. PAN to numer karty kredytowej (choć nazwa jest bardzo myląca):
      PAN: Acronym for “primary account number” and also referred to as “account number.” Unique payment card number (typically for credit or debit cards) that identifies the issuer and the particular cardholder account.

  9. Tak sobie czytam i nie dowierzam, szyfrowane czy nie szyfrowane tak nie powinno być. Przecież takich systemów nie tworzą ludzie z łapanki więc dlaczego nie zrobić tego porządnie – w taki sposób by nikt nie miał wątpliwości, że wybronimy się przed atakiem xss…?

  10. piko: “przetrzymywanie tam nawet największych sekretów nie powinno stanowić wielkiego problemu o ile ciasteczka w transporcie są szyfrowane (ustawiona flaga Secure)” – tutaj jest nieścisłość, flaga Secure sprawia, że ciasteczko z takim atrybutem będzie wstawione w żądanie HTTP pod warunkiem, że komunikacja jest szyfrowana, a będąc precyzyjnym, jest to połączenie HTTPS.

    Zwracam na to uwagę, bo często spotykam ludzi, którzy twierdzą, że atrybut Secure służy do szyfrowania ciasteczek, co prawdą nie jest ;-)

  11. Ciekawe co by się stało jakbym w ciastku podmienił swój numer konta na czyiś (skądinąd mi znany)? ;)

Twój komentarz

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

RSS dla komentarzy: