36
Bankovní aplikace ... a jejich bezpečnost Petr Dvořák, Partner & iOS Development Lead @joshis_tweets

Bankovní aplikace a jejich bezpečnost

Embed Size (px)

Citation preview

Page 1: Bankovní aplikace a jejich bezpečnost

Bankovní aplikace... a jejich bezpečnost

Petr Dvo!ák, Partner & iOS Development Lead@joshis_tweets

Page 2: Bankovní aplikace a jejich bezpečnost

Má cenu se starat?

Page 3: Bankovní aplikace a jejich bezpečnost

Business case

• Ztráta pen"z - nutnost p!ímé refundace

• Ztráta dat - nutnost investic (nové karty, ...)

• Reputační riziko

Page 4: Bankovní aplikace a jejich bezpečnost

Reputa#ní riziko

• $patn" odhadnuteln% dopad

• Problém nemusí nastat, sta#í mo&nost

• B"&n% u&ivatel je neinformovan%

Page 5: Bankovní aplikace a jejich bezpečnost

Nutná ob"'...

Page 6: Bankovní aplikace a jejich bezpečnost
Page 7: Bankovní aplikace a jejich bezpečnost
Page 8: Bankovní aplikace a jejich bezpečnost

Reputa#ní rizikoCena v K#

Po#et klient(

Dopad incidentu

Cena protiopat!ení

Page 9: Bankovní aplikace a jejich bezpečnost

Typické problémy

Page 10: Bankovní aplikace a jejich bezpečnost

Bezpe#ná komunikace

• iOS

• Základní validace certi)kátu.

• Jednoduchá instalace nové CA do systému.

Page 11: Bankovní aplikace a jejich bezpečnost

Bezpe#ná komunikace

• iOS

• Základní validace certi)kátu.

• Jednoduchá instalace nové CA do systému.

Page 12: Bankovní aplikace a jejich bezpečnost

Bezpe#ná komunikace

• iOS

• Základní validace certi)kátu.

• Jednoduchá instalace nové CA do systému.

Page 13: Bankovní aplikace a jejich bezpečnost

Bezpe#ná komunikace

• iOS

• Základní validace certi)kátu.

• Jednoduchá instalace nové CA do systému.

Page 14: Bankovní aplikace a jejich bezpečnost

Bezpe#ná komunikace

• iOS

• Základní validace certi)kátu.

• Jednoduchá instalace nové CA do systému.

Page 15: Bankovní aplikace a jejich bezpečnost

MITM Proxy

Page 16: Bankovní aplikace a jejich bezpečnost

Co s tím?

• D(sledná kontrola certi)kátu na klientovi.

• Problém: Vypr*ení platnosti certi)kátu.

• Pouze EV certi)káty od trusted CA.

• Dodate#né podepisování (OAuth 1.0a)

Page 17: Bankovní aplikace a jejich bezpečnost

Logování informací

• V"t*inou ji& vy!e*eno.

• Pro# se tím je*t" zab%vat?

Page 18: Bankovní aplikace a jejich bezpečnost

Odd"lená prost!edí

• Prost!edí pro v%voj: chci logovat, nemám certi)kát.

• Prost!edí pro produkci: nechci logovat, mám certi)kát.

• Nastavení procesu na úrovni sestavení aplikace.

Page 19: Bankovní aplikace a jejich bezpečnost

Jailbreak

• Nutnost pro v%vojá!e.

• Zapov"zeno u&ivatel(m.

• Vhodné n"jak otestovat v aplikaci.

Page 20: Bankovní aplikace a jejich bezpečnost

Jailbreak

#pragma mark - Basic 90% test

+ (BOOL) deviceIsJailbroken

{

NSString *)lePath = @"/Applications/Cydia.app";

return [[NSFileManager defaultManager] )leExistsAtPath:)lePath];

}

Page 21: Bankovní aplikace a jejich bezpečnost

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)

Page 22: Bankovní aplikace a jejich bezpečnost
Page 23: Bankovní aplikace a jejich bezpečnost

Demo Cycript

Page 24: Bankovní aplikace a jejich bezpečnost

// 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];

Cycript - Demo

Page 25: Bankovní aplikace a jejich bezpečnost

Ochrana hesla

• Samoz!ejm" hesla neukládat “na disk”.

• A co ani do pam"ti?

Page 26: Bankovní aplikace a jejich bezpečnost

iOS aplikace v akci

iOS Docs: “The system [iOS] keeps suspended apps in memory for as long as possible, removing them only when the amount of free memory gets low.”

App Startuje

App Zavřena

App Mrtvá

User: Aplikace skončila... Útočník ukradne telefon...... nebo ho ztratíte...

Mallware?Game over...

Zadává se heslo

System: Ještě si ji tu nechám...

Page 27: Bankovní aplikace a jejich bezpečnost

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

Page 28: Bankovní aplikace a jejich bezpečnost
Page 29: Bankovní aplikace a jejich bezpečnost
Page 30: Bankovní aplikace a jejich bezpečnost

Mechanism illustrationAp

p &

Keyb

oard

UIT

extF

ield

C Se

curt

ity

mod

ule

User taps a letter

Ln

KeyboardCreated

Security Context Created

Letter Ln Ciphered using OTP

C_Ln appended

User presses sign-

in

App fetches [C_Li]i=1..Length

Context Deciphers Password

H/TOTP signature computed

Keyboard Destroyed.

Password & Context Destroyed

App Sends Signed

Request.

H/TOTP signature Received

Sent [C_Li]i=1..Length

Page 31: Bankovní aplikace a jejich bezpečnost

Mechanism illustrationAp

p &

Keyb

oard

UIT

extF

ield

C Se

curt

ity

mod

ule

User taps a letter

Ln

KeyboardCreated

Security Context Created

Letter Ln Ciphered using OTP

C_Ln appended

User presses sign-

in

App fetches [C_Li]i=1..Length

Context Deciphers Password

H/TOTP signature computed

Keyboard Destroyed.

Password & Context Destroyed

App Sends Signed

Request.

H/TOTP signature Received

Ln C_Ln

Sent [C_Li]i=1..Length

Page 32: Bankovní aplikace a jejich bezpečnost

Mechanism illustrationAp

p &

Keyb

oard

UIT

extF

ield

C Se

curt

ity

mod

ule

User taps a letter

Ln

KeyboardCreated

Security Context Created

Letter Ln Ciphered using OTP

C_Ln appended

User presses sign-

in

App fetches [C_Li]i=1..Length

Context Deciphers Password

H/TOTP signature computed

Keyboard Destroyed.

Password & Context Destroyed

App Sends Signed

Request.

H/TOTP signature Received

[C_Li]i=1..Length binary garbage

Sent [C_Li]i=1..Length

[C_Li]i=1..Length

Page 33: Bankovní aplikace a jejich bezpečnost

Te#ka na záv"r...

Page 34: Bankovní aplikace a jejich bezpečnost

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.

Page 35: Bankovní aplikace a jejich bezpečnost
Page 36: Bankovní aplikace a jejich bezpečnost

D"kuji, otázky?