Los codificadores conquistan la seguridad: Share & Learn Series - Exposición de la información

Publicado el 02 de mayo de 2019
por Jaap Karan Singh
ESTUDIO DE CASO

Los codificadores conquistan la seguridad: Share & Learn Series - Exposición de la información

Publicado el 02 de mayo de 2019
por Jaap Karan Singh
Ver recurso
Ver recurso

"Loslabios sueltos hunden los barcos" fue una frase que se hizo popular en Estados Unidos durante la Segunda Guerra Mundial. En Gran Bretaña, se escuchaba "Hablar sin cuidado cuesta vidas". El punto principal del dicho era que hablar sin cuidado sobre información sensible podía ser escuchado por espías y conducir a graves consecuencias.

El mismo principio es válido cuando se construyen aplicaciones web. Cuando tu aplicación web revela demasiada información, puede facilitar que los atacantes entren en ella.

En este artículo, explicaremos qué es la exposición a la información, por qué es peligrosa y cómo prevenirla.

Comprender la exposición a la información

La exposición de información se refiere a las aplicaciones web que exponen información interna a quienes no deberían verla. También puede referirse a la exposición de información sensible de los clientes a través de los archivos de registro o de la interfaz de usuario. De cualquier manera, los atacantes pueden utilizar la información que encuentran para atacar sus sistemas o a sus usuarios.

A menudo, el primer paso para un atacante es intentar crear un error dentro de su aplicación. Una mala gestión de los errores y la configuración de la aplicación web conducen a la exposición de la información con mensajes de error. ¿Qué sucede si el atacante crea un error dentro de su aplicación? Si aparece un mensaje de error técnico, incluyendo detalles técnicos como un seguimiento de pila, has revelado demasiada información. Estos detalles pueden incluir qué base de datos estás utilizando o qué versión del servidor de aplicaciones estás ejecutando.

La divulgación de información sensible puede ocurrir de otras maneras. ¿Hay campos ocultos en un formulario que contengan información sensible? Los atacantes pueden simplemente ver la fuente de la página y ver los valores.

En pocas palabras, la exposición de la información se produce cuando la información que debería estar en una base de necesidad de conocimiento con sus usuarios se hace demasiado fácilmente accesible.

Entender por qué la exposición a la información es peligrosa

¿Qué puede hacer un atacante con la información expuesta por la aplicación? Si la información es de naturaleza sensible, un atacante podría robar identidades o credenciales de usuario. Esto podría dar lugar a daños financieros, violaciones de la privacidad y multas reglamentarias

Si un atacante utiliza los mensajes de error para obtener información sobre una aplicación, esa información podría ser utilizada en un futuro ataque. De hecho, la Guía de Pruebas de OWASP tiene una sección entera sobre la recopilación de información.

La Guía de Pruebas de OWASP fomenta el uso de los motores de búsqueda para encontrar información sobre su sitio web que puede no estar prevista. Por ejemplo, ¿sus páginas administrativas están expuestas a los motores de búsqueda? Utilice el archivo robots.txt para indicar a los motores de búsqueda que no indexen determinadas páginas. Al mismo tiempo, el archivo robots.txt también puede filtrar información. A veces, las URL sensibles pueden residir en el archivo robots.txt. Los atacantes tiran del archivo y empiezan a conocer parte de la estructura de directorios del sitio.

Google has advanced search engine options which allow deep inspection of websites. For example, you can search on a specific site using the "site: <domain>" syntax. You can view cached pages which may have been deleted but still reside in a cache from a previous indexing job. Using different search engines, such as Bing and DuckDuckGo may yield different results, so test on each search engine what is revealed about your web application.</domain>

Las cabeceras HTTP, los banners del sitio web e incluso los comentarios dentro del código HTML y JavaScript podrían contener información que los atacantes no deberían ver. Las cabeceras HTTP pueden revelar servidores de aplicaciones y números de versión. Los atacantes pueden utilizar esta información para encontrar exploits que utilizar contra esas versiones específicas. Asegúrese de que entiende todos los diferentes lugares en los que los atacantes podrían encontrar su información y cómo ocultarla adecuadamente.

Vencer la exposición a la información

La divulgación de información suele ser un problema de configuración de las aplicaciones web. Muchos servidores de aplicaciones devuelven por defecto las trazas de pila en los mensajes de error. Asegúrese de cambiar esta configuración para que las aplicaciones de producción redirijan a una página de error genérica mientras se registra el error para la resolución de problemas. Los mensajes de error detallados nunca deben ser devueltos al navegador del usuario.

Si tiene algún archivo necesario para la aplicación que contenga información sensible, asegúrese de que un control de acceso adecuado garantice que sólo la propia aplicación pueda leerlo. Desactive el listado de directorios en el servidor y mueva estos archivos fuera del directorio raíz de la web. Esto evita que los atacantes naveguen hasta el archivo utilizando el navegador mediante un ataque de cruce de directorios.

Los registros pueden utilizarse para recopilar información cuando no están configurados correctamente. Cuando se produzca un error, no registre información sensible como contraseñas, testigos de sesión o información personal identificable (PII). Si un atacante pudiera acceder a los archivos de registro, encontraría un tesoro de información sensible para robar. No registre más de lo necesario, que suele ser un identificador de cuenta, un mensaje de error detallado y, tal vez, el método en el que se produjo el error o la operación que se estaba realizando. Asume que los archivos de registro no son secretos y que no tendrás la tentación de colocar información sensible en ellos.

No hunda sus aplicaciones web

¿Podría realmente haber filtrado información mientras hablaba con un amigo, lo que llevó directamente a la pérdida de un acorazado en la Segunda Guerra Mundial? Tal vez no. Pero, ¿por qué correr el riesgo? Esa es la lección del dicho: "Los labios sueltos hunden los barcos".

Del mismo modo, no hay razón para exponer el funcionamiento interno de su aplicación web al mundo exterior. No hay razón para ver números de tarjetas de crédito o contraseñas enteras. No hay razón para tener datos PII en los archivos de registro. Así que no lo hagas. Consulte nuestros recursos de aprendizaje para obtener más información sobre la exposición de la información.

Mantenga el funcionamiento interno de sus aplicaciones donde corresponde. No hundas tus aplicaciones web.

¿Crees que puedes poner fin a la exposición de la información ahora mismo? Acepta el reto, guerrero: [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 - Exposición de la información

Publicado el 02 de mayo de 2019
Por Jaap Karan Singh

"Loslabios sueltos hunden los barcos" fue una frase que se hizo popular en Estados Unidos durante la Segunda Guerra Mundial. En Gran Bretaña, se escuchaba "Hablar sin cuidado cuesta vidas". El punto principal del dicho era que hablar sin cuidado sobre información sensible podía ser escuchado por espías y conducir a graves consecuencias.

El mismo principio es válido cuando se construyen aplicaciones web. Cuando tu aplicación web revela demasiada información, puede facilitar que los atacantes entren en ella.

En este artículo, explicaremos qué es la exposición a la información, por qué es peligrosa y cómo prevenirla.

Comprender la exposición a la información

La exposición de información se refiere a las aplicaciones web que exponen información interna a quienes no deberían verla. También puede referirse a la exposición de información sensible de los clientes a través de los archivos de registro o de la interfaz de usuario. De cualquier manera, los atacantes pueden utilizar la información que encuentran para atacar sus sistemas o a sus usuarios.

A menudo, el primer paso para un atacante es intentar crear un error dentro de su aplicación. Una mala gestión de los errores y la configuración de la aplicación web conducen a la exposición de la información con mensajes de error. ¿Qué sucede si el atacante crea un error dentro de su aplicación? Si aparece un mensaje de error técnico, incluyendo detalles técnicos como un seguimiento de pila, has revelado demasiada información. Estos detalles pueden incluir qué base de datos estás utilizando o qué versión del servidor de aplicaciones estás ejecutando.

La divulgación de información sensible puede ocurrir de otras maneras. ¿Hay campos ocultos en un formulario que contengan información sensible? Los atacantes pueden simplemente ver la fuente de la página y ver los valores.

En pocas palabras, la exposición de la información se produce cuando la información que debería estar en una base de necesidad de conocimiento con sus usuarios se hace demasiado fácilmente accesible.

Entender por qué la exposición a la información es peligrosa

¿Qué puede hacer un atacante con la información expuesta por la aplicación? Si la información es de naturaleza sensible, un atacante podría robar identidades o credenciales de usuario. Esto podría dar lugar a daños financieros, violaciones de la privacidad y multas reglamentarias

Si un atacante utiliza los mensajes de error para obtener información sobre una aplicación, esa información podría ser utilizada en un futuro ataque. De hecho, la Guía de Pruebas de OWASP tiene una sección entera sobre la recopilación de información.

La Guía de Pruebas de OWASP fomenta el uso de los motores de búsqueda para encontrar información sobre su sitio web que puede no estar prevista. Por ejemplo, ¿sus páginas administrativas están expuestas a los motores de búsqueda? Utilice el archivo robots.txt para indicar a los motores de búsqueda que no indexen determinadas páginas. Al mismo tiempo, el archivo robots.txt también puede filtrar información. A veces, las URL sensibles pueden residir en el archivo robots.txt. Los atacantes tiran del archivo y empiezan a conocer parte de la estructura de directorios del sitio.

Google has advanced search engine options which allow deep inspection of websites. For example, you can search on a specific site using the "site: <domain>" syntax. You can view cached pages which may have been deleted but still reside in a cache from a previous indexing job. Using different search engines, such as Bing and DuckDuckGo may yield different results, so test on each search engine what is revealed about your web application.</domain>

Las cabeceras HTTP, los banners del sitio web e incluso los comentarios dentro del código HTML y JavaScript podrían contener información que los atacantes no deberían ver. Las cabeceras HTTP pueden revelar servidores de aplicaciones y números de versión. Los atacantes pueden utilizar esta información para encontrar exploits que utilizar contra esas versiones específicas. Asegúrese de que entiende todos los diferentes lugares en los que los atacantes podrían encontrar su información y cómo ocultarla adecuadamente.

Vencer la exposición a la información

La divulgación de información suele ser un problema de configuración de las aplicaciones web. Muchos servidores de aplicaciones devuelven por defecto las trazas de pila en los mensajes de error. Asegúrese de cambiar esta configuración para que las aplicaciones de producción redirijan a una página de error genérica mientras se registra el error para la resolución de problemas. Los mensajes de error detallados nunca deben ser devueltos al navegador del usuario.

Si tiene algún archivo necesario para la aplicación que contenga información sensible, asegúrese de que un control de acceso adecuado garantice que sólo la propia aplicación pueda leerlo. Desactive el listado de directorios en el servidor y mueva estos archivos fuera del directorio raíz de la web. Esto evita que los atacantes naveguen hasta el archivo utilizando el navegador mediante un ataque de cruce de directorios.

Los registros pueden utilizarse para recopilar información cuando no están configurados correctamente. Cuando se produzca un error, no registre información sensible como contraseñas, testigos de sesión o información personal identificable (PII). Si un atacante pudiera acceder a los archivos de registro, encontraría un tesoro de información sensible para robar. No registre más de lo necesario, que suele ser un identificador de cuenta, un mensaje de error detallado y, tal vez, el método en el que se produjo el error o la operación que se estaba realizando. Asume que los archivos de registro no son secretos y que no tendrás la tentación de colocar información sensible en ellos.

No hunda sus aplicaciones web

¿Podría realmente haber filtrado información mientras hablaba con un amigo, lo que llevó directamente a la pérdida de un acorazado en la Segunda Guerra Mundial? Tal vez no. Pero, ¿por qué correr el riesgo? Esa es la lección del dicho: "Los labios sueltos hunden los barcos".

Del mismo modo, no hay razón para exponer el funcionamiento interno de su aplicación web al mundo exterior. No hay razón para ver números de tarjetas de crédito o contraseñas enteras. No hay razón para tener datos PII en los archivos de registro. Así que no lo hagas. Consulte nuestros recursos de aprendizaje para obtener más información sobre la exposición de la información.

Mantenga el funcionamiento interno de sus aplicaciones donde corresponde. No hundas tus aplicaciones web.

¿Crees que puedes poner fin a la exposición de la información ahora mismo? Acepta el reto, guerrero: [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.