Desbordamiento de búfer cerebral humano

Desbordamiento de búfer

Desbordamiento de búfer

Dentro del arte del hacking humano, o lo que se conoce como ingeniería social, existen diversas técnicas de manejo mental que permiten al experto manipular la voluntad de las personas para recabar datos sensibles, como la persuasión, la influencia, la manipulación, el uso de microexpresiones, de gestos estudiados, la alteración de la realidad y otras artimañas. Sin embargo hay una que me llamó poderosamente la atención hace ya tiempo y que desarrolla estupendamente el señor Christopher Hadnagy (un hacker de los de antes, hoy experto en seguridad, con altas dotes de ingeniería social al más puro estilo de Kevin Mitnick) en su libro ‘Social Engineering: The Art of Human Hacking‘.

Un desbordamiento de búfer (buffer overflow) representa un error de software que se produce cuando un programa no controla adecuadamente la cantidad de datos que se alojan en un área de memoria previamente reservada y dimensionada. Estas áreas de memoria intermedia, o búfer, se utilizan con el fin de evitar que un recurso, ya sea de hardware o de software, se quede sin datos durante una transferencia. Un vaso sólo puede contener el agua que cabe en él, no más (analogía simplona). Si un vaso puede guardar únicamente 330 mililitros de agua, ¿qué ocurre si intentamos introducir más? Pues que se desborda, evidentemente; el agua se sale del vaso y la mesa se moja.

Los programas informáticos funcionan igual y, curiosamente, la mente humana también. El objetivo de un hacker informático es encontrar la dirección de memoria que invoca una pieza de software e insertar un código malicioso en ella. Tras controlar, pues, el flujo de ejecución, el hacker puede inyectar cualquier comando para que la aplicación “obedezca” sus órdenes. La mente humana corre o ejecuta su propio “software” y, con los años, el aprendizaje y la experiencia, construye un conjunto de instrucciones, espacios y longitudes de memoria propios, generando una suerte de “sistema operativo” mental particular y propio, inherente a cada individuo.

Error de desbordamiento de búfer

Error de desbordamiento de búfer

Cuando un programa informático reserva un espacio de memoria para determinada cantidad de datos y recibe una cantidad mayor, si el software no está diseñado para solucionar el problema, lanza una excepción y bloquea el flujo de ejecución. Nuestra mente reserva también espacios tipo búfer en nuestra memoria para conjuntos de datos predefinidos y conocidos. Si un determinado grupo de datos no se ajusta al espacio que tenemos para él, ¿qué sucede? A diferencia de lo que ocurre dentro de un ordenador, nuestro cerebro no se bloquea de modo inflexible, pero sí que abre una brecha o espacio momentáneo que permite la inyección de comandos externos para manipular el flujo lógico de nuestras acciones.

Para probar este concepto vamos a recurrir a un viejo juego. Observa, querido lector, la siguiente imagen y, de la manera más rápida posible, intenta decir el color de todas las palabras escritas. No leas la palabra, enuncia rápidamente el color en el que están dibujadas.

Juego de los colores

Juego de los colores

¿Es difícil, verdad? ¿Cuesta, eh? Es la eterna pugna entre los dos hemisferios de nuestro cerebro: mientras el derecho (más global, intuitivo y emocional) intenta decir el color, el izquierdo (más lineal, deductivo y racional) quiere leer la palabra. Es una inyección de comandos en toda regla, nuestro cerebro quiere leer antes la palabra que el color, porque es la forma en la que nuestra mente está “cableada”. En ese momento de confusión, existe código en el cerebro humano que es lo opuesto a lo que la persona está pensando en el instante. Mind hacked!

En el documento titulado ‘Modification of Audible and Visual Speech‘ (modificación de la expresión visual y auditiva, en inglés), publicado por los investigadores Michele Covell, Malcolm Slaney, Cristoph Bregler y Margaret Withgott (de Interval Research Corporation), se demuestra que las personas hablan a una velocidad aproximada de 150 palabras por minuto, sin embargo son capaces de pensar a 500 o 600 palabras por minuto, por lo que parece prácticamente imposible provocar un desbordamiento de búfer humano simplemente hablándole muy rápido a alguien.

También debemos comprender que las personas toman la mayor parte de las decisiones y realizan muchos actos en la vida de manera totalmente inconsciente, como por ejemplo, la forma de conducir hasta el trabajo, sacar un café de la máquina o lavarse los dientes. ¿Alguna vez has conducido todo el camino hasta trabajo y, al llegar allí, no puedes recordar los carteles publicitarios de las carreteras por las que pasaste, o la ruta que tomaste al encontrarte con mucho tráfico o el lugar del accidente que escuchaste en las noticias? En estos casos, el subconsciente se encarga de todo y realiza todo lo que tú haces siempre, sin pensar conscientemente en cada paso. Lo mismo sucede cuando no recuerdas dónde has aparcado.

La mayoría de las decisiones de las personas se hacen de esta manera. Algunos científicos creen, incluso, que los humanos tomamos decisiones hasta siete segundos antes en nuestro subconsciente que en el mundo real, aquel que nos manda información a través de los sentidos. Esta comprensión de cómo los seres humanos trabajan y piensan puede convertirse en una manera muy útil de generar desbordamientos de búfer en la mente humana con el objeto de inyectar comandos.

En el mundo del hacking real, existe un método denominado fuzzing que se utiliza para encontrar errores que puedan ser sobrescritos, y ofrecer el control del software al hacker. Se lanzan grupos de datos aleatorios de diferentes longitudes a un programa para ver cuál de ellos hace que falle. Eso le da al hacker un camino para inyectar su código malicioso intermedio. Del mismo modo, debemos conocer cómo reacciona la mente humana a los distintos tipos de datos o grupos de datos. Por ejemplo, si te acercas a un edificio con dos grupos o hileras de puertas (unas exteriores y otras interiores) y sujetas las primeras puertas abiertas para que entre un completo extraño, ¿qué crees que hará él después? Pues lo más seguro es que pase el umbral y abra y sujete el segundo grupo de puertas para que tú pases. Otro ejemplo: si en una intersección de tráfico dejas pasar a un completo extraño antes que tú, lo más probable es que si se repite la situación más adelante y tú necesitas pasar, ese mismo desconocido te cederá el paso casi sin pensarlo.

Esquema del Fuzz Testing

Esquema del Fuzz Testing

¿Por qué ocurre esto? La razón tiene que ver con la conocida como ley de las expectativas, que establece que la gente, por lo general, cumple con sus expectativas, esto es, lo que se consigue en la vida no tiene que ser necesariamente lo que se quiere, sino lo que se espera que va a pasar o lo que se espera que pase. Las decisiones se hacen generalmente basándose en lo que la persona siente que el solicitante espera que haga. Bonita manera de comenzar a enviar “datos maliciosos” al “software” cerebral de la víctima.

Todo ello está basado en lo que se conoce como presuposición, un concepto que se explica perfectamente con el siguiente ejemplo. Imagina que enuncio la siguiente frase delante de ti: “Mi vecino conduce un coche verde”. La información que recibes es muy escasa y prácticamente inútil para ti. He hecho que des por sentado, o que presupongas, que no necesitas saber más. Sin embargo, si digo: “¿Sabes que mi vecino, Raúl, conduce siempre un Nissan Note de color verde?”, tu presupones muchas cosas más: que yo conozco muy bien a mi vecino, que sé su nombre, que se llama Raúl, que tiene permiso de conducir, que posee un Nissan Note y que es de color verde. Estoy haciendo que dispongas de mucha más información que antes, algo que me puede interesar que retengas en la cabeza previo pronunciamiento de la siguiente sentencia, la que de verdad me importa para extraer datos de ti.

Existen algunos trucos para poder inyectar comandos embebidos en el subconsciente de tu interlocutor, como el hecho de utilizar sentencias cortas (de tres o cuatro palabras), hacer uso de un leve énfasis en la pronunciación, ocultar esos comandos en frases normales o banales o utilizar el lenguaje facial y corporal para apoyar los comandos. Los buenos ingenieros sociales utilizan acciones de relleno, que son métodos de adicción de elementos que no interrumpen la ejecución, pero preparan una pequeña “pista de aterrizaje” que lleva al código malicioso. Son frases complementarias que ayudan a suavizar el código que se quiere insertar, tales como “Cuando usted…”, “Cómo se siente usted cuando…”, “Cualquier persona es capaz…” o “Como usted…”. Todas estas declaraciones crean una emoción o un pensamiento que permite inyectar código en el subconsciente humano.

Otras técnicas también ayudan, como el hecho de contar historias que enreden al objetivo, el uso de la negación como acto de psicología inversa, o forzar al oyente a usar su imaginación. En todo caso, recomiendo la lectura del libro de Christopher Hadnagy que comentaba al principio, así como de otros manuales y guías de ingeniería social para cualquiera que desee iniciarse en este noble y apasionante arte que es engañar a las personas adultas como si de niños se trataran. Pobres.

2 comentarios a “Desbordamiento de búfer cerebral humano”

Escribe tu comentario

eBook ‘retroPLOF!’

retroPLOF!

Especifica tu dirección de correo electrónico y pulsa 'Comprar ahora'. Puedes pagar con tu cuenta de PayPal o con cualquier tarjeta bancaria.

E-mail envío eBook:

Sigue teknoPLOF! vía…
 
RSS
Twitter
Facebook
Google
 
Ready Set Click!

Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación. Más información.

CERRAR