2013/09/27

Ekoparty 2013 y La Caja de Lockpicking Village

Hot fix


Debido a un error que he cometido, tengo la imperdible oportunidad de rehacer una entrada errónea del blog.

¿Por qué no borraste la entrada no bien notaste tu error? Por que me resisto a lo efímero de lo digital. Si lo borro, pasa al olvido mi error. Para mi es más traumático y perdurable que la entrada siga existiendo, para no volver a cometerlo otra vez. Además no quería provocar el efecto Streissand[1].

El error fue no haber consultado al grupo antes de publicar. Aparte, aunque el propósito de la entrada original era destacar la diferencia entre commodities y diferenciables, la falta de una cuidadosa redacción llevó a que el error tomara un caracter demasiado llamativo. Esto produjo el doble de ofensa.

Podría decir estaba cansado, resentimiento, que no me importaba o que quería apropiarme del mérito de la construcción de la caja, pero no, lamentablemente fue por mera torpeza y un exceso de entusiasmo, donde se me mezcló lo de commodities vs diferenciables con la crítica a la actividad, sumando la inercia de que casi siempre hago la crítica de todo lo que hago.

Reescribo entonces la parte de la opinión acerca de la Eko de conjunto y tacho el resto para que quede la evidencia. Commodities vs diferenciables[2] va a una entrada aparte como debió haber sido y en [3] los detalles de la caja. Recomiendo ahorrarme la vergüenza y saltar directamente a la entrada correcta.


[1] http://en.wikipedia.org/wiki/Streisand_effect
[2] http://seguridad-agile.blogspot.com/2013/10/commodities-vs-diferenciables.html
[3] http://seguridad-agile.blogspot.com/2013/11/juego-capture-datacenter.html

Ekoparty 2013


Del evento en si de conjunto mucho no puedo opinar, pues sólo pude asistir a la última charla y al cierre debido a que me quedé en Lockpicking Village casi todo el tiempo.

Antes, había pasado por el training de análisis forense de red, muy bueno, a cargo de Giovanni y Fernando de csiete. Según ya les comenté a ellos, me quedó un saborcito de falta de la práctica de la gestión que es mi parte floja y el motivo principal por el que había ido, como que hubo demasiado de la parte técnica. De todos modos me sirvió.

La última charla fué extremadamente interesante, acerca de las fallas de seguridad en los protocolos de dispositivos de control industrial que se suelen usar en la industria petrolífera.

En el 2011 cuando apareció en el cierre Nitromán al comienzo me pareció una completa taradez, pero despues me gustó, tanto que en el 2012 lo esperaba ansioso. En esta ocasión fué reemplazado por unos zanquistas saltones, simpáticos, pero extraño a Nitromán tirando el nitrógeno y quemando retinas. Igual sufrí por que he hecho zanquismo y usado los cositos para saltar y sé lo fácil que es caerse, me hubiera dañado mucho que lo hicieran.

Y eso es todo, aguardando ansioso la próxima, mejor con La Caja otra vez.




En esta ocasión no puedo contar mucho pues me ví muy absorbido por el Lockpicking Village y en particular La Caja. Muy lindos los muñequitos de luces brillantes que saltaban pero me gustaba más nitromán tirando el nitrógeno y quemando retinas. Antes, había pasado por el training de analisis forense de red, muy bueno a cargo de Giovanni y Fernando de csiete.

Para mi esta fué una experiencia muy particular por haber participado en la construcción y operación del Lockpicking Village.


El proceso de construcción...


... fué extremadamente caótico.

Para poder fabricarla y ponerla en condiciones hubieron tres tipos de requisitos: commodities, diferenciables y algo en el medio. Esto lo descubrí en el proceso y como no soy tan vivo, intuí que deberían existir como tales en la teoría económica y así es [1]. Ya sabía de la existencia de commodities, pero es la primera vez que la sufro en carne propia.

Todo lo que voy a opinar ahora probablemente sea inexacto en términos económicos pero me resultan extremadamente útiles a la hora de analizar lo que ocurrió y como mejorarlo. El objetivo de esta entrada es el análisis para comprender, aprender y mejorar, no es hacer una crítica sobre el proceso, aunque tenga un efecto colateral. Además, me considero desproporcionadamente responsable de los errores en relación a mi aporte dentro del proceso.

Continuando, en nuestro caso, la diferencia entre ambas es que la commodity se resuelve con dinero y cuanto más dinero en menos tiempo. En cambio los diferenciables pueden tener un tiempo que no se ve reducido drásticamente por el aumento de la inversión.

Nuestros commodities fueron

  • computadoras
  • cables
  • switches
  • conectores
  • componentes electrónicos: laser, diodos y transistores infrarrojos
  • fuentes pc
  • ip camera
  • router con wifi
  • cerraduras
  • candados
y lo son pues nos da lo mismo las marcas y modelos. Teniendo plata, voy a Galería Jardín primero y a la calle Paraná despues y tengo todo en dos horas.

Nuestros diferenciables fueron

  • funcionamiento del sistema biométrico y su violación
  • arquitectura, diseño y armado de la caja
  • disposición de los sensores
  • soft controlador 
  • las reglas del juego
todo esto lleva tiempo, trabajo, iteraciones tras fallar.

Luego quedan estos elementos

  • cierre magnético
  • sensor biométrico
  • arduinos
  • sensor pir
  • sensor ultrasonido
  • maderas y acrílicos cortados
Los pongo en el medio pues no son tan fáciles de conseguir, ni son intercambiables: si se quemaba un arduino, teniamos que conseguir el mismo modelo o modicar el software y las conexiones. Aún así, se resuelven con dinero.

Nótese como dependiendo de quien lo vea, uno de estos elementos se puede convertir en commodity o diferenciables. Para un técnico electrónico experimentado, pasar de un arduino a un pic es un rato y además es más barato, para mi es cancelar el proyecto.


Me meto en este terreno tan ajeno a mis conocimientos pues más que descubrir los sufrí: hasta el segundo día aun no teniamos una computadora y eso produjo muchísimo trabajo perdido, al intentar varias veces hacer funcionar discos rígidos que resultaron rotos o tras haber sido instalados fallaron. Mientras, se uso mi computadora, cosa que no me gustó, luego explico bien.

El no tener la computadora desde algunas semanas antes produjo tambien problemas de despliegue, ya que por ejemplo, el acceso al dispositivo usb mediante el cual se comunica con el arduino, en linux mint no requiere configurar ningún permiso, pero sí en xubuntu, donde para no investigar tuvimos que ejecutar como root.


El haber perdido tiempo produjo tambien que La Caja no estuviera del todo terminada según nuestro criterio y que hubiera demora en el uso.

El despliegue tardío trajo entonces demoras por ajustes que se pudieron hacer en un ambiente previo, por lo cual hubo falta de testeo.

Otros commodities faltantes no tan commodities, muy relacionados con el diseño fueron infinidad de componentes de conexión. Había mucho soldado y empalmado en el aire, por no decir todo. De haber usado borneras y conectores, se hubiera reducido drásticamente el riesgo de cortocircuito, daño e incendio. Por un lado es lamentable que nada fallara de ese modo, ya que retrospectivamente uno dice "no hacía falta, no falló nada",  esa es la simiente del terrible próximo accidente.

Lockpicking es Seguridad Física y hemos violado todas las reglas de la Seguridad Industrial, salvo la de usar antiparras con el dremel y la amoladora.

La falta de calidad de la Caja se manifestó en la frecuente necesidad de ajustes, que bajaron el uptime. Por suerte para los breaks solía estar disponible y creo que casi nadie se quedó sin jugar.


De más está decir que todos estos problemas produjeron roces interpersonales e intrapersonales.

El mejor ejemplo de roce intrapersonal que tengo es que el jueves, cuando ya estaba funcionando todo y logré sacar mi computadora del juego, me dije, mañana no la traigo, total no hace falta. La verdad es que si no llevaba la computadora y algo fallaba nos quedábamos sin juego, así que la llevé. Por supuesto no hizo falta, así que la próxima vez no la llevo y esa vez si que va a hacer falta...

El problema de fondo es que yo no quería dejar mi computadora pues tengo un increible caos de que no he tenido tiempo de arreglar, información sensible y sin backup. Arreglar ese caos me quita tiempo... para La Caja.

Al tener un equipo reducido con las tareas diferenciables antes mencionadas, hubiese sido mejor invertir en resolver todas la commodities lo más pronto posible para no perder el tiempo necesario para los diferenciables. Debido a lo tarde que estuvo listo el sistema controlador, no hubo tiempo de hacer una buena transferencia  de conocimiento y hubo un lapso durante el cual me convertí en un single point of failure, es por eso que asistí a pocas conferencias.

Debo aclarar para que no haya confusión, que no hubieron problemas de dinero. Aunque no es mi intención repartir responsabilidades, en el caso particular de la computadora fue mayormente mía, ya que no sabía lo que sé ahora, no dije desde el primer momento "hace falta una computadora de tales características para antes de tal fecha". De haberlo dicho, hubiese estado. A medida que se acerca la fecha es cada vez más difícil conseguir cosas que antes es sencillo, ya que todo se acelera y lo sencillo cae fuera del backlog. Tuve una visión de hacker adolescente, te hago la máquina con partes recuperadas...

Me interesa una frase de Henry Ford que dice algo así como: Si para hacer algo necesitás una máquina y no la comprás, cuando termines vas a haber gastado la misma plata y no la vas a tener.


Lo bueno de esta experiencia, es que si la repetimos nos debería salir muy, muy bien. Por supuesto habrán nuevos errores, pero serán nuevos y bienvenidos.

Estamos viendo de reunirnos para analizar estas cosas y ver como el año que viene tenemos una caja mejor, con un uptime un poco más alto, no sé, veremos.

Como siempre, es muy interesante comparar las distintas apreciaciones: para mi la caja estaba llena de defectos, para el que la usaba era una maravilla a desentrañar, para el que la observaba era un disparador de ideas.

Y ahora, lo que realmente te interesa, La Caja... en una próxima e inminente entrega, mientras, invito a quienes tengan interés en lockpicking a unirse a https://groups.google.com/forum/#!forum/l0ckpickar


[1]http://en.wikipedia.org/wiki/Commodity

2013/09/16

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