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
Last synced: 6 months ago · JSON representation ·

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
Created 9 months ago · Last pushed 9 months ago
Metadata Files
Readme Changelog Contributing License Citation

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.pcap no 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.

  1. Abre config/slips.yaml y ajusta el parámetro mode del módulo flowmldetection a train:

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

  1. En config/slips.yaml, cambia mode a test:

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

Salida de la detección con el dataset de prueba test7-malicious.pcap

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_env

  • Activar directorio virtual bash source slips_env/bin/activate

  • Instalar 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

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

.github/workflows/install-slips-dependencies.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
.github/workflows/integration-tests.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/upload-artifact v4 composite
.github/workflows/publish-slips-images.yml actions
  • 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
.github/workflows/unit-tests.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • actions/upload-artifact v4 composite
.github/workflows/update-code-docs.yml actions
  • actions-js/push master composite
  • actions/checkout v4 composite
docker/Dockerfile docker
  • golang 1.17 build
  • ubuntu 22.04 build
docker/docker-compose.yml docker
  • stratosphereips/slips latest
docker/light/Dockerfile docker
  • ubuntu 22.04 build
modules/kalipso/package-lock.json npm
  • @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
modules/kalipso/package.json npm
  • 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
docs/requirements.txt pypi
  • linkify-it-py >=2.0.0
  • myst-parser >=2.0.0
  • sphinx >=7.0
  • sphinx-rtd-theme *
install/requirements.txt pypi
  • 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