Está en la página 1de 25

Seguridad en servidores web compartidos.

(LAMP)
Lic. Juan Francisco Bosco
@magnobalt www.linkedin.com/pub/juan-franciscobosco/17/2b4/99b

www.admhost.com

Que es un servidor Web

Un demonio/servicio que esta corriendo en un computadora/servidor a la espera de peticiones de un usuario/cliente. Se utiliza el protocolo HTTP (Hypertext Transfer Protocol). RFC 2616 APACHE es un servidor Web de cdigo abierto.

Personalizable Multi Plataforma (Windwos, Linux, MAC)

Servidor web compartido


Es una de las modalidades mas usadas por empresas de hosting de internet donde es posible alojar en un servidor fisico cientos o miles de sitios web.

Ventajas

Mas econmico frente a servidores dedicados o virtuales Cada aplicacin (Virtul Host) puede tener configuraciones personalizadas Fallas de seguridad Varias aplicaciones/sitios comparten el mismo servidor con sus recursos (CPU, MEMORIA, DISCO)

Desventajas

Servidor Compartido
Victima Sitio vulnerable

Sitio 2

Sitio 1

Virtual Host

SERVIDOR WEB

Virtual Host

Sitio 3 Virtual Host Sitio 6 Virtual Host

Sitio 4 Virtual Host Sitio N Virtual Host

Sitio 5 Virtual Host

Foot Printing

Recolectar informacin del objetivo que haya sido publicado a propsito o por desconocimiento.

Pasivos

Google Hacking Intitle, site, allinurl, filetype DNS Reverse

Activos

Spiders Scanners

Nikto, Acuentix

Google Hacking

DNS Reverse

DNS Reverse

Nikto

Spiders

Hardening
APACHE2 (conf.d/security)

Server_Tokens Full Server_Tokens Prod PHP5 (php.ini)


expose_php = on expose_php = off

Hardening
open_basedir

PHP

Open_basedir: Lmite de ficheros que pueden ser abiertos por PHP en el especificado rbol del directorio, incluyendo el fichero as mismo. Esta directiva NO es afectada cuando Safe Mode est On o Off. Cuando un script intenta abrir un fichero o directorio por ejemplo con fopen(), opendir() gzopen(),etc. se comprueba la localizacin del fichero Archivo php.ini

open_basedir "/www/sites/site1/public_html:/tmp"

Archivo sites-enabled

php_admin_value open_basedir "/www/sites/site2/public_html:/tmp"

Virtual Hosts
open_basedir
<VirtualHost *:80> ServerAdmin magnobalt@gmail.com DocumentRoot /www/sites/site2/public_html ServerName site2.com ServerAlias www.site2.com <IfModule mod_php5.c> php_admin_value open_basedir "/www/sites/site2/public_htm:/tmp </IfModule>

</VirtuHost>

Sesion Hijacking

El protocolo HTTP es asincrnico Para tener relacin entre cliente y servidor se utilizan Sesiones o Cookie. Las sesiones se guardan en el servidor con un nombre aleatorio. Un atacante con acceso puede robar la session y ejecutar el Hijacking.

Virtual Hosts
open_basedir
<VirtualHost *:80> ServerAdmin magnobalt@gmail.com DocumentRoot /www/sites/site1/public_html ServerName site1.com ServerAlias www.site1.com <IfModule mod_php5.c> php_admin_value open_basedir "/www/sites/site1/public_htm:/www/sites/site1/tmp php_admin_value session.save_path /www/sites/site1/tmp

</IfModule>

</VirtuHost>

Hardening
suhosin
Suhosin: Es un sistema de proteccin avanzado para las instalaciones de PHP. Fue diseado para proteger los servidores y a usuarios contra defectos sabidos y desconocidos en usos de PHP.

$sudo aptitude install php5-suhosin /etc/php5/conf.d/suhosin.ini

Hardening
disable_funcionts
disable_function: Esta directiva permite desactivar ciertas clases por razones de seguridad. Hace falta delimitar con comas el nombre de las clases. Archivo PHP

disable_function "show_source, system, shell_exec, passthru, exec, popen, proc_open"

Archivo sites-enables

php_admin_value suhosin.executor.func.blacklist "show_source,system"

Virtual Hosts
suhosin.session.cryptua on
<VirtualHost *:80> ServerAdmin magnobalt@gmail.com DocumentRoot /www/sites/site1/public_html ServerName site1.com ServerAlias www.site1.com <IfModule mod_php5.c> php_admin_value open_basedir "/www/sites/site1/public_htm:/www/sites/site1/tmp php_admin_value session.save_path /www/sites/site1/tmp php_admin_value suhosin.executor.func.blacklist "show_source,system" </IfModule>

</VirtuHost>

Hardening
cryptua
suhosin.session.cryptua

La clave del cifrado depende del campo User-Agent

Virtual Hosts
suhosin.session.cryptua on
<VirtualHost *:80> ServerAdmin magnobalt@gmail.com DocumentRoot /www/sites/site1/public_html ServerName site1.com ServerAlias www.site1.com <IfModule mod_php5.c> php_admin_value open_basedir "/www/sites/site1/public_htm:/www/sites/site1/tmp php_admin_value session.save_path /www/sites/site1/tmp php_admin_value suhosin.executor.func.blacklist "show_source,system" php_admin_value suhosin.session.cryptua on </IfModule>

</VirtuHost>

suPHP

Es una herramienta que ejecuta scripts PHP con los permisos de sus usuarios propietarios. Se compone de un modulo Apache (mod_suphp) y un binario setuid root (suphp) que es llamado por el modulo Apache para cambiar el uid del proceso que ejecuta el interprete.

Evitar permisos 755 solamente es necesario permisos de 740 Mnimos privilegios en caso de alguna falla en el sistema. No se permite php_flag

suPHP

suPHP

suPHP

Sin suPHP <IfModule mod_suphp.c> suPHP_Engine on suPHP_UserGroup prueba prueba </IfModule>

Find Shell

Seguridad en servidores web compartidos. (LAMP)


Disertante: Lic. Juan Francisco Bosco

FIN