slipswinae
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (2.4%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: Boke-Jr
- Language: Python
- Default Branch: main
- Size: 424 MB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Slips v1.1.10
Índice
Estructura
Dentro de la arquitectura existente de SLIPS (v1.1.10) se incluye la implementación del módulo slipswinae. La estructura de carpetas y archivos es la siguiente:
text
modules/
└─ slipswinae/
├─ slipswinae.py
├─ zeekflowae.py
├─ ae.keras
├─ scaler.joblib
├─ mbkmeans.joblib
├─ isof_latent.joblib
├─ lof_latent.joblib
├─ hst.joblib
├─ feature_info.json
├─ test/
│ ├─ slipswinae_evaluator.py
│ ├─ flowmldetection_evaluator.py
│ ├─ thursday_conn_labeled.log
│ ├─ friday_conn_labeled.log
│ └─ results/
│ ├─ friday_data/
│ ├─ ae_if/
│ │ ├─ ae_if_metrics.csv
│ │ ├─ AE+IF_minmax_weighted_a=0.9_roc.png
│ │ ├─ AE+IF_minmax_weighted_a=0.9_pr.png
│ │ └─ … (otras curvas y métricas)
│ ├─ ae_hst/
│ │ ├─ ae_hst_metrics.csv
│ │ ├─ AE+HST_ecdf_weighted_a=0.9_roc.png
│ │ ├─ AE+HST_ecdf_weighted_a=0.9_pr.png
│ │ └─ … (otras curvas y métricas)
│ └─ … (otros experimentos)
Todo lo que no pertenezca a esta estructura corresponde a la arquitectura general de *SLIPS** y no forma parte de esta implementación.*
Uso
A continuación se muestran los pasos necesarios para reproducir la implementación, ya sea entrenando de nuevo los modelos o efectuando una prueba de detección.
1. Entrenamiento
Advertencia: El archivo original de entrenamiento
benign_merged.pcapno se versiona debido a que pesa mas de 15Gb.
SLIPS utiliza aprendizaje no supervisado, por lo que el entrenamiento solo requiere ejemplos de tráfico benigno. El archivo config/slips.yaml ya define por defecto la etiqueta label: normal, así que no es necesario ajustarla.
- Abre
config/slips.yamly ajusta el parámetromodedel móduloflowmldetectionatrain:
yaml
flowmldetection:
mode: train
2. Ejecuta el entrenamiento utilizando el archivo pcap beningno:
bash
./slips.py -c config/slips.yaml \
-f modules/slipswinae/training/datasets/benign_training_dataset.pcap \
-v 0 -e 1
3. (Opcional) En un entorno controlado con tráfico benigno, entrena desde la interfaz de red (por ejemplo eth0):
bash
./slips.py -c config/slips.yaml -i eth0
Advertencia: Cada reentrenamiento sobrescribirá los modelos existentes con los nuevos generados.
2. Prueba de detección
- En
config/slips.yaml, cambiamodeatest:
yaml
flowmldetection:
mode: test
2. Ejecuta la detección sobre un pcap con tráfico malicioso:
bash
./slips.py -c config/slips.yaml \
-f dataset/test7-malicious.pcap \
-v 0 -e 1
La salida se almacena en la carpeta output/test7-malicious.pcap_2025-06-10_21-55-22 en concreto en el archivo alerts.json
Con la configuración por defecto, los módulos flowmldetection y slipswinae están activos, por lo que verás las evidencias detectadas en la salida.
Alternar entre modos
Modifica únicamente el valor de mode en la sección flowmldetection de config/slips.yaml:
yaml
flowmldetection:
mode: train # o 'test'
Evaluaciones
Para reproducir las evaluaciones automatizadas incluidas en este repositorio, ejecuta los siguientes scripts:
- Implementación SlipsWInAE (solo combinación ganadora):
bash
python3 modules/slipswinae/test/slipswinae_evaluator.py
* Implementación original FlowMLDetection (módulo de SLIPS):
bash
python3 modules/slipswinae/test/flowmldetection_evaluator.py
Interfaz de Usuario
Interfaz Web
Por defecto SLIPS ofrece dos posibles interfaces de usuario además de la salida general por consola:
bash
./webinterface.sh
Abre tu navegador en http://localhost:55000.
Para más información, consulta la documentación oficial.
Kalipso (CLI)
bash
./kalipso.sh
Para más detalles, revisa la documentación de Kalipso.
Requisitos
- Python 3.10.12
- RAM: mínimo 4 GB
Además de los requisitos de hardware es necesario instalar los requisitos de software, para ello:
Ubicándonos en la carpeta raíz del proyecto
Crear entorno virtual
bash python3 -m venv slips_envActivar directorio virtual
bash source slips_env/bin/activateInstalar requisitos
bash pip install -r install/requirements.txt
Configuración
SLIPS utiliza el archivo config/slips.yaml para ajustar todos los parámetros. En concreto esta implementación modifica:
| Parámetro | Descripción |
| -------------------- | ------------------------------------------------------ |
| time_window_width | Ancho de la ventana temporal (60 s). |
| label | Normal por defecto, para entrenamiento no supervisado con datos benignos |
| mode | train o test para alternar entre modos. |
| disabled | Para desactivar todos los módulos excepto flowmldetection y slipswinae |
Licencia
Distribuido bajo la GNU GPL v3.0
Owner
- Name: Antonio
- Login: Boke-Jr
- Kind: user
- Repositories: 1
- Profile: https://github.com/Boke-Jr
Citation (CITATION.cff)
cff-version: 1.2.0
title: >-
Slips, behavioral machine learning-based Python IPS
message: 'If you use this software, please cite it as below.'
type: software
authors:
- given-names: Sebastian
family-names: Garcia
email: garciseb@fel.cvut.cz
affiliation: >-
Stratosphere Laboratory, AIC, FEL, Czech
Technical University in Prague
orcid: 'https://orcid.org/0000-0001-6238-9910'
- given-names: Alya
family-names: Gomaa
email: alyaggomaa@gmail.com
affiliation: >-
Stratosphere Laboratory, AIC, FEL, Czech
Technical University in Prague
orcid: ''
- given-names: Kamila
family-names: Babayeva
email: kamifai14@gmail.com
affiliation: >-
Stratosphere Laboratory, AIC, FEL, Czech
GitHub Events
Total
- Delete event: 1
- Push event: 6
- Create event: 2
Last Year
- Delete event: 1
- Push event: 6
- Create event: 2
Dependencies
- actions/cache v4 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- actions/cache v4 composite
- actions/checkout v4 composite
- actions/upload-artifact v4 composite
- actions/checkout v4 composite
- docker/build-push-action v6 composite
- docker/login-action v3 composite
- docker/setup-buildx-action v3 composite
- docker/setup-qemu-action v3 composite
- actions/cache v4 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- actions/upload-artifact v4 composite
- actions-js/push master composite
- actions/checkout v4 composite
- golang 1.17 build
- ubuntu 22.04 build
- stratosphereips/slips latest
- ubuntu 22.04 build
- @colors/colors 1.5.0
- abbrev 1.1.1
- ansi-colors 4.1.1
- ansi-escapes 5.0.0
- ansi-regex 2.1.1
- ansi-regex 5.0.1
- ansi-styles 4.3.0
- ansi-styles 2.2.1
- ansi-term 0.0.2
- ansicolors 0.3.2
- async 3.2.2
- blessed 0.1.81
- blessed-contrib 4.11.0
- bresenham 0.0.3
- buffers 0.1.1
- cardinal 2.1.1
- chalk 1.1.3
- chalk 5.2.0
- chalk 3.0.0
- charm 0.1.2
- cli-table3 0.6.3
- cliui 7.0.4
- color-convert 2.0.1
- color-name 1.1.4
- core-util-is 1.0.3
- denque 1.5.1
- drawille-blessed-contrib 1.0.0
- drawille-canvas-blessed-contrib 0.1.3
- emoji-regex 8.0.0
- es6-promise 3.3.1
- escalade 3.1.1
- escape-string-regexp 1.0.5
- esprima 4.0.1
- event-stream 0.9.8
- fs 0.0.1-security
- get-caller-file 2.0.5
- gl-matrix 2.8.1
- has-ansi 2.0.0
- has-flag 4.0.0
- here 0.0.2
- inherits 2.0.4
- is-fullwidth-code-point 3.0.0
- isarray 0.0.1
- lodash 4.17.21
- map-canvas 0.1.5
- marked 4.2.12
- marked-terminal 5.1.1
- memory-streams 0.1.3
- memorystream 0.3.1
- node-emoji 1.11.0
- nopt 2.1.2
- optimist 0.2.8
- optimist 0.3.7
- picture-tuber 1.0.2
- png-js 0.1.1
- readable-stream 1.0.34
- redeyed 2.1.1
- redis 3.1.2
- redis-commands 1.7.0
- redis-errors 1.2.0
- redis-parser 3.0.0
- require-directory 2.1.1
- sax 1.2.4
- sorted-array-async 0.0.7
- sparkline 0.1.2
- string-width 4.2.3
- string_decoder 0.10.31
- strip-ansi 6.0.1
- strip-ansi 3.0.1
- supports-color 2.0.0
- supports-color 7.2.0
- supports-hyperlinks 2.3.0
- term-canvas 0.0.5
- type-fest 1.4.0
- wordwrap 0.0.3
- wrap-ansi 7.0.0
- x256 0.0.2
- xml2js 0.4.23
- xmlbuilder 11.0.1
- y18n 5.0.8
- yargs 17.2.1
- yargs-parser 20.2.9
- ansi-colors ^4.1.1
- async ^3.2.0
- blessed ^0.1.81
- blessed-contrib ^4.10.0
- chalk ^4.1.2
- clipboardy ^2.3.0
- fs ^0.0.1-security
- redis ^3.1.2
- sorted-array-async ^0.0.7
- strip-ansi ^6.0.0
- yargs ^17.0.1
- linkify-it-py >=2.0.0
- myst-parser >=2.0.0
- sphinx >=7.0
- sphinx-rtd-theme *
- GitPython ==3.1.44
- Keras *
- aid_hash *
- black ==24.10.0
- cabby ==0.1.23
- certifi ==2025.4.26
- coverage ==7.8.1
- exclusiveprocess ==0.9.4
- flask *
- ipwhois ==1.2.0
- matplotlib ==3.10.1
- maxminddb ==2.7.0
- netifaces ==0.11.0
- numpy ==1.26.4
- pandas ==2.2.3
- pre-commit ==4.0.1
- protobuf ==4.25.3
- psutil ==7.0.0
- pytest ==8.3.5
- pytest-asyncio *
- pytest-dependency ==0.6.0
- pytest-mock ==3.14.0
- pytest-sugar ==1.0.0
- pytest-xdist ==3.6.1
- pyyaml *
- redis ==5.2.1
- ruff ==0.11.11
- scapy ==2.6.1
- scikit-learn ==1.6.1
- scikit_learn *
- scipy ==1.15.1
- six ==1.17.0
- slackclient ==2.9.4
- stix2 ==3.0.1
- tensorflow ==2.16.1
- termcolor ==3.1.0
- tldextract ==5.3.0
- tzlocal ==5.3.1
- urllib3 ==2.4.0
- validators ==0.35.0
- watchdog ==5.0.0
- whois ==1.20240129.2
- yappi ==1.6.10