Rooted CON 2014: 6, 7 y 8 de Marzo de 2014 Español Seguridad y optimización en servidores GLAMP Ponente David Hernández (Dabo). Administrador de Sistemas y Pentester autodidacta además de Debianita confeso. Socio co-fundador y responsable del área de Hacking en APACHEctl, empresa especializada en administración, seguridad y optimización de servidores web bajo GNU/Linux. En 2014, el proyecto con el que se inició en Internet, Daboweb (comunidad de ayuda y seguridad informática) cumplirá 12 años. Es también uno de los fundadores y editor de DebianHackers. Ponente en dos ediciones del ENISE (años 2011 y 2013) dentro del encuentro Bloggers de Seguridad. Ha participado en diversas mesas y ponencias de seguridad en las últimas cuatro ediciones del Foro Internet Meeting Point, también en ConectaCON 2013 y MorterueloCON 2014, además de en otros eventos relacionados con la seguridad y administración de servidores tanto presenciales como vía web. Escribe y coordina un podcast en su blog personal, DaboBlog. Participa en Twitter con esa cuenta: @Daboblog Descripción y objetivos
Este taller tiene como objetivo abordar la problemática en un entorno GLAMP (GNU/Linux, Apache, MySQL y PHP) en producción. Trataremos la optimización de recursos revisando directivas esenciales de Apache, MySQL, PHP, módulos de caching, etc, además de configuraciones por defecto que en casos de una carga elevada, o determinadas peticiones, pueden dejar inoperativo el servidor web con tráfico legítimo. El entorno objetivo estará basado en Debian GNU/Linux, aunque con ligeras diferencias, la temática es válida para otras distribuciones. Se profundizará en herramientas y técnicas de hardening, implementando medidas de seguridad pasivas y proactivas, con el fin de ver varios tipos de ataque muy comunes desde el lado del atacante y dentro del servidor. Uno de los objetivos es precisamente ese, poder ver ambos lados y ayudar a comprender tanto a un pentester como a un administrador de sistemas, cómo se comporta el servidor frente a determinados ataques. Una mezcla de seguridad defensiva y ofensiva en un entorno muy expuesto si nos referimos a un servidor web. Nos referimos a servicios críticos, disponibilidad y un entorno que por momentos puede volverse muy hostil. Audiencia Dirigido a personal o responsables de seguridad, administradores de sistemas y pentesters. Requisitos Conocimientos básicos de Redes y GNU/Linux familiarizados con el uso de una consola y entornos LAMP. Temario 1. Elección del hosting y tipo de servidor. Cuestiones legales y técnicas, escalado web. Como introducción, se enumerarán aspectos a tener en cuenta a la hora de elegir tanto el proveedor de servicio, como el tipo de servidor necesario según el proyecto a poner en producción, además de la disponibilidad.
Aquí tendrán cabida cuestiones legales en su contratación y ubicación, además de otros aspectos como el tipo de sistema de ficheros, esquemas de particionado, parches para el Kernel y problemas comunes con el proveedor de hosting que influyen en la seguridad y capacidad de respuesta frente a incidentes. También se hará una introducción teórica al escalado web (vertical y horizontal), teniendo en cuenta desde el inicio las posibilidades de expansión del entorno y las necesidades a corto, medio y largo plazo. 2. WPO (Web Performance Optimization) en Apache, MySQL y PHP. Se podrán ver las directivas y configuraciones de Apache que más impacto tienen tanto en la velocidad de carga, como en posibles caídas o denegaciones de servicio provocadas por valores inadecuados que vienen por defecto. Repasando directivas y valores esenciales en Apache para un tráfico alto. Se explicarán los módulos multiproceso (MPM) en Apache2 y también sus diferentes implementaciones (Worker, Prefork ). Se explicarán las conexiones persistentes, timeouts, número de clientes, servidores y subprocesos de Apache y también varios módulos de caching para Apache y PHP, almacenando objetos en disco o memoria para un acceso más rápido. Repasando en todo momento logs y sistemas de medición del tráfico o peticiones. En PHP, se revisarán valores y directivas de su fichero de configuración principal que influyen en los tiempos de respuesta, posibles errores de límites de memoria, conflictos con Apache o MySQL o timeouts indeseados. Sobre MySQL, se propondrá una configuración alternativa a la que viene por defecto, claramente insuficiente. Se revisarán directivas de logs, además del uso de túneles cifrados para conexiones remotas y scripts de backups. 3. Seguridad por oscuridad y medidas de protección en PHP. Partiendo de una instalación por defecto de Debian 7, Apache, MySQL y PHP, se irán realizando diferentes ataques buscando versiones de software instaladas y puertos activos. Se propondrán medidas de ocultación de banners en diferentes servicios realizando cambios y viendo cómo va mejorando la situación inicial.
También los típicos listados de directorios, técnicas de enjaulado (chroot), además de mejoras en forma de parches, valores y funciones a revisar o deshabilitar en PHP, útiles para mejorar la seguridad del servidor web. 4. Uso de un IDS / IPS y Firewall por software trabajando con iptables. Una vez que hemos optimizado y aplicado medidas de ocultación de servicios en el entorno, se realizarán ataques con el fin de detectar puertos y servicios o versiones de sofware instaladas en el servidor. Se implementará un IDS en modo pasivo para detectar escaneos de puertos, así como en modo activo para proceder a su bloqueo parcial o totalmente. También se pondrá en marcha un firewall con diferentes medidas proactivas viendo desde ambos lados del servidor el resultado e impacto en el sistema. 5. Ataques de fuerza bruta, DoS, acercamiento a los WAF. Se implementarán contramedidas para paliar ataques de fuerza bruta en servicios críticos como SSH, FTP o Apache, viendo las diferentes configuraciones recomendadas, listas blancas o exclusiones de bloqueo, número de intentos y acciones a poner en marcha caso de ser detectados. También mediante módulos de Apache y algún script, se instalarán medidas de seguridad para ataques DoS que no provengan de un gran número de Ips, ya que en la práctica un DDoS no será posible pararlo con estas técnicas y en muchas ocasiones, hay picos de tráfico indeseados (spyders, robots) que pueden hacer caer el servidor web siendo relativamente sencillo evitarlo. Tendrá a su vez cabida ModSecurity, un conocido WAF (Web Aplication Firewall). Realizando un acercamiento teórico y también valorando en qué situaciones es recomendable su uso y también como una mala configuración del mismo puede afectar al tráfico legítimo, bloqueando peticiones que deberían ser permitidas. En todo momento se irán revisando logs y realizando ataques para comprobar la efectividad de los diferentes bloqueos y sistemas de protección puestos en marcha. 6. Control de logs y monitorización de conexiones, servicios y procesos.
En este apartado se pondrán en marcha diferentes herramientas para filtrar logs relevantes en el sistema, con la posibilidad de vía el CRON del sistema, realizar envíos de los mismos fuera del servidor, para ir viendo en todo momento lo más importante que sucede en la máquina, y también en previsión de una posible intrusión y borrado de registros tenerlos fuera de ella. También se instalarán módulos y aplicaciones para monitorizar tanto de un modo interno como externo o vía web, el estado del servidor en general y otros servicios como Apache, MySQL, Mail, DNS, etc. Se podrá comprobar como es posible monitorizar un servicio en concreto, pudiendo realizar diversas acciones en caso de un mal funcionamiento o caída del mismo (envío de alertas o restauración del proceso). En este apartado, se usarán herramientas a bajo nivel de sistema y diversos comandos para controlar conexiones entrantes y salientes, puertos utilizados por diferentes servicios, carga del servidor y tráfico web. 7. Rootkits, malware, sniffers e integridad y permisos de ficheros. Llegados a este punto, es muy importante comprobar la integridad del sistema instalando varias herramientas para buscar posibles puertas traseras o rootkits, verificar y llevar un control de paquetes actuales y futuros que serán instalados a lo largo de la vida del servidor, efectuando controles a bajo nivel de forma periódica desde el CRON del sistema o manualmente. De igual forma, es necesario y más en servidores con múltiples webs y desarrollos propios o de terceros (incluyendo gestores de contenidos), analizar ciertas cadenas maliciosas y código ofuscado en ficheros PHP aparentemente legítimos, que podrían ser un vector de entrada al servidor web. Se realizará una demostración de detección de un rootkit con acceso total a la máquina, a través de un WordPress no actualizado o sin unas mínimas medidas de seguridad. Para acabar,.se hará una demostración práctica del funcionamiento de una herramienta de control del sistema a nivel general (servicios, usuarios, permisos, actualizaciones, etc).