Paweł Goleń, blog

Ostatnio na “czołowych portalach informacyjnych i blogach” można było natknąć się na informacje o tym, jak strasznie źle jest z bezpieczeństwem bankowości mobilnej (np.:Czy aplikacje mobilne polskich banków są bezpieczne?, Test (nie)bezpieczeństwa mobilnych aplikacji do obsługi kont bankowych, Bezpieczeństwo mobilnych aplikacji polskich banków, Korzystasz z mobilnych aplikacji bankowych? Uważaj – wiele z nich było niezabezpieczonych, Horror. Wchodzisz na konto przez smartfona? Oni sprawdzili które apki są najbardziej “dziurawe”). Wszystko przez raport PGS Software. Cóż, jak zwykle – autorzy tych artykułów mają tendencję do wyolbrzymiania znaczenia znalezisk. Fakt, niektóre z nich były ciekawe, ale dobrze należałoby się zastanowić nad rzeczywistym ryzykiem (czytaj – prawdopodobieństwem zrealizowania całego scenariusza ataku).

Tak, nie należy pewnych rzeczy logować (dość powszechny błąd), ale jak to z tych logów odczytać. Tak, jest to możliwe technicznie, ale jakie jest prawdopodobieństwo takiego zdarzenia? Ile warunków wstępnych musi być spełnionych by rzeczywiście dało się zobaczyć czyjś wniosek lub przejąć czyjąś sesję?

Ciekawszy jest fragment o bezpieczeństwie komunikacji. Problem w tym, że z raportu nie wynika wprost, czy brak było jakiejkolwiek walidacji certyfikatu serwera (jeśli tak – trupy, zagłada, przemoc), czy jedynie brak dodatkowego zabezpieczenia w postaci certificate pinning (ciągle problem, ale jednak mniejszy). Poza tym bezpieczeństwo komunikacji to temat nieco szerszy, raport nie wspomina choćby o wspieranych protokołach i szyfrach. Sama weryfikacja certyfikatu jest też bardzo szerokim tematem (np. daty ważności certyfikatów w ścieżce, sprawdzanie CRL).

Kolejny interesujący, choć niestety fatalnie opisany problem, to “łączenie się z serwisem działającym w tle”. Co to konkretnie znaczy? Czy jest to komunikacja między komponentami z użyciem mechanizmu broadcastów bez odpowiedniego ograniczenia (uprawnienia, globalny sendBroadcast vs. LocalBroadcastManager)? A może coś jeszcze innego?

Modyfikacja zachowania aplikacji przez modyfikację plików konfiguracyjnych? Super, a jak te pliki mają być modyfikowane? Bo albo jest to do zrobienia z poziomu innych aplikacji bez naruszania modelu bezpieczeństwa systemu Android (źle), albo najpierw trzeba ten model naruszyć – czyli mamy już większy problem, bo czy w tym przypadku można ufać samej aplikacji?

Nie widzę też, by raport poruszał temat przechowywania danych lokalnie, uwierzytelnienia klienta i autoryzacji transakcji. A szkoda, ciekawy jestem na przykład, czy jedna z badanych aplikacji nadal szyfruje lokalną bazę przy pomocy klucza wygenerowanego na podstawie PIN użytkownika, a obok tej bazy nadal leży SHA1 z tego PIN.

Sam raport (dla mnie trochę mało techniczny) jest tutaj: Niebezpieczeństwa mobile bankingu. Miłej lektury!

Oryginał tego wpisu dostępny jest pod adresem Ach te nieszczęsne błędy w bankowości mobilnej!

Autor: Paweł Goleń

Ciekawe, nie powiem:

Załącznik (VirusTotal).

Oryginał tego wpisu dostępny jest pod adresem Ciekawe adresy IP tam mają

Autor: Paweł Goleń

Mam możliwość porównywania trzech systemów (iOS, Android, Windows 10 Mobile) i muszę przyznać, że pod wieloma względami najbardziej podoba mi się ten ostatni – Windows 10 Mobile. Tak, system w znacznym stopniu jest niszowy, aplikacji niewiele, w sumie nie do końca wiadomo, czy Microsoft będzie produkował telefony (i pod jaką marką), ale...

Dlaczego podoba mi się Windows 10 Mobile? To wiele małych rzeczy, choćby kafelki na pulpicie. Wielu osobom taka koncepcja interfejsu nie odpowiada, ale dla mnie takie kafelki są dużo bardziej funkcjonalne niż klasyczne ikony i widżety na Androidzie (bo o iOS w tym kontekście trudno cokolwiek powiedzieć). W sumie to chyba najbardziej odpowiadał mi system o interfejsie zbliżonym do Windows 10 Mobile na sprzęcie przemyślanym podobnie jak iPhone z dostępnymi aplikacjami tak jak w Android / iOS.

Oryginał tego wpisu dostępny jest pod adresem A mnie podobają się kafelki

Autor: Paweł Goleń

Jak być może pamiętacie bieganie nie jest moją ulubioną formą aktywności fizycznej. Nie jest, a może nie było? Czy coś się zmieniło?

Czytaj dalej...

Jedną z nowych, albo raczej ulepszonych, funkcji Androida 7 jest oszczędzanie baterii (Doze). Rzeczywiście, oszczędność baterii jest zauważalna, ale są zauważalne również pewne irytujące “niedogodności”. Przykładowo – zauważyłem, że Inbox ma tendencję do wyświetlania przypomnień z opóźnieniem (zapewne w trakcie jednego z okien), albo dopiero wówczas, gdy poruszę telefon. Niby nic, no chyba, że przypomnienie ustawione zostało po to, by przypomnieć o czymś “wrażliwym” czasowo...

Oryginał tego wpisu dostępny jest pod adresem Głęboko śpiący Android 7 (Doze)

Autor: Paweł Goleń

Wolę nie myśleć od ilu już lat korzystam z bankomatów... Kiedyś korzystanie z bankomatów było szybsze, a teraz? Teraz każda operacja jest doskonałą sposobnością do umieszczenia krótkiego filmiku reklamowego. Oczywiście filmik trwa dłużej, niż operacja, ale kto by się tym przejmował.

Oryginał tego wpisu dostępny jest pod adresem Wolniej i wolniej (przy bankomacie)

Autor: Paweł Goleń

O ile SQLi w formatce logowania nie jest zbyt powszechny, przynajmniej nie był w tej próbce aplikacji, które miałem okazję testować, to XSS w loginie użytkownika zdarzał się już częściej (patrz: Lekcja 21: Przykład – phishing na formatce logowania z wykorzystaniem XSS).

Okazuje się, że ten przykład również jest “zaimplementowany” w Altoro Mutual. I tak, ktoś musiał się odrobinę postarać by taki błąd tam umieścić, ponownie odsyłam do mojego dawnego wpisu Niekonsekwencje w ASP.NET.

Czytaj dalej...

Na początek założenie – ten wpis nie będzie powstawał dłużej niż 30 minut. O czym będzie – o oczywistych oczywistościach, które rzucają się w oczy w Altoro Mutual. Zacznijmy od części dla użytkownika nieuwierzytelnionego.

Czytaj dalej...

Już od kilku lat nie zajmuję się bezpośrednio testowaniem, ale od czasu do czasu nachodzi mnie ochota, by się pobawić i sprawdzić jak bardzo “zardzewiałem”. Wiele czasu na to nie mam, ale tak jakoś w takiej wolniejszej chwili w katalogu OWASP Vulnerable Web Applications Directory Project znalazłem to: Altoro Mutual.

Tak, ta strona powstała po to, by pokazać jak bardzo pewne skanery są efektywne w związku z czym jest nafaszerowana podatnościami w sposób nieco nierealistyczny, ale... No właśnie, tych podatności jest może za dużo, za łatwo je znaleźć (wpisywanie szczegółowych informacji o błędach mogli sobie darować), ale same typy podatności są prawdziwe. To nie jest jakiś CTF bardzo wyrafinowany technicznie, ale prezentujący jakiś przypadek praktycznie niewystępujący w naturze. Takie podatności naprawdę znajdowałem w trakcie pracy i wiem, że nadal są znajdowane.

Na stronie OWASP podane są dane do logowania jednego z użytkowników, ale (mały spoiler) nie są potrzebne. Być może (znów – zależy od czasu) napiszę kilka słów / przykładów jak się do testowania zabrać.

I na koniec “wyzwanie” – dojść do tego w jaki sposób w tej aplikacji można wykonywać przelewy bez uwierzytelnienia. Jeśli ktoś chce podnieść poprzeczkę – dojść do tego jak to zrobić mając do aplikacji wyłączenie dostęp anonimowy (hint: SWRlbnR5ZmlrYXRvcnkgdcW8eXRrb3duaWvDs3cgc8SFIGR6aWV3acSZY2lvY3lmcm93ZS4gSGludCAyOiBUbUVnY0hKNmVXdkZnbUZrT2lBeE1EQXhNVFl3TVRNPQ==).

Oryginał tego wpisu dostępny jest pod adresem Do zabawy: Altoro Mutual

Autor: Paweł Goleń

Słucham sobie podcastu (Daily Stormcasts) i nagle słyszę o tym: Over 18,000 Redis Instances Targeted by Fake Ransomware.

Ekhm, ekhm:

In a nutshell, this attack is performed by:

  • Sending a CONFIG command telling Redis to store key/values on disk in the “/root/.ssh/authorized_keys” file
  • Setting a key/value pair with the value being a public SSH key
  • The attacker can now log into the Redis instance via SSH as the root user

Taaaak.... Tak to się kiedyś właziło przez Oracle – manipulacja TNS Listener tak, by nadpisać plik authorized_keys logami, które zawierały klucz publiczny atakującego. Świat się jednak nie zmienia.

Oryginał tego wpisu dostępny jest pod adresem Tak, ja to już chyba gdzieś widziałem

Autor: Paweł Goleń