Análisis de seguridad y optimización en apache

Voy a presentaros en este artículo las nociones de seguridad y otros conceptos necesarios para una buena compresión de seguridad y análisis sobre apache. De este modo vamos aumentar el nivel de seguridad del servicio, tratando de ofrecer al supuesto atacante tantas barreras como nos sea posible, de este modo tendrá menos probabilidades de conseguir su objetivo.
Para evitar todo tipo de vulnerabilidades a nivel del servicio la mejor solución es estar siempre al día, es decir, tener instalada siempre la última versión del software y sus módulos, o asegurarse de haber aplicados los parches a cada uno de los bugs que se han ido descubriendo.
Estadísticas de las vulnerabilidades más comunes a nivel apache.

Apache se inicia por defecto como usuario root y cambia al usuario definido mediante el comando user para desempeñar sus funciones. Es importante asegurarse de la protección contra otros usuarios que no sean el propio usuario root, no solo los propios archivos, sino también los directorios donde están y todos los directorios por encima de estos deberán estar protegidos contra modificaciones por otros usuarios.
Restrinción por IP
Si es necesario y se puede es importante establecer una restrinción por IP. Por ejemplo si deseas restringir el acceso a solo tu red interna 176.16.
Order Deny,Allow
Deny from all
Allow from 176.16.0.0/16
Ocultar tecnología aplicada
Es importante ocultar el sistema y la tecnología aplicada en el sistema, de este modo el posible atacante no conoce el escenario y no dispone de conocimientos del escenario. Para esto solo debemos añadir/modificar dos directivas del archivo httpd.conf.
ServerSignature Off
ServerTokens Noveria
ServerSignature, la información mostrada en las páginas de error generadas por apache.
ServerTokens, la información que viaja en las cabeceras de la respuesta HTTP del servidor.
Archivos y directorios
Es importante controlar el acceso a directorios que no tengan permisos para ello.
Order Deny,Allow
Deny from all
Options None
AllowOverride None
Order Allow,Deny
Allow from all
Desactiva las opciones para explorar directorios, esta etiqueta tiene dos posibles valores none o indexes.
Options -Indexes
Desactiva los includes del lado del servidor, esta etiqueta tiene dos posibles valores none o includes.
Options -Includes
Desactiva la ejecución e CGI, en caso de no necesitarla por algún motivo, esta etiqueta tiene dos posibles valores none o ExecCGI.
Options -ExecCGI
No permitir que apache siga enlaces simbólicos, esta etiqueta tiene dos posibles valores none o FollowSymLinks.
Options -FollowSymLinks
Desactivar la ayuda para los archivos .htaccess, por defecto viene con la directiva AllowOverride, es recomendable cambiarlo a none, bloqueamos su descarga.
AccessFileName .httpdoverride
Order allow,deny
Deny from all
Satisfy All
Es importante no permitir que los usuarios configuren archivos .htaccess los cuales pueden anular los sistemas de seguridad configurados.
< Directory / >
AllowOverride None
Options None
Allow from all
< / Directory >
Esto detiene todas las anulaciones, inclusiones y accesos en todos los directorios fuera de los que se nombran.
Valores y peticiones
Disminuye el valor máximo de tiempo de espera, por defecto es 300 segundos, es importante disminuirlo para evitar ataques directos.
Timeout 50
Limita el tamaño máximo de peticiones, si tienes como máximo una subida de archivos de 1MB limítala a través de la directiva LimitRequestBody, por defecto viene ilimitada.
LimitRequestBody 1048576
Modulos
Utiliza mod_security, a través de este modulo podemos gestionar infinidad de parámetros como:
- Filtración simple.
- Filtración basada en expresiónes regular.
- Validación de codificación de la URL.
- Validación de codificación Unicode.
- Auditing.
- Prevención del ataque NULL Byte.
- Limitar la memoria de subida.
- Enmascarar la identidad del servidor.
Deshabilita cualquier módulo inecesario en la configuración de httpd.conf comentando la linea con #. Aquí algunos de los módulos que se instalan por defecto pero a menudo no son necesarios: mod_imap, mod_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex.
El servidor HTTP Apache es un servidor web HTTP de código abierto para plataformas Unix (BSD, GNU/Linux, etc.), Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1[1] y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo.






Para hacer un comentario tienes que identíficarte, entra o registrate en Noveria Blog
Votar tus comentarios favoritos
