lunes, 16 de septiembre de 2013

Por qué lockpicking

¿Qué tiene que ver el abrir una cerradura o candado con seguridad informática? ¿Por qué le estás prestando atención a esa actividad de ratero? Una persona que va a colaborar en el Lockpicking Village de la Ekoparty 2013 tuvo que solicitar que o no lo nombren o ponerle a la sección un nombre más "corporativo", tipo "Taller de Seguridad Física" para que en el trabajo no le cuestionen su participación.

English version here

Como que es algo entre trucho y adolescente, no es visto como algo serio. Me encontré una cadena para bici, "¿venía con la bici?" me preguntan.

Primera respuesta


Al abrir esa cerradura podemos sustraer un dispositivo, abrirlo para adulterarlo o acceder a claves escritas guardadas en un cajón, acceder a una terminal no protegida, a documentación sensible impresa, poner un keylogger usb, un splitter al video, un sniffer en la red, tomar una cinta de backup o, por que no, un disco en producción. Insuficiente, muy corporativa.

Segunda respuesta


La llave es un factor de autenticación[1][2], es algo que tengo. La contraseña, algo que sé. No me gusta mucho asi, quien tiene la contraseña escrita en un papel, no la sabe, la tiene, pero la literatura dice así.

El fabricante de la cerradura está en la misma posición que quien implementa un algoritmo de autenticación. El que instala la puerta, un sistema de autenticación.

El sacar una copia de una llave de modo subrepticio es equivalente al proceso de robar contraseñas ya sea por shoulder surfing, keylogger o phishing.

Las llaves se pueden copiar llevándolas al cerrajero o se puede obtener un molde o fotografía. Shoulder surfing es mirar por encima del hombro mientras alguien escribe la contraseña, keylogger es un programa que captura lo que uno escribe y lo envía al atacante, phishing es engañar a alguien para que ingrese sus contraseñas en un lugar falso bajo nuestro control.

Mover el pestillo sin girar el mecanismo de cerradura es equivalente a aprovechar una falla de diseño en un sistema criptográfico o en una aplicación web, como CSRF o session fixation.

Un ejemplo de lo primero es el can shim[3] de Deviant Ollam que es usar una lata para abrir un candado, equivalente a usar una tarjeta en una puerta. La explicación de CSRF no es tan sencilla, pero básicamente es hacer que un sitio bajo nuestro control haga una solicitud a otro usando la sesión de la víctima. La de session fixation tampoco es sencilla, pero permite obtener una sesión autenticada sin conocer ni obtener las claves.


El impressioning, que consiste en usar una llave virgen para detectar las marcas de los pines e ir limando hasta obtener una llave que abre, se parece a un timing attack donde se deduce la clave a partir del tiempo que le lleva al sistema de autenticación responder según los valores que se introduzcan.

No veo paralelo para lifting, que es ir abriendo la cerradura de a poco, poniendo los elementos en su lugar. En cierto modo se parece al timing attack, salvo que no obtenemos la llave, sólo la apertura.

El racking es una versión medio bruta de lifting, como probar muchas combinaciones que es como un ataque de fuerza bruta. En el caso de un candado de combinación es probar todos los números posibles. Pero racking más se parece a un ataque de diccionario, que en el caso del candado sería usar los números más frecuentes.

Si un password está hasheado y el atacante obtiene ese hash y logra una clave que aunque distinta a la original tiene ese mismo hash (colisión se llama), es como si tuviera una llave maestra.

Si una persona tiene las mismas claves en distintas cuentas, si un sitio es comprometido, el atacante puede atacar todas las cuentas. Es como tener una sola llave para todas las puertas.

El bumping es básicamente pegarle a la cerradura con una llave especial y a lo que más se parece es a un buffer overflow para cambiar el flujo de ejecución

Comparación de vulnerabilidades


saltea mecanismos
de autenticación
obtiene copia
de la contraseña
o llave
keyloggernosi
shoulder surfingnosi
phishingnosi
csrfsino
session fixationsino
dictionarynosi
brute forcenosi
collisionen cierto modoen cierto modo
buffer overflowsino
timing attacknosi
repetitionnoimplica que se obtuvo la primera
key copynosi
can shimsino
liftingnono (*)
impressioningnosi
rackingnono
master keyen cierto modoen cierto modo
social engineeringsiprobablemente
bumpingnono




Responsabilidades y prevenciones



responsableprevención
keyloggerusuariono instalar malware
shoulder surfingusuarioser mas vivo
phishingusuarioser mas vivo
csrfproveedortoken secreto
session fixationproveedordescartar sesión
dictionaryusuarioque no esté en un diccionario
brute forcedestinofortalecer(**)
collisionproveedormejorar algoritmo (***)
buffer overflowproveedorno confiar en 0 como fin de string
timing attackproveedorcomparaciones en tiempo fijo
repetitionusuariousar distintas claves o llaves
key copyusuariono dar llave
can shimproveedorbloquear pestillo
liftingproveedormejorar diseño (****)
impressioningproveedorpines redondeados
rackingproveedormejorar diseño (****)
master keycompartidaasumir el riesgo
social engineeringusuarioser mas vivo
bumpingproveedorresortes distinta fuerza

(*) Supongo que alguien con la suficiente experiencia podría reconstruir la llave a partir de haber aplicado éxitosamente el método. Hace muchos años, fui a un cerrajero a hacer una copia del departamento de mi abuela. Era una llave común de paletas sin identificación. El cerrajero la miró y me dijo "ah, la de Doña XXXX".
(**) Fortalecer es hacer más larga y compleja, exigiendo letras mayúsculas, minúsculas, números y símbolos.
(***) Si el atacante no conoce el algoritmo, no puede hallar colisiones. La teoría dice que el algoritmo no es secreto, pero la defensa en profundidad dice que si.

(****) Incluye usar pines especiales, resortes de distinta fuerza y una huella más retorcida.


Ahora no tanto, pero hace un tiempo se podía tocar mucho timbres en un edificio y alguien te abría. Esa es una de las tantas maneras de aplicar ingeniería social. Se parece a encontrarse una sesión sin bloquear.

Insuficiente, muy académica.

Tercera respuesta


Hay otra respuesta, que es el estado mental, la actitud. El espíritu del lockpicking es el mismo que el del hacking. Paralelamente, el objetivo del ladrón que vulnera una cerradura es el mismo que el de que distribuye malware.

La sensación de abrir una cerradura sin la llave es parecida a la de hackear un sistema, en situación de laboratorio o en el marco de un ethical hacking, claro.


Hace muchos años había leido un artículo que lamentablemente no puedo recuperar. No sé si era correcto, que valor tenía. Pero decía que en algún período de la antigüedad los cerrojos no eran efectivos por si mismo sino por el respeto que imponía quien los había puesto. Abrir el cerrojo de un cofre real no era simplemente violar la cerradura, que parece que era muy fácil, sino actuar contra la autoridad del rey.

Tras haber asistido a los Lockpicking Villages de las Ekoparty 2011, 2012 y preparándome para 2013 y haber probado lo aprendido en varias ocasiones, he llegado a la conclusión de que el artículo es correcto.

Un poco más de lockpicking en http://seguridad-agile.blogspot.com/2013/04/disposable-pick-tools-for-office.html

Para ver los resultados de La Caja, http://seguridad-agile.blogspot.com/2013/09/ekoparty-2013-y-la-caja-de-lockpicking.html

Si te interesa el lockpicking, https://groups.google.com/forum/#!forum/l0ckpickar

Referencias

[1] http://en.wikipedia.org/wiki/Multi-factor_authentication
[2] http://seguridad-agile.blogspot.com/2013/11/por-que-no-biometria.html
[3] http://deviating.net/lockpicking/media/can_shim.avi

No hay comentarios:

Publicar un comentario