Intro. Conf. CA FP SSL DoS Cons. Concl.
Seguridad en entornos Apache
- Hardening Apache -
VI Foro de seguridad RedIRIS
Sergio Castillo Pérez
[email protected]
Departamento de Ingeniería de la Información y de las Comunicaciones
Universidad Autónoma de Barcelona (UAB)
1 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Índice
1
Introducción
2 Configuración y directivas básicas
3 Control de acceso
4
5
Identificación remota y HTTP Fingerprinting
SSL/TLS
6 Network DoS
7 Otras consideraciones
8 Conclusiones
Sergio Castillo
2 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Índice
1
Introducción
2 Configuración y directivas básicas
3 Control de acceso
4
5
Identificación remota y HTTP Fingerprinting
SSL/TLS
6 Network DoS
7 Otras consideraciones
8 Conclusiones
Sergio Castillo
3 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Un poco de historia...
Historia:
Basado en el servidor httpd 1.3 de NCSA (National Center for Supercomputing
Applications), escrito por Rob McCool.
Primera versión publicada en abril de 1995.
Actualmente tres ramas de desarrollo:
1.3.x
2.0.x
2.2.x
Sergio Castillo
4 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Características de Apache
¿Por qué Apache es diferente a los demás?
Sergio Castillo
5 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Características de Apache
¿Por qué Apache es diferente a los demás?
Extensible gracias a su arquitectura modular (http://modules.apache.org/):
mod_auth
mod_ssl
mod_security
. . .
Sergio Castillo
5 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Características de Apache
¿Por qué Apache es diferente a los demás?
Extensible gracias a su arquitectura modular (http://modules.apache.org/):
mod_auth
mod_ssl
mod_security
. . .
Soporte de diversos lenguajes para la generación dinámica de páginas web:
PHP
Python
Perl
. . .
Sergio Castillo
5 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Características de Apache
¿Por qué Apache es diferente a los demás?
Extensible gracias a su arquitectura modular (http://modules.apache.org/):
mod_auth
mod_ssl
mod_security
. . .
Soporte de diversos lenguajes para la generación dinámica de páginas web:
PHP
Python
Perl
. . .
Altamente configurable.
Sergio Castillo
5 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Características de Apache
¿Por qué Apache es diferente a los demás?
Extensible gracias a su arquitectura modular (http://modules.apache.org/):
mod_auth
mod_ssl
mod_security
. . .
Soporte de diversos lenguajes para la generación dinámica de páginas web:
PHP
Python
Perl
. . .
Altamente configurable.
Multiplataforma: GNU/Linux, *BSD, Solaris, MS-Windows, . . .
Sergio Castillo
5 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Características de Apache
¿Por qué Apache es diferente a los demás?
Extensible gracias a su arquitectura modular (http://modules.apache.org/):
mod_auth
mod_ssl
mod_security
. . .
Soporte de diversos lenguajes para la generación dinámica de páginas web:
PHP
Python
Perl
. . .
Altamente configurable.
Multiplataforma: GNU/Linux, *BSD, Solaris, MS-Windows, . . .
¡Open Source!
Sergio Castillo
5 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Cuota de mercado
Market Share for Top Servers Across All Domains August 1995 - February 2008∗
∗Fuente: http://news.netcraft.com/archives/web_server_survey.html
Sergio Castillo
6 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Seguridad en Apache
Consideración:
Un porcentaje elevado de administradores no modifica la configuración por
defecto.
Sin embargo, mejorar la seguridad no se centra exclusivamente en crear una
buena configuración. Otros aspectos: sistema operativo y red.
Seguridad en el sistema operativo:
Keep up to date
Mecanismos contra buffers overflow: ASLR, NX, Canary, . . .
Integridad del sistema de ficheros: Tripwire, Aide, . . .
HIDS
. . .
Seguridad en la red:
Infraestructura: DMZ
NIDS
Cortafuegos
. . .
Sergio Castillo
7 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Índice
1
Introducción
2 Configuración y directivas básicas
3 Control de acceso
4
5
Identificación remota y HTTP Fingerprinting
SSL/TLS
6 Network DoS
7 Otras consideraciones
8 Conclusiones
Sergio Castillo
8 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Proceso básico de configuración
Medidas básicas:
Compilación vs. paquetes binarios.
Keep up to date.
Ejecución de Apache bajo un usuario/grupo específico no privilegiado:
User apache
Group apache
Modificar los permisos de los archivos relacionados con Apache.
Integrar Apache en entornos jail/chroot (mod_chroot).
Sergio Castillo
9 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Proceso básico de configuración
Medidas básicas:
Deshabilitar módulos innecesarios:
mod_userdir
mod_info
mod_status
mod_include
mod_autoindex
mod_{perl,python,php,...}
Algunos módulos pueden mejorar la seguridad:
mod_rewrite
mod_headers
mod_setenvif
mod_security
mod_auth
mod_ssl
Sergio Castillo
9 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Proceso básico de configuración
Directivas asociadas a permisos sobre el árbol de directorios:
Order, Allow, Deny, Options y AllowOverride:
<Directory />
Order Deny,Allow
Deny from all
Options None
AllowOverride None
</Directory>
<Directory /var/www/htdocs>
Order Allow,Deny
Allow from all
Options None
AllowOverride None
</Directory>
Sergio Castillo
10 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Proceso básico de configuración
Directivas asociadas a las conexiones:
TimeOut, KeepAlive, MaxKeepAliveRequests, KeepAliveTimeout:
# Tiempo de espera de 30 segundos para clientes ‘‘lentos’’
TimeOut 30
# Permitir reusar las conexiones para peticiones consecutivas
KeepAlive On
# Permitir hasta 100 peticiones para la misma conexión
MaxKeepAliveRequests 100
# Esperar hasta 10 segundos a la siguiente petición antes
# de cerrar la conexión
KeepAliveTimeout 10
Sergio Castillo
11 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Proceso básico de configuración
Directivas asociadas al comportamiento de las instancias:
Apache 1.x (prefork):
# Lanzar 5 instancias al iniciarse Apache
StartServers 5
# Mantener 5 servidores listos para gestionar peticiones
MinSpareServers 5
# No mantener más de 10 servidores sin hacer nada
MaxSpareServers 10
# Permitir hasta 150 clientes en total
MaxClients 150
# Permitir hasta 30 peticiones por instancia
MaxRequestsPerChild 30
Apache 2.x: Incorpora el concepto de multiprocessing modules:
Cada módulo determina una forma distinta de cómo procesar las
peticiones.
Sólo un módulo activado.
Objetivo: optimización para cada sistema operativo.
Diversos modelos: prefork, worker, . . .
Sergio Castillo
12 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Índice
1
Introducción
2 Configuración y directivas básicas
3 Control de acceso
4
5
Identificación remota y HTTP Fingerprinting
SSL/TLS
6 Network DoS
7 Otras consideraciones
8 Conclusiones
Sergio Castillo
13 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Control de acceso
¿Qué mecanismos de control de acceso proporciona Apache?
Orientado a usuario:
Archivos de texto plano (mod_auth)
Archivos DBM (mod_auth_dbm)
Digest (mod_auth_digest)
Certificados digitales (mod_ssl) → autenticación mutua
Mediante IP de origen (mod_access)
Según contenido de peticiones (mod_setenvif + mod_access)
Uso de lenguajes: PHP, perl, python, . . . Diseño de mecanismos “a medida”.
Sergio Castillo
14 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Control de acceso
Ejemplo de control de acceso basado mod_auth:
user@host ~/public_html $ cat .htaccess
AuthName "Solo usuarios autorizados"
AuthType Basic
AuthUserFile /export/home/user/public_html/.htpasswd
Require valid-user
user@host ~/public_html $ htpasswd -c .htpasswd sergio
New password: ********
Re-type new password: ********
Adding password for user sergio
user@host ~/public_html $ cat .htpasswd
sergio:dZE5vdiBsOjLo
Sergio Castillo
15 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Control de acceso
Ejemplo de control de acceso basado en mod_auth:
Sergio Castillo
16 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Control de acceso
Ejemplos de control de acceso por IP y por contenido:
<Directory /var/www/localhost/htdocs/>
Order Deny,Allow
Allow from 127.0.0.0/8 192.168.0.0/24
Deny from all
</Directory>
SetEnvIf Request_URI "\.gif$" nogif=y
<Directory />
Order Deny,Allow
Deny from env=nogif
</Directory>
Sergio Castillo
17 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Control de acceso
¿Es seguro el C.A. basado en login/password?
Respuesta: no necesariamente, depende de la calidad de las contraseñas.
La autenticación usando, p.e., mod_auth, mod_auth_dbm o
mod_auth_digest puede ser atacada mediante fuerza bruta/diccionarios:
user@host ~ $ hydra 192.168.1.1 http-get -L user-dic.txt -P pass-dic.txt -m /
Hydra v5.4 (c) 2006 by van Hauser / THC - use allowed only for legal purposes.
Hydra (http://www.thc.org) starting at 2008-03-02 21:44:28
[DATA] 16 tasks, 1 servers, 3020 login tries (l:10/p:302), ~188 tries per task
[DATA] attacking service http-get on port 80
[80][www] host: 192.168.1.1
[STATUS] attack finished for 192.168.1.1 (waiting for childs to finish)
Hydra (http://www.thc.org) finished at 2008-03-02 21:44:28
password: crack
login: admin
Solución:
Podemos “mitigar” estos ataques mediante mod_evasive.
Emplear preferiblemente métodos más robustos (i.e.: certificados
digitales).
Sergio Castillo
18 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Índice
1
Introducción
2 Configuración y directivas básicas
3 Control de acceso
4
5
Identificación remota y HTTP Fingerprinting
SSL/TLS
6 Network DoS
7 Otras consideraciones
8 Conclusiones
Sergio Castillo
19 / 57
Intro. Conf. CA FP SSL DoS Cons. Concl.
Identificación remota y HTTP Fingerprinting
¿Qué es el HTTP Fingerprinting?
HTTP Fingerprinting: proceso remoto de identificación de servidores web
mediante las diferencias existentes en las implementaciones del protocolo HTTP.
Estrategias de identificación:
Cadenas identificativas.
Códigos de error
Comentarios de: Seguridad en entornos Apache - Hardening Apache (0)
No hay comentarios