Módulo 2
Registro de Sitios Web para Mayor Seguridad
Última actualización en: 24 Septiembre 2024
Editar esta página en GitHubMódulo 2
Última actualización en: 24 Septiembre 2024
Editar esta página en GitHubCualquier sitio web que esté expuesto a Internet está bajo ataque constante. Como mínimo, está siendo inundado por ataques no dirigidos por hordas de robots operados por agentes criminales. Más preocupantes son los ataques dirigidos; incluso los atacantes no cualificados, con perseverancia y suerte, pueden encontrar vulnerabilidades en un sitio web.
Idealmente, el propietario del sitio web debería poder ser consciente de las amenazas a las que se enfrenta. Especialmente Los propietarios de sitios querrán saber si un atacante ha encontrado o está cerca de encontrar una vulnerabilidad. Finalmente, si se explota una vulnerabilidad, los propietarios del sitio querrán saber dónde está y durante cuánto tiempo ha estado explotada. Los registros del sitio web pueden respaldar todos estos deseos.
Por otro lado, el registro excesivo puede representar un riesgo para los usuarios de los sitios web. Si un sitio registra información confidencial y esos registros son adquiridos por un adversario (por ejemplo, incautación por parte de las autoridades o piratería informática), entonces la información confidencial podría terminar fácilmente en las manos equivocadas.
Este subtema cubrirá enfoques para el registro de sitios web para maximizar la utilidad para los propietarios de sitios web y minimizar el riesgo para los usuarios del sitio.
Después de completar este subtema, el profesional debe ser capaz de realizar lo siguiente:
Incluso con las mejores habilidades, dedicación, procesos e intenciones posibles, es casi imposible desarrollar un sitio web que sea completamente resistente a cualquier tipo de ataque. Con suficiente tiempo y mala suerte, cada sitio tendrá un incidente de seguridad. Cuando eso sucede, es importante contar con un registro que respalde la detección e investigación de eventos de seguridad. Al mismo tiempo, es importante que los registros de un sitio web no representen riesgos adicionales por sí mismos. Este subtema le enseñará cómo abordar el registro para maximizar la seguridad de un sitio. Se discutirá:
Varias plataformas web tienen sus propios sistemas de registro. Se puede confiar en que registrarán datos sobre cada solicitud y respuesta, pero generalmente no son suficientes para todas las necesidades de respuesta a incidentes. Repasemos lo que está disponible en los registros de algunos framworks comunes.
Apache es el servidor web con todas las funciones más popular de Internet y ofrece más sitios activos que cualquier otro. De forma predeterminada, registra eventos para archivarlos en el sistema de archivos del servidor web. Hay dos archivos: access_log
y error_log
. El registro de acceso contiene información estructurada sobre cada solicitud, mientras que el registro de errores contiene más datos semiestructurados sobre cosas que salieron mal.
El registro de acceso tiene una línea por entrada, con un formato configurable. El formato predeterminado son los siguientes campos, cada uno separado por un espacio:
"GET / HTTP/1.1"
). Estos campos siempre tendrán espacios.Hay aquí un ejemplo:
127.0.0.1 - - [13/Dec/2023:13:55:36 -0700] "GET / HTTP/1.1" 200 2326
Tenga en cuenta que cada servidor Apache se puede configurar para registrar más o menos datos. Para obtener más información, consulte la documentación de Apache. Para obtener más información sobre el registro de acceso de Apache y cómo usarlo, consulte este artículo.
El registro de errores consta de una combinación de mensajes de Apache que están en un formato semiestructurado y mensajes de error de sitios web que se ejecutan en el servidor, sin ninguna estructura obligatoria. La estructura predeterminada de las entradas del registro de errores del propio Apache es una línea por entrada, con los siguientes campos, nuevamente separados por espacios:
Este artículo proporciona más información sobre el uso del registro de errores de Apache.
IIS es el servidor web predeterminado de Windows y también es un servidor web muy popular. Al igual que Apache, IIS también, de forma predeterminada, registra las solicitudes en el sistema de archivos del servidor web. Hay varios formatos de registro disponibles, pero el predeterminado es el formato W3C, que registra lo siguiente, separado por espacios:
GET
, POST
, HEAD
, etc.)/
, /index.htm
, /posts/34/reply
, etc.)200
, 404
, 500
, etc.)HTTP/1.1
)Tenga en cuenta que los registros predeterminados no registran la cadena de consulta, por ejemplo, una solicitud a http://example.com/profile?profileID=34 solo registrará /profile. Para obtener más información sobre los registros de acceso de IIS, consulte la documentación de Microsoft.
Los registros de errores en IIS son un poco más complicados. Dependiendo del error, pueden ir al archivo de registro HTTP.SYS HTTPERR o al registro de eventos de Windows.
El archivo HTTPERR contiene errores a nivel de protocolo y está en un formato estructurado, con los siguientes campos separados por espacios:
HTTP/1.1
)GET
, POST
, HEAD
, etc.)200
, 404
, 500
, etc.)Para obtener más información sobre el registro de errores, consulte la documentación de Microsoft.
El registro de eventos de Windows contiene errores generados desde el servidor de aplicaciones (por ejemplo, ASP.NET) o la aplicación. Están disponibles en el Visualizador de Eventos de Windows y están semiestructurados:
Information
, Warning
, Error
)Para obtener más información sobre cómo buscar registros de errores en Windows, consulte este artículo.
Dependiendo de cómo se cuente, nginx puede ser el servidor web más popular en Internet, sin embargo, es bastante limitado y generalmente actúa como un proxy inverso para un servidor web back-end o sirviendo archivos estáticos.
Los registros de acceso predeterminados son similares a los registros predeterminados de Apache, pero con los siguientes campos al final de cada línea:
Para obtener más información sobre los registros de nginx, consulte la documentación oficial.
Los registros de errores de nginx están semiestructurados, con los siguientes campos, separados por espacios:
Para obtener más información, consulte este artículo.
Si un sitio está protegido por una CDN, suele ser útil ver registros de solicitudes a la CDN en lugar de solicitudes de la CDN al sitio de origen. Cada proveedor de CDN entrega registros de manera diferente y tiene diferentes estructuras de precios para el registro.
Al configurar el registro del servidor, hay algunos pasos que se deben seguir para maximizar el valor de seguridad de los registros.
Incluso cuando están completamente configurados, los registros del servidor integrados omiten mucha información importante. Algunos ejemplos:
Gran parte de esta información no se incluye por una buena razón. Gran parte de esto puede tener malas implicaciones para la privacidad del usuario. Otros (como el útil registro de errores) requieren información sobre la aplicación en sí, por lo que el servidor web no puede realizarlos.
El objetivo principal del registro a nivel de aplicación en una aplicación web es superar las limitaciones del registro del servidor. Existen numerosos artículos que describen las mejores prácticas para el registro; a continuación se muestran algunos:
Estos recursos deberían ayudarlo a obtener el conocimiento que necesita para integrar el registro de seguridad en una aplicación web existente (o nueva).
Al superar las limitaciones del registro integrado del servidor, queremos asegurarnos de no poner en riesgo a los usuarios del sitio. Con frecuencia ocurre que los registros están peor protegidos que las bases de datos de producción. En primer lugar, los registros no son un objetivo tan obvio como una base de datos de producción, por lo que las personas tienden a no centrarse tanto en ellos cuando implementan medidas de seguridad. En segundo lugar, suele ocurrir que a más usuarios de una organización se les concede acceso a los registros que a una base de datos de producción. En tercer lugar, los registros tienden a enviarse a muchos sistemas diferentes, mientras que las bases de datos de producción tienden a permanecer centralizadas. Por este motivo, vale la pena considerar la posibilidad de redactar información confidencial en los registros.
Este artículo previene algunas mejores prácticas generales para manejar datos confidenciales durante el registro. A continuación se presentan algunos enfoques a considerar para tipos específicos de datos:
Es una práctica recomendada no incluir información confidencial en los parámetros GET, por lo tanto, se registran los parámetros GET, pero no los parámetros POST. Sin embargo, puede resultar extremadamente útil tener acceso a información sobre los parámetros POST al responder a un ataque. Algunas cosas para implementar:
import re
keep = ['select', 'where', 'from', 'and', 'script', 'on', 'src', '../', '<', '>']
output = ''
i = 0
while i < len(target):
matched = False
for j in keep:
if target[i:i+len(j)].lower() == j.lower():
output = output + target[i:i+len(j)]
i=i+len(j)
matched = True
if not matched:
if ' ' == target[i:i+1]:
output = output + ' '
elif re.search('\w', target[i:i+1]):
output = output + "A"
elif re.search('\d', target[i:i+1]):
output = output + "1"
else:
output = output + "*"
i = i+1
Si una solicitud provoca un error que parece un intento de piratear o eludir los controles, el sitio web debe registrar agresivamente la información de la solicitud. Ejemplos incluyen:
Si sucede algo de esto, es una buena idea registrar la solicitud, así como la información interna (por ejemplo, consulta de base de datos, nombre de archivo, etc.). En el buen caso, hay un error simple en el sitio. En ese caso, hay mucha información de depuración. En el peor de los casos, el sitio está siendo comprometido. En ese caso, es más fácil encontrar dónde ocurrió el compromiso, por lo que la investigación forense es más efectiva.
Registrar la identidad de un usuario que ha iniciado sesión puede ser peligroso, pero existen medidas que se pueden tomar para mitigar el peligro. Es cuestionable registrar cookies de sesión, pero se puede utilizar un hash de una ID de sesión para rastrear la actividad de un usuario en el sitio. Además, si el servidor web tiene un directorio consultable de sesiones de usuarios activas, entonces se puede utilizar una ID interna en los registros o se pueden aplicar hash a las ID de sesión existentes para identificar las entradas de registro de un usuario que ha iniciado sesión. Esto permitirá a los propietarios de sitios identificar a un atacante activo, al tiempo que hará que las identidades en los registros sean inútiles para un actor de amenazas por sí solo.
Lea los siguientes comandos de ejemplo que utilizan herramientas comunes de Unix como awk
, sort
, uniq
, y grep
t para realizar el análisis en los registros de Apache y Nginx.
A continuación se muestran comandos de ejemplo que utilizan herramientas comunes de Unix como awk
, sort
, uniq
, y grep
para realizar el análisis en los registros de Apache y Nginx.
awk
es una poderosa herramienta de línea de comandos para manipular archivos de texto en sistemas operativos tipo Unix. Tiene una sintaxis simple. La estructura básica de un comando awk
es la siguiente:
awk 'pattern { action }' file
Por ejemplo, consideremos el siguiente archivo de texto (lo llamaremos ejemplo.txt):
apple red 5
banana yellow 10
pear green 15
Orange orange 20
awk
escanea el archivo de entrada línea por línea y realiza una acción específica para cada línea si el estándar coincide. awk
divide automáticamente cada línea de entrada en campos basados en espacios en blanco (de forma predeterminada). Se puede hacer referencia a los campos usando $1, $2, etc., donde $1 se refiere al primer campo, $2 al segundo, y así sucesivamente.
Por ejemplo, para imprimir la primera columna con el comando awk
necesitamos usar
awk '{ print $1 }' example.txt
Podemos utilizar el Filtrado Condicional. Por ejemplo, queremos imprimir líneas donde la tercera columna sea mayor que 10
awk '$3 > 10 {print $1, $3}' example.txt
Para usar un delimitador personalizado con awk
, use la opción -F seguida del carácter delimitador. Por ejemplo, si tenemos un archivo delimitado por comas, podemos usar -F’,’ (encierre el carácter delimitador entre comillas simples) para especificar una coma (,) como delimitador.
awk -F',' '{print $1, $3}' comma-delimited.txt
Podemos hacer cálculos usando awk
. Este comando calcula la suma de los valores en el tercer campo en todas las líneas e imprime el total al final. “END” es un estándar especial que se utiliza para ejecutar declaraciones después de que se procesa el último registro
awk '{total += $3} END {print "Total:", total}' example.txt
Hay algunas variables integradas en awk
. Por ejemplo, NR es una variable incorporada en awk
que representa el número de registro actual. NR aumenta en uno por cada línea leída de los archivos de entrada.
Si desea imprimir números de línea además del contenido de la línea, puede utilizar lo siguiente:
awk '{print NR, $0}' example.txt
Dedique algún tiempo a jugar con los siguientes comandos awk. Puede utilizar un registro de su propio servidor web o utilizar registros de práctica, como esta colección.
Identifique el número total de solicitudes registradas en el registro de acceso.
cat apache_access.log | wc -l
Determine las URL solicitadas con más frecuencia.
awk '{print $7}' apache_access.log | sort | uniq -c | sort -nr | head -5
Este comando awk imprimirá la séptima columna de cada línea del registro y luego canalizará la salida del comando awk anterior al comando de clasificación. ordenar se utiliza para ordenar las líneas de texto alfabética o numéricamente. De forma predeterminada, ordena en orden ascendente. Después de ordenar la salida con sort, el comando uniq -c
se usa para contar las apariciones de cada línea única en la salida ordenada. El comando sort -nr
se utiliza para ordenar la salida numéricamente (-n) en orden inverso (-r). Esto significa que las líneas se ordenan según sus valores numéricos, apareciendo primero los valores más altos. El comando head -5
se utiliza para mostrar las primeras 5 líneas de la entrada.
Descubra las 5 principales direcciones IP que realizan solicitudes al servidor.
awk '{print $1}' apache_access.log | sort | uniq -c | sort -nr | head -5
Analizar la distribución de los métodos de solicitud.
awk '{print $6}' apache_access.log | sort | uniq -c
Cuente el número total de solicitudes en un registro de acceso de Nginx.
cat nginx_access.log | wc -l
Identifique las URL más solicitadas y sus correspondientes códigos de estado.
awk '{print $7, $9}' nginx_access.log | sort | uniq -c | sort -nr | head -5
Calcule el tamaño promedio de las solicitudes (en bytes).
awk '{sum+=$10} END {print "Average request size:", sum/NR, "bytes"}' nginx_access.log
Este comando awk
calcula el tamaño promedio de la solicitud sumando los valores en la décima columna (presumiblemente que representa los tamaños de la solicitud) para todas las líneas del archivo nginx_access.log
. Luego, divide la suma total por el número de líneas (NR), que representa el tamaño promedio de la solicitud en bytes. Finalmente, imprime el resultado junto con un mensaje descriptivo.
Asegúrese de que la décima columna realmente represente el tamaño de la solicitud en bytes en su archivo nginx_access.log
, ya que la precisión del cálculo depende de la exactitud de la indexación de la columna.
Determine los 5 principales agentes de usuario que acceden al servidor.
awk -F'"' '{print $6}' nginx_access.log | sort | uniq -c | sort -nr | head -5
Este comando usa awk
para establecer el separador de campo (-F) en comillas dobles ("), luego extrae el sexto campo de cada línea del archivo nginx_access.log
. Esto supone que las entradas del registro están formateadas de tal manera que la URL o la ruta de solicitud estén entre comillas dobles. Las URL extraídas o las rutas de solicitud se canalizan para ordenarlas alfabéticamente. uniq -c
se utiliza para contar las apariciones de cada URL única o ruta de solicitud. La salida se canaliza nuevamente a sort -nr
para ordenar los resultados numéricamente en orden descendente según el recuento.
Finalmente, head -5
se usa para mostrar las 5 URL principales o rutas de solicitud con el mayor número de ocurrencias.
Analizar la distribución de solicitudes por hora del día.
awk '{print $4}' nginx_access.log | cut -c 14-15 | sort | uniq -c
awk
se utiliza para extraer el cuarto campo ($4) de cada línea del archivo access.log
, que normalmente contiene la marca de tiempo.
Luego, el comando cut
se aplica para extraer los caracteres 14 a 15 de cada marca de tiempo, que corresponden a la porción de hora.
Los valores de hora extraídos se canalizan para ordenarlos en orden ascendente. uniq -c
se utiliza para contar las apariciones de cada valor de hora único.
El resultado mostrará el recuento de entradas de registro para cada hora en el archivo de registro.
Cuente el número total de entradas de error en el registro.
cat apache_error.log | grep 'error' | wc -l
cat nginx_error.log | grep 'error' | wc -l
Identificar los tipos de errores más comunes. awk '{print $NF}'
lee cada línea de datos de entrada, la divide en campos (separados por espacios en blanco de forma predeterminada) y luego imprime el valor del último campo de cada línea.
cat apache_error.log | grep 'error' | awk '{print $NF}' | sort | uniq -c | sort -nr | head -5
El número al principio de cada línea muestra cuántas veces se produjo un error en particular en el registro. En este caso, “2047
” significa que el error con el último campo “757
” ocurrió 2047 veces.
El último campo representa diferentes cosas en cada línea. Puede ser una ruta de archivo, una acción específica o algún otro identificador relacionado con el error. Por ejemplo, “757
” o “154
” pueden ser códigos de error o identificadores únicos, mientras que “/home/mysite/public_html/new/wp-content/plugins/woocommerce/includes/data-stores/abstract-wc-order-data-store-cpt.php:100
” puede ser una ruta de archivo y un número de línea donde ocurrió el error.
Nginx: Determine las 5 principales direcciones IP que generan errores.
cat nginx_error.log | grep 'error' | awk '{print $NF}' | sort | uniq -c | sort -nr | head -5
Apache: Analizar la distribución de errores por fecha u hora.
cat apache_error.log | grep 'error' | awk '{print $1}' | sort | uniq -c
Apache: Investigue cualquier estándar de error recurrente y proponga posibles soluciones. {$1=""; $2=""; $3="";}: Esta parte del comando awk establece los primeros tres campos (fecha, hora e información de zona horaria) en cadenas vacías.
cat apache_error.log | grep 'error' | awk '{$1=""; $2=""; $3=""; print}' | sort | uniq -c | sort -nr | head -10
Para este ejercicio, utilizamos archivos de registro de esta colección (la misma colección que los otros archivos en esta sección de práctica)
En esta tarea vamos a utilizar expresiones regulares. Las expresiones regulares (regex) son como potentes herramientas de búsqueda que le ayudan a encontrar patrones específicos en los datos. Por ejemplo, si está investigando tráfico de red sospechoso y sabe que las solicitudes maliciosas a menudo contienen ciertos patrones de caracteres, puede usar expresiones regulares para buscar registros o capturas de tráfico para encontrar esas solicitudes. Regex le permite definir estándares de búsqueda flexibles. Por ejemplo:
Rango [a-z]: coincide con un carácter en el rango “a” a “z”. Distingue mayúsculas y minúsculas.
Es decir, [g-s] coincide con un carácter entre g y s inclusive
abcdefghijklmnopqrstuvwxyz
Rango [A-Z]: coincide con un carácter en el rango “A” a “Z”. Distingue mayúsculas y minúsculas.
Rango [0-9]: coincide con un carácter en el rango “0” a “9”. Distingue mayúsculas y minúsculas.
También podemos usar cuantificadores para hacer coincidir la cantidad especificada del token anterior. {1,3} coincidirá con 1 y 3. {3} coincidirá exactamente con 3. {3,} coincidirá con 3 o más.
[a-d]{3} coincide con cualquier secuencia de exactamente tres caracteres dentro del rango dado, cada uno de los cuales puede ser cualquier letra minúscula desde la ‘a’ hasta la ’d’. Entonces, coincidiría con cadenas como ‘abc’, ‘bda’, ‘cad’, etc.
Algunos caracteres tienen significados especiales dentro de las regexes, estos caracteres son:
Símbolo | Nombre | Descripción |
---|---|---|
\ | Barra invertida | Se utiliza para escapar de un carácter especial |
^ | Signo de intercalación | Principio de una cadena |
$ | Signo de dólar | Fin de una cadena |
. | Período o punto | Coincide con cualquier carácter |
| | Símbolo de barra vertical o tubería | Coincide con el carácter/grupo anterior O siguiente |
? | Signo de interrogación | Coincide con cero o uno de los anteriores |
* | Asterisco o estrella | Coincidir cero, uno o más de los anteriores |
+ | Signo de más | Coincidir uno o más de los anteriores |
( ) | Paréntesis de apertura y cierre | Caracteres de grupo |
[ ] | Corchete de apertura y cierre | Coincide con una variedad de caracteres |
{ } | Llave rizada de apertura y cierre | Coincide con un número específico de ocurrencias del anterior |
En nuestra tarea usaremos barra invertida para escapar del carácter especial \.
Puedes leer más sobre expresiones regulares aquí
Si consulta el registro de acceso de nginx proporcionado, podrá ver este tipo de líneas:
181.214.166.113 - - [15/Feb/2024:15:05:19 -0500] "[L\x9E\x804\xD9-\xFB&\xA3\x1F\x9C\x19\x95\x12\x8F\x0C\x89\x05\x81" 400 181 "-" "-"
45.95.169.184 - - [15/Feb/2024:15:49:27 -0500] "\x10 \x00\x00BBBB\xBA\x8C\xC1\xABDAAA" 400 181 "-" "-"
Como puede ver, ambas líneas contienen \x seguido de exactamente dos caracteres que se asignan a notación hexadecimal (por lo que usan los números del 0 al 9 y las letras de la A a la F), como \x9C, \x10, \xBA, etc. Para filtrar todas las líneas necesitamos usar el estándar ‘\\x\[a-fA-F0-9\]{3}
’ donde \\x\[a-fA-F0-9\]
es nuestro token, {3}
es un cuantificador.
Usaremos el comando grep
para buscar el estándar especificado en el texto. Por ejemplo:
grep 'abcd'
filtrará todas las líneas que contengan la cadena “abcd”.
La opción “-E
” en el comando grep permite el uso de expresiones regulares extendidas para la coincidencia de estándares grep -E 'abcd\\[0-9\]{2}'
para filtrar texto como abcd\34, abcd\47
etc.
Para esos ejercicios, utilizamos archivos de registro de esta colección (la misma colección que los otros archivos en esta sección de práctica)
1. Utilice grep y la regex ’\x[a-fA-F0-9]{3}’ para filtrar solicitudes de nginx access.log que contienen una carga sospechosa. La regex ‘\x[a-fA-F0-9]{3}’ coincide con una secuencia que comienza con ‘\x’ seguida de exactamente tres caracteres hexadecimales (0-9, a-f, o A-F). ¿Cuántas líneas hay?
Respuesta correcta: 131 líneas
Comando(s) a ejecutar: grep -E '\\x[a-fA-F0-9]{3}' nginx_access.log|wc|awk '{print $1}'
2. Usando el mismo filtro, determine qué dirección IP realiza la mayor cantidad de solicitudes.
Respuesta correcta: 222.186.13.131 19 líneas
Comando(s) a ejecutar: grep -E '\\x[a-fA-F0-9]{3}' nginx_access.log|sort|awk '{print $1}'| sort | uniq -c | sort -nr
3. Examine error.log
ejecutando more error.log
. Puede salir de este comando con Ctrl+c o presionar la tecla “q” para regresar al símbolo del sistema. Excluyendo errores de “Aviso PHP”. ¿Qué tipo de errores críticos puedes encontrar en el registro?
Respuesta correcta: Errores de protocolo de enlace SSL
Comando(s) a ejecutar:
more nginx_error.log
cat nginx_error.log|grep -v "PHP"|grep crit
4. Excluya los errores de PHP del archivo error.log y busque las líneas donde se rechazan las solicitudes debido a reglas de seguridad. ¿Qué archivo sensible se ha solicitado?
Respuesta correcta: .git/config
Comando(s) a ejecutar: cat nginx_error.log|grep -v "PHP"|grep forbidden
Esta prueba de habilidades será mucho más fácil si primero completa el ejercicio de práctica anterior.
Se le proporciona un registro de acceso nginx de un sitio web atacado para que lo investigue, que puede descargar aquí.
Localice una ruta sospechosa a la que se dirige, extraiga las direcciones IP que envían solicitudes sospechosas y descubra en qué países se encuentran esas IP (para esto, puede utilizar bases de datos geoIP, que se describen con más detalle en la ruta de aprendizaje de infraestructura maliciosa). Puede utilizar herramientas CLI estándar como awk
, grep
, sort
, uniq
. Para conocer los números de AS y los países, recomendamos utilizar los servicios de búsqueda en línea relevantes.
Pista: ipinfo.io proporciona una manera conveniente de buscar detalles de IP; puede usar curl para recuperarlos.
WP2Static
GratisUn complemento de WordPress para generar sitios estáticos
Archivos de Registro - Apache
GratisUna descripción general de cómo leer archivos de registro en el servidor web Apache
Comprensión del Registro de Errores y Acceso de Apache, Recurso 1
GratisDos artículos más sobre cómo leer los registros del servidor web Apache
Comprensión del Registro de Errores y Acceso de Apache, Recurso 2
GratisDos artículos más sobre cómo leer los registros del servidor web Apache
Registro del lado del servidor
Varios idiomasUn análisis de registros dentro del servidor Microsoft IIS
Registros de Errores de IIS y Otras Formas de Encontrar Solicitudes Fallidas de ASP.Net
GratisOtra mirada a los registros de IIS y cómo podemos buscar errores de aplicación en ellos
Configurar el registro en nginx
GratisDocumentación del servidor web NGINX sobre cómo configurar y trabajar con registros.
Una guía para los registros de NGINX
GratisUna descripción general de los diferentes registros NGINX y sus formatos
Registro de Seguridad: Mejores Prácticas para el Registro y la Gestión
GratisUn análisis de cuándo son útiles los registros, cómo podemos analizarlos y qué políticas podemos crear en torno a ellos.
Hoja de trucos y vocabulario de registro de OWASP, Recurso 1
GratisUna guía de OWASP sobre para qué deberían servir los registros y cómo debemos analizarlos, así como un vocabulario estándar para ellos.
Hoja de trucos y vocabulario de registro de OWASP, Recurso 2
GratisUna guía de OWASP sobre para qué deberían servir los registros y cómo debemos analizarlos, así como un vocabulario estándar para ellos.
DDoS: el incómodo visitante de negocios
GratisUna mirada a cómo algunos proveedores de alojamiento web podrían querer abandonar a los clientes objetivo de ataques DDoS
GitHub sobrevivió al mayor ataque DDoS Jamás Registrado
Los primeros artículos en WIRED son gratuitos, los siguientes pueden requerir una suscripciónUn artículo de 2018 sobre cómo Github asumió un ataque DDoS masivo y continuó operando a partir de entonces.
Comprender y Responder a los Ataques Distribuidos de Negación de Servicio
GratisUna guía CISA 2022 sobre el tema, que analiza los pasos a seguir antes, durante y después de un ataque
Guía MS-ISAC para Ataques DDoS
GratisUna guía que proporciona una descripción general de los tipos comunes de ataques DDoS, junto con recomendaciones generales sobre mitigaciones.
Prevención de Ataques de Negación de Servicio (DoS): La Guía Definitiva
GratisEste artículo describe algunos pasos que los administradores pueden seguir para prevenir o mitigar el impacto de los ataques DoS.
Guía de Negación de Servicio (DoS)
GratisGuías del Centro Cibernético de Seguridad Nacional del Reino Unido sobre ataques DoS y cómo defender a las organizaciones contra ellos
La ola de ataques a la cadena de suministro contra el código abierto que dura un año está empeorando
GratisUna mirada a los ataques a la cadena de suministro contra software de código abierto, en los que los atacantes comprometen las dependencias del software
¿Cómo gestiona/equilibra las comunicaciones veraces sobre un incidente/incumplimiento y al mismo tiempo mitiga la exposición legal?
GratisUna breve guía, escrita por un respondedor de incidentes en lugar de un abogado, sobre las diversas preocupaciones (legales/éticas/otras) que los protectores digitales podrían tener al revelar infracciones y cómo gestionarlas.
Mantenga los Datos Confidenciales Fuera de Sus Registros: 9 Mejores Prácticas
GratisUn registro exhaustivo también puede terminar incluyendo datos confidenciales, lo que podría poner a los usuarios en riesgo. Esta guía analiza cómo podemos adaptar nuestras prácticas de registro para excluir datos confidenciales de los registros.
¡Felicidades por terminar Módulo 2!
Marque la casilla para confirmar su finalización y continúe al siguiente módulo.
Marca el módulo actual como completado y guarda el progreso para el usuario.
Has completado todos los módulos en este camino de aprendizaje.