
BIBLIO-US17: Dataset HTTP
Tipo contribución/resultado
Dataset público
Descripción
Dataset de peticiones HTTP reales etiquetadas para entrenamiento y validación de AIDS y WAF
Incluye 47 millones de peticiones normales / ataques / erróneas
doi: 10.12795/11441/148254

Este resultado ha sido parcialmente financiado por MCIN/ AEI/10.13039/501100011033/

Este resultado ha sido parcialmente financiado por FEDER/ Junta de Andalucía
Presentación
El desarrollo y evaluación de sistemas de detección de intrusos basados en anomalías (AIDS) requiere de conjuntos de datos de entrenamiento adecuados. Este nuevo conjunto de datos disponible para la comunidad científica tiene como objetivo posibilitar su uso en el contexto de los sistemas web.
Ha sido recopilado a partir de las trazas del servidor web de la biblioteca de la Universidad de Sevilla (España) y sus principales características son:
– Real: ha sido adquirido a partir de la operación real del servidor e incluye todas las peticiones recibidas.
– Gran volumen de datos y lapso de tiempo: incluye más de 47 millones de solicitudes HTTP recibidas por el servidor web público durante 6 meses.
– Etiquetado de peticiones: hemos seguido un proceso semiautomático para etiquetar cada registro en el conjunto de datos, tomando como punto de partida la clasificación por varios SIDS. Se proporcionan así peticiones legítimas junto con ataques reales (es decir, en el mismo contexto del servidor web).
El conjunto de datos obtenido puede utilizarse como ground-truth para el entrenamiento y evaluación de sistemas de detección de intrusiones a los servidores web. Este dataset presenta un alto potencial, ya que, además de las características mencionadas previamente, corresponde a un servicio altamente dinámico (amplio uso de queries desplegado con parámetros) con tecnología actual.
Para evitar problemas de privacidad, hemos restringido la información en el conjunto de datos al Método, recurso (URI) y código de respuesta para cada solicitud, suprimiendo marcas temporales (pero manteniendo el orden secuencial), direcciones IP y reemplazando elementos sensibles en el URI.
Procedimiento
Se ha adquirido todo el tráfico a los servicios HTTP y HTTPS durante 6 meses a partir de los archivos de traza del servidor Apache. El tráfico capturado se organiza en archivos diarios por servicio etiquetados con el número de mes y día. Se han agrupado estos archivos por día y se ha añadido un identificador único a cada línea. Los datos más relevantes de la adquisición son:
Bloque | Vol (GB) | # arch | # líneas | #Uris |
---|---|---|---|---|
access_log | 4.15 | 198 | 34 573 623 | 34 074 832 |
ssl_access_log | 1.17 | 172 | 13 328 700 | 13 328 164 |
apachelog (ambos) | 5.99 | 198 | 47 902 323 | 47 402 996 |
![]() |
![]() |
|
Evolución temporal del número de peticiones capturadas por servicio | Distribución de peticiones por código de respuesta |
Se han categorizado los registros (Normal / TP / FP / etc.) siguiendo el método publicado en:
Díaz-Verdejo, Jesús E.; Estepa, Antonio; Estepa, Rafael; Madinabeitia, German; Muñoz-Calle, Fco Javier
A methodology for conducting efficient sanitization of HTTP training datasets Artículo de revista
En: Future Generation Computer Systems, vol. 109, pp. 67–82, 2020, ISSN: 0167739X.
@article{Diaz-Verdejo2020,
title = {A methodology for conducting efficient sanitization of HTTP training datasets},
author = {Jesús E. Díaz-Verdejo and Antonio Estepa and Rafael Estepa and German Madinabeitia and Fco Javier Muñoz-Calle},
url = {https://linkinghub.elsevier.com/retrieve/pii/S0167739X19322629},
doi = {10.1016/j.future.2020.03.033},
issn = {0167739X},
year = {2020},
date = {2020-08-01},
urldate = {2020-08-01},
journal = {Future Generation Computer Systems},
volume = {109},
pages = {67--82},
publisher = {Elsevier B.V.},
abstract = {The performance of anomaly-based intrusion detection systems depends on the quality of the datasets used to form normal activity profiles. Suitable datasets should include high volumes of real-life data free from attack instances. On account of this requirement, obtaining quality datasets from collected data requires a process of data sanitization that may be prohibitive if done manually, or uncertain if fully automated. In this work, we propose a sanitization approach for obtaining datasets from HTTP traces suited for training, testing, or validating anomaly-based attack detectors. Our methodology has two sequential phases. In the first phase, we clean known attacks from data using a pattern-based approach that relies on tools that detect URI-based known attacks. In the second phase, we complement the result of the first phase by conducting assisted manual labeling systematically and efficiently, setting the focus of expert examination not on the raw data (which would be millions of URIs), but on the set of words that compose the URIs. This dramatically downsizes the volume of data that requires expert discernment, making manual sanitization of large datasets feasible. We have applied our method to sanitize a trace that includes 45 million requests received by the library web server of the University of Seville. We were able to generate clean datasets in less than 84 h with only 33 h of manual supervision. We have also applied our method to some public benchmark datasets, confirming that attacks unnoticed by signature-based detectors can be discovered in a reduced time span.},
keywords = {},
pubstate = {published},
tppubtype = {article}
}
Por tanto, se han preprocesado y normalizado las URI, anonimizando la información sensible. Se ha procedido a la detección de ataques mediante SIDS a partir de la herramienta Inspectorlog desarrollada por nuestro grupo. Se han usado reglas Talos+ETOpen (M2), nemesida y CRS en configuración PL1 y PL2. Se han supervisado y marcado como TP o FP todas las detecciones. Finalmente, en la fase siguiente se ha analizado el vocabulario y añadido etiquetas para marcar ataques adicionales no detectados por los SIDS y registros que incumplen las normas de aplicación a los URI (fuera de especificación, OOS).
Dataset - Archivos y formatos
El dataset se organiza en una estructura en árbol (subdirectorios) cada uno conteniendo diferentes tipos de archivos o conjuntos. Se proporcionan 5 conjuntos de archivos y dos esquemas de particionado. Los archivos de las diferentes particiones deben ser generados a partir del dataset utilizando el script proporcionado. Los conjuntos de archivos (subdirectorios) incluidos son: – Archivos raw: Archivos de entrada. Contienen las peticiones consideradas válidas tras el preprocesado obtenidas directamente a partir de las capturas. Se encuentran anonimizadas. – Archivos labels: Contienen las etiquetas asignadas durante el análisis. – Archivos SID: Contienen información sobre las alertas generadas por los SIDS. – Archivos clean: Contienen las peticiones consideradas limpias tras la sanitización. Este es el dataset a utilizar como tráfico normal. – Archivos attack: Peticiones clasificadas como ataques (sólo LVL1 -indubitados-). Los registros en cada conjunto se organizan en archivos por días denominados siendo <mm> el número del mes, <dd> el día y <ext> una extensión relacionada con el tipo (y formato) de contenido: .raw para archivos RAW .lbl para archivos LABEL .cl para archivos CLEAN .sid para archivos SID .att para archivos ATTACK |
![]() |
Las peticiones se identifican unívocamente mediante un código asignado a cada una de las entradas de los archivos de traza originales que permite su localización en los mismos. El formato del identificador es:
siendo MM-DD el número de mes y día del archivo original, F el tipo de tráfico (A: HTTTP, S: HTTPS) y nnnnnn el número de orden de la petición en el archivo de traza original.
Todos y cada uno de los registros de todos los archivos contienen el identificador de la petición original asociada.
Formatos de los archivosCada archivo contiene registros cada uno compuesto por un conjunto de campos delimitados por tabuladores. Cada registro corresponde a una línea y comienza siempre por un identificador. Los campos dependen del tipo de registro/archivo:
– Archivos RAW, CLEAN y ATTACKLos archivos de tipo RAW y CLEAN contienen las peticiones incorporadas en el dataset. Cada línea corresponde a campos seleccionados extraídos de las trazas del servidor Apache precedidos de su identificador.
Cada registro consta de un conjunto de campos delimitados por tabuladores:
Ejemplo de registro:
Cada línea contiene el conjunto de etiquetas asignadas al registro identificado en el primer campo. Los campos se encuentran delimitados por tabuladores. El formato y valores posibles se muestran en la tabla siguiente:
Detección SIDS | Supervisión SIDS | Análisis segmentos | ||||||
Registro | URI_ID | IL_M2 | IL_NEM | MS_PL1 | MS_PL2 | ManualTP | Phase2TP | OOS |
---|---|---|---|---|---|---|---|---|
Valores | [MM-DD-Fnnnnnn] | 0 – No detec. | 0 – No detec. | 0 – No detec. | 0 – No detec. | -1 – No etiquetado | -1 – No etiquetado | 0 – Normal |
1 – Detectado | 1 – Detectado | 1 – Detectado | 1 – Detectado | 0 – Falso Positivo | 1 – Ataque LVL1 | 1 – OOS RFC | ||
1 – Ataque LVL1 | 2 – Ataque LVL2 | 2 – OOS Cod | ||||||
2 – Ataque LVL2 | 3 – Ataque LVL3 | 3 – OOS Fmt | ||||||
4 – Ataque LVL4 | 4 – OOS Sem | |||||||
Ejemplo | [02-18-A001234] | 0 | 1 | 0 | 1 | 0 | -1 | 2 |
-Un valor 1/0 en una etiqueta de detección SIDS indica que el detector correspondiente sí/no ha generado alertas.
-Un valor -1 en una etiqueta significa que no se ha asignado valor por no corresponderle o no haberse procesado ese campo (valor por defecto).
-Un valor 1-4 en las etiquetas ManualTP y Phase2TP implican que se ha etiquetado el URI como ataque del nivel correspondiente y, análogamente, un valor 1-4 en el campo OOS indica que el URI no es conforme y codifica el motivo.
Ataques | OOS | |||
ETIQ. | Expl. | ETIQ. | Expl. | |
---|---|---|---|---|
1 | Indubitados | 1 | Incumplen RFC 3296 | |
2 | Dependientes del contexto / aplicación | 2 | Errores codificación caracteres extendidos/caracteres no permitidos | |
3 | Percent encoding | 3 | Uso de ‘//’ al inicio del URI | |
4 | DoS | 4 | Otros / errores semánticos |
Los registros RAW que no activan ninguna etiqueta (valores por defecto, en azul en la tabla) no generan registro LABEL asociado. Por tanto, los registros RAW para los que no exista registro LABEL se entiende que toman los valores por defecto (en azul en la tabla).
Es importante indicar que, dado el procesamiento en fases, no se activan todas las etiquetas posibles para cada registro. Si un registro es etiquetado como ataque en ManualTP, no se realizan procesamientos posteriores sobre él. Por tanto, no se activará ninguna etiqueta de la fase de análisis de segmentos.
– Archivos SIDCada línea contiene información sobre las alertas generadas por el registro identificado en el primer campo. Los campos se encuentran delimitados por tabuladores. El formato es:
siendo SID el identificador de la regla activada y DET el código del detector asociado, según:
DET | Detector | Reglas | Observaciones |
---|---|---|---|
1 | Snort | Talos+ETOpen – Marzo de 2022 | Sids 1024-899999 (Talos) y 2000000-2999999 (ETOpen) |
2 | Nemesida | Nemesida (públicas) – Nov. 2021 | Sids originales renumerados > 3000000 |
3 | ModSecurity | CRS3.3.2 (PL1) – Abril de 2022 | Sids 900000-999999 |
4 | ModSecurity | CRS3.3.2 (PL2) – Abril de 2022 | Sids 900000-999999 |
Particionado
Se proporcionan dos esquemas de particionado: TI (time independent, independiente en el tiempo) y TD (time dependent, dependiente en el tiempo). Para cada esquema, se establece una distribución de los registros en las proporciones 60/30/10 para entrenamiento/test/validación.
Para generar las particiones debe utilizarse el script partitions.sh suministrado en el directorio /bin.
La partición TI organiza los registros en archivos por día, mientras que la partición TD se organiza en 7 bloques numerados de 1 a 7.
Los detalles relativos a los esquemas de particionado y su finalidad y uso pueden consultarse en el artículo referenciado en la sección de documentos técnicos.
Dataset - Resultado
Se proporcionan 198 archivos de cada una de las tipologías (RAW, LABELS, SID, CLEAN y ATTACK) y un script para generar los esquemas de particionado. El contenido se resume en las siguientes tablas.
Registros en los archivosTIPO | Núm. registros |
---|---|
RAW | 47 402 907 |
LABELS | 370 859 |
SID | 344 942 |
CLEAN | 42 473 128 |
Ataques | 327 906 |
El número de etiquetas asignadas para todos los registros existentes (RAW) y los que se consideran para extraer el tráfico limpio (CR<300) es:
Clase | RAW | CR<300 | |
---|---|---|---|
Ataques | LVL1 | 327 906 | 1 148 |
LVL2 | 10 634 | 617 | |
LVL3 | 5 515 | 3 442 | |
LVL4 | 4 310 | 0 | |
TOTAL | 348 365 | 5 207 | |
FP | FP | 9 222 | 8 184 |
OOS | OOS1 | 169 | 98 |
OOS2 | 2 021 | 1 735 | |
OOS3 | 6 567 | 6 178 | |
OOS4 | 1 595 | 1 106 | |
TOTAL | 10 352 | 9 117 |
Part | Arch | Registros | |
---|---|---|---|
TI | TR | 198 | 25 483 092 |
TEST | 198 | 12 741 546 | |
VAL | 198 | 4 248 490 | |
CALIB | 93 | 6 095 083 | |
Part | TR | TEST | VAL | |
---|---|---|---|---|
TD | 1 | 12 437 152 | 8 270 214 | 2 535 297 |
2 | 13 638 751 | 7 000 209 | 3 588 483 | |
3 | 14 612 283 | 6 123 780 | 2 811 780 | |
4 | 13 849 043 | 6 400 263 | 4 762 313 | |
5 | 14 393 994 | 7 574 093 | 3 454 446 | |
6 | 13 400 472 | 8 216 759 | 2 668 271 | |
7 | 13 697 873 | 6 122 717 | 1 945 172 |
Documentos técnicos / recursos
https://idus.us.es/handle/11441/148254
- Archivo README
Publicaciones
Díaz-Verdejo, Jesús E.; Estepa Alonso, Rafael; Estepa Alonso, Antonio; Muñoz-Calle, F. J.; Madinabeitia, German
Building a large, realistic and labeled HTTP URI dataset for anomaly-based intrusion detection systems: Biblio-US17 Artículo de revista En preparación
En: Cybersecurity, En preparación, ISSN: 2523-3246.
@article{Biblio24,
title = {Building a large, realistic and labeled HTTP URI dataset for anomaly-based intrusion detection systems: Biblio-US17 },
author = {Jesús E. {Díaz-Verdejo} and {Estepa Alonso}, Rafael and {Estepa Alonso}, Antonio and F. J. Muñoz-Calle and German
Madinabeitia},
doi = {https://doi.org/10.1186/s42400‑024‑00336‑3},
issn = {2523-3246},
year = {2024},
date = {2024-12-11},
urldate = {2024-12-11},
journal = {Cybersecurity},
abstract = {This paper introduces Biblio-US17, a labeled dataset collected over 6 months from the log files of a popular public website at the University of Seville. It contains 47 million records, each including the method, uniform resource identifier (URI) and associated response code and size of every request received by the web server. Records have been classified as either normal or attack using a comprehensive semi-automated process, which involved signature-based detection, assisted inspection of URIs vocabulary, and substantial expert manual supervision. Unlike comparable datasets, this one offers a genuine real-world perspective on the normal operation of an active website, along with an unbiased proportion of actual attacks (i.e., non-synthetic). This makes it ideal for evaluating and comparing anomalybased approaches in a realistic environment. Its extensive size and duration also make it valuable for addressing challenges like data shift and insufficient training. This paper describes the collection and labeling processes, dataset structure, and most relevant properties. We also include an example of an application for assessing the performance of a simple anomaly detector. Biblio-US17, now available to the scientific community, can also be used to model the URIs used by current web servers.},
keywords = {},
pubstate = {forthcoming},
tppubtype = {article}
}
Díaz-Verdejo, Jesús E.; Estepa Alonso, Rafael; Estepa Alonso, Antonio; Muñoz-Calle, Javier; Madinabeitia, Germán
Biblio-US17: A labeled real URL dataset for anomaly-based intrusion detection systems development Proceedings Article
En: European Interdisciplinary Cybersecurity Conference (EICC 2024), pp. 217–218, 2024, ISBN: 9798400716515.
@inproceedings{Diaz-Verdejo2024b,
title = {Biblio-US17: A labeled real URL dataset for anomaly-based intrusion detection systems development},
author = {Jesús E. Díaz-Verdejo and {Estepa Alonso}, Rafael and {Estepa Alonso}, Antonio and Javier Muñoz-Calle and Germán Madinabeitia},
doi = {10.1145/3655693.3661319},
isbn = {9798400716515},
year = {2024},
date = {2024-01-01},
urldate = {2024-01-01},
booktitle = {European Interdisciplinary Cybersecurity Conference (EICC 2024)},
pages = {217–218},
abstract = {The development of anomaly-based intrusion detection systems is hindered by the scarcity of adequate datasets. An ideal dataset should contain real traffic, genuine attacks and cover a large time period that may demonstrate time shift. To be useful, the dataset must be labeled to provide accurate ground-truth, This paper presents a dataset of URLs that possesses these qualities. It can therefore be used to effectively train, test, and validate URL-based anomaly detection systems. The dataset is publicly available and contains 47M registers, including 320k attacks, and spans for 6.5 months. It is partitioned acording to two schemes to allow for time dependent and time independent experiments.},
keywords = {},
pubstate = {published},
tppubtype = {inproceedings}
}