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. Impl...
1. Concepto de cartera
¿Qué entedemos por eWallet?
Las carteras que permiten la realización de
transacciones de una criptodivisa
Se trata de una ...
2. Tipos de carteras
Diferencias entre carteras
Carterasrandom
Dirección
+
Clave privada
Seguridad
Pérdida de claves
privadas
CarterasVanity
Diferencias entre carteras
Patrón
1Rooted
¿Macheaconelpatrón
1Rooted?
SI
Dirección
+
Clave
privada
NO
Segur...
Carterasmentales
Diferencias entre carteras
Palabra
conocida
Rooted
Dirección
+
Clave privada
No es necesario
almacenar la...
Carterasmultifirma
Diferencias entre carteras
3NuevaDir
1DIRECCIÓN
1dirección
1DiReCcIóN
Más laborioso
Transferencia
por c...
3. Tipos de almacenamiento
Existen distintas formas de almacenar las
claves privadas:
Carteras en local: almacenan las
claves privadas en archivos ba...
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 cons...
PASO 2: volcar la clave privada
PASO 3: importar la clave privada a otro equipo
¿Cómo recuperar monederos
en local sin cif...
PASO 1: listar las direcciones del monedero sigue
siendo posible
¿Cómo recuperar monederos
en local cifrados?
Solamente al...
PASO 2: ataque de diccionario sobre la passphrase
¿Cómo recuperar monederos
en local cifrados?
PASO 3: volver a cifrar el ...
Qué necesitaría un atacante
Identificar equipos que están corriendo nodos de Bitcoin
Identificar ficheros de datos de los ...
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 fic...
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
transacc...
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...
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...
Algunas cifras sobre
carteras mentales
18,97
2.906
204 diccionarios
4.000.000 palabras
17.902 direcciones
recibieron bitco...
Algunas cifras sobre
carteras mentales
18,97
2.906
204 diccionarios
4.000.000 palabras
17.902 direcciones
recibieron bitco...
Pero, ¿hay gente
esperando ahí fuera?
Lo comprobamos dejando cebos a
disposición de cualquiera…
Compramos bitcoins1
Generamos tres direcciones a
partir de palabras conocidas2
Realizamos la transferencia3
¿Cuánto tuvimo...
Transferimos bitcoins a las siguientes direcciones:
DIRECCIÓN1
0.00009933
Hora: 10:17:41
DIRECCIÓN 2
0.00009933
Hora: 10:1...
Características de las
transacciones que han
solicitado los bitcoins de
esta transacción
Inputs: 0,00009933
Hora de petici...
¿Qué criterio se utiliza para incorporar las
transacciones a la cadena de bloques?
Espacio para transacciones con priorida...
A mayor antigüedad
Prioridad
¿Qué criterio se utiliza para incorporar las
transacciones a la cadena de bloques?
Espacio pa...
¿Qué criterio se utiliza para incorporar el resto
de las transacciones a la cadena de bloques?
Comisiones
𝑃𝑡 =
𝐵𝑇𝐶 𝑖·𝐴𝑔𝑒𝑖
...
𝑛 𝑡 = 1
𝑠𝑡 = 224 𝐵𝑦𝑡𝑒𝑠
Comisión = 0,00001
Inputs
𝐵𝑇𝐶1 = 9933; 𝐴𝑔𝑒1 = 0
Diferentes formas de aproximarse 𝑃𝑡 =
𝐵𝑇𝐶 𝑖·𝐴𝑔𝑒 𝑖
𝑛...
Diferentes formas de aproximarse 𝑃𝑡 =
𝐵𝑇𝐶 𝑖·𝐴𝑔𝑒 𝑖
𝑛
𝑖
𝑠 𝑡
En el momento de NUESTRA transferencia, el bloque no está confir...
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
A...
0
200
400
600
800
1000
1200
01/01/2011 01/01/2012 01/01/2013 01/01/2014 01/01/2015
ValordelBitcoinenUSD
Evolución del prec...
¿Se podría
acceder con la
información
prodecente de
una botnet
genérica?
Usuario
Password
Identificador Passphrase
Autenti...
bitalo.com
bitcoin.de
bitgo.com
blockchain.info
btc-e.com
coinapult.com
coinbase.com
coinkite.com
coinpunk.com
cubits.com
...
Confirmación de datos
de inicio de sesión
ACCESS GRANTED
Autenticación en dos pasos
Passcode (distinto del
de inicio de se...
bitalo.com
btc-e.com
coinapult.com
coinkite.com
coinpunk.com
cubits.com
Plataformas desde la que se hubiera podido
realiza...
Los delincuentes
también están lanzando
campañas de phishing
contra estas
plataformas
aprovechando
dominios
cybersquatting...
Ficheros de configuración de ZeuS con menciones
a plataformas de ewallets
Año Plataforma Nº de ficheros
2013 bitcoin.de 6
...
5. Implicaciones
Usuarios
Tú sabrás si utilizas…
…dispositivos conectados a la red para el almacenamiento
de claves privadas
…carteras mentales para...
… 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 par...
Atacantes
Aplicarán técnicas tradicionalmente utilizadas
contra el sector bancario. Para ello, tratarán de…
… obtener el máximo cono...
Empresas
Las empresas de seguridad pueden encontrar un
nuevo target al que destinar sus productos
basados en…
Detección de campañas...
Reto: Hack us!
Hemos transferido bitcoins a varias
direcciones para que las recuperéis…
• A la cartera mental generada con la palabra
Roo...
How I Met Your eWallet
Félix Brezo
Yaiza Rubio
Carlos Díaz
Gracias!
Próxima SlideShare
Cargando en…5
×

How I met your eWallet - Rooted 2015

1.453 visualizaciones

Publicado el

Ponencia en español de Yaiza Rubio y Félix Brezo: Las criptodivisas están introduciendo nuevas opciones de pago que conviven con métodos más convencionales. Estas nuevas alternativas presentan un escenario novedoso para la comisión de robos y otros delitos beneficiándose de que las características criptográficas de estas divisas dificultan su comprensión por una parte importante de sus usuarios. En un marco en el que los incidentes de seguridad asociados a las criptodivisas es creciente, en esta investigación se ha procedido a analizar las amenazas a las que se encuentran expuestos los usuarios de monederos de Bitcoin en diferentes formatos, presentando de forma práctica distintos vectores de ataque, desde la sustracción de los monederos almacenados localmente hasta el análisis de las medidas de seguridad adicionales que ofrecen los monederos en la nube.

Publicado en: Tecnología
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

How I met your eWallet - Rooted 2015

  1. 1. How I Met Your eWallet Félix Brezo Yaiza Rubio Carlos Díaz
  2. 2. Índice 1. Concepto de cartera 2. Tipos de carteras 3. Tipos de almacenamiento 4. Diferentes ataques a las carteras 5. Implicaciones Reto: Hack us!
  3. 3. 1. Concepto de cartera
  4. 4. ¿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.
  5. 5. 2. Tipos de carteras
  6. 6. Diferencias entre carteras Carterasrandom Dirección + Clave privada Seguridad Pérdida de claves privadas
  7. 7. CarterasVanity Diferencias entre carteras Patrón 1Rooted ¿Macheaconelpatrón 1Rooted? SI Dirección + Clave privada NO Seguridad Coste de computación Identidad Dirección + clave privada
  8. 8. Carterasmentales 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
  9. 9. Carterasmultifirma 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
  10. 10. 3. Tipos de almacenamiento
  11. 11. 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.
  12. 12. 4. Diferentes ataques a las carteras
  13. 13. Carteras en local
  14. 14. ¿Dónde se almacena el wallet.dat?
  15. 15. ¿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:
  16. 16. 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
  17. 17. 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…
  18. 18. 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
  19. 19. Qué necesitaría un atacante Identificar equipos que están corriendo nodos de Bitcoin Identificar ficheros de datos de los monederos
  20. 20. Qué necesitaría un atacante
  21. 21. 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
  22. 22. Otro tipo de ataques que no necesitarían las claves privadas son los ataques por aislamiento
  23. 23. 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
  24. 24. Carteras mentales
  25. 25. Proceso para la identificación de carteras mentales Direcciones + Claves privadas
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. 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
  30. 30. Pero, ¿hay gente esperando ahí fuera?
  31. 31. Lo comprobamos dejando cebos a disposición de cualquiera…
  32. 32. Compramos bitcoins1 Generamos tres direcciones a partir de palabras conocidas2 Realizamos la transferencia3 ¿Cuánto tuvimos que esperar a que se los llevaran? ¿Qué proceso hemos llevado a cabo?
  33. 33. Transferimos bitcoins a las siguientes direcciones: DIRECCIÓN1 0.00009933 Hora: 10:17:41 DIRECCIÓN 2 0.00009933 Hora: 10:17:41 Hora: 10:17:51Robado a las: Robado a las: Hora: 10:17:51 DIRECCIÓN 3 0.00010033 Hora: 10:17:41 Robado a las: Hora: 15:25:01Palabra: overrate Palabra: cute Palabra: callosal
  34. 34. 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
  35. 35. ¿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
  36. 36. A mayor antigüedad Prioridad ¿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
  37. 37. ¿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
  38. 38. 𝑛 𝑡 = 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
  39. 39. 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
  40. 40. Mientras se confirma la transacción se podría incurrir en doble gasto
  41. 41. Carteras en la nube
  42. 42. ¿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 Acumuladodecredencialessustraidas 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
  43. 43. 0 200 400 600 800 1000 1200 01/01/2011 01/01/2012 01/01/2013 01/01/2014 01/01/2015 ValordelBitcoinenUSD Evolución del precio del Bitcoin desde 2011 La campaña coincide con un gran repunte del precio del Bitcoin
  44. 44. ¿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
  45. 45. 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
  46. 46. 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?
  47. 47. 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
  48. 48. Los delincuentes también están lanzando campañas de phishing contra estas plataformas aprovechando dominios cybersquatting y typosquatting
  49. 49. 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
  50. 50. 5. Implicaciones
  51. 51. Usuarios
  52. 52. 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
  53. 53. … si confías en un tercero para generar tus claves privadas ya que puede convertirse en un acto de fe
  54. 54. 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
  55. 55. Atacantes
  56. 56. 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
  57. 57. Empresas
  58. 58. 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
  59. 59. Reto: Hack us!
  60. 60. 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
  61. 61. How I Met Your eWallet Félix Brezo Yaiza Rubio Carlos Díaz
  62. 62. Gracias!

×