Plazo de entrega: 16 de julio de 2021 hasta las 22:00 hrs
REmatchJS es una librería que sirve para extraer información a partir de expresiones regulares. Puede revisar un tutorial de cómo usarla en Node.js siguiendo este link.
En esta actividad deberá extraer información a partir de un archivo de logs de un servidor que ejecuta Apache. El archivo es un ejemplo construido para los propósitos de esta actividad, sin embargo, la sintaxis es igual a la de un archivo access.log
real de Apache.
Nota: Se le recomienda fuertemente revisar el tutorial antes de desarrollar la actividad.
La actividad consiste en realizar 7 consultas para extraer información de diferente tipo, las cuales se dividen en dos grupos: (i) consultas simples sobre requests y (ii) consultas que permiten identificar un posible ataque
El detalle de cada consulta se encuentra a continuación:
- Extrer todas las líneas con requests tipo
POST
- Extraer sólo la dirección IP en los requests tipo
GET
- Extraer sólo los requests donde el servidor entrega código NOT FOUND (
404
) - Extraer la IP de todos los requests que se redirigieron (código
302
), y hacia dónde se redirigieron - Buscar todas las direcciones IP que realizaron un request que contenga la palabra "admin"
- Buscar todas las direcciones IP que realizaron una request que contenga la palabra
SELECT
- Teniendo la dirección IP del atacante, obtener todas las líneas del archivo de logs correspondientes a requests realizados por el atacante
Tendrá que utilizar el proyecto base que se encuentra en este repositorio para ejecutar el código correspondiente a esta actividad bonus.
Lo primero es verificar las dependencias:
- Node.js (v10 o v12)
- Yarn
Si está usando nvm
, entonces puede seleccionar la versión de Node del proyecto con:
nvm use
(Si no, basta con que tenga instalada una de las versiones mencionadas más arriba)
Instalamos las dependencias del proyecto:
yarn install
Y ya estamos listos para ejecutar el proyecto:
yarn start
Eso ejecutará el script src/index.js
una sola vez, sin embargo, si quiere que un proceso escuche por cambios en los archivos, para que así se ejecute el script src/index.js
cada vez que guarda algo, puede ejecutar:
yarn dev
- Para implementar su solución, sólo debe modificar el valor de las variables
CONSULTAX
, conX ∈ {1, ..., 7}
- NO debe modificar la función
getAllOutputs
, la variableexportedResults
, ni tampoco la última línea conmodule.exports
. Estas líneas serán utilizadas para la corrección de la actividad.
Se habilitará un formulario único para ambas secciones, el cual pueden encontrar en este link. Debe adjuntar en este formulario sólo un archivo comprimido en formato zip
que contenga el script index.js
.
Cualquier duda, no dude en preguntar en las issues del proyecto.