Está en la página 1de 69

INGENIERIA INVERSA

ESTUDIO DE UN CASO PRACTICO SOBRE SMARTCARDS


IV Jornadas Telemticas del KASLab 2006 Ramiro Pareja Tech For Fun (www.t4f.org) ramiropareja@ieee.org
www.t4f.org Ramiro Pareja (T4F) Julio 2006

DISCLAIMER

Esta informacion es EXCLUSIVAMENTE para fines educativos. El autor no se responsabiliza del uso que pueda hacerse de ella. Durante la realizacion del siguiente hack en ningun momento se quebranto la ley. No se produjo ningun perjuicio ni se recibio ningun beneficio.
Ramiro Pareja (T4F) Julio 2006

www.t4f.org

DISCLAIMER

Todo lo aqui expuesto es pura ficcion producto de mi perfida y perturbada imaginacion. Nunca se realizo dicho hack Las fotos y videos son falsos, generadas por ordenador.

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

INGENIERIA INVERSA

INTRODUCCION

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

DEFINICION DE INGENIERIA INVERSA

Proceso de obtencion de informacion tecnica a partir de un producto accesible al publico, con el fin de determinar de que esta hecho, que lo hace funcionar y como fue fabricado (wikipedia)

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

POR QUE SE LLAMA INGENIERIA INVERSA?

Objetivos y medios contrarios

INGENIERIA: Desarrollo de un producto a partir de unas especificaciones dadas, usando para ello los recursos disponibles. ING. INVERSA: A partir de un producto, deduccion de las especificaciones que cumple y los recursos usados para ello. INGENIERIA: De lo concreto a lo abstracto ING. INVERSA: De lo abstracto a lo concreto
Ramiro Pareja (T4F) Julio 2006

Proceso de implementacion invertido (cuestionable!)


www.t4f.org

PROCESO DE INGENIERIA (IMPLEMENTACION)

Los distintos componentes se van juntando para realizar funciones cada mas complejas hasta llegar al producto final (Abstraccion)

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

PROCESO DE INGENIERIA (IMPLEMENTACION)

Los distintos componentes se van juntando para realizar funciones cada mas complejas hasta llegar al producto final (Abstraccion)
Modulo 1

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

PROCESO DE INGENIERIA (IMPLEMENTACION)

Los distintos componentes se van juntando para realizar funciones cada mas complejas hasta llegar al producto final (Abstraccion)
Modulo 1

Modulo 2

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

PROCESO DE INGENIERIA (IMPLEMENTACION)

Los distintos componentes se van juntando para realizar funciones cada mas complejas hasta llegar al producto final (Abstraccion)
Modulo 1

Modulo 2 Modulo 3

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

PROCESO DE INGENIERIA (IMPLEMENTACION)

Los distintos componentes se van juntando para realizar funciones cada mas complejas hasta llegar al producto final (Abstraccion)
Modulo 1 Modulo 4

Modulo 2 Modulo 3

Modulo 6

Modulo 5

Modulo 7

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

PROCESO DE INGENIERIA (IMPLEMENTACION)

Los distintos componentes se van juntando para realizar funciones cada mas complejas hasta llegar al producto final (Abstraccion)
Modulo 1 Modulo 8 Modulo 4

Modulo 2 Modulo 3

Modulo 6

Modulo 5

Modulo 7

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

PROCESO DE INGENIERIA (IMPLEMENTACION)

Los distintos componentes se van juntando para realizar funciones cada mas complejas hasta llegar al producto final (Abstraccion)
Modulo 1 Modulo 8 Modulo 4

Modulo 2 Modulo 3 Producto


www.t4f.org

Modulo 6

Modulo 5

Modulo 7

Ramiro Pareja (T4F) Julio 2006

PROCESO DE ING. INVERSA (IMPLEMENTACION)

Del producto final, separamos y analizamos individualmente los distintos componentes para encontrar su funcion (Concretizacion)
Modulo 1 Modulo 8 Modulo 4

Modulo 2 Modulo 3 Producto


www.t4f.org

Modulo 6

Modulo 5

Modulo 7

Ramiro Pareja (T4F) Julio 2006

PROCESO DE ING. INVERSA (IMPLEMENTACION)

Del producto final, separamos y analizamos individualmente los distintos componentes para encontrar su funcion (Concretizacion)
Modulo 1

Modulo 2 Modulo 3

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

PROCESO DE ING. INVERSA (IMPLEMENTACION)

Del producto final, separamos y analizamos individualmente los distintos componentes para encontrar su funcion (Concretizacion)
Modulo 1

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

CAMPOS DE APLICACION

INDUSTRIA MILITAR (ej: B-29, bomba atomica, motor a reaccion...) INDUSTRIA AUTOMOVILISTICA (ej: motor 2 tiempos) HARDWARE (ej: IBM PC) SOFTWARE (ej: NETBIOS, MSN, Cracks...) ELECTRONICA (ej: Pay-TV, tarjetas telefonicas, VISA CASH...) ....
Ramiro Pareja (T4F) Julio 2006

www.t4f.org

MOTIVACION

Ilicitas:

Apropiacion tecnologica Economica (explotacion de los resultados) Sustitucion de componentes obsoletos Eliminar restricciones impuestas en los productos Auditoria de seguridad Comprobar respeto de patentes y licencias
Ramiro Pareja (T4F) Julio 2006

Licitas:

www.t4f.org

MOTIVACION

RETO!
www.t4f.org Ramiro Pareja (T4F) Julio 2006

INGENIERIA INVERSA

CASO PRACTICO

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

ESCENARIO

Campus universitario Lavanderia de la residencia de estudiantes Sistema de pago basado en smartcards:


La tarjeta se recarga de dinero en una maquina La tarjeta se inserta en el lector de la lavadora y se aprieta un boton. El saldo es descontado. La lavadora se enciende.

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

ANTECEDENTES

Hack:

La tarjeta es insertada en el lector, que muestra el saldo de la misma Un trozo de carton es insertado en el lector de modo que tape los contactos de la tarjeta Se aprieta el boton de cobrar el saldo. La lavadora se enciende pero el saldo no es descontado

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

ANTECEDENTES

Fallo de diseo:

El lector lee el saldo al insertar la tarjeta, pero no comprueba que se haya descontado el saldo cuando se le da la orden de hacerlo. Releer el saldo de la tarjeta para comprobar que se haya descontado antes de permitir el uso de la lavadora.

Solucion:

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

ANTECEDENTES

Problema solventado un mes despues de su difusion. Conclusiones para un futuro hack?

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

OBJETIVOS

Comprometer el sistema:

Obtener servicios a un precio reducido o nulo

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

OBJETIVOS

Comprometer el sistema:

Obtener servicios a un precio reducido o nulo

Vias:

Recargar la tarjeta Falsificar la tarjeta (emulador) Bypass del sistema de acceso condicional (lector)
Ramiro Pareja (T4F) Julio 2006

www.t4f.org

DONDE SE GUARDA EL SALDO?

Localmente?

La tarjeta guarda el saldo Mas barato pero inseguro (falsificable) Ej: Visa Cash, tarjetas telefonicas (antiguamente), tarjetas parquimetros... Hack:

Modificar el saldo

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

DONDE SE GUARDA EL SALDO?

Remotamente?

La tarjeta guarda un ID. El lector consulta el saldo disponible para dicho ID en una base de datos remota Mas seguro pero costoso (conectividad de los lectores) Ej: Moviles prepago, tarjetas de credito, videoclubs automaticos, tarjetas telefonicas (saldo guardado + DB externa)...
Ramiro Pareja (T4F) Julio 2006

www.t4f.org

DONDE SE GUARDA EL SALDO?

Remotamente?

Hack:

Comprometer la DB (complicado) Usar un ID ajeno. Poco etico -> Intromision en la privacidad de un tercero

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

DONDE SE GUARDA EL SALDO?

Nosotros ya podemos saber donde se guarda el saldo!!!!

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

DONDE SE GUARDA EL SALDO?

Nosotros ya podemos saber donde se guarda el saldo!!!! La experiencia con el lector y el trozo de carton nos revela que el saldo esta en la tarjeta.

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

TARJETA LISTA O TONTA?

Tarjetas electronicas o chip

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

TARJETA LISTA O TONTA?

Smartcards

Tarjetas con procesador y memoria Recibe y procesa comandos Estandar ISO7816:


Parte 1: Caracteristicas fisicas Parte 2: Dimensiones y posiciones de los contactos Parte 3: Caracteristicas electricas Parte 4: Comandos Parte 5 y 6: adjudicacion de identificadores y numeracion

Ej: tarjetas GSM, tarjetas monedero (VISA Cash), carnet universitario, tarjetas Pay-Per-View, DNI electronico...
Ramiro Pareja (T4F) Julio 2006

www.t4f.org

TARJETA LISTA O TONTA?

Tarjeta tonta

ISO 7816 parte 1 y 2 Tarjetas con memoria y sin procesador, pero con logica de control y (eventualmente) autentificacion Ej: Tarjetas cabinas telefonicas, control de acceso y fichaje, videoclubs...

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

TARJETA LISTA O TONTA?

Facilidades/dificultades para hacer Ing. Inv.

Smartcard:

Totalmente Estandarizado:

Conocemos el protocolo de comunicacion Lector estandar

Procesador -> Criptografia compleja Ausencia de procesador -> Seguridad nula o minima Ausencia estandar:

Tarjetas tontas:

Protocolos de comunicaciones desconocidos Lector casero


Ramiro Pareja (T4F) Julio 2006

www.t4f.org

TARJETA LISTA O TONTA?

Para comprobar a que tipo de tarjeta nos enfrentamos probamos a enviarle un comando estandar con un lector estandar y esperamos una respuesta estandar.

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

TARJETA LISTA O TONTA?

Para comprobar a que tipo de tarjeta nos enfrentamos probamos a enviarle un comando estandar con un lector estandar y esperamos una respuesta estandar.

ES TONTA!
www.t4f.org Ramiro Pareja (T4F) Julio 2006

IDENTIFICANDO LA TARJETA

Existen varias decenas de tarjetas tontas (sincronas) distintas. Hacemos una lista de tarjetas con sus caracteristicas discriminatorias. Reducimos dicha lista usando la logica

Aplicaciones concretas de la tarjeta Truco del celo en los terminales

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

IDENTIFICANDO LA TARJETA

Derechos de la imagen: www.t4f.org

Thomas Httner / Karin Mayr

Ramiro Pareja (T4F) Julio 2006

EL MODELO DE LA CAJA NEGRA

Modelamos el sistema a atacar como una caja negra:


Datos entran en la caja La caja los procesa (se desconoce el como) Devuelve los datos procesados por la salida

Entradas

CAJA NEGRA

salidas

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

EL MODELO DE LA CAJA NEGRA

Objetivo

saber como funciona la caja negra (como procesa los datos de entrada)

Variando la entrada y analizando la salida inferimos el funcionamiento de la caja negra Problema:

en este caso, ni siquiera sabemos como se meten y sacan datos de la tarjeta


Ramiro Pareja (T4F) Julio 2006

www.t4f.org

EL MODELO DE LA CAJA NEGRA

Como podemos saber como meter/sacar datos de la tarjeta?

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

EL MODELO DE LA CAJA NEGRA

Como podemos saber como meter/sacar datos de la tarjeta?

Analizando las comunicaciones tarjeta lector

Entradas LECTOR Salidas


www.t4f.org Ramiro Pareja (T4F) Julio 2006

CAJA NEGRA

ANALISIS DE LA COMUNICACION

Hardware y software de diseo propio utilizado para analizar la comunicacion entre el lector y la tarjeta HARDWARE:

Analizador logico Logger para el analizador logico (MSDOS) Visualizador de logs (Linux / Windows)
Ramiro Pareja (T4F) Julio 2006

SOFTWARE:

www.t4f.org

ANALISIS DE LA COMUNICACION

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

ANALISIS DE LA COMUNICACION

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

ANALISIS DE LA COMUNICACION

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

ANALISIS DE COMUNICACIONES

Visualizador de logs (ncurses)

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

ANALISIS DE COMUNICACIONES

De la visualizacion de los logs y comparando los cronogramas con los datasheets, reducimos la lista de tarjetas posibles a dos candidatas: SLE 4432 SLE 4442

Como tenemos los datasheets, nos ahorramos analizar el protocolo.


Ramiro Pareja (T4F) Julio 2006

www.t4f.org

SLE4432 / SLE4442

Memoria EEPROM de 256 bytes Protocolo de transporte 2-wire SLE4442:

Proteccion contra escritura ilicita mediante un PIN de 24 bits Lectura / escritura de la memoria Autentificar / cambiar PIN (solo SLE4442)
Ramiro Pareja (T4F) Julio 2006

Comandos:

www.t4f.org

CONCRETANDO EL MODELO DE TARJETA

Desarrollo de software para el analisis de los logs. Automaticamente muestra las secuencias de comandos enviados por el lector y las respuestas de la tarjeta. La presencia de los comandos relacionados con el PIN confirman que la tarjeta es una SLE4442 Este software nos permite conocer el PIN de la tarjeta
Ramiro Pareja (T4F) Julio 2006

www.t4f.org

EL LECTOR

Usando la informacion del datasheet se crea hardware y software para enviar comandos (lectura, escritura, autentificacion...) a la tarjeta

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

EL MAPA DE MEMORIA

MAPA DE MEMORIA: Significado de cada byte en la memoria de la tarjeta. Variamos el saldo de la tarjeta para ver como varia el contenido de la memoria

1 byte -> saldo en BCD 4 bytes -> pseudoaleatorio: Checksum?

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

EL MAPA DE MEMORIA

Comparacion del contenido de la memoria de varias tarjetas ->


2 bytes -> numero de serie de la tarjeta 2 bytes -> zona del campus

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

HACKED???

Procedimiento para recargar:


Autentificarse ante la tarjeta con el PIN capturado Cambiar el saldo Cambiar el checksum (todavia no sabemos como)

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

OUCH !!!!!

EL PIN YA NO MAS ES ACEPTADO POR LA TARJETA! Nuevos logs -> el PIN ha cambiado El PIN es distinto para distintos saldos y distintas tarjetas

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

OUCH !!!!!

Pese a esto, el sistema esta comprometido:


Captura del PIN y del contenido de la memoria para un saldo X (snapshot) Captura del PIN para saldo 0 Autentificarse con el PIN para el saldo 0 Escribir el contenido de la memoria para el saldo X y cambiar el PIN al del saldo X

No necesitamos conocer los algoritmos que generan el PIN ni el checksum. Ni siquiera el mapa de memoria.

www.t4f.org Ramiro Pareja (T4F) Julio 2006

PERO QUEREMOS MAS!

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

CRIPTOANALISIS

Objetivo:

Determinar la funcion que genera el PIN y el checksum en a partir del contenido de la memoria.

Herramienta: Analisis diferencial

fijamos los parametros de la funcion excepto uno, el cual se varia lentamente mientras se observa la variacion de la salida
Ramiro Pareja (T4F) Julio 2006

www.t4f.org

ANALISIS DIFERENCIAL

F(B1,B2,B3...) = Funcion a analizar (ej:generacion PIN) B1, B2, B3... = Byte 1, Byte 2, Byte 3... Para simplificar supondremos que el saldo esta guardado en el byte 1:

F(saldo,B2,B3...)
Ramiro Pareja (T4F) Julio 2006

www.t4f.org

ANALISIS DIFERENCIAL

Saldo B2 B3 B4 B5...B254 B255 F(Saldo,B2,B3...)


Ramiro Pareja (T4F) Julio 2006

F()

www.t4f.org

ANALISIS DIFERENCIAL

F(SALDO, B2, B3...) = F'(SALDO,G(B2, B3...))

Saldo B2 B3 B4 B5...B254 B255 G(B2,B3...) F'(Saldo,G) G() F()

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

ANALISIS DIFERENCIAL

Fijamos todos los parametros menos el saldo: K = G(K2, K3, K4...)


Saldo K2 K3 K4 K F()

K255

G(B2,B3...)

F'(Saldo,K)

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

ANALISIS DIFERENCIAL

F'(SALDO,G(...)) = F'(SALDO,K) = F'(SALDO)

Saldo K2 K3 K4 K F()

K255

G(B2,B3...)

F'(Saldo)

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

ANALISIS DIFERENCIAL

Variando el parametro lentamente el parametro del saldo y observando la salida, podemos deducir la funcion F':

Acotacion (maximo, minimo) Periodicidad Discontinuidades

Se repite el proceso para los demas parametros de F


Si la aportacion de cada parametro a la funcion es independiente de los demas parametros, el metodo es viable
Ramiro Pareja (T4F) Julio 2006

www.t4f.org

ANALISIS DIFERENCIAL

Funcion calculo de PIN:

Lineal -> Algoritmo deducido diferencialmente Pseudo lineal -> Lineal en segmentos

Funcion calculo del checksum:

Algoritmo deducido para los segmentos lineales Algoritmo para predecir los saltos no lineales A partir de un checksum valido (ej: el de la tarjeta), se puede calcular un nuevo checksum para un saldo distinto dentro de unos margenes de variacion.
Ramiro Pareja (T4F) Julio 2006

En la practica:

www.t4f.org

DEFEATED!

www.t4f.org

Ramiro Pareja (T4F) Julio 2006

CONCLUSION

Sistema totalmente comprometido en 6 dias:


Recargar tarjeta Emulador

Autentificacion del lector por PIN no es suficiente. La tarjeta SLE4442 no es segura para aplicaciones de pago.
Ramiro Pareja (T4F) Julio 2006

www.t4f.org

CURIOSIDAD

www.hackaday.com/entry/1234000453073566 La empresa Secure Science Corporation anuncia (3 dias antes de mi hack) a bombo y platillo haber roto el sistema de pago ExpressPay de Fedex (SLE4442 con PIN invariante) Secure Science Corporation recomienda a FEDEX encriptar el PIN y el saldo para evitar el fraude. FALSO! -> Como se ha comentado antes, haciendo un snapshot de la memoria y capturando el PIN el sistema esta comprometido independientemente de la criptografia.
Ramiro Pareja (T4F) Julio 2006

www.t4f.org