Vectores de detección del servidor

2

Tengo un servidor web, y me gustaría anonimizarlo tanto como sea posible, para evitar ataques no reportados dirigidos a mi servidor web (grietas originales).

Mis ideas:

  • cambiar el encabezado del servidor
  • personalizar 404 páginas

Los encabezados de mi página de inicio:

HTTP/1.1 200 OK
Vary: Accept-Encoding
Content-Encoding: gzip
Last-Modified: Mon, 26 Aug 2013 14:33:29 GMT
ETag: "3159055821"
Content-Type: text/html
Expires: Tue, 27 Aug 2013 22:42:28 GMT
Cache-Control: max-age=21600
Content-Length: 939
Date: Tue, 27 Aug 2013 16:42:28 GMT
Server: unspecified

Puertos abiertos ( nmap ):

  • enlace
  • ssh

No se está generando contenido dinámico (por ejemplo, no PHP ni nada).

Pregunta: ¿Se requieren pasos adicionales para subvertir la detección del servidor / versión?

    
pregunta FakeRainBrigand 27.08.2013 - 18:54
fuente

1 respuesta

3

Los atacantes reconocerán el propio sistema operativo al analizar los detalles sutiles de los paquetes TCP / IP . Nmap puede hacerlo fácilmente. El servidor SSH también tiene una pancarta (enviada como primer elemento en la conexión) que puede dar muchas pistas. De forma similar, el software que utilice probablemente se revelará por su dinámica . Lo que usted piense como un "encabezado HTTP" único y atómico se enviará como una o varias llamadas elementales write() , que luego se emitirán como algunos paquetes IP; La posición de la división y el tiempo exacto entre las emisiones pueden indicar mucho sobre el software involucrado.

El orden de los encabezados HTTP también puede dar pistas sobre el software del servidor. Veo que usa gzip de compresión: zlib estará involucrado, pero no todas las versiones comprimen la misma entrada a la misma secuencia exacta de bytes ( descompresión es completamente determinista, pero compresión deja muchas opciones abiertas, y cada versión de zlib puede hacer elecciones distintas cuando se esfuerza por lograr la tasa de compresión máxima o operación más rápida).

La única manera segura de ocultar su versión de software es escribir su propio software (y nunca publicarlo). Escribir su propio sistema operativo o, al menos, la pila TCP / IP, aunque es factible, es un esfuerzo bastante desalentador.

De todos modos, argumentaré que prevenir la detección de versiones no es realmente relevante. Si un atacante conoce uno o dos ataques no publicados, entonces ... simplemente los probará. Por si acaso. Él no necesita saber la versión exacta del software para eso. Saber la versión exacta es útil solo cuando el atacante tiene cientos o miles de ataques para elegir y no tiene tiempo suficiente para probarlos todos; esta situación no se aplica a exploits no reportados , que tienden a ser valiosos porque son raros . Un atacante determinado se consideraría muy afortunado si tuviera acceso a más de dos o tres ataques que, hasta el momento, son desconocidos para el público en general.

    
respondido por el Thomas Pornin 27.08.2013 - 19:10
fuente

Lea otras preguntas en las etiquetas