Bezpieczeństwo transakcji online - autouzupełnianie
Z artykułu dowiesz się
- Jakie dane są konieczne do poprawnej autoryzacji karty kredytowej.
- Kiedy bezpieczeństwo Twojej karty kredytowej może być zagrożone.
- Do czego służy funkcjonalność autocomplete w przeglądarce internetowej.
- Jak ochronić dane swojej karty kredytowej?
Wstęp
Coraz częściej płatności w polskich sklepach internetowych można dokonać korzystając z karty kredytowej. Zazwyczaj dane wymagane do autoryzacji karty podajemy on-line, każdorazowo przy zakupie. Informacje te nie są nigdzie przechowywane, a zatem nie mogą być przechwycone i wykorzystane przez hackerów. Przynajmniej tak zapewniają sprzedawcy. Czy aby na pewno to cała prawda?
O autoryzacji karty kredytowej.
Płatność on-line, z wykorzystaniem karty kredytowej wygląda w uproszczeniu w następujący sposób:
- Wybieramy interesujące nas towary.
- Wypełniamy dane naszej karty kredytowej (imię oraz nazwisko widniejące na karcie; numer karty; data ważności; kod zabezpieczający).
- Naciskamy przycisk „wyślij”.
- Jeśli cała procedura zostanie przeprowadzona pomyślnie, nasza karta zostaje obciążona płatnością, a towar jest wysyłany na wskazany adres.
Przykładowy formularz wypełnienia informacji o karcie kredytowej przedstawiamy poniżej.

Funkcjonalność autocomplete w przeglądarce WWW
W artykule przedstawiamy działanie funkcjonalności autouzupełniania (ang. autocomplete) w przeglądarce Firefox3.
Uwaga: w pozostałych przeglądarkach, funkcjonalność może działać inaczej.
Jeśli często wypełniamy formularze on-line – uzupełniając powtarzające się fragmenty, np.: imię, nazwisko, nazwa firmy, e-mail, itd. – z pomocą przychodzi nam funkcjonalność autocomplete , dostępna w przeglądarkach internetowych. Pozwala ona na samoczynne zapamiętanie pewnych danych, a następnie przywołanie tych danych w sposób automatyczny . Przywołanie „podpowiedzi” wypełnienia następuje poprzez podwójne kliknięcie na pole, które chcemy wypełnić. Dzięki temu nie jesteśmy zmuszeni do żmudnego, ręcznego uzupełniania dużej ilości danych.
Autouzupełnianie – przykład
Aby zobrazować funkcjonalność otwórzmy przeglądarkę Firefox i wejdźmy na stronę wyszukiwarki Google (strona wyszukiwania hasła XSS). Następnie wpiszmy w pole szukania słowo: securitum.
Zamknijmy teraz wszystkie okna przeglądarki Firefox i otwórzmy ją ponownie, wchodząc na stronę o zupełnie innym profilu: tlumacz.interia.pl
Kliknijmy dwukrotnie w polu „wpisz hasło”. W tym momencie otrzymamy listę słów szukanych wcześniej w Google - w tym "securitum"...

Zauważmy że:
- Autouzupełnianie umożliwiło nam wypełnienie danymi z Google informacji na zupełnie innej stronie (tłumacz.interia.pl).
- Zamknięcie przeglądarki nie usuwa historii autouzupełniania.
- Autouzupełnianie działa niezależnie od użytkownika (nie wymagane są np. potwierdzenia chęci korzystania z tej funkcjonalności).
- Aby otrzymać podpowiedź wypełnienia na tlumacz.interia.pl (podpowiedź zawierała dane wpisane na stronie Google) nie musieliśmy podawać hasła zabezpieczającego.
Fragment kodu HTML Interia:
Fragment kodu HTML Google:

Z kolei dlaczego nie wykorzystaliśmy głównej strony google? Otóż na głównej stronie, pole formularza posiada wyłączoną opcję autocomplete!
Fragment kodu HTML głównej strony Google z wyłączoną funkcjonalnością autocomplete dla pola q:

Wniosek z powyższych przykładów: autouzupełnianie działa dla pól formularza HTML, które mają takie same nazwy (mimo, że znajdują się w zupełnie innych formularzach, na zupełnie innych stronach). Dzięki tej właściwości - działa wskazany wyżej przykład z wyszukiwarką Google oraz stroną słownika Interia.
Zagrożenia stwarzane przez autocomplete.
Warto zauważyć, iż podobną procedurę można wykonać dla formularzy, gdzie proszeni jesteśmy o wypełnienie danych karty kredytowej. W takim przypadku, na zupełnie innej stronie jesteśmy w stanie odtworzyć numer karty kredytowej, imię i nazwisko posiadacza, kod zabezpieczający – w skrócie: wszystkie dane, które uzupełniamy w polach tekstowych formularza. Jedyną informacją, której brakuje do uzyskania pełnych danych karty kredytowych jest data ważności karty (miesiąc/rok) – tutaj jednak wybór jest ograniczony…
Aby uzyskać powyżej wskazane dane karty kredytowej, muszą być dodatkowo spełnione pewne warunki, spośród których najistotniejszy jest pierwszy:
- Atakujący musi posiadać dostęp do przeglądarki, z której nastąpiło wpisanie danych karty kredytowej.
- Atakujący musi "zgadnąć" nazwy pól formularza służącego do wypełniania karty kredytowej (zazwyczaj nie stanowi to problemu).
- Formularz musi mieć aktywną opcję autocomplete (jest to domyślne działanie formularzy).
Jak się chronić?
Dane, o których mowa w artykule przechowywane są w przeglądarce internetowej. Istnieją jednak następujące metody ochrony przed tego typu wyciekiem poufnych danych:
Wyłączenie autocomplete w przeglądarce
W przypadku przeglądarki Firefox3, należy z menu głównego wybrać: Narzędzia -> Opcje a następnie na zakładce Prywatność odznaczyć opcję: „pamiętaj dane wprowadzone w formularzach i pasku wyszukiwania”.
Spowoduje to dezaktywację mechanizmu w obrębie przeglądarki.
Operację może wykonać użytkownik niezależnie od twórcy / dostawcy portalu płatności.
Usunięcie cache z przeglądarki.
Metoda zalecana przy korzystaniu z publicznych komputerów. Po zakończeniu korzystania z tego typu środowiska - rekomendujemy usunąć historię oraz pliki tymczasowe z przeglądarki. W przypadku Firefox należy z menu głównego wybrać opcję: Narzędzia-> wyczyść dane prywatne. Następnie zaznaczyć wszystkie dostępne opcje i ostatecznie kliknąć "Wyczyść dane prywatne".
Wyłączenie autocomplete na serwerze
Przy tworzeniu formularzy przechowujących wrażliwe dane, przede wszystkim ich twórcy powinni zadbać o umieszczenie w formularzu parametru autocomplete=”off”, przykładowo:
<form id="paymentform" method="post" action="/ProcessCreditCard/" autocomplete="off">
Zapewni to automatyczną dezaktywację (tylko dla danego formularza) obsługi autouzupełnienia po stronie przeglądarki.
Operację może wykonać dostawca/twórca portalu płatności – niezależnie od ustawień użytkowników korzystających z portalu.
W tym miejscu warto nadmienić, iż poprawność implementacji mechanizmu autocomplete - to jeden z wielu sprawdzanych przez nas elementów ramach oferty testów bezpieczeństwa rozwiązań e-commerce.
Podsumowanie
Przy zakupach on-line zawsze należy zachować odpowiednią ostrożność. Istnieje wiele czynników, które mogą zagrozić bezpieczeństwu transakcji on-line - jednym z nich jest wyciek danych, odbywający się dzięki niepoprawnie skonfigurowanemu mechanizmowi autouzupełniania. Ochroną przed atakami na ten mechanizm są:
- poprawne budowanie formularzy (dostawcy portali udostępniających płatności),
- odpowiednia konfiguracja przeglądarki (użytkownik korzystający z płatności on-line),
- usuwanie plików tymczasowych przeglądarki (użytkownik korzystający z płatności on-line).
Więcej informacji
Michał Sajdak
Dyrektor d/s Rozwoju
Securitum
michal.sajdak@securitum.pl