10:14
9/11/2016

Advertisement

Wczoraj zakończyła się konferencja Security PWNing, której mieliśmy przyjemność patronować i na której także mieliśmy swój wykład. Materiały z konferencji pewnie niebawem zaczną pojawiać się w sieci, ale już dziś, jeden z prelegentów, Tomasz Zieliński, pracownik PGS Software (i autor jednego z artykułów na Niebezpieczniku) postanowił się podzielić raportem o stanie bezpieczeństwa aplikacji mobilnych polskich banków. Nie jest źle, ale w niektórych przypadkach mogłoby być znacznie lepiej…

Bankom też zdarzają się błędy

Bank kojarzy nam się z bezpieczeństwem. I faktycznie, poza włamaniem, kradzieżą pieniędzy i wyciekiem danych klientów do Plusbanku, o innych udanych atakach na oprogramowanie bankowe, kończących się kradzieżą środków (z winy banku) raczej nie było głośno na przestrzeni ostatnich lat, co nie oznacza, że incydentów tego typu lub możliwości ich wygenerowania nie było ;). Spektakularnych wpadek w Polsce jest stosunkowo mało, głównie dlatego, że ten sektor jest dość mocno regulowany prawnie. Przepisy i rekomendacje wymuszają wykonywanie testów penetracyjnych i audytów. Banki też, w przeciwieństwie np. do bitcoinowych giełd, mają spore budżety na bezpieczeństwo i budżety te wydają — nie tylko na sprzęt, oprogramowanie i personel własny, ale także zewnętrzne usługi dbające o bezpieczeństwo klientów.

Możnaby więc domniemywać, że równie dopracowane pod kątem bezpieczeństwa jak serwisy internetowe, będą aplikacje mobilne banków. Niestety, Tomasz udowodnił, że choć za pomocą znalezionych przez niego błędów nie da się “zrobić skoku na kasę”, to cześć z nich jest tak podstawowa, że aż dziwne iż wymsknęły się one oczom testerów. Pełen raport z analizy aplikacji mobilnych możecie znaleźć na stronie PGS Software, my naświetlimy tylko kilka co ciekawszych znalezisk Tomasza.

Prezentacja Tomasza na PWNing

Prezentacja Tomasza na PWNing

Oto lista wszystkich przetestowanych aplikacji:

• PKO Bank Polski (pl.pkobp.iko)
• Pekao SA (eu.eleader.mobilebanking.pekao)
• Bank Zachodni WBK (pl.bzwbk.bzwbk24)
• mBank (pl.mbank)
• ING Bank Śląski
• Getin Noble Bank
• Bank Millennium
• Citi Handlowy (com.konylabs.cbplpat)
• BGŻ BNP Paribas (com.comarch.mobile.banking.bnpparibas)
• BPH (pl.bph)
• Alior Bank (com.comarch.mobile)
• IdeaBank (pl.ideabank.mobilebanking)
• Eurobank (pl.eurobank)
• Credit Agricole (com.finanteq.finance.ca)
• T-Mobile Usługi Bankowe (alior.bankingapp.android)
• Orange Finanse (com.orangefinanse)
• Bank SMART (pl.fmbank.smart)

Numerem jeden na liście znalezisk Tomasza jest niewątpliwie Idea Bank. Już wczoraj informowaliśmy o tym problemie na naszym Facebooku. W aplikacji tego banku Tomasz znalazł listę testowych loginów i haseł, i jak sam stwierdził w trakcie prezentacji, spotkany w pociągu człowiek w kapturze, którego twarzy nie dojrzał, szepnął mu tuż przed wyjściem, że te dane działają także na produkcji…

Hasła zaszyte w aplikacji mobilnej IdeaBanku

Hasła zaszyte w aplikacji mobilnej IdeaBanku

Co ciekawe, IdeaBank w odpowiedzi do klienta odsyłał także poziom ryzyka klienta. Tomaszowi aplikacja przyznała poziom wysoki :-) Z IdeaBankiem, wedle relacji Tomasza wiąże się także jeszcze jedna ciekawostka. Jako jeden z nielicznych banków, w ogóle nie odpowiedział na wiadomość Tomasza o powyższym błędzie… Bo tu zaznaczyć należy, że Tomasz aplikacje banków rozpracowywał kilka tygodni temu i o każdym problemie informował poszczególne banki. Jedne reagowały szybciej, inne wolniej, a część wcale.

UPDATE: Mamy odpowiedź IdeaBanku co do ww. haseł: “Pokazane w prezentacji hasła i loginy dotyczą kont środowiska testowego aplikacji, nie zaś środowiska produkcyjnego. Nie mają one wpływu na bezpieczeństwo naszych Klientów i poprawne działanie aplikacji mobilnej. Bardzo nam przykro, że mimo wszystko te dane zostały tam umieszczone. Zapewniamy, że najszybciej jak to możliwe plik z kontami testowymi zostanie przez nas usunięty. Pozdrawiamy.

IdeaBank nie jest jednak jedynym bankiem, który w swojej aplikacji miał zaszyte dziwne pozostałości testowe. Aplikacja Banku Smart zawierała plik develop.properties.example listę kont testowych o nazwach Hans Kloss, James Blond i Putin. Credit Agricole z kolei zostawiło logi Jenkinsa…

Czasem ciekawe rzeczy na telefonie pojawiały się dopiero w trakcie korzystania z danej aplikacji. Aplikacja BZ WBK, jeśli ktoś aplikował o kartę płatniczą, zapisywała link do formularza z danymi klienta w logach (do których na wersjach do Androida 4.0 można się dostać z innej aplikacji).

bzwbk-dane-klientow

Nie cała komunikacja z bankiem jest szyfrowana…

Okazuje sie też, że nie wszystkie aplikacje w całości komunikują się poprzez szyfrowane połączenie. Ładowanie zasobów po HTTP umożliwia podstawianie treści do aplikacji BZ WBK. Tomasz zademonstrował podmianę zdjęcia na ekranie głównym aplikacji oraz zawartości linku z instrukcjami …bezpieczeństwa.

bzwbk-no-https

Ale połączenia po HTTP realizowały także aplikacje PKO BP, Pekao, BZ WBK, mBanku, ING, Getin Banku, BGŻ, BPH , Alior Banku, IdeaBanku, Eurobanku, CreditAgricole. Czasem były to linki do dokumentów w formacie PDF, gdzie indziej do regulaminów, stron z ofertą czy nawet odnośniki z głównego menu aplikacji.

Brakowało także pinningu certyfikatów. W przypadku aplikacji mBanku, IdeaBanku, T-Mobile Usługi Bankowe, Orange Finanse czy Banku Smart proxy może swobodnie przechwytać ruch i modyfikować żądania i odpowiedzi. To samo w Pekao, Banku Zachodniego, Raiffe- isen i Citi także komunikowały się z częścią serwerową, pozwalając na podsłuchanie transmisji dodatkowo szyfrowanej lub opatrywanej podpisem cyfrowym, po podstawieniu fałszywego certyfikatu HTTPS.

Jaka była reakcja banków?

Temu poświęcono w raporcie osobny rozdział…

Zaczęliśmy od telefonów do wszystkich BOK-ów z prośbą o przełączenie do lub kontakt zwrotny z działu bezpieczeństwa. Same biura obsługi klientów (tak telefoniczne, jak i osiągalne e-mailowo lub przez formularz kontaktowy) traktowaliśmy jako stronę niezaufaną. Zdajemy sobie sprawę, że może to być ocena niesprawiedliwa, ale mając na względzie powszechny na tym odcinku outsourcing, dużą rotację, niskie płace i ogólne cięcie kosztów – zdecydowa- liśmy się nie zdradzać tam informacji o słabościach bankowych systemów IT.
Metoda telefoniczna zawiodła na całej linii. Nie było ani jednego przypadku sukcesu. BOK-i są całkowicie odizolowane od części biznesowej i nie dysponują możliwością wyeskalowania zgłoszenia do osób odpowiedzialnych za bezpieczeństwo informatyczne. Personel starał się pomóc, jak umiał, ale ustne dyktowanie informacji o podatnościach jako zgłoszenia reklamacyjnego nie jest ścieżką dającą nadzieję na sukces.

Po kontakcie e-mailowym, jeszcze tego samego dnia odpowiedź (wraz z kluczami PGP) przysłały Alior Bank i Milennium. Dzień później odpowiedział ING, wskazując instrukcję na międzynarodowej witrynie korporacji. Po weekendzie odpowiedział mBank, jego klon Orange Finanse oraz BZ WBK. Tydzień po wysłaniu pytania otrzymaliśmy klucz publiczny banku BPH. Łącznie, na przesłane pytania odpowiedziało mniej niż połowa weryfikowanych banków.

Tylko jeden bank, Millenium, odesłał Tomaszowi pisemne podziękowania, dołączając gadżet, klucz Yubikey (wartość od 18-40USD). Testy nie były zamówione, banki programów bug bounty nie prowadzą, ale…

Korzystam z tych aplikacji — co robić, jak żyć?

Na koniec, jeśli korzystacie z którejś z testowanych przez Tomasza aplikacji mobilnej, uspokajamy. Błędy występują, ataki są możliwe, ale poza incydentalnymi przypadkami, nie stanowią one dużego zagrożenia, które rozumiemy jako natychmiastowa, masowa kradzież środków z kont klientów lub ich danych. Nie oznacza to, że błędów tych nie powinno się usuwać… Mamy więc nadzieję, że raport Tomka będzie dobrym przyczynkiem do tego, żeby część z banków uszczelniła proces testów swoich aplikacji i wymogła na ich dostawcach pewne procedury minimalizujace wystąpienie tak podstawowych błędów.

Na koniec jeszcze raz polecamy zapoznanie się z pełną wersją raportu. A jeśli interesuje Was bezpieczeństwo aplikacji mobilnych, to przypominamy, że wszystkie typu błędów, jakie zostały odnalezione przez Tomasza są elementem naszego szkolenia z Bezpieczeństwa Aplikacji Mobilnych. Zostało jeszcze kilka wolnych miejsc na ostatni w tym roku termin tego szkolenia w Krakowie 15-16 grudnia. Zapraszamy do rejestracji. Z kodem “PrzerazilMnieRaportTomka” wpisanym w uwagach naliczamy 100PLN rabatu :)

Przeczytaj także:

34 komentarzy

Dodaj komentarz
  1. Ostatnia pozycja w pliku z hasłami wygląda tak:
    prod;FirmaNaProdzie;123456Qq;2846

    Just sayin’

  2. człowiek w kapturze jechał tramwajem ;-)

  3. Cieszę się, że Alior respektuje TLS i bez fuckupów większych w apce – używam jej dość aktywnie w różnych sieciach…

    • uwaga, komentarz zawiera lokowanie produktu… :-P

  4. Jedyny bezpieczny w pełni sposób na bankowanie telefoniczne to architektura, w której główna aplikacja jest uruchamiana na karcie SIM, a anroidek/telefon tylko wykonuje jej proste polecenia (bez kryptografii). Bank się musi wtedy z dostawcą karty/usługi telefonicznej dogadać, żeby wpuścili ich aplikację na kartę. Dlatego raczej tego nie robią – z oszczędności. Taki soft robi się w Polsce, ale głównie na inne rynki. Inne metody nie zapewnią bezpieczeństwa takiego, żebym nie bał się korzystać.

    Obiektywność moja może być naruszona tym, że pracowałem dla firmy, która karty sim i takie rozwiązania wykonuje.

    • “JEDYNY bezpieczny W PEŁNI”… Kolega chyba zbytnio przejął się wewnątrzfirmowymi szkoleniami produktowo-technologicznymi. Bo sam nie ośmieliłbym się, w odniesieniu do żadnego systemu, użyć wielkich kwantyfikatorów. Jeśli chodzi o aplikacje wykonywane na karcie SIM, to owszem, transmisja między nią a bankiem jest chroniona (bo klucze nie wychodzą poza kartę), ale użytkownik i tak jest autoryzowany zwykłym ciągiem znaków wprowadzonym z telefonu. I dostawca karty nie zagwarantuje, że ten ciąg nie zostanie podsłuchany na poziomie telefonu.
      Ciekaw jestem, czy w tej firmie nazwę klienta wymawia się BĄK…

    • Poza tym nie wiadomo, czy producent karty SIM nie zaimplementowałby w niej jakiegoś backdoora. Ale podobne rozwiązanie jest już stosowane w przypadku płatności przez NFC – układ komunikuje się z kartą SIM.

  5. Korzystam z Windows Phone (tak, wiem, że to dziwne). Czy tam aplikacje mobilne banków są też tak schrzanione?

    • Poprzestałbym na:
      “Korzystam z Windows Phone (tak, wiem, że to dziwne). Czy tam aplikacje mobilne banków są”

  6. Tylko Android? Szkoda :(

  7. a teraz coś z zupełnie inne beczki… a jakieś informacje o tym co się działo w angielskim banku Tesco? albo choć link do jakiegoś rozsądnego opisu? bo z mainstreamu to niczego rozsądnego się dowiedzieć nie można…

  8. To skoro o bankach, mam pytanie, czy pojawił się przepis, który zmusza bank do ujawniania warunków umowy (4MB) w postaci nieszyfrowanego maila na jaki procent, okres i jakiej wysokości lokatę zakładam? I tak co dziennie np. dla lokaty pingpong (lokowanie produktu).

  9. FM Bank czyli jeszcze Smart czy już Nest?
    Pytam bo:
    a) mam i używam
    b) apka jest świeża więc jest (jeszcze) dość często aktualizowana i usuwane są błędy (oraz zapewne pojawiają się nowe).
    A artykuł czy owe testy sprzed paru tygodni obejmują okres rebrandingu banku…

    • > A artykuł czy owe testy sprzed paru tygodni obejmują okres rebrandingu banku…

      a nie, to w takim ukladzie wszystko w porzadku…

  10. Z ciekawostek dotyczących bezpieczeństwa banków: ING ma takie coś jak 3DSecure. W przypadku płatności kartą przez internet (np kupno biletów lotniczych) teoretycznie nie wystarcza nr karty i CVV2. Po podaniu tych danych strona przekierowuje na domeny banku, gdzie trzeba podać kod SMS.

    I tak też ostatnio kupowałam bilety lotnicze, ale że jestem za granicą nie miałam mojej polskiej karty SIM połączonej z bankiem zamontowanej w telefonie. Wyskoczyło mi okienko o wpisaniu hasła SMS więc mozolnie zaczęłam wyciągać kartę zagraniczną i wkładać polską. Telefon się zrestartował, znalazł roaming, wyświetlił mi szereg informacji od operatora ale SMS z banku przyjść nie chciał. Postanowiłam więc kliknąć anuluj aby spróbować przeprowadzić transakcję od nowa. Jakieś było moje zdziwienie gdy odkryłam, że przycisk anuluj (bez wpisywania kodu) także autoryzował transakcję!

    Niebezpieczniku, może skrobniecie coś kiedyś na temat tego wątpliwego zabezpieczenia, jakim jest 3DSecure w ING Banku?

    • Funkcjonalność 3DSecure to niestety dodatkowe zabezpieczenie nie dla posiadacza karty, ale dla sklepu (żeby bronić się przed chargeback’iem ?). Jeśli sklep źle obsługuje tą funkcjonalność (Empik przez 3DSecure żąda potwierdzenia płatności na kwotę 1 pln bez względu na rzeczywisty koszt zakupów), lub nie obsługuje jej wcale (PayPal) to od strony klienta wygląda to tak jakby posiadał zwykłą kartę bez dodatkowych zabezpieczeń. Reasumując: skradziony numer karty nawet z zabezpieczeniem 3DSecure można wykorzystać do płatności przez PayPala bez potrzeby potwierdzania transakcji poprzez SMS’a. 3DSecure to iluzja bezpiecznych płatności internetowych. Swoją drogą, czy jakiś polski bank oferuje wirtualne karty płatnicze z możliwością generowania unikalnego numeru do każdej transakcji?

    • Mostro, dziękuję za wyjaśnienie. To 3DSecure jest tak potwornie upierdliwe, że jak na razie wydłuża każdą moją transakcję o jakieś 20-30 minut. I bardzo mnie ciekawiło, czy chroni to kartę przed kimkolwiek innym niź właściciel. W moim odczuciu tylko utrudnia zakupy nie zwiększając bezpieczeństwa.

  11. Taki żarcik:
    “Podchodzi starsza pani do kasy w banku i prosi o wypłacenie wszystkich środków z konta. Kasjerka wypłaca. Pani wraca za jakieś 10 minut i wpłaca ponownie całą sumę. Kasjerka nieco zdziwiona pyta: “Czemu pani wpłaca, to co przed chwilą wypłaciła?” Starsza, pełna mądrości życiowej pani odpowiada: ” A bo z wami nigdy nie wiadomo, przeliczyć musiałam”.

    motto: Ograniczone zaufanie :)

  12. Dlatego ja zawsze loguję się do banku po kablu, na desktopie i ze specjalnie przygotowanego liveCD który w hosts wycina wszystko z wyjątkiem domen mojego banku. Nie ufam żadnym rozwiązaniom które powodują że hasła do tak ważnych instytucji (zahashowane czy nie) latają w powietrzu co w wypadku appek na komórkę się zdarza.

    • Jestem w tej kwestii laikiem, ale czy takie wycinanie przypadkiem nie zostałoby przez stronę banku uznane za podejrzane? Różnorakie narzędzia analityczne itp nie sa hostowane na domenach banku u ich dostawców.

    • Nie, wszystko działa poprawnie, przynajmniej w wypadku mojego banku.

  13. Mój bank też ma aplikację mobilną, ale nie korzystam. Wymaga wielu zbędnych uprawnień, a w tym przypadku dane wykradzione ze smartfona byłoby bardzo łatwo powiązać z konkretnym użytkownikiem, bo bank posiada dane osobowe każdego klienta. Oczywiście nie udostępniają kodu źródłowego. Na razie najlepszą aplikacją bankową, jaką znam, jest Mycelium :D

  14. Obecnie Smart Bank zmienił się w NestBank, między innymi aplikacja mobilna. Ale jest do dokładnie to samo co było, zmiany są “css’owe”.

  15. Czy jakiś polski bank oferuje szyfrowanie korespondencji z klientem kluczem PGP? Wysyłanie e-mailem historii transakcji i stanu konta plaintextem np. na konta NSAmaila jest zwyczajnie chore. Świat stanął na głowie.

    • NestBank wysyła informacje za jest coś takiego do podejrzenia na osobnej stronie bo zalogowaniu się. https://wyciagi.nestbank.pl/

    • Jak plaintextem? Powinno iść po TLS. A to, że używasz usługodawcy któremu nie ufasz to już twój problem.

    • @m7

      Informacja nie znajduje się na Twoim komputerze. Jeśli treść nie jest zaszyfrowana, każdy z dostępem do maszyny jest w stanie ją odczytać. Nie jesteś w stanie tego zweryfikować w żaden sposób.

      Nie każdy jest specjalistą od bezpieczeństwa. A nawet ci, dla których uzyskanie takiej wiedzy jest osiągalne, reagują syndromem wyparcia.

      https://duckduckgo.com/?q=NSA+dick+picture

    • @m7

      Nawet jeśli podasz adres protonmaila, otwartoźródłowej skrzynki której zawartości sami administratorzy nie mogą czytać, ale treść pójdzie plaintextem (banki tak wysyłają), to BND wymusi zdjęcie TLSa i przechwyci we Frankfurcie.

      “Like many security mechanisms, STARTTLS is designed to “fail open” rather than “fail closed,” meaning that when certain errors happen, servers will simply send e-mail in unencrypted form rather than failing to send the message at all. Network actors can exploit this design by sending certain types of packets that trigger a fail open error.”

      http://arstechnica.com/security/2015/10/dont-count-on-starttls-to-automatically-encrypt-your-sensitive-e-mails/

      Masz własną skrzynkę, Mail-in-a-Box, etc.?

      Ruch z Polski do Polski potrafi iść przez Frankfurt. Nie pójdzie? O ile GCHQ nie jest po prostu wpięte do polskich kabli za zgodą polskich służb, to NSA łamie routery na całym świecie i też pewnie przechwyci.

      A może założyłeś skrzynkę na GMailu, prosto u partnera NSA? :-D Oprócz treści, stanu konta, będą innej informacje, jak historia przeglądania (śledzenie Google na innych stronach), odcisk palca przeglądarki, harmonogram dnia na podstawie czasu i miejsc logowań, itd. itd.

      E-mail nie może być bezpieczną formą komunikacji. Nie, gdy gros użytkowników siedzi prosto u partnerów NSA, a treści nie szyfrują nawet banki.

  16. I tak to jest, gdy zamiast profesjonalistów, zatrudnia się pasjonatów – takich, jak Hans Kloss, nie obrażając Pana Mikulskiego.

  17. Osobiście mam konto w Millennium. Poczułem się bezpieczniej po tym artykule ☺️. Koniec reklamy

  18. Janos roku pisze do Alior Baku przez panel klienta, zgłaszam telefonicznie na Twitterze. I teraz to już w ogóle nie odpisują.
    Od jakiegoś roku cały czas odpisywali: “prace trwają, nic jeszcze nie mogą powiedzieć”.

    Nie wspomnę o kompatybilności z iOS10 oraz iPhone 7/7 plus.

    Zabezpieczenie aplikacji to jakaś kpina… ale obudza się jak stanie się coś “ciekawego”.

    Już dałem sobie spokój z zadawaniem pytań. W środę dzwoniłem do Alior Banku i miał się ktoś odezwać w ciągu 2dni…. i oczywiście zero odpowiedzi.

    Mogliby przynajmniej komentarze czytać w App Store.

  19. Pracowałem w jednej firmie, która tworzyła takie systemy mobilne dla niektórych banków wymienionych w artykule i nie tylko. Problem jest tylko jeden. W firmie liczącej tysiące pracowników jest tylko 1 tester wykonujący testy penetracyjne i 1 student z licencją na Burpa, który daje programistom log i mówi ‘poprawcie’… oczywiście firma nie zatrudnia do tego firm zewnętrznych. Nie sposób się domyślić że jeżeli przy 500+ programistach tworzących systemy bankowe jest jeden człowiek, który wie co z tym potem zrobić to właściwe testy penetracyjne są przewidziane na 2 dni ( razem z czasem na poprawę;) ), lub odbywają się pół roku po uruchomieniu na produkcji.

Twój komentarz

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

RSS dla komentarzy: