SlideShare una empresa de Scribd logo
1 de 44
(NIE)BEZPIECZEŃSTWO APLIKACJI
MOBILNYCH
Najciekawsze przypadki

Sławomir Jasek
SecuRing

KrakDroid, 7.12.2013
Abstrakt
●

Whoami

●

Kto i po co zaatakuje naszą aplikację

●

Analiza ryzyka – podejście racjonalne

●

●

Najciekawsze podatności w aplikacjach
mobilnych - przykłady
Najważniejsze zasady bezpieczeństwa
# whoami
Konsultant bezpieczeństwa (~ 10 lat), setki projektów, głównie
różnego typu aplikacje

SecuRing (od 2003)
Testowanie i doradztwo dotyczące bezpieczeństwa aplikacji i systemów IT
Jeśli to możliwe w ramach„white-box” (przegląd konfiguracji, kodu,
konsultacje), a także już na etapie definiowania architektury
Wynikiem testu jest dokładny raport opisujący szczegółowo znalezione
podatności (oraz wykonane testy), wraz z rekomendacjami/sposobami
naprawy
Kto i po co zaatakuje naszą aplikację?
Krzysztof Jarzyna
ze Szczecina

„grubszy cwaniak”
„script-kiddie”

Coś mu się przypadkiem
udało (lub nie), i afera
gotowa.

Dorwał się do narzędzi,
wali na oślep, zwykle nie
bardzo rozumiejąc co się
dzieje.

Ma motywację, zasoby
oraz możliwości
przeprowadzenia ataku
nakierowanego
Analiza ryzyka – podejście racjonalne

Profil ryzyka zależy od aplikacji – jej funkcji
biznesowych, potencjalnych strat, zysków dla intruza.
Przykład 1
●

●

●

Aplikacja mobilna dla kibiców
M.in. typowanie wyników meczu, wśród prawidłowych
losowanie biletów
Po wysłaniu typowania w aplikacji znika ta opcja,
można jedynie podglądnąć swój typ
Jak zaatakuje ten proces intruz?
Lokalne proxy – pozwala m.in. na edycję oraz
powtarzanie zleceń HTTP
Jak to zrobić poprawnie?
●

●
●

●

Pamiętaj, że ruch pomiędzy aplikacją a
serwerem może być przechwycony i
zmodyfikowany
SSL nie chroni przed lokalnym tamperingiem
Walidacja musi być również po stronie
serwera!
Nie ufaj mechanizmom bezpieczeństwa po
stronie klienta
Ryzyko?
Przykład 2
Aplikacja bankowości mobilnej, do uwierzytelnienia i autoryzacji
wymagany jest kod PIN.
Po 3-krotnym wprowadzeniu błędnego PIN-u konto blokuje się na
serwerze.
Pewne funkcje aplikacji (np. historia transakcji) działają również offline.
Aplikacja musi więc przechowywać lokalnie część danych pobranych z
serwera.
Dane te są trzymane w formie zaszyfrowanej, w prywatnym katalogu
dostępnym jedynie dla tej aplikacji. Do odszyfrowania konieczne jest
podanie PIN-u użytkownika.
Nie użyto stałego klucza zaszytego w aplikacji.
Spojrzenie intruza
●
●

●

●

Aby ukraść pieniądze potrzebuje kod PIN
Załóżmy, że udało mu się przejąć pełną
kontrolę nad urządzeniem mobilnym (np.
kradzież, malware...)
Jednak nie może podsłuchać kodu PIN – nie
ma możliwości kontroli nad urządzeniem w
trakcie gdy użytkownik korzysta z bankowości
Jak może uzyskać PIN?
Przykład 2 – proces offline.
Kod PIN jest używany również do odszyfrowania danych trzymanych
lokalnie.
Jest to funkcja, która działa bez połączenia do Internetu, więc kod PIN
nie może być zweryfikowany po stronie serwera.
Nawet jeśli aplikacja się zablokuje po 3 nieudanych próbach, jest to
proces offline. Konto nie zablokuje się na serwerze, a intruz może
odtworzyć stan aplikacji sprzed zablokowania i próbować ponownie.
Czyli - intruz może bez ograniczeń łamać kod PIN offline. Prawidłowy
kod pozna po tym, iż po rozszyfrowaniu uzyska sensowne dane.
Nawet jeśli kod jest złożony (a w praktyce najczęściej to kilka cyfr),
złamanie zajmie mu maksymalnie kilka godzin.
Jak to zrobić poprawnie?
●

●

●

●

Wszystkie próby użycia hasła (np. w celu
uwierzytelnienia lub autoryzacji) powinny być
weryfikowane na serwerze, nie lokalnie na urządzeniu.
Poprawne użycie kryptografii – uwaga na błędy
pozwalające na łamanie siłowe offline.
Najlepiej nie przechowywać żadnych danych wrażliwych
na urządzeniu, nawet w formie zaszyfrowanej
Uwaga na logi systemowe itp.
Warto poczytać:
http://wampir.mroczna-zaloga.org/archives/1147-jak-zepsuc-uwierzytelnienie-w-aplikacji-mobilnej.html
Ryzyko?
Przykład 3
Aplikacja mobilna do wyświetlania w czasie
rzeczywistym oraz natychmiastowego zlecania
różnych operacji.
W tym celu opracowano specjalny protokół,
komunikujący się przez SSL z serwerem.
Protokół - architektura
Protokół - pakiety
Protokół
Protokół – wywołanie WS
Protokół – inne metody WS
Metoda RegisterUser
Odpowiedź serwera:

<soapenv:Body>
<registerUserResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<registerUserReturn xsi:type="xsd:string">
&lt;error code=&quot;266&quot; &gt;Incorrect login&lt;/error&gt;
</registerUserReturn>
</registerUserResponse>
</soapenv:Body>
RegisterUser – drążymy dalej
Po dodaniu kolejnych brakujących parametrów:
●

Incorrect first name

●

Group with name null doesn't exist

●

Group with name admin doesn't exist

●

Group with name Administrator doesn't exist

●

A grupa „Root” ?
Protokół – Game Over
<soapenv:Body>
<registerUserResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<registerUserReturn xsi:type="xsd:string">

User was registered sucessfully with id=5392745
</registerUserReturn>
</registerUserResponse>
</soapenv:Body>

Tak zarejestrowany użytkownik po zalogowaniu mógł
zarządzać zasobami WSZYSTKICH INNYCH
UŻYTKOWNIKÓW SYSTEMU
Walidacja, separacja przywilejów,
wiele poziomów zabezpieczeń...
Inicjalizacja mobilnego kanału
bankowości
Bankowość internetowa, logowanie za pomocą hasła,
autoryzacja operacji za pomocą kodów SMS.
Aplikacja bankowości mobilnej, zabezpieczona za
pomocą PIN-u (uwierzytelnienie, autoryzacja
transakcji).
Solidna kryptografia w procesie dodawania nowego
urządzenia do konta, oraz w trakcie korzystania z
bankowości.
Proces przemyślany, aby użytkownik nie zrobił
sobie krzywdy.
Inicjalizacja mobilnego kanału proces
●

●

Po zalogowaniu w serwisie www, użytkownik wybiera opcję dodania
nowego urządzenia mobilnego. Wprowadza w formularzu nowy kod
PIN. Wyświetla się kod QR („seed” kryptograficzny) do
zeskanowania w urządzeniu.
Użytkownik skanuje kod QR w telefonie. Podaje na urządzeniu ten
sam kod PIN.

●

Aplikacja mobilna przesyła do serwera zaszyfrowany PIN-em „seed”

●

Serwer porównuje, czy dane się zgadzają

●

W aplikacji www należy następnie potwierdzić dodanie nowego
urządzenia, klikając przycisk „Akceptuj”.
Jak patrzy na to intruz?
●

●

●

●

Wyobraźmy sobie, że intruz przejął kontrolę nad
komputerem użytkownika (np. malware)
Poznał login i hasło do bankowości internetowej. Nie
może jednak ukraść pieniędzy, ponieważ nie ma
dostępu do kodów sms
Ale – przecież autoryzacja transakcji możliwa jest
również za pomocą aplikacji mobilnej
Jak przejąć aplikację mobilną?
Inicjalizacja mobilnego kanału - problem
Brak autoryzacji procesu dodawania nowego
urządzenia mobilnego!
Malware działający na stacji użytkownika
może dopisać sobie - bez jego wiedzy - nowe
urządzenie mobilne, uzyskując w ten sposób
możliwość autoryzacji transakcji.

ragecomic.fr
BankDroid
●

●

●

●

Aplikacja służy do informowania online o saldach oraz
zmianach na kontach różnych skandynawskich banków
Działa w tle, odpytując o status co chwilę
Łączy się automatycznie z bankami również gdy telefon
jest podłączony do niezaufanych sieci
100 000 – 500 000 instalacji
https://play.google.com/store/apps/details?id=com.liato.bankdroid
BankDroid – kod źródłowy (GPL)
CELOWO wyłączono weryfikację certyfikatów SSL banków:
public Urllib(boolean acceptInvalidCertificates) {
this(acceptInvalidCertificates, false);
}

public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType)
throws java.security.cert.CertificateException {
// TODO Auto-generated method stub
}

https://github.com/liato/android-bankdroid
BankDroid – i tak 21 razy ;)
src/com/liato/bankdroid/banking/banks $ grep "Urllib(true)" *
AbsIkanoPartner.java

Jojo.java

Bioklubben.java

OKQ8.java

DanskeBank.java

PayPal.java

DinersClub.java

Payson.java

EasyCard.java

PlusGirot.java

Eurocard.java

SEB.java

Everydaycard.java

SEBKortBase.java

FirstCard.java

Steam.java

ICA.java

Vasttrafik.java

IkanoBank.java

Volvofinans.java

IkanoPartnerBase.java
MITM na SSL? Ale kto by to potrafił?!!
To przecież takie trudne!

Czyżby?
dSploit – dzieciak sąsiadów już ma
Bardzo prosty interfejs, do obsługi przez laika.
WiFi Scanning & Common Router Key Cracking
Deep Inspection
Vulnerability Search
Multi Protocol Login Cracker
Packet Forging with Wake On Lan Support
HTTPS/SSL Support (SSL Stripping + HTTPS -> Redirection)
MITM Realtime Network Stats
MITM Multi Protocol Password Sniffing
MITM HTTP/HTTPS Session Hijacking
MITM HTTP/HTTPS Hijacked Session File Persistance
MITM HTTP/HTTPS Realtime Manipulation
GPL, do pobrania z http://dsploit.net
Przejęcie konta PayPal
Mały eksperyment
Kraków, 7.12.2013, ~13.30. MITM – podmiana obrazków (dSploit).
MITM na SSL – prawidłowa (?) reakcja
Nie wymagaj od użytkowników zbyt wiele!
Test na użytkownikach aplikacji Android – okienko
udające instalację nowego CA w telefonie.

Po zainstalowaniu kontrolowanego przez intruza CA, może on
przeprowadzić atak MITM na dowolne połączenie SSL w sposób
niezauważalny dla ofiary!
Mam nowy certyfikat – hurra!
●

73% osób zaakceptowało nowe CA – przez co stali się podatni na atak MITM
- 77% z nich było przekonanych, iż w ten sposób zwiększyli swoje
bezpieczeństwo
- tylko 2% podejrzewało, iż instalacja nowego CA mogła mieć negatywny
wpływ na ich prywatność
źródło: https://www.owasp.org/images/7/77/Hunting_Down_Broken_SSL_in_Android_Apps_-_Sascha_Fahl%2BMarian_Harbach%2BMathew_Smith.pdf

Wnioski
●

Nie zadawaj trudnych pytań!

●

Rozwiązanie: certificate pinning.

picardfacepalm.com
Podejście racjonalne
●

●

●

●

●

Kto i po co chciałby zaatakować
naszą aplikację? Jakich zasobów do
tego potrzebuje?
Koszt zabezpieczenia nie może być
większy niż wartość chronionych
zasobów
Negatywny wpływ na używalność czy
dostępność
Przyzwyczajenia użytkowników
Uwaga na fałszywe poczucie
bezpieczeństwa i odpowiedzialność
Andrzej Tobis - Kierownica

www.otwartazacheta.pl
Mniejsze ryzyko
●

●

Przechowywanie danych wrażliwych w pamięci operacyjnej
urządzenia w trakcie pracy aplikacji.
Użycie klawiatury systemowej - niektóre implementacje
zostawiały w systemie informacje o wciskanych klawiszach.

●

Brak możliwości przeniesienia na kartę SD

●

...
Nawet jeśli ryzyko nie jest wysokie (trudność w wykorzystaniu),
zabezpieczenie może być wdrożone z powodów wizerunkowych.
Mniejsze ryzyko

Pomimo istotnych skutków, warunki wykorzystania
podatności są bardzo trudne do spełnienia
Pamiętaj!

Myśl o bezpieczeństwie – już na etapie projektowania!
Bezpieczeństwo transmisji.
Lokalnie przechowywane dane.
Środowisko po stronie serwera.
Wiele warstw zabezpieczeń, zasada najmniejszych przywilejów.
Nie wymagaj od użytkownika zbyt wiele.

Andrzej Tobis - Dodawanie
www.otwartazacheta.pl
Merry Hacking X-Mas!
www.securing.pl/konkurs/
●

●

●

I miejsce - Płatny, miesięczny staż w naszej
firmie.
II miejsce - Bilet wstępu na konferencję
Confidence 2014.
III miejsce - Książka "The Web Application
Hacker's Handbook".
Dziękuję!

slawomir.jasek@securing.pl

Más contenido relacionado

La actualidad más candente

10 przykazań bezpiecznego programowania
10 przykazań bezpiecznego programowania10 przykazań bezpiecznego programowania
10 przykazań bezpiecznego programowaniaSecuRing
 
Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...
Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...
Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...SecuRing
 
OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...
OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...
OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...Logicaltrust pl
 
Pentester - fakty i mity
Pentester - fakty i mityPentester - fakty i mity
Pentester - fakty i mityLogicaltrust pl
 
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...Logicaltrust pl
 
Możliwości złośliwego oprogramowania na platformy mobilne
Możliwości złośliwego oprogramowania na platformy mobilneMożliwości złośliwego oprogramowania na platformy mobilne
Możliwości złośliwego oprogramowania na platformy mobilneSecuRing
 
Narzędzia do zautomatyzowanego testowania bezpieczeństwa aplikacji WWW
Narzędzia do zautomatyzowanego testowania bezpieczeństwa aplikacji WWWNarzędzia do zautomatyzowanego testowania bezpieczeństwa aplikacji WWW
Narzędzia do zautomatyzowanego testowania bezpieczeństwa aplikacji WWWLogicaltrust pl
 
Wyciek danych w aplikacjach - Artur Kalinowski, 4Developers
Wyciek danych w aplikacjach - Artur Kalinowski, 4DevelopersWyciek danych w aplikacjach - Artur Kalinowski, 4Developers
Wyciek danych w aplikacjach - Artur Kalinowski, 4DevelopersLogicaltrust pl
 
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?Logicaltrust pl
 
Zagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzyka
Zagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzykaZagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzyka
Zagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzykaSecuRing
 
Testy bezpieczeństwa - niesztampowe przypadki
Testy bezpieczeństwa - niesztampowe przypadkiTesty bezpieczeństwa - niesztampowe przypadki
Testy bezpieczeństwa - niesztampowe przypadkiLogicaltrust pl
 
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...Logicaltrust pl
 

La actualidad más candente (15)

10 przykazań bezpiecznego programowania
10 przykazań bezpiecznego programowania10 przykazań bezpiecznego programowania
10 przykazań bezpiecznego programowania
 
Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...
Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...
Wyzwania dla bezpieczeństwa związane z nowymi technologiami w aplikacjach ban...
 
OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...
OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...
OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...
 
Pentester - fakty i mity
Pentester - fakty i mityPentester - fakty i mity
Pentester - fakty i mity
 
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
 
Możliwości złośliwego oprogramowania na platformy mobilne
Możliwości złośliwego oprogramowania na platformy mobilneMożliwości złośliwego oprogramowania na platformy mobilne
Możliwości złośliwego oprogramowania na platformy mobilne
 
Narzędzia do zautomatyzowanego testowania bezpieczeństwa aplikacji WWW
Narzędzia do zautomatyzowanego testowania bezpieczeństwa aplikacji WWWNarzędzia do zautomatyzowanego testowania bezpieczeństwa aplikacji WWW
Narzędzia do zautomatyzowanego testowania bezpieczeństwa aplikacji WWW
 
Wyciek danych w aplikacjach - Artur Kalinowski, 4Developers
Wyciek danych w aplikacjach - Artur Kalinowski, 4DevelopersWyciek danych w aplikacjach - Artur Kalinowski, 4Developers
Wyciek danych w aplikacjach - Artur Kalinowski, 4Developers
 
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
 
Zagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzyka
Zagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzykaZagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzyka
Zagrożenia dla aplikacji bankowych i sposoby zmniejszania ryzyka
 
Wyscig o czynnik ludzki
Wyscig o czynnik ludzkiWyscig o czynnik ludzki
Wyscig o czynnik ludzki
 
Testy bezpieczeństwa - niesztampowe przypadki
Testy bezpieczeństwa - niesztampowe przypadkiTesty bezpieczeństwa - niesztampowe przypadki
Testy bezpieczeństwa - niesztampowe przypadki
 
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
 
Devops/Sysops security
Devops/Sysops securityDevops/Sysops security
Devops/Sysops security
 
Devops security
Devops securityDevops security
Devops security
 

Similar a (Nie)bezpieczenstwo aplikacji mobilnych

Owasp top 10 2010 final PL Beta
Owasp top 10   2010 final PL BetaOwasp top 10   2010 final PL Beta
Owasp top 10 2010 final PL BetaThink Secure
 
Szpiegowanie w internecie
Szpiegowanie w internecieSzpiegowanie w internecie
Szpiegowanie w internecieDorota Ręba
 
PLNOG14: Darmowe narzędzia wspomagające proces zabezpieczania Twojej firmy - ...
PLNOG14: Darmowe narzędzia wspomagające proces zabezpieczania Twojej firmy - ...PLNOG14: Darmowe narzędzia wspomagające proces zabezpieczania Twojej firmy - ...
PLNOG14: Darmowe narzędzia wspomagające proces zabezpieczania Twojej firmy - ...PROIDEA
 
Bezpieczne dane w aplikacjach java
Bezpieczne dane w aplikacjach javaBezpieczne dane w aplikacjach java
Bezpieczne dane w aplikacjach javaSages
 
JDD 2017: Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...
JDD 2017:  Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...JDD 2017:  Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...
JDD 2017: Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...PROIDEA
 
Czy aby na pewno jest Pan człowiekiem. Użyteczność kodów CAPTCHA 2.
Czy aby na pewno jest Pan człowiekiem. Użyteczność kodów CAPTCHA 2.Czy aby na pewno jest Pan człowiekiem. Użyteczność kodów CAPTCHA 2.
Czy aby na pewno jest Pan człowiekiem. Użyteczność kodów CAPTCHA 2.Symetria
 
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...Logicaltrust pl
 
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech DworakowskiPROIDEA
 
Sześć sposobów na przejęcie sieci przemysłowej w twojej firmie
Sześć sposobów na przejęcie sieci przemysłowej w twojej firmieSześć sposobów na przejęcie sieci przemysłowej w twojej firmie
Sześć sposobów na przejęcie sieci przemysłowej w twojej firmieSecuRing
 
Bezpieczenstwo sieci komputerowych
Bezpieczenstwo sieci komputerowychBezpieczenstwo sieci komputerowych
Bezpieczenstwo sieci komputerowychBpatryczek
 
[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu
[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu
[Confidence 2016] Red Team - najlepszy przyjaciel Blue TeamuPiotr Kaźmierczak
 
2020 11-15 marcin ludwiszewski - purple, red, blue and others - rainbow team...
2020 11-15 marcin ludwiszewski - purple, red, blue  and others - rainbow team...2020 11-15 marcin ludwiszewski - purple, red, blue  and others - rainbow team...
2020 11-15 marcin ludwiszewski - purple, red, blue and others - rainbow team...Marcin Ludwiszewski
 
Darmowe narzędzia wspomagające procesy zabezpieczania infrastruktury firmowej.
Darmowe narzędzia wspomagające procesy zabezpieczania infrastruktury firmowej.Darmowe narzędzia wspomagające procesy zabezpieczania infrastruktury firmowej.
Darmowe narzędzia wspomagające procesy zabezpieczania infrastruktury firmowej.Logicaltrust pl
 
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...Logicaltrust pl
 
Testowanie bezpieczeństwa aplikacji mobilnych
Testowanie bezpieczeństwa aplikacji mobilnychTestowanie bezpieczeństwa aplikacji mobilnych
Testowanie bezpieczeństwa aplikacji mobilnychSlawomir Jasek
 
CONFidence 2015: APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wy...
CONFidence 2015: APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wy...CONFidence 2015: APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wy...
CONFidence 2015: APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wy...PROIDEA
 
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...The Software House
 
OWASP ASVS 3.1 EA PL - YetiForce
OWASP ASVS 3.1 EA PL - YetiForceOWASP ASVS 3.1 EA PL - YetiForce
OWASP ASVS 3.1 EA PL - YetiForcePabiszczak Błażej
 

Similar a (Nie)bezpieczenstwo aplikacji mobilnych (20)

Owasp top 10 2010 final PL Beta
Owasp top 10   2010 final PL BetaOwasp top 10   2010 final PL Beta
Owasp top 10 2010 final PL Beta
 
Szpiegowanie w internecie
Szpiegowanie w internecieSzpiegowanie w internecie
Szpiegowanie w internecie
 
PLNOG14: Darmowe narzędzia wspomagające proces zabezpieczania Twojej firmy - ...
PLNOG14: Darmowe narzędzia wspomagające proces zabezpieczania Twojej firmy - ...PLNOG14: Darmowe narzędzia wspomagające proces zabezpieczania Twojej firmy - ...
PLNOG14: Darmowe narzędzia wspomagające proces zabezpieczania Twojej firmy - ...
 
Bezpieczne dane w aplikacjach java
Bezpieczne dane w aplikacjach javaBezpieczne dane w aplikacjach java
Bezpieczne dane w aplikacjach java
 
JDD 2017: Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...
JDD 2017:  Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...JDD 2017:  Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...
JDD 2017: Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...
 
Czy aby na pewno jest Pan człowiekiem. Użyteczność kodów CAPTCHA 2.
Czy aby na pewno jest Pan człowiekiem. Użyteczność kodów CAPTCHA 2.Czy aby na pewno jest Pan człowiekiem. Użyteczność kodów CAPTCHA 2.
Czy aby na pewno jest Pan człowiekiem. Użyteczność kodów CAPTCHA 2.
 
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
 
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
 
Ekran system - prezentacja
Ekran system - prezentacjaEkran system - prezentacja
Ekran system - prezentacja
 
Sześć sposobów na przejęcie sieci przemysłowej w twojej firmie
Sześć sposobów na przejęcie sieci przemysłowej w twojej firmieSześć sposobów na przejęcie sieci przemysłowej w twojej firmie
Sześć sposobów na przejęcie sieci przemysłowej w twojej firmie
 
Bezpieczenstwo sieci komputerowych
Bezpieczenstwo sieci komputerowychBezpieczenstwo sieci komputerowych
Bezpieczenstwo sieci komputerowych
 
[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu
[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu
[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu
 
2020 11-15 marcin ludwiszewski - purple, red, blue and others - rainbow team...
2020 11-15 marcin ludwiszewski - purple, red, blue  and others - rainbow team...2020 11-15 marcin ludwiszewski - purple, red, blue  and others - rainbow team...
2020 11-15 marcin ludwiszewski - purple, red, blue and others - rainbow team...
 
Darmowe narzędzia wspomagające procesy zabezpieczania infrastruktury firmowej.
Darmowe narzędzia wspomagające procesy zabezpieczania infrastruktury firmowej.Darmowe narzędzia wspomagające procesy zabezpieczania infrastruktury firmowej.
Darmowe narzędzia wspomagające procesy zabezpieczania infrastruktury firmowej.
 
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wybrane studium prz...
 
Testowanie bezpieczeństwa aplikacji mobilnych
Testowanie bezpieczeństwa aplikacji mobilnychTestowanie bezpieczeństwa aplikacji mobilnych
Testowanie bezpieczeństwa aplikacji mobilnych
 
CONFidence 2015: APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wy...
CONFidence 2015: APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wy...CONFidence 2015: APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wy...
CONFidence 2015: APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wy...
 
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
 
OWASP ASVS 3.1 EA PL - YetiForce
OWASP ASVS 3.1 EA PL - YetiForceOWASP ASVS 3.1 EA PL - YetiForce
OWASP ASVS 3.1 EA PL - YetiForce
 
4
44
4
 

Más de SecuRing

Developer in a digital crosshair, 2023 edition - 4Developers
Developer in a digital crosshair, 2023 edition - 4DevelopersDeveloper in a digital crosshair, 2023 edition - 4Developers
Developer in a digital crosshair, 2023 edition - 4DevelopersSecuRing
 
Developer in a digital crosshair, 2022 edition - Oh My H@ck!
Developer in a digital crosshair, 2022 edition - Oh My H@ck!Developer in a digital crosshair, 2022 edition - Oh My H@ck!
Developer in a digital crosshair, 2022 edition - Oh My H@ck!SecuRing
 
Developer in a digital crosshair, 2022 edition - No cON Name
Developer in a digital crosshair, 2022 edition - No cON NameDeveloper in a digital crosshair, 2022 edition - No cON Name
Developer in a digital crosshair, 2022 edition - No cON NameSecuRing
 
Is persistency on serverless even possible?!
Is persistency on serverless even possible?!Is persistency on serverless even possible?!
Is persistency on serverless even possible?!SecuRing
 
What happens on your Mac, stays on Apple’s iCloud?!
What happens on your Mac, stays on Apple’s iCloud?!What happens on your Mac, stays on Apple’s iCloud?!
What happens on your Mac, stays on Apple’s iCloud?!SecuRing
 
0-Day Up Your Sleeve - Attacking macOS Environments
0-Day Up Your Sleeve - Attacking macOS Environments0-Day Up Your Sleeve - Attacking macOS Environments
0-Day Up Your Sleeve - Attacking macOS EnvironmentsSecuRing
 
Developer in a digital crosshair, 2022 edition
Developer in a digital crosshair, 2022 editionDeveloper in a digital crosshair, 2022 edition
Developer in a digital crosshair, 2022 editionSecuRing
 
20+ Ways To Bypass Your Macos Privacy Mechanisms
20+ Ways To Bypass Your Macos Privacy Mechanisms20+ Ways To Bypass Your Macos Privacy Mechanisms
20+ Ways To Bypass Your Macos Privacy MechanismsSecuRing
 
How secure are webinar platforms?
How secure are webinar platforms?How secure are webinar platforms?
How secure are webinar platforms?SecuRing
 
20+ Ways to Bypass Your macOS Privacy Mechanisms
20+ Ways to Bypass Your macOS Privacy Mechanisms20+ Ways to Bypass Your macOS Privacy Mechanisms
20+ Ways to Bypass Your macOS Privacy MechanismsSecuRing
 
Serverless security: attack & defense
 Serverless security: attack & defense Serverless security: attack & defense
Serverless security: attack & defenseSecuRing
 
Abusing & Securing XPC in macOS apps
Abusing & Securing XPC in macOS appsAbusing & Securing XPC in macOS apps
Abusing & Securing XPC in macOS appsSecuRing
 
WebApps vs Blockchain dApps (SmartContracts): tools, vulns and standards
WebApps vs Blockchain dApps (SmartContracts): tools, vulns and standardsWebApps vs Blockchain dApps (SmartContracts): tools, vulns and standards
WebApps vs Blockchain dApps (SmartContracts): tools, vulns and standardsSecuRing
 
WebApps vs Blockchain dApps (SmartContracts): tools, vulns and standards
WebApps vs Blockchain dApps (SmartContracts): tools, vulns and standardsWebApps vs Blockchain dApps (SmartContracts): tools, vulns and standards
WebApps vs Blockchain dApps (SmartContracts): tools, vulns and standardsSecuRing
 
Let's get evil - threat modeling at scale
Let's get evil - threat modeling at scaleLet's get evil - threat modeling at scale
Let's get evil - threat modeling at scaleSecuRing
 
Attacking AWS: the full cyber kill chain
Attacking AWS: the full cyber kill chainAttacking AWS: the full cyber kill chain
Attacking AWS: the full cyber kill chainSecuRing
 
Web Apps vs Blockchain dApps (Smart Contracts): tools, vulns and standards
Web Apps vs Blockchain dApps (Smart Contracts): tools, vulns and standardsWeb Apps vs Blockchain dApps (Smart Contracts): tools, vulns and standards
Web Apps vs Blockchain dApps (Smart Contracts): tools, vulns and standardsSecuRing
 
Budowanie i hakowanie nowoczesnych aplikacji iOS
Budowanie i hakowanie nowoczesnych aplikacji iOSBudowanie i hakowanie nowoczesnych aplikacji iOS
Budowanie i hakowanie nowoczesnych aplikacji iOSSecuRing
 
We need t go deeper - Testing inception apps.
We need t go deeper - Testing inception apps.We need t go deeper - Testing inception apps.
We need t go deeper - Testing inception apps.SecuRing
 
Building & Hacking Modern iOS Apps
Building & Hacking Modern iOS AppsBuilding & Hacking Modern iOS Apps
Building & Hacking Modern iOS AppsSecuRing
 

Más de SecuRing (20)

Developer in a digital crosshair, 2023 edition - 4Developers
Developer in a digital crosshair, 2023 edition - 4DevelopersDeveloper in a digital crosshair, 2023 edition - 4Developers
Developer in a digital crosshair, 2023 edition - 4Developers
 
Developer in a digital crosshair, 2022 edition - Oh My H@ck!
Developer in a digital crosshair, 2022 edition - Oh My H@ck!Developer in a digital crosshair, 2022 edition - Oh My H@ck!
Developer in a digital crosshair, 2022 edition - Oh My H@ck!
 
Developer in a digital crosshair, 2022 edition - No cON Name
Developer in a digital crosshair, 2022 edition - No cON NameDeveloper in a digital crosshair, 2022 edition - No cON Name
Developer in a digital crosshair, 2022 edition - No cON Name
 
Is persistency on serverless even possible?!
Is persistency on serverless even possible?!Is persistency on serverless even possible?!
Is persistency on serverless even possible?!
 
What happens on your Mac, stays on Apple’s iCloud?!
What happens on your Mac, stays on Apple’s iCloud?!What happens on your Mac, stays on Apple’s iCloud?!
What happens on your Mac, stays on Apple’s iCloud?!
 
0-Day Up Your Sleeve - Attacking macOS Environments
0-Day Up Your Sleeve - Attacking macOS Environments0-Day Up Your Sleeve - Attacking macOS Environments
0-Day Up Your Sleeve - Attacking macOS Environments
 
Developer in a digital crosshair, 2022 edition
Developer in a digital crosshair, 2022 editionDeveloper in a digital crosshair, 2022 edition
Developer in a digital crosshair, 2022 edition
 
20+ Ways To Bypass Your Macos Privacy Mechanisms
20+ Ways To Bypass Your Macos Privacy Mechanisms20+ Ways To Bypass Your Macos Privacy Mechanisms
20+ Ways To Bypass Your Macos Privacy Mechanisms
 
How secure are webinar platforms?
How secure are webinar platforms?How secure are webinar platforms?
How secure are webinar platforms?
 
20+ Ways to Bypass Your macOS Privacy Mechanisms
20+ Ways to Bypass Your macOS Privacy Mechanisms20+ Ways to Bypass Your macOS Privacy Mechanisms
20+ Ways to Bypass Your macOS Privacy Mechanisms
 
Serverless security: attack & defense
 Serverless security: attack & defense Serverless security: attack & defense
Serverless security: attack & defense
 
Abusing & Securing XPC in macOS apps
Abusing & Securing XPC in macOS appsAbusing & Securing XPC in macOS apps
Abusing & Securing XPC in macOS apps
 
WebApps vs Blockchain dApps (SmartContracts): tools, vulns and standards
WebApps vs Blockchain dApps (SmartContracts): tools, vulns and standardsWebApps vs Blockchain dApps (SmartContracts): tools, vulns and standards
WebApps vs Blockchain dApps (SmartContracts): tools, vulns and standards
 
WebApps vs Blockchain dApps (SmartContracts): tools, vulns and standards
WebApps vs Blockchain dApps (SmartContracts): tools, vulns and standardsWebApps vs Blockchain dApps (SmartContracts): tools, vulns and standards
WebApps vs Blockchain dApps (SmartContracts): tools, vulns and standards
 
Let's get evil - threat modeling at scale
Let's get evil - threat modeling at scaleLet's get evil - threat modeling at scale
Let's get evil - threat modeling at scale
 
Attacking AWS: the full cyber kill chain
Attacking AWS: the full cyber kill chainAttacking AWS: the full cyber kill chain
Attacking AWS: the full cyber kill chain
 
Web Apps vs Blockchain dApps (Smart Contracts): tools, vulns and standards
Web Apps vs Blockchain dApps (Smart Contracts): tools, vulns and standardsWeb Apps vs Blockchain dApps (Smart Contracts): tools, vulns and standards
Web Apps vs Blockchain dApps (Smart Contracts): tools, vulns and standards
 
Budowanie i hakowanie nowoczesnych aplikacji iOS
Budowanie i hakowanie nowoczesnych aplikacji iOSBudowanie i hakowanie nowoczesnych aplikacji iOS
Budowanie i hakowanie nowoczesnych aplikacji iOS
 
We need t go deeper - Testing inception apps.
We need t go deeper - Testing inception apps.We need t go deeper - Testing inception apps.
We need t go deeper - Testing inception apps.
 
Building & Hacking Modern iOS Apps
Building & Hacking Modern iOS AppsBuilding & Hacking Modern iOS Apps
Building & Hacking Modern iOS Apps
 

(Nie)bezpieczenstwo aplikacji mobilnych

  • 2. Abstrakt ● Whoami ● Kto i po co zaatakuje naszą aplikację ● Analiza ryzyka – podejście racjonalne ● ● Najciekawsze podatności w aplikacjach mobilnych - przykłady Najważniejsze zasady bezpieczeństwa
  • 3. # whoami Konsultant bezpieczeństwa (~ 10 lat), setki projektów, głównie różnego typu aplikacje SecuRing (od 2003) Testowanie i doradztwo dotyczące bezpieczeństwa aplikacji i systemów IT Jeśli to możliwe w ramach„white-box” (przegląd konfiguracji, kodu, konsultacje), a także już na etapie definiowania architektury Wynikiem testu jest dokładny raport opisujący szczegółowo znalezione podatności (oraz wykonane testy), wraz z rekomendacjami/sposobami naprawy
  • 4. Kto i po co zaatakuje naszą aplikację? Krzysztof Jarzyna ze Szczecina „grubszy cwaniak” „script-kiddie” Coś mu się przypadkiem udało (lub nie), i afera gotowa. Dorwał się do narzędzi, wali na oślep, zwykle nie bardzo rozumiejąc co się dzieje. Ma motywację, zasoby oraz możliwości przeprowadzenia ataku nakierowanego
  • 5. Analiza ryzyka – podejście racjonalne Profil ryzyka zależy od aplikacji – jej funkcji biznesowych, potencjalnych strat, zysków dla intruza.
  • 6. Przykład 1 ● ● ● Aplikacja mobilna dla kibiców M.in. typowanie wyników meczu, wśród prawidłowych losowanie biletów Po wysłaniu typowania w aplikacji znika ta opcja, można jedynie podglądnąć swój typ Jak zaatakuje ten proces intruz?
  • 7. Lokalne proxy – pozwala m.in. na edycję oraz powtarzanie zleceń HTTP
  • 8. Jak to zrobić poprawnie? ● ● ● ● Pamiętaj, że ruch pomiędzy aplikacją a serwerem może być przechwycony i zmodyfikowany SSL nie chroni przed lokalnym tamperingiem Walidacja musi być również po stronie serwera! Nie ufaj mechanizmom bezpieczeństwa po stronie klienta
  • 10. Przykład 2 Aplikacja bankowości mobilnej, do uwierzytelnienia i autoryzacji wymagany jest kod PIN. Po 3-krotnym wprowadzeniu błędnego PIN-u konto blokuje się na serwerze. Pewne funkcje aplikacji (np. historia transakcji) działają również offline. Aplikacja musi więc przechowywać lokalnie część danych pobranych z serwera. Dane te są trzymane w formie zaszyfrowanej, w prywatnym katalogu dostępnym jedynie dla tej aplikacji. Do odszyfrowania konieczne jest podanie PIN-u użytkownika. Nie użyto stałego klucza zaszytego w aplikacji.
  • 11. Spojrzenie intruza ● ● ● ● Aby ukraść pieniądze potrzebuje kod PIN Załóżmy, że udało mu się przejąć pełną kontrolę nad urządzeniem mobilnym (np. kradzież, malware...) Jednak nie może podsłuchać kodu PIN – nie ma możliwości kontroli nad urządzeniem w trakcie gdy użytkownik korzysta z bankowości Jak może uzyskać PIN?
  • 12. Przykład 2 – proces offline. Kod PIN jest używany również do odszyfrowania danych trzymanych lokalnie. Jest to funkcja, która działa bez połączenia do Internetu, więc kod PIN nie może być zweryfikowany po stronie serwera. Nawet jeśli aplikacja się zablokuje po 3 nieudanych próbach, jest to proces offline. Konto nie zablokuje się na serwerze, a intruz może odtworzyć stan aplikacji sprzed zablokowania i próbować ponownie. Czyli - intruz może bez ograniczeń łamać kod PIN offline. Prawidłowy kod pozna po tym, iż po rozszyfrowaniu uzyska sensowne dane. Nawet jeśli kod jest złożony (a w praktyce najczęściej to kilka cyfr), złamanie zajmie mu maksymalnie kilka godzin.
  • 13. Jak to zrobić poprawnie? ● ● ● ● Wszystkie próby użycia hasła (np. w celu uwierzytelnienia lub autoryzacji) powinny być weryfikowane na serwerze, nie lokalnie na urządzeniu. Poprawne użycie kryptografii – uwaga na błędy pozwalające na łamanie siłowe offline. Najlepiej nie przechowywać żadnych danych wrażliwych na urządzeniu, nawet w formie zaszyfrowanej Uwaga na logi systemowe itp. Warto poczytać: http://wampir.mroczna-zaloga.org/archives/1147-jak-zepsuc-uwierzytelnienie-w-aplikacji-mobilnej.html
  • 15. Przykład 3 Aplikacja mobilna do wyświetlania w czasie rzeczywistym oraz natychmiastowego zlecania różnych operacji. W tym celu opracowano specjalny protokół, komunikujący się przez SSL z serwerem.
  • 20. Protokół – inne metody WS
  • 21. Metoda RegisterUser Odpowiedź serwera: <soapenv:Body> <registerUserResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <registerUserReturn xsi:type="xsd:string"> &lt;error code=&quot;266&quot; &gt;Incorrect login&lt;/error&gt; </registerUserReturn> </registerUserResponse> </soapenv:Body>
  • 22. RegisterUser – drążymy dalej Po dodaniu kolejnych brakujących parametrów: ● Incorrect first name ● Group with name null doesn't exist ● Group with name admin doesn't exist ● Group with name Administrator doesn't exist ● A grupa „Root” ?
  • 23. Protokół – Game Over <soapenv:Body> <registerUserResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <registerUserReturn xsi:type="xsd:string"> User was registered sucessfully with id=5392745 </registerUserReturn> </registerUserResponse> </soapenv:Body> Tak zarejestrowany użytkownik po zalogowaniu mógł zarządzać zasobami WSZYSTKICH INNYCH UŻYTKOWNIKÓW SYSTEMU
  • 24. Walidacja, separacja przywilejów, wiele poziomów zabezpieczeń...
  • 25. Inicjalizacja mobilnego kanału bankowości Bankowość internetowa, logowanie za pomocą hasła, autoryzacja operacji za pomocą kodów SMS. Aplikacja bankowości mobilnej, zabezpieczona za pomocą PIN-u (uwierzytelnienie, autoryzacja transakcji). Solidna kryptografia w procesie dodawania nowego urządzenia do konta, oraz w trakcie korzystania z bankowości. Proces przemyślany, aby użytkownik nie zrobił sobie krzywdy.
  • 26. Inicjalizacja mobilnego kanału proces ● ● Po zalogowaniu w serwisie www, użytkownik wybiera opcję dodania nowego urządzenia mobilnego. Wprowadza w formularzu nowy kod PIN. Wyświetla się kod QR („seed” kryptograficzny) do zeskanowania w urządzeniu. Użytkownik skanuje kod QR w telefonie. Podaje na urządzeniu ten sam kod PIN. ● Aplikacja mobilna przesyła do serwera zaszyfrowany PIN-em „seed” ● Serwer porównuje, czy dane się zgadzają ● W aplikacji www należy następnie potwierdzić dodanie nowego urządzenia, klikając przycisk „Akceptuj”.
  • 27. Jak patrzy na to intruz? ● ● ● ● Wyobraźmy sobie, że intruz przejął kontrolę nad komputerem użytkownika (np. malware) Poznał login i hasło do bankowości internetowej. Nie może jednak ukraść pieniędzy, ponieważ nie ma dostępu do kodów sms Ale – przecież autoryzacja transakcji możliwa jest również za pomocą aplikacji mobilnej Jak przejąć aplikację mobilną?
  • 28. Inicjalizacja mobilnego kanału - problem Brak autoryzacji procesu dodawania nowego urządzenia mobilnego! Malware działający na stacji użytkownika może dopisać sobie - bez jego wiedzy - nowe urządzenie mobilne, uzyskując w ten sposób możliwość autoryzacji transakcji. ragecomic.fr
  • 29. BankDroid ● ● ● ● Aplikacja służy do informowania online o saldach oraz zmianach na kontach różnych skandynawskich banków Działa w tle, odpytując o status co chwilę Łączy się automatycznie z bankami również gdy telefon jest podłączony do niezaufanych sieci 100 000 – 500 000 instalacji https://play.google.com/store/apps/details?id=com.liato.bankdroid
  • 30. BankDroid – kod źródłowy (GPL) CELOWO wyłączono weryfikację certyfikatów SSL banków: public Urllib(boolean acceptInvalidCertificates) { this(acceptInvalidCertificates, false); } public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws java.security.cert.CertificateException { // TODO Auto-generated method stub } https://github.com/liato/android-bankdroid
  • 31. BankDroid – i tak 21 razy ;) src/com/liato/bankdroid/banking/banks $ grep "Urllib(true)" * AbsIkanoPartner.java Jojo.java Bioklubben.java OKQ8.java DanskeBank.java PayPal.java DinersClub.java Payson.java EasyCard.java PlusGirot.java Eurocard.java SEB.java Everydaycard.java SEBKortBase.java FirstCard.java Steam.java ICA.java Vasttrafik.java IkanoBank.java Volvofinans.java IkanoPartnerBase.java
  • 32. MITM na SSL? Ale kto by to potrafił?!! To przecież takie trudne! Czyżby?
  • 33. dSploit – dzieciak sąsiadów już ma Bardzo prosty interfejs, do obsługi przez laika. WiFi Scanning & Common Router Key Cracking Deep Inspection Vulnerability Search Multi Protocol Login Cracker Packet Forging with Wake On Lan Support HTTPS/SSL Support (SSL Stripping + HTTPS -> Redirection) MITM Realtime Network Stats MITM Multi Protocol Password Sniffing MITM HTTP/HTTPS Session Hijacking MITM HTTP/HTTPS Hijacked Session File Persistance MITM HTTP/HTTPS Realtime Manipulation GPL, do pobrania z http://dsploit.net
  • 35. Mały eksperyment Kraków, 7.12.2013, ~13.30. MITM – podmiana obrazków (dSploit).
  • 36. MITM na SSL – prawidłowa (?) reakcja
  • 37. Nie wymagaj od użytkowników zbyt wiele! Test na użytkownikach aplikacji Android – okienko udające instalację nowego CA w telefonie. Po zainstalowaniu kontrolowanego przez intruza CA, może on przeprowadzić atak MITM na dowolne połączenie SSL w sposób niezauważalny dla ofiary!
  • 38. Mam nowy certyfikat – hurra! ● 73% osób zaakceptowało nowe CA – przez co stali się podatni na atak MITM - 77% z nich było przekonanych, iż w ten sposób zwiększyli swoje bezpieczeństwo - tylko 2% podejrzewało, iż instalacja nowego CA mogła mieć negatywny wpływ na ich prywatność źródło: https://www.owasp.org/images/7/77/Hunting_Down_Broken_SSL_in_Android_Apps_-_Sascha_Fahl%2BMarian_Harbach%2BMathew_Smith.pdf Wnioski ● Nie zadawaj trudnych pytań! ● Rozwiązanie: certificate pinning. picardfacepalm.com
  • 39. Podejście racjonalne ● ● ● ● ● Kto i po co chciałby zaatakować naszą aplikację? Jakich zasobów do tego potrzebuje? Koszt zabezpieczenia nie może być większy niż wartość chronionych zasobów Negatywny wpływ na używalność czy dostępność Przyzwyczajenia użytkowników Uwaga na fałszywe poczucie bezpieczeństwa i odpowiedzialność Andrzej Tobis - Kierownica www.otwartazacheta.pl
  • 40. Mniejsze ryzyko ● ● Przechowywanie danych wrażliwych w pamięci operacyjnej urządzenia w trakcie pracy aplikacji. Użycie klawiatury systemowej - niektóre implementacje zostawiały w systemie informacje o wciskanych klawiszach. ● Brak możliwości przeniesienia na kartę SD ● ... Nawet jeśli ryzyko nie jest wysokie (trudność w wykorzystaniu), zabezpieczenie może być wdrożone z powodów wizerunkowych.
  • 41. Mniejsze ryzyko Pomimo istotnych skutków, warunki wykorzystania podatności są bardzo trudne do spełnienia
  • 42. Pamiętaj! Myśl o bezpieczeństwie – już na etapie projektowania! Bezpieczeństwo transmisji. Lokalnie przechowywane dane. Środowisko po stronie serwera. Wiele warstw zabezpieczeń, zasada najmniejszych przywilejów. Nie wymagaj od użytkownika zbyt wiele. Andrzej Tobis - Dodawanie www.otwartazacheta.pl
  • 43. Merry Hacking X-Mas! www.securing.pl/konkurs/ ● ● ● I miejsce - Płatny, miesięczny staż w naszej firmie. II miejsce - Bilet wstępu na konferencję Confidence 2014. III miejsce - Książka "The Web Application Hacker's Handbook".

Notas del editor

  1. W celu oszacowania profilu ryzyka, robi się analizę ryzyka. Zupełnie inaczej ryzyko wygląda dla aplikacji typu rozkład jazdy autobusów, a inaczej dla aplikacji obsługującej bitcoiny. W pierwszym przypadku trudno będzie spieniężyć
  2. Grafika: LoL? Zdziwko? Szyderczy śmiech?
  3. Szczegółowy opis procesu, użytych metod, zajmował 3 strony A4.
  4. Zastanówmy się, czy dziecko sąsiadów by to potrafiło