Bankovní aplikace a jejich bezpečnost

608 views

Published on

Published in: Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
608
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Bankovní aplikace a jejich bezpečnost

  1. 1. Bankovní aplikace... a jejich bezpečnostPetr Dvořák, Partner & iOS Development Lead@joshis_tweets
  2. 2. Má cenu se starat?
  3. 3. Business case• Ztráta peněz - nutnost přímé refundace• Ztráta dat - nutnost investic (nové karty, ...)• Reputační riziko
  4. 4. Reputační riziko• Špatně odhadnutelný dopad• Problém nemusí nastat, stačí možnost• Běžný uživatel je neinformovaný
  5. 5. Nutná oběť...
  6. 6. Reputační rizikoCena v Kč Dopad incidentu Cena protiopatření Počet klientů
  7. 7. Typické problémy
  8. 8. Bezpečná komunikace• iOS • Základní validace certifikátu. • Jednoduchá instalace nové CA do systému.
  9. 9. Bezpečná komunikace• iOS • Základní validace certifikátu. • Jednoduchá instalace nové CA do systému.
  10. 10. Bezpečná komunikace• iOS • Základní validace certifikátu. • Jednoduchá instalace nové CA do systému.
  11. 11. Bezpečná komunikace• iOS • Základní validace certifikátu. • Jednoduchá instalace nové CA do systému.
  12. 12. Bezpečná komunikace• iOS • Základní validace certifikátu. • Jednoduchá instalace nové CA do systému.
  13. 13. MITM Proxy
  14. 14. Co s tím?• Důsledná kontrola certifikátu na klientovi.• Problém: Vypršení platnosti certifikátu.• Pouze EV certifikáty od trusted CA.• Dodatečné podepisování (OAuth 1.0a)
  15. 15. Logování informací • Většinou již vyřešeno. • Proč se tím ještě zabývat?
  16. 16. Oddělená prostředí• Prostředí pro vývoj: chci logovat, nemám certifikát.• Prostředí pro produkci: nechci logovat, mám certifikát.• Nastavení procesu na úrovni sestavení aplikace.
  17. 17. Jailbreak• Nutnost pro vývojáře.• Zapovězeno uživatelům.• Vhodné nějak otestovat v aplikaci.
  18. 18. Jailbreak #pragma mark - Basic 90% test + (BOOL) deviceIsJailbroken { NSString *filePath = @"/Applications/Cydia.app"; return [[NSFileManager defaultManager] fileExistsAtPath:filePath]; }
  19. 19. Proč ne jailbreak?• Útočník získá kompletní přístup ke všemu.• Jakákoliv ochrana je pak marná.• Keychain je odkrytý.• MobileSubstrate (run-time patche)
  20. 20. Demo Cycript
  21. 21. Cycript - Demo// helper functionsfunction CGPointMake(x, y) { return {x:x, y:y}; }function CGSizeMake(w, h) { return {width:w, height:h}; }function CGRectMake(x, y, w, h) { return {origin:CGPointMake(x,y), size:CGSizeMake(w, h)}; }// add UIView to the main windowvar v = [[UILabel alloc] initWithFrame:CGRectMake(0,0,320,480)];v.text = "Hacked by Inmite!";v.textAlignment = 1;v.font = [UIFont boldSystemFontOfSize:25];v.alpha = 0.85;[[UIApplication sharedApplication].keyWindow addSubview:v];
  22. 22. Ochrana hesla• Samozřejmě hesla neukládat “na disk”.• A co ani do paměti?
  23. 23. iOS aplikace v akci Mallware? Game over... App Zadává se App App Startuje heslo Zavřena Mrtvá User: Aplikace skončila... Útočník ukradne telefon... System: Ještě si ji tu nechám... ... nebo ho ztratíte...iOS Docs: “The system [iOS] keeps suspended apps in memory for as long aspossible, removing them only when the amount of free memory gets low.”
  24. 24. Práce s pamětí• Tajné = nemělo by na zařízení dlouho zůstávat.• iOS: Objective-C• Android: Java• Společný jmenovatel: C
  25. 25. Mechanism illustration UITextField C_Ln Sent appended [C_Li]i=1..Length App & Keyboard User taps User H/TOTP App Sends Keyboard App fetches Keyboard a letter presses sign- signature Signed Created [C_Li]i=1..Length Destroyed. Ln in Received Request.C Securtity Security Context H/TOTP Password module Letter Ln Ciphered Context Deciphers signature & Context using OTP Created Password computed Destroyed
  26. 26. Mechanism illustration UITextField C_Ln Sent appended [C_Li]i=1..Length App & Keyboard User taps User H/TOTP App Sends Keyboard App fetches Keyboard a letter presses sign- signature Signed Created [C_Li]i=1..Length Destroyed. Ln in Received Request. Ln C_LnC Securtity Security Context H/TOTP Password module Letter Ln Ciphered Context Deciphers signature & Context using OTP Created Password computed Destroyed
  27. 27. Mechanism illustration UITextField C_Ln Sent appended [C_Li]i=1..Length [C_Li]i=1..Length App & Keyboard User taps User H/TOTP App Sends Keyboard App fetches Keyboard a letter presses sign- signature Signed Created [C_Li]i=1..Length Destroyed. Ln in Received Request. [C_Li]i=1..Length binary garbageC Securtity Security Context H/TOTP Password module Letter Ln Ciphered Context Deciphers signature & Context using OTP Created Password computed Destroyed
  28. 28. Tečka na závěr...
  29. 29. Věděli jste, že ...• ... iOS při přechodu aplikace na pozadí dělá screenshot aplikace?• Nutnost ošetřit v rámci aplikace zobrazením dummy view.
  30. 30. Děkuji, otázky?

×