Consideraciones
Quién tiene acceso físico?
Quién tiene acceso shell?
Apache escribe en los filesystem?
Limitar los post/get, cookies, sesiones?
Recomendaciones básicas
Deshabilitar los servicios no usados, actualizar el servidor, usar los archivos de configuración recomendados
Habilitar logwatch y logcheck y actualizar los reportes
Habilitar una herramienta de verificación de integridad de archivos
configurar iptables Ports 22, 80, 443 tomcat?
Asegurando Apache
Configurando Apache
Deshabilitar servicios no indispensables
Verificar los bugtracks y actualizar
Proteger los directorios /var/www/
Crear un directorio personalizado /var/www/error
Habilitar los .htaccess y proteger los archivos de users y password del http
mod_dosevasive
Fácil de configurar
Puede ayudar a evadir ataques de DoS bloqueando direcciones ip o URLs temporalmente.
LoadModule dosevasive20_module modules/mod_dosevasive20.so
< IfModule mod_dosevasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSPageInterval 1
DOSSiteCount 50
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify admin@domain.com
DOSLogDir "/tmp/mod_dosevasive (make writable by apache only)
< /IfModule>
Características mod_security
Los filtros se aplican antes de ejecutar los scripts
Soporta SSL
Entienden el protocolo http
Hace logging completo incluyendo post data
Las reglas son personalizadas usando expresiones regulares y pueden ser aplicadas a niveles de virtual hosts
Ejemplo mod_security
< IfModule mod_security.c>
SecFilterEngine On
# Prevent OS specific keywords #index.php?include=filename
SecFilter /etc/passwd
# Prevent path traversal (..) attacks
SecFilter "../"
# Very crude filters to prevent SQL injection attacks
SecFilter "delete[[:space:]]+from"
SecFilter "insert[[:space:]]+into"
SecFilter "select.+from"
< /IfModule>
Revisar el Servidor
Nmap (nmap I sV servidor)
Nessus http://www.nessus.org
CIS Linux Benchmark Scan
http://www.cisecurity.org/bench_linux.html
Seguridad en PHP
Tipos de Ataques a PHP
Ejecución de comandos y/o escribir en los filesystem
Sql injection
Session Hijacking
Cross Site Scripting (xss)
Directory Transversal Attack
Este fallo es muy común y simple. Consiste en realizar un descenso de directorios usando la referencia ../ al directorio padre.
Un ejemplo de esto seria el siguiente:
< html>
< head>PHP para mostrar ficheros de texto< /head>
< body>
< ?
if ($fp=fopen($filename,"r"))
{
while(!feof($fp))
{
$contenido=fgets($fp,500); print("< p>" . $contenido);
}
}
else
{
print("Error al abrir el fichero");
}
?>
< /body> < /html>
Contenido del programa show_text_file.php
Este programa de ejemplo esta escrito en PHP y simplemente lee el archivo especificado y lo muestra, tal y como vemos en el siguiente escenario:
Ejemplo:
victima.com/cgi-bin/show_text_file.php?filename=introduccion.txt
Salida:
PHP para mostrar ficheros de texto
Esto es un ejemplo
esta es la línea 1
esta es la línea 2
esta es la línea 3
Página siguiente |