Los codificadores conquistan la seguridad: Share & Learn Series - Insuficiente Anti-Automatización

Publicado el 04 de abril de 2019
por Jaap Karan Singh
ESTUDIO DE CASO

Los codificadores conquistan la seguridad: Share & Learn Series - Insuficiente Anti-Automatización

Publicado el 04 de abril de 2019
por Jaap Karan Singh
Ver recurso
Ver recurso

Imagínese que se dirige a la puerta de un antiguo bar clandestino o de un club clandestino. El pequeño agujero de la puerta se abre y un fornido portero le pide la contraseña. El visitante potencial no conoce la contraseña y la adivina. Es errónea, así que el portero no le deja entrar.

Eso es lo que ocurriría normalmente. Ahora imagina que el visitante que ha adivinado la contraseña equivocada lo intenta de nuevo inmediatamente, se equivoca y se le vuelve a denegar el acceso. Imagina que el visitante potencial abre el diccionario y empieza a leer palabras, comenzando por algo como oso hormiguero y procediendo a probar todas las palabras posibles.

Lo más probable es que el rebote no permita que se produzca ese tipo de actividad, pero los sitios web y las aplicaciones con insuficiente antiautomatización hacen precisamente eso. Permiten a los usuarios seguir probando contraseñas, incluso utilizando técnicas de automatización, hasta que finalmente dan con la frase clave adecuada.

En este episodio, aprenderemos:

  • Cómo los atacantes se aprovechan de la insuficiencia de la antiautomatización
  • Por qué son peligrosas las aplicaciones con insuficiente antiautomatización
  • Técnicas que pueden solucionar esta vulnerabilidad.

¿Cómo aprovechan los atacantes la insuficiencia de la antiautomatización?

El empleo de ataques de automatización o de tipo diccionario, como hizo nuestro visitante imaginario del bar clandestino, no es algo nuevo en ciberseguridad. De hecho, esos ataques de fuerza bruta fueron algunas de las primeras técnicas de los hackers. Y a medida que los ordenadores se hicieron más rápidos, se volvieron más y más eficientes. Un ordenador rápido puede recorrer todo un diccionario de palabras en pocos minutos, dependiendo de la velocidad de la conexión entre el ordenador atacante y el sistema objetivo.

Ese tipo de ataques automatizados fue la razón por la que se crearon programas y técnicas antiautomatización. Proporciona a las aplicaciones la capacidad de determinar si las acciones que realiza un usuario se salen de las normas del comportamiento humano típico.

Si una aplicación no cuenta con suficientes controles antiautomatización, los atacantes pueden simplemente seguir adivinando las contraseñas hasta encontrar una coincidencia. O bien, pueden utilizar el software de automatización para hacer otras cosas, como los comentarios de spam en los foros del sitio web.

¿Por qué es peligrosa una antiautonomía insuficiente?

Permitir que los usuarios malintencionados empleen la automatización para intentar burlar la seguridad puede ser peligroso. La razón por la que los ataques de tipo automatizado han persistido desde los primeros días de la informática hasta ahora es que pueden ser muy eficaces. Si se le da a un programa de automatización una cantidad ilimitada de tiempo para enviar contraseñas sin consecuencias por una adivinación incorrecta, eventualmente encontrará la correcta.

Cuando se utiliza en algo como un foro, tener oleadas de comentarios obviamente scripted podría frustrar a los usuarios válidos, o incluso actuar como una especie de ataque de denegación de servicio mediante el despilfarro de los recursos del sistema. La publicación automatizada también podría utilizarse como herramienta para un ataque de phishing o de otro tipo para exponer los señuelos al mayor número de personas posible.

Cómo arreglar los problemas de antiautonomía insuficientes

Para solucionar el problema de la insuficiencia de la antiautomatización, todas las aplicaciones deben tener la capacidad de determinar si las acciones que se llevan a cabo son ejecutadas por un humano o por un software de automatización. Una de las técnicas más populares y utilizadas es la prueba de Turing pública completamente automatizada para distinguir a los ordenadores de los humanos, o CAPTCHA.

El CAPTCHA es básicamente una prueba de Turing, propuesta por primera vez por el informático Alan Turing en 1950, mediante la cual se puede separar e identificar el comportamiento humano del informático. Los CAPTCHAs modernos presentan problemas que los humanos pueden resolver fácilmente, pero con los que los ordenadores tienen dificultades o simplemente no pueden resolver. Uno de los más populares presenta una foto separada por una cuadrícula y pide a los usuarios que identifiquen todos los sectores con un elemento específico en ella, como una flor o una cara. El ordenador no puede entender lo que se le pide y, por tanto, ni siquiera puede intentar escanear la imagen. Incluso si pudiera, el reconocimiento de imágenes está fuera del alcance de la mayoría de los programas que no han sido creados específicamente para ello.

Otros ejemplos de CAPTCHAs incluyen mostrar un texto borroso, hacer una pregunta lógica simple o incluso reproducir la pregunta en voz alta. Implementar un desafío CAPTCHA en puntos críticos de una aplicación, como cuando se pide una contraseña, puede detener los programas de automatización en su camino.

También es posible detener los programas de automatización simplemente limitando el número de conjeturas incorrectas de la misma fuente. Si se envían demasiadas conjeturas erróneas, la cuenta puede ser bloqueada temporalmente, retrasando así el programa de automatización más allá del punto de utilidad, o incluso podría requerir un administrador humano para desbloquear. Todo esto debería evitar las vulnerabilidades de la antiautomatización dentro de una aplicación.

Más información sobre la antiautomatización insuficiente

Para más información, puedes echar un vistazo a lo que dice la OWASP sobre la antiautomatización insuficiente. También puedes poner a prueba tus nuevos conocimientos defensivos con la demostración gratuita de la plataforma Secure Code Warrior , que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para saber más sobre cómo derrotar esta vulnerabilidad, y una galería de pícaros de otras amenazas, visite el blogSecure Code Warrior .

¿Preparado para encontrar y arreglar la antiautomatización insuficiente ahora mismo? Pon a prueba tus habilidades en nuestra arena de juego: [Empieza aquí]

Ver recurso
Ver recurso

Autor

Jaap Karan Singh

¿Quieres más?

Sumérjase en nuestras últimas ideas sobre codificación segura en el blog.

Nuestra amplia biblioteca de recursos tiene como objetivo potenciar el enfoque humano de la mejora de la codificación segura.

Ver blog
¿Quieres más?

Obtenga las últimas investigaciones sobre la seguridad impulsada por los desarrolladores

Nuestra amplia biblioteca de recursos está repleta de recursos útiles, desde libros blancos hasta seminarios web, que le ayudarán a iniciarse en la codificación segura orientada a los desarrolladores. Explórela ahora.

Centro de recursos

Los codificadores conquistan la seguridad: Share & Learn Series - Insuficiente Anti-Automatización

Publicado el 04 de abril de 2019
Por Jaap Karan Singh

Imagínese que se dirige a la puerta de un antiguo bar clandestino o de un club clandestino. El pequeño agujero de la puerta se abre y un fornido portero le pide la contraseña. El visitante potencial no conoce la contraseña y la adivina. Es errónea, así que el portero no le deja entrar.

Eso es lo que ocurriría normalmente. Ahora imagina que el visitante que ha adivinado la contraseña equivocada lo intenta de nuevo inmediatamente, se equivoca y se le vuelve a denegar el acceso. Imagina que el visitante potencial abre el diccionario y empieza a leer palabras, comenzando por algo como oso hormiguero y procediendo a probar todas las palabras posibles.

Lo más probable es que el rebote no permita que se produzca ese tipo de actividad, pero los sitios web y las aplicaciones con insuficiente antiautomatización hacen precisamente eso. Permiten a los usuarios seguir probando contraseñas, incluso utilizando técnicas de automatización, hasta que finalmente dan con la frase clave adecuada.

En este episodio, aprenderemos:

  • Cómo los atacantes se aprovechan de la insuficiencia de la antiautomatización
  • Por qué son peligrosas las aplicaciones con insuficiente antiautomatización
  • Técnicas que pueden solucionar esta vulnerabilidad.

¿Cómo aprovechan los atacantes la insuficiencia de la antiautomatización?

El empleo de ataques de automatización o de tipo diccionario, como hizo nuestro visitante imaginario del bar clandestino, no es algo nuevo en ciberseguridad. De hecho, esos ataques de fuerza bruta fueron algunas de las primeras técnicas de los hackers. Y a medida que los ordenadores se hicieron más rápidos, se volvieron más y más eficientes. Un ordenador rápido puede recorrer todo un diccionario de palabras en pocos minutos, dependiendo de la velocidad de la conexión entre el ordenador atacante y el sistema objetivo.

Ese tipo de ataques automatizados fue la razón por la que se crearon programas y técnicas antiautomatización. Proporciona a las aplicaciones la capacidad de determinar si las acciones que realiza un usuario se salen de las normas del comportamiento humano típico.

Si una aplicación no cuenta con suficientes controles antiautomatización, los atacantes pueden simplemente seguir adivinando las contraseñas hasta encontrar una coincidencia. O bien, pueden utilizar el software de automatización para hacer otras cosas, como los comentarios de spam en los foros del sitio web.

¿Por qué es peligrosa una antiautonomía insuficiente?

Permitir que los usuarios malintencionados empleen la automatización para intentar burlar la seguridad puede ser peligroso. La razón por la que los ataques de tipo automatizado han persistido desde los primeros días de la informática hasta ahora es que pueden ser muy eficaces. Si se le da a un programa de automatización una cantidad ilimitada de tiempo para enviar contraseñas sin consecuencias por una adivinación incorrecta, eventualmente encontrará la correcta.

Cuando se utiliza en algo como un foro, tener oleadas de comentarios obviamente scripted podría frustrar a los usuarios válidos, o incluso actuar como una especie de ataque de denegación de servicio mediante el despilfarro de los recursos del sistema. La publicación automatizada también podría utilizarse como herramienta para un ataque de phishing o de otro tipo para exponer los señuelos al mayor número de personas posible.

Cómo arreglar los problemas de antiautonomía insuficientes

Para solucionar el problema de la insuficiencia de la antiautomatización, todas las aplicaciones deben tener la capacidad de determinar si las acciones que se llevan a cabo son ejecutadas por un humano o por un software de automatización. Una de las técnicas más populares y utilizadas es la prueba de Turing pública completamente automatizada para distinguir a los ordenadores de los humanos, o CAPTCHA.

El CAPTCHA es básicamente una prueba de Turing, propuesta por primera vez por el informático Alan Turing en 1950, mediante la cual se puede separar e identificar el comportamiento humano del informático. Los CAPTCHAs modernos presentan problemas que los humanos pueden resolver fácilmente, pero con los que los ordenadores tienen dificultades o simplemente no pueden resolver. Uno de los más populares presenta una foto separada por una cuadrícula y pide a los usuarios que identifiquen todos los sectores con un elemento específico en ella, como una flor o una cara. El ordenador no puede entender lo que se le pide y, por tanto, ni siquiera puede intentar escanear la imagen. Incluso si pudiera, el reconocimiento de imágenes está fuera del alcance de la mayoría de los programas que no han sido creados específicamente para ello.

Otros ejemplos de CAPTCHAs incluyen mostrar un texto borroso, hacer una pregunta lógica simple o incluso reproducir la pregunta en voz alta. Implementar un desafío CAPTCHA en puntos críticos de una aplicación, como cuando se pide una contraseña, puede detener los programas de automatización en su camino.

También es posible detener los programas de automatización simplemente limitando el número de conjeturas incorrectas de la misma fuente. Si se envían demasiadas conjeturas erróneas, la cuenta puede ser bloqueada temporalmente, retrasando así el programa de automatización más allá del punto de utilidad, o incluso podría requerir un administrador humano para desbloquear. Todo esto debería evitar las vulnerabilidades de la antiautomatización dentro de una aplicación.

Más información sobre la antiautomatización insuficiente

Para más información, puedes echar un vistazo a lo que dice la OWASP sobre la antiautomatización insuficiente. También puedes poner a prueba tus nuevos conocimientos defensivos con la demostración gratuita de la plataforma Secure Code Warrior , que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para saber más sobre cómo derrotar esta vulnerabilidad, y una galería de pícaros de otras amenazas, visite el blogSecure Code Warrior .

¿Preparado para encontrar y arreglar la antiautomatización insuficiente ahora mismo? Pon a prueba tus habilidades en nuestra arena de juego: [Empieza aquí]

Nos gustaría contar con su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el máximo cuidado y nunca los venderemos a otras empresas con fines de marketing.

Enviar
Para enviar el formulario, habilite las cookies "Analytics". Siéntase libre de desactivarlas de nuevo una vez que haya terminado.