Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1019
)
- ► septiembre (Total: 50 )
-
▼
2023
(Total:
710
)
-
▼
diciembre
(Total:
72
)
- Confirman robo del código fuente de Grand Theft Au...
- Apple quiere entrenar su inteligencia artificial c...
- Top 10 de vulnerabilidades críticas en aplicacione...
- Otra cadena de vulnerabilidades en Outlook permite...
- España analiza los niveles de radiación del iPhone...
- Peugeot usaba la Game Boy para realizar los diagnó...
- CVE-2023-35628: vulnerabilidad silenciosa por e-ma...
- OpenAI define las estrategias para evitar que la i...
- Zorin OS 17, la distribución de Linux que se ve co...
- ¿Comprar un HDD o un SSD? SSD siempre, menos para NAS
- Hyperloop One cierra: la utopía de Elon Musk desap...
- ¿Qué es el UPnP del router? y Tipos de NAT en Cons...
- Detenidos 5 ciberdelincuentes por estafar mediante...
- Condenan al autista por filtrar GTA VI: permanecer...
- Cae una red en España que ha estafado al menos 190...
- Synology - Conocimientos básicos del cifrado en DS...
- Diferentes tipos de velocidades WiFi: canales y ba...
- Retirado el mayor conjunto de datos de imágenes de...
- Galaxy S24: filtradas todas sus características y ...
- Inaugurado el superordenador MareNostrum 5, uno de...
- Tesla culpó a sus usuarios de fallos de fabricación
- Stable Diffusion y otras IA generativas se entrena...
- El FBI desmantela el ransomware BlackCat y obtiene...
- Comparativa de rendimiento velocidad red: 10 Gbe v...
- La Universidad de Buenos Aires (UBA) víctima de un...
- OpenAI se ha convertido en la compañía más importa...
- Google pagará 700 millones de dólares para aparcar...
- ¿Qué es ZFS? ¿Qué ventajas tiene sobre otros siste...
- MongoDB confirma que datos de clientes quedaron ex...
- La Comisión Europea abre expediente a Twitter por ...
- Sistema pionero español para que los menores no ac...
- OpenAI suspende la cuenta de ByteDance (TikTok) po...
- Tutorial Apache modsecurity (WAF)
- Twitch permite más contenido sexual
- Google Imagen 2, la inteligencia artificial para c...
- Dropbox comparte tus archivos con OpenAI sin que t...
- El fabricante de chips NXP fue hackeado en 2017 y ...
- El BSC presenta Sargantana, la nueva generación de...
- Apple impedirá que un ladrón pueda usar un iPhone ...
- El Gobierno Español propone restringir el uso de l...
- Utilizan Google Forms en ataques de Phishing
- Si tu PC Windows se ‘congela’, revisa el antivirus...
- E3: la feria más importante de los videojuegos mue...
- Insomniac Games hackeado por el ransomware Rhysida...
- El despilfarro de la IA: se necesitan dos centrale...
- Optimus Gen 2, el nuevo robot humanoide de Elon Mu...
- Vulnerabilidad crítica en plugin de WordPress Back...
- Europa quiere normas para combatir la adicción a l...
- Microsoft presenta Phi-2, una inteligencia artific...
- Paquetes con malware en proyectos del repositorio ...
- DNS0: El DNS público europeo que hace Internet más...
- ¿Qué diferencia hay entre un disco duro WD Red Plu...
- Linux tendrá su propia pantalla de la muerte azul ...
- El ordenador con más malware del mundo: 'Most Infe...
- Configurar el firewall de Windows
- Apple publica actualizaciones de seguridad para pa...
- El estándar Wi-Fi 7, a punto de ser aprobado: lleg...
- Epic Games gana a Google el juicio antimonopolio c...
- En la mitad de los casos las instrusiones se produ...
- La UE aprueba la primera Ley de Inteligencia Artif...
- Cómo la IA puede ayudar a los equipos de seguridad
- LogoFAIL: ataque al firmware, que afecta a Windows...
- Lo más buscado en Google en 2023
- La NASA se dedicó a drogar arañas para comprobar l...
- Kelvinsecurity: detenido el líder de uno de los gr...
- El navegador Brave lanza Leo, su IA tipo ChatGPT q...
- FirewallD viniendo de iptables
- Google retrasa el lanzamiento de Gemini, su respue...
- Vulnerabilidades críticas en UEFI: LogoFAIL expone...
- Bloquear LOLbins con el firewall de Windows
- Fases fundamentales de un análisis forense digital
- Tiny11, la versión ligera de Windows 11
- ► septiembre (Total: 65 )
-
▼
diciembre
(Total:
72
)
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
►
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
Entradas populares
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
-
En el panorama en constante evolución de la seguridad de redes, OpnSense se ha convertido en una formidable solución de firewall. Nacido de...
-
Pese a que Gemini ofrece multitudes de opciones, recientemente, se ha dado a conocer una situación fuera de lo común. Hace unos días, un es...
Tutorial Apache modsecurity (WAF)
Este tutorial muestra cómo instalar y usar ModSecurity con Apache en servidores Debian/Ubuntu. ModSecurity es el cortafuegos de aplicaciones web (WAF) de código abierto muy conocido, que proporciona una protección completa para sus aplicaciones web (como WordPress, Nextcloud, Ghost, etc.) contra una amplia gama de ataques de Capa 7 (HTTP), como inyección SQL, cross-site scripting e inclusión de archivos locales (LFI)
Las aplicaciones web son intrínsecamente inseguras. Si eres un administrador de WordPress, probablemente escuche noticias de vulnerabilidades en plugins y temas de WordPress de vez en cuando. Es esencial que despliegues un WAF en tu servidor web, especialmente cuando tienes aplicaciones antiguas que no reciben actualizaciones. ModSecurity fue creado originalmente por Ivan Ristić en 2002, y actualmente lo mantiene Trustwave SpiderLabs. Es el WAF más desplegado del mundo, utilizado por más de un millón de sitios web. cPanel, el panel de control de hosting más utilizado, incluye ModSecurity como su WAF.
Puede que haya oído hablar de otros cortafuegos basados en host como iptables, UFW y Firewalld, etc. La diferencia es que estos trabajan en las capas 3 y 4 del modelo OSI y toman acciones basadas en la dirección IP y el número de puerto. ModSecurity, o los cortafuegos de aplicaciones web en general, está especializado para centrarse en el tráfico HTTP (capa 7 del modelo OSI) y toma acciones basadas en el contenido de la petición y respuesta HTTP.
ModSecurity 3
ModSecurity fue diseñado originalmente para el servidor web Apache. Podía funcionar con Nginx antes de la versión 3.0 pero sufría de bajo rendimiento. ModSecurity 3.0 (también conocido como libmodsecurity) fue lanzado en 2017. Es un hito, especialmente para los usuarios de Nginx, ya que es la primera versión que funciona de forma nativa con Nginx. La advertencia de ModSecurity 3 es que todavía no tiene todas las características de la versión anterior (2.9), aunque cada nueva versión añadirá algunas de las características que faltan. Los usuarios de Nginx deberían usar ModSecurity 3. Sin embargo, si usas Apache, se recomienda seguir usando la rama 2.9 por el momento.
Instalación básica
El módulo ModSecurity para Apache está incluido en el repositorio por defecto de Debian/Ubuntu. Para instalarlo, ejecuta:
sudo apt install libapache2-mod-security2
A continuación, habilita este módulo
sudo a2enmod security2
Reinicia Apache para que el cambio surta efecto.
sudo systemctl restart apache2
Configurar ModSecurity
En el fichero de configuración /etc/apache2/mods-enabled/security2.conf, puede encontrar la siguiente línea.
IncludeOptional /etc/modsecurity/*.conf
Esto significa que Apache incluirá todos los ficheros *.conf en el directorio /etc/modsecurity/. Necesitamos renombrar el archivo modsecurity.conf-recommended para que funcione.
modsecurity en Apache 2.4
modSecurity filtra ataques por XSS, SQL Injection, comportamientos anómalos en protocolos, robots, troyanos, LFI ... incorporando además reglas específicas para algunos de los gestores de contenido más populares como Joomla o Wordpress. modSecurity también funciona con nginx e IIS.
modSecurity es un firewall de aplicaciones Web embebible bajo licencia GNU que se ejecuta como módulo del servidor web Apache, provee protección contra diversos ataques hacia aplicaciones Web y permite monitorizar tráfico HTTP, así como realizar análisis en tiempo real sin necesidad de hacer cambios a la infraestructura existente.
ModSecurity cuenta con una consola de administración que permite recopilar registros de monitorización y alertas en tiempo real así como de opciones automatizadas de mantenimiento, entre otras características.
yum install mod_security mod_security_crs
- On: The rules are enforced and connections will be terminated when matching rules are found.
- Detect Only: The rules are enforced and connections will be logged when matching rules are found. Not traffic will be dropped.
- Off: Rules are not enforced.
Debug Log – /var/log/httpd/modsec_debug.log
Audit log – /var/log/httpd/modsec_audit.log
Rules – /etc/httpd/modsecurity.d/activated_rules
#SecRuleEngine DetectionOnly
SecRuleEngine On
SecAuditLog /var/log/apache2/modsec_audit.log
- Phase 1: Inspeccionar las cabeceras de la petición
- Phase 2: Inspeccionar el cuerpo de la petición
- Phase 3: Inspeccionar las cabeceras de la respuesta
- Phase 4: Inspeccionar el cuerpo de la respuesta
- Phase 5: Acción (registrar/bloquear peticiones maliciosas)
- Serial: un archivo para todos los registros. Este es el predeterminado.
- Concurrent: varios archivos de registro. Esto puede proporcionar un mejor rendimiento de escritura. Si nota que sus páginas web se ralentizan después de activar ModSecurity, puede elegir usar el tipo de registro concurrente.
sección A: cabecera del registro de auditoríasección B: cabecera de la peticiónsección C: cuerpo de la peticiónsección D: reservadosección E: cuerpo de la respuesta intermediasección F: cabecera de la respuesta finalsección G: reservadasección H: tráiler del registro de auditoríasección I: alternativa al cuerpo compacto de la solicitud, que excluye los archivossección J: información sobre los archivos cargadossección K: todas las reglas coincidentes con un evento, por orden de coincidenciasección Z: límite final
Si tienes un sitio web con mucho tráfico, el log de auditoría de ModSecurity puede volverse demasiado grande muy rápidamente, por lo que necesitamos configurar la rotación de logs para el log de auditoría de ModSecurity. Crea un fichero de configuración logrotate para ModSecurity.
sudo nano /etc/logrotate.d/modsecurity
Añada las siguientes líneas a este fichero.
/var/log/httpd/modsec_audit.log
{
rotate 10
daily
missingok
compress
delaycompress
notifempty
}
Esto rotará el archivo de registro cada día (daily), comprimiendo las versiones antiguas (compress). Los 10 archivos de registro anteriores se mantendrán (rotate 10), y no se producirá ninguna rotación si el archivo está vacío (notifempty).
SecRuleRemoveById 920350
Excluir rango de reglas:
SecRuleRemoveById "9000-9010"
Excluir reglas según tipo:
SecRuleRemoveByTag "WEB_ATTACK/XSS"
OWASP ModSecurity CRS incluye:
- AUTOMATION/MALICIOUS
- AUTOMATION/MISC
- AUTOMATION/SECURITY_SCANNER
- LEAKAGE/SOURCE_CODE_ASP_JSP
- LEAKAGE/SOURCE_CODE_CF
- LEAKAGE/SOURCE_CODE_PHP
- WEB_ATTACK/CF_INJECTION
- WEB_ATTACK/COMMAND_INJECTION
- WEB_ATTACK/FILE_INJECTION
- WEB_ATTACK/HTTP_RESPONSE_SPLITTING
- WEB_ATTACK/LDAP_INJECTION
- WEB_ATTACK/PHP_INJECTION
- WEB_ATTACK/REQUEST_SMUGGLING
- WEB_ATTACK/SESSION_FIXATION
- WEB_ATTACK/SQL_INJECTION
- WEB_ATTACK/SSI_INJECTION
- WEB_ATTACK/XSS
<LocationMatch "/wp-admin/post.php">SecRuleRemoveById 980130 941180 949110</LocationMatch>
SecRule REMOTE_ADDR "@IPMatch IP" "id:932160,ctl:ruleEngine=Off"SecRule REMOTE_ADDR "@IPMatch IP" "id:980130,ctl:ruleEngine=Off"SecRule REMOTE_ADDR "@ipMatch IP" "id:980130,phase:2,t:none,log,allow"SecRule REMOTE_ADDR "@ipMatch IP" "id:941180,phase:2,t:none,log,allow"
SecRule REMOTE_ADDR "^127\.0\.0\.1" "id:1004,phase:1,allow,ctl:ruleEngine=off"
SecRule REMOTE_ADDR "^10\.10\.10.*" "id:1005,phase:1,allow,ctl:ruleEngine=off"
<IfModule mod_security2.c>
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecResponseBodyMimeType text/plain text/html text/xml application/octet-stream
SecDataDir /tmp
</IfModule>
Reglas OWASP ModSecurity Core Rule Set (CRS)
- Es gratuito, mantenido por la comunidad y el conjunto de reglas más utilizado que proporciona una configuración por defecto vendida para ModSecurity.
- Contiene reglas para ayudar a detener vectores de ataque comunes, incluyendo SQL injection (SQLi), cross-site scripting (XSS), y muchos otros.
- Puede integrarse con Project Honeypot y Fail2ban
- También contiene reglas para detectar bots y escáneres.
- Ha sido ajustado a través de una amplia exposición para tener muy pocos falsos positivos.
wget https://github.com/coreruleset/coreruleset/archive/refs/tags/v3.3.5.tar.gz
tar xvf v3.3.5.tar.gz
sudo mkdir /etc/apache2/modsecurity-crs/
sudo mv coreruleset-3.3.5/ /etc/apache2/modsecurity-crs/
cd /etc/apache2/modsecurity-crs/coreruleset-3.3.5/
sudo mv crs-setup.conf.example crs-setup.conf
sudo nano /etc/apache2/mods-enabled/security2.conf
IncludeOptional /usr/share/modsecurity-crs/*.load
IncludeOptional /etc/apache2/modsecurity-crs/coreruleset-3.3.5/crs-setup.confIncludeOptional /etc/apache2/modsecurity-crs/coreruleset-3.3.5/rules/*.conf
Cómo funciona OWASP CRS
Echemos un vistazo al archivo de configuración de CRS, que te proporciona una buena documentación sobre cómo funciona CRS.
sudo nano /etc/apache2/modsecurity-crs/coreruleset-3.3.5/crs-setup.conf
Puedes ver que OWASP CRS puede ejecutarse en dos modos:
- modo autónomo. Este es el modo tradicional usado en CRS v2.x. Si una petición HTTP coincide con una regla, ModSecurity bloqueará la petición HTTP inmediatamente y dejará de evaluar las reglas restantes.
- Modo de puntuación de anomalías. Este es el modo por defecto usado en CRS v3.x. ModSecurity comprobará una petición HTTP con todas las reglas, y añadirá una puntuación a cada regla que coincida. Si se alcanza un umbral, entonces la petición HTTP se considera un ataque y será bloqueada. La puntuación por defecto para peticiones entrantes es 5 y para respuestas salientes es 4.
- Paranoia nivel 1 (por defecto)
- Paranoia nivel 2
- Paranoia nivel 3
- Paranoia nivel 4
Encadenamiento de reglas
SecRule REMOTE_ADDR "@ipMatch 12.34.56.78" "id:1004,phase:1,allow,ctl:ruleEngine=off,chain"SecRule REQUEST_HEADERS:Host "@streq nextcloud.yourdomain.com" "t:none"
Falsos Positivos
crs-setup.conf
Ves a la sección Exclusiones de reglas específicas de la aplicación y busca las siguientes líneas.
#SecAction \
# "id:900130,\
# phase:1,\
# nolog,\
# pass,\
# t:none,\
# setvar:tx.crs_exclusions_cpanel=1,\
# setvar:tx.crs_exclusions_drupal=1,\
# setvar:tx.crs_exclusions_dokuwiki=1,\
# setvar:tx.crs_exclusions_nextcloud=1,\
# setvar:tx.crs_exclusions_wordpress=1,\
# setvar:tx.crs_exclusions_xenforo=1"
Por ejemplo, si quiero activar las exclusiones de WordPress, las líneas anteriores deben cambiarse por las siguientes:
SecAction \
"id:900130,\
phase:1,\
nolog,\
pass,\
t:none,\
setvar:tx.crs_exclusions_wordpress=1"
Exclusiones para un subdominio:
SecRule REQUEST_HEADERS:Host "@streq blog.elhacker.net" "id:1000,phase:1,setvar:tx.crs_exclusions_wordpress=1"
Por ejemplo un subdominio con nextcloud:
SecRule REQUEST_HEADERS:Host "@streq nextcloud.elhacker.net" "id:1001,phase:1,setvar:tx.crs_exclusions_nextcloud=1"
modsecurity + Fail2ban + AbuseIpDB
modsecurity se puede integrar fácilmente con Fail2Ban
[apache-modsecurity]
enabled = true
filter = apache-modsecurity
#logpath = /var/log/httpd/modsec_audit.log
backend = pyinotify
action = abuseipdb[abuseipdb_category="15,21"]
bantime = 1h
logencoding = UTF-8
Fuentes:
https://www.linuxbabe.com/security/modsecurity-apache-debian-ubuntu
Usamos Cookies propias y de terceros. Consulta el Aviso Legal para más información.
Los contenidos de este blog están sujetos a una licencia Creative Commons a menos que se indique lo contrario.
1 comentarios :
bla bla bla
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.