how i met your ewallet - rooted 2015

62
How I Met Your eWallet Félix Brezo Yaiza Rubio Carlos Díaz

Upload: elevenpaths

Post on 24-Jul-2015

294 views

Category:

Technology


5 download

TRANSCRIPT

How I Met Your eWallet

Félix Brezo

Yaiza Rubio

Carlos Díaz

Índice

1. Concepto de cartera

2. Tipos de carteras

3. Tipos de almacenamiento

4. Diferentes ataques a las carteras

5. Implicaciones

Reto: Hack us!

1. Concepto de cartera

¿Qué entedemos por eWallet?

Las carteras que permiten la realización de transacciones de una criptodivisa

Se trata de una dirección

asociada a una clave privada para firmar transacciones y

reclamar así la legitimidad ante la red de la criptodivisa.

2. Tipos de carteras

Diferencias entre carteras C

arte

ras

ran

do

m

Dirección +

Clave privada

Seguridad Pérdida de claves privadas

Car

tera

s V

an

ity

Diferencias entre carteras

Patrón 1Rooted

¿Mac

hea

co

n e

l pat

rón

1

Ro

ote

d ?

SI

Dirección

+ Clave

privada

NO

Seguridad Coste de

computación Identidad

Dirección + clave privada

Car

tera

s m

enta

les

Diferencias entre carteras

Palabra conocida Rooted

Dirección +

Clave privada

No es necesario almacenar las claves privadas

Facilidad para dar con las palabras conocidas utilizadas

Car

tera

s m

ult

ifir

ma

Diferencias entre carteras

3NuevaDir

1DIRECCIÓN

1dirección

1DiReCcIóN

Más laborioso Transferencia por consenso

Para realizar transferencias con esta cartera serán necesarias las firmas de un número predefinido cuando se creó

Confiabilidad en el árbitro

3. Tipos de almacenamiento

Existen distintas formas de almacenar las claves privadas:

Carteras en local: almacenan las claves privadas en archivos bajo control del usuario.

Carteras mentales: es posible

la recuperación de la clave privada a partir de una palabra conocida por el usuario.

Carteras en la nube: un tercero

es el encargado de almacenar la clave privada asociada a una dirección.

4. Diferentes ataques a las carteras

Carteras en local

¿Dónde se almacena el wallet.dat?

¿Cómo recuperar monederos en local sin cifrar?

PASO 1: listar las direcciones del monedero

Los clientes tienen API de consulta que facilitan la automatización de tareas:

PASO 2: volcar la clave privada

PASO 3: importar la clave privada a otro equipo

¿Cómo recuperar monederos en local sin cifrar?

PASO 4: esperar al reescaneo de la cadena de bloques

PASO 1: listar las direcciones del monedero sigue siendo posible

¿Cómo recuperar monederos en local cifrados?

Solamente algunas operaciones muy concretas requieren la contraseña…

PASO 2: ataque de diccionario sobre la passphrase

¿Cómo recuperar monederos en local cifrados?

PASO 3: volver a cifrar el monedero con otra passphrase para evitar que el dueño los reclame

Qué necesitaría un atacante

Identificar equipos que están corriendo nodos de Bitcoin

Identificar ficheros de datos de los monederos

Qué necesitaría un atacante

Qué necesitaría un atacante

Si no están cifrados:

Identificar equipos que están corriendo nodos de Bitcoin

Identificar ficheros de datos de los monederos

Si están cifrados:

Fuerza bruta

Keylogging

Ataques de diccionario

Otro tipo de ataques que no necesitarían las claves privadas

son los ataques por aislamiento

Un atacante que controlara los nodos a los que se conecta el cliente puede hacer que se perciban como válidas las transacciones de un tercero

peers.dat

Ataque por aislamiento

Carteras mentales

Proceso para la identificación de carteras mentales

Direcciones +

Claves privadas

Algunas cifras sobre carteras mentales

4.000.000 palabras

204 diccionarios

17.902 direcciones

recibieron bitcoins en 4.753 transacciones sumando en

total 37.040 movimientos

con estas direcciones

4.000.000 direcciones y

claves privadas

0

2

4

6

8

10

12

14

16

18

20

0

500

1000

1500

2000

2500

3000

3500

01/01/2011 01/01/2012 01/01/2013 01/01/2014 01/01/2015

BTC

USD

USD extraídos acumulados BTC extraídos acumulados

Cantidades extraídas de las carteras identificadas

Algunas cifras sobre carteras mentales

18,97

2.906

204 diccionarios

4.000.000 palabras

17.902 direcciones

recibieron bitcoins en 4.753 transacciones sumando en

total 37.040 movimientos

con estas direcciones

4.000.000 direcciones y

claves privadas

Algunas cifras sobre carteras mentales

18,97

2.906

204 diccionarios

4.000.000 palabras

17.902 direcciones

recibieron bitcoins en 4.753 transacciones sumando en

total 37.040 movimientos

con estas direcciones

4.000.000 direcciones y

claves privadas

Pero, ¿hay gente esperando ahí fuera?

Lo comprobamos dejando cebos a disposición de cualquiera…

Compramos bitcoins 1

Generamos tres direcciones a partir de palabras conocidas 2

Realizamos la transferencia 3

¿Cuánto tuvimos que esperar a que se los llevaran?

¿Qué proceso hemos llevado a cabo?

Transferimos bitcoins a las siguientes direcciones:

DIRECCIÓN 1

0.00009933

Hora: 10:17:41

DIRECCIÓN 2

0.00009933 Hora: 10:17:41

Hora: 10:17:51 Robado a las:

Robado a las: Hora: 10:17:51

DIRECCIÓN 3

0.00010033 Hora: 10:17:41

Robado a las: Hora: 15:25:01 Palabra: overrate

Palabra: cute

Palabra: callosal

Características de las transacciones que han solicitado los bitcoins de esta transacción

Inputs: 0,00009933

Hora de petición: 10:17

¿Fee?: NO Tamaño de la transacción: 224 bytes

INTENTO DE

Hora de petición: 10:18

Tamaño de la transacción: 224 bytes

¿Fee?: SÍ Inputs: 0,0009933

INTENTO DE

Hora de petición: 10:19

¿Fee?: NO Tamaño de la transacción: 373 bytes

Inputs: 0,00009933 + 74,98848262

INTENTO DE

¿Qué criterio se utiliza para incorporar las transacciones a la cadena de bloques?

Espacio para transacciones con prioridad máxima 50 KB

𝑃𝑡 = 𝐵𝑇𝐶𝑖·𝐴𝑔𝑒𝑖𝑛𝑖

𝑠𝑡

Donde:

𝑃𝑡 Prioridad de la transacción t

𝐵𝑇𝐶𝑖 Input en Satoshis de la «operación» i

𝐴𝑔𝑒𝑖 Antigüedad medida en confirmaciones i

𝑠𝑡 Tamaño en bytes de la transacción

750 KB

𝑛 Es el total de inputs de la transacción

A mayor antigüedad

Pri

ori

dad

¿Qué criterio se utiliza para incorporar las transacciones a la cadena de bloques?

Espacio para transacciones con prioridad máxima 50 KB

𝑃𝑡 = 𝐵𝑇𝐶𝑖·𝐴𝑔𝑒𝑖𝑛𝑖

𝑠𝑡

A mayores cantidades transferidas

A mayor tamaño

750 KB

¿Qué criterio se utiliza para incorporar el resto de las transacciones a la cadena de bloques?

Comisiones

𝑃𝑡 = 𝐵𝑇𝐶𝑖·𝐴𝑔𝑒𝑖𝑛𝑖

𝑠𝑡

Criterio de prioridad descendente

El nodo que escribe un nuevo bloque las acumula

Es un incentivo para la cesión de cómputo complementario a la minería

750 KB

𝑛𝑡 = 1 𝑠𝑡 = 224 𝐵𝑦𝑡𝑒𝑠 Comisión = 0,00001

Inputs 𝐵𝑇𝐶1 = 9933; 𝐴𝑔𝑒1 = 0

Diferentes formas de aproximarse 𝑃𝑡 = 𝐵𝑇𝐶𝑖·𝐴𝑔𝑒𝑖𝑛𝑖

𝑠𝑡

-- 𝑃𝑡 =9933·0

224= 0

En el momento de NUESTRA transferencia, el bloque no está confirmado: 𝐴𝑔𝑒1 = 0

𝑛𝑡 = 1 𝑠𝑡 = 224 𝐵𝑦𝑡𝑒𝑠

Inputs 𝐵𝑇𝐶1 = 9933; 𝐴𝑔𝑒1 = 0

Comisión 𝑃𝑡 =9933·0

224= 0

Varias entradas

𝑃𝑡 = 0+7,498·109∗424

373≫ 0

𝑛𝑡 = 2 𝑠𝑡 = 373 𝐵𝑦𝑡𝑒𝑠

Inputs 𝐵𝑇𝐶1 = 9933; 𝐴𝑔𝑒1 = 0 𝐵𝑇𝐶2 = 7 498 848 162; 𝐴𝑔𝑒2 = 424

Diferentes formas de aproximarse 𝑃𝑡 = 𝐵𝑇𝐶𝑖·𝐴𝑔𝑒𝑖𝑛𝑖

𝑠𝑡

En el momento de NUESTRA transferencia, el bloque no está confirmado: 𝐴𝑔𝑒1 = 0

𝑃𝑡 =0+7,498·109∗424

373= 8,524 · 109

𝑃𝑡 =9933·0

224=0

𝑃𝑡 =9933·0

224= 0

Mientras se confirma la transacción se podría incurrir en doble gasto

Carteras en la nube

¿Cuándo se robaron las credenciales?

0

50

100

150

200

250

300

350

01/01/2011 01/01/2012 01/01/2013 01/01/2014 01/01/2015

Acu

mu

lad

o d

e c

red

en

cial

es

sust

raid

as

bitcoin.de btc-e.com coinbase.com coinkite.com strongcoin.com xapo.com

Se intensifica la campaña

de robo de credenciales en plataformas de Bitcoin

0

200

400

600

800

1000

1200

01/01/2011 01/01/2012 01/01/2013 01/01/2014 01/01/2015

Val

or

de

l Bit

coin

en

USD

Evolución del precio del Bitcoin desde 2011

La campaña coincide con un gran

repunte del precio del Bitcoin

¿Se podría acceder con la información prodecente de una botnet genérica?

Usuario

Password

Identificador Passphrase

Autenticación en 2 pasos

• OTP al móvil, mail, etc. • Autorizar accesos desde otras

localizaciones o navegadores

ACCESS GRANTED

Histórico

PIN

bitalo.com

bitcoin.de

bitgo.com

blockchain.info

btc-e.com

coinapult.com

coinbase.com

coinkite.com

coinpunk.com

cubits.com

greenaddress.it

hivewallet.com

strongcoin.com

xapo.com

Plataformas a las que se habría podido acceder*

* Asumiendo una configuración de seguridad por defecto

Confirmación de datos de inicio de sesión

ACCESS GRANTED

Autenticación en dos pasos

Passcode (distinto del de inicio de sesión)

TRANSFERENCIA REALIZADA

¿Existen más medidas de seguridad para realizar transferencias?

bitalo.com

btc-e.com

coinapult.com

coinkite.com

coinpunk.com

cubits.com

Plataformas desde la que se hubiera podido realizar transferencias*

(2FA)

(Password)

greenaddress.it

hivewallet.com

strongcoin.com

(2FA)

* Asumiendo una configuración de seguridad por defecto

Los delincuentes también están lanzando campañas de phishing contra estas plataformas aprovechando dominios cybersquatting y typosquatting

Ficheros de configuración de ZeuS con menciones a plataformas de ewallets

Año

Plataforma Nº de ficheros

2013 bitcoin.de 6

2013 blockchain.info 3

2015 blockchain.info 1

2015 coinbase.com 1

5. Implicaciones

Usuarios

Tú sabrás si utilizas…

…dispositivos conectados a la red para el almacenamiento de claves privadas

…carteras mentales para la generación de tus claves

… si confías en un tercero para generar tus claves privadas ya que puede convertirse

en un acto de fe

Tú sabrás si utilizas…

…dispositivos conectados a la red para el almacenamiento de claves privadas

… carteras mentales para la generación de tus claves

… plataformas que no dispongan de sistemas de verificación en dos pasos

Una buena práctica es utilizar carteras multifirma para asegurar tus criptodivisas

Atacantes

Aplicarán técnicas tradicionalmente utilizadas contra el sector bancario. Para ello, tratarán de…

… obtener el máximo conocimiento de las víctimas

… adecuar la filosofía de ZeuS al robo de criptodivisas

… intensificar campañas de phishing

… diseñar redes artificiales para la realización de ataques de aislamiento

… utilizar botnets para el calentamiento artificial de la divisa

Empresas

Las empresas de seguridad pueden encontrar un nuevo target al que destinar sus productos basados en…

Detección de campañas de phishing, malware o aplicaciones móviles sospechosas para aquellas

empresas que operen en la nube

Reducción de los tiempos de espera basados en la identificación de transacciones sospechosas con ciertos márgenes de confianza

Ofrecimiento de servicios de arbitraje para la resolución de conflictos entre partes

Reto: Hack us!

Hemos transferido bitcoins a varias direcciones para que las recuperéis…

• A la cartera mental generada con la palabra

RootedCon2015: 0.02 BTC = 5€

• A una cartera mental generada con el

nombre de un ponente de la Rooted: 0.08 BTC = 20€

• A la cuenta del lumbreras que perdió la clave: 0.39 BTC = 100€

http://pastebin.com/AwE2B52m

How I Met Your eWallet

Félix Brezo

Yaiza Rubio

Carlos Díaz

Gracias!