Ocultar la versión: ¿valiosa o simplemente segura por la oscuridad?

9

Muchos analizadores de seguridad automáticos han incorporado reglas que alertan sobre la presencia de una versión de software, y en muchas listas de seguridad, la exposición a una persona arbitraria que accede al sistema se menciona como uno de los problemas de seguridad.

Entonces, mi pregunta es: ¿es un problema real y está ocultando que la versión agrega algo real a la seguridad?

Los argumentos a favor de él dicen que ocultar la versión hace que sea más difícil utilizar explotaciones dirigidas, sin embargo, la mayoría de los atacantes ahora tienen kits de explotación automatizados que no toman tiempo para ejecutar cientos de intentos de explotación contra el objetivo, por lo que la diferencia es casi nula para un informado agresor. Y uno que no esté informado no sabrá cómo usar la información de la versión. La ocultación de las versiones también dificulta la autoexploración de las instalaciones vulnerables que se quedan atrás.

También veo que esta práctica es ampliamente ignorada, por ejemplo, la página OWASP que describe esto como técnica de seguridad muestra abiertamente las versiones del software del servidor (OS, Apache, PHP) y el software Wiki. Pero incluso si trata de ocultarlo, la mayoría de las aplicaciones web, especialmente las complejas, se versionan fácilmente mediante huellas dactilares de los diversos contenidos que generan.

¿Vale la pena ocultar la versión para una aplicación web? ¿O para cualquier aplicación / sistema operativo / plataforma?

    
pregunta StasM 08.05.2012 - 01:50
fuente

5 respuestas

8

El problema con la seguridad por oscuridad es cuando dependes de la oscuridad para obtener seguridad. Si esa es tu única o principal forma de defensa, tienes un problema.

Dicho esto, la oscuridad puede agregar seguridad a un sistema que ya usa mejores estrategias de seguridad. No hay razón para exponer esa información, por lo que no debería. Es una información útil para un atacante, por lo que debes esconderla siempre que sea posible. El problema es cuando empiezas a pensar en "bueno, oculto esta información, para que ningún atacante pueda descubrirla y usarla para atacar mi sistema, así que estoy seguro".

Tu sistema debe estar seguro, independientemente de si la información se mantiene secreta o no, pero no debes hacer ningún favor a los atacantes al liberarla.

    
respondido por el Oleksi 08.05.2012 - 03:16
fuente
4

La seguridad por oscuridad es buena para la defensa en profundidad; no es bueno como modo único / principal de defensa o cuando la oscuridad interfiere con las operaciones normales.

Si aparece una vulnerabilidad de 0 días para su aplicación y usted anuncia su número de aplicación / versión en todas partes (por ejemplo, en las búsquedas de google, en el encabezado de respuesta HTTP 'Servidor: nginx 0.7.1'), lo hace trivial para los atacantes consciente de la nueva vulnerabilidad para encontrar su sitio e intentar explotarlo, antes de que haya tenido tiempo de aplicar un parche de seguridad. Si no proporciona esta información (u otros mensajes de error), tendrán que adivinar la identidad / versión de su aplicación por características (y las verificaciones de características poco claras en principio podrían alertar a los programas como fail2ban para un ataque continuo) o probar Cada exploit conocido para cada combinación posible de aplicación / versión. Esto es mucho más incómodo para el atacante.

Sí, es mejor mantener el software de su aplicación actualizado con todos los parches de seguridad; pero en el mundo real esto a menudo se retrasa. No proporcione información de depuración innecesaria una vez que una aplicación se active (aunque la depuración es probablemente útil para dejar la información a su disposición).

    
respondido por el dr jimbob 08.05.2012 - 17:44
fuente
1

Cuando aparece una vulnerabilidad útil en una aplicación web popular, un atacante va a utilizar Google Hacking (o algunas veces se le llama un Google dork ) para obtener una lista de todos los que ejecutan ese software. Aunque este truco de Google podría contener el número de versión, algunos tan simples como " Powered By Wordpress " suele ser suficiente. ¿Por qué verificar el número de versión, cuando podría simplemente disparar el exploit y ver si tiene éxito?

Por lo tanto, ocultar el número de versión no es tan importante como ocultar la aplicación en sí misma.

    
respondido por el rook 08.05.2012 - 03:31
fuente
1

Esto es (no mucho) seguridad por oscuridad.

Script Kiddies / Worms no se molestará en revisar los banners antes de lanzar ataques. IME, también es bastante simple identificar diferentes proveedores y versiones de software de servidor que no devuelven información de banner (mediante el mapeo de respuestas a características menos comunes y condiciones de error). El único modelo de amenaza es el que proporciona protección desde donde el atacante está utilizando un motor de búsqueda de terceros para identificar los objetivos (sin embargo, la mayoría de los motores de búsqueda no indexan la información del banner) y a menudo hay mucha información solo en las URL / p>     

respondido por el symcbean 08.05.2012 - 11:46
fuente
0

Veamos 2 escenarios. En ambos, la versión es vulnerable a una vulnerabilidad (0 días o no parcheada).

Attacker sabe la versión. Attacker va a su sitio y después de una simple comprobación (mirando el encabezado HTTP, buscando en Google, mirando los mensajes de error ...) descubre que ejecuta esta versión. Luego encuentra un exploit para él y ejecuta solo este exploit. Como resultado, su sistema está comprometido. Solo se ha ejecutado un exploit y, por lo tanto, la posibilidad de que IDS detecte un ataque no es grande. También será más difícil encontrar un atacante si observa los registros, ya que no se detectó tanta actividad maliciosa.

El atacante no sabe la versión. El atacante va al sitio y no puede encontrar la versión. Así que no puede correr un solo exoloit. Debería correr un montón de ellos. Es probable que esta actividad se detecte y se registre y que su ID sea bloqueada por IDS. Su sistema no se verá comprometido porque forzó al atacante a ejecutar muchas vulnerabilidades en lugar de solo una.

    
respondido por el Andrei Botalov 09.05.2012 - 13:54
fuente

Lea otras preguntas en las etiquetas