idps-escape

IDPS-ESCAPE

IDPS-ESCAPE, short for Intrusion Detection and Prevention Systems for Evading Supply Chain Attacks and Post-compromise Effects, is a sub-project of the CyFORT project, which in turn stands for Cloud Cybersecurity Fortress of Open Resources and Tools for Resilience. CyFORT is carried out in the context of the IPCEI-CIS project.

cyfort_logo

IDPS-ESCAPE is aimed at closely capturing the notion of MAPE-K (Monitor, Analyze, Plan, Execute and Knowledge) from autonomic computing applied to cybersecurity, which translates into a comprehensive package that implements a Security Orchestration, Automation, and Response (SOAR) system.

The resulting SOAR system combines the following building blocks: a Security Information and Event Management (SIEM) system, an Intrusion Detection and Prevention System (IDPS), Cyber Threat Intelligence (CTI) tools, a Risk-aware AD-based Automated Response (RADAR) subsystem providing AD scenario implementations, coupled with active response solutions and SOAR playbooks facilitating security orchestration, and an anomaly detection (AD) subsystem called ADBox.

We adopt a hybrid method aimed at robustness and resilience to adversarial interference involving three elements: (i) signature-based detection with (ii) AD based on deep learning models via MTAD-GAT, relying on state-of-the-art advances in artificial intelligence (AI) and machine learning (ML) such as the attention mechanism and (iii) a classical algorithm for AD on streams such as the Robust Random Cut Forest (RRCF) algorithm supporting categorical features.

This repository contains the source code and full documentation (requirements, technical specifications, schematics, user manual, validation test case specifications and test reports) of IDPS-ESCAPE, based on the C5-DEC method and software also developed in CyFORT, which relies on storing, interlinking and processing all software development life cycle (SDLC) artifacts in a unified manner; see our traceability web page providing the technical specifications of IDPS-ESCAPE.

Note: Our latest software validation test execution report (TRB) on our traceability web page compiles the latest test campaign results, validating select features under specific test conditions.

Table of contents

Overview

IDPS-ESCAPE, part of the CyFORT suite of open-source cybersecurity software solutions, addresses various aspects of cybersecurity as an ensemble, targeting different user groups, ranging from public to private and from CERT/CSIRT entities to system administrators, and cloud-native deployments. IDPS-ESCAPE is being developed in parallel with another CyFORT sub-project, namely SATRAP-DL, aimed at enhancing cyber threat intelligence (CTI) analysts’ work using semi-automated reasoning over CTI.

As part of the alpha release, the main bulk of this repository is dedicated to a novel open-source and extensively documented anomaly detection (AD) toolbox and framework, called ADBox, and a Risk-aware AD-based Automated Response (RADAR) subsystem implementing AD scenarios and automated response to fulfill the SOAR mission of IDPS-ESCAPE.

IDPS-ESCAPE builds on top of well-known open-source solutions such as Ansible for configuration management, deployment and infrastructure automation, OpenSearch for search and analytics, Wazuh as our SIEM\&XDR of choice, in turn connected to MISP and OpenCTI for bidirectional SIEM-TIP enrichment of SIEM alerts and CTI content, and finally Suricata, acting both as our network-based IDPS of choice, as well as a network-level data acquisition source.

Features

Design

RADAR

A collection of Risk-aware Anomaly Detection-based Automated Response (RADAR) modules that complete the Security Orchestration, Automation and Response (SOAR) mission of IDPS-ESCAPE, enhancing a traditional IDS/IPS setup by adding intelligent, adaptive, and automated decision-making capabilities on top of both signature-based detections and ML-based anomaly detection signals, providing

Fully automated deployment with Ansible

We provide a complete Infrastructure-as-Code (IaC) deployment mechanism using Ansible, enabling teams to spin up a fully operational environment automatically and consistently, currently supporting only RADAR. This ensures a reproducible, scalable installation process suitable for production environments, testbeds, or research. We also provide a detailed technical documentation of the manager automation pipeline.

The automated setup includes:

ADBox

ADBox is a custom-designed and implemented anomaly detection subsystem, with its key features summarized as follows:

Front-end

Integration package

Network and host monitoring

To achieve comprehensive monitoring capabilities, we combine well-established open-source solutions, namely Wazuh, a cybersecurity platform that integrates SIEM and XDR capabilities and Suricata, an open-source Network Intrusion Detection System (NIDS). We provide deployment solutions that allow centralized monitoring for coping with limited resources (network agents relaying traffic data to a central node for processing) as well as running monitoring instances on each node and only grouping the obtained monitoring data in a centralized node for analysis.

See our instructions for a joint deployment of IDPS, SIEM and ML-based OpenSearch AD for further details.

User manual

Please see our extensive and detailed IDPS-ESCAPE user manual to learn more about RADAR, and ADBox; we cover their setup requirements, installation, overall usage, specific modules of each and technical details covering internal aspects that are relevant for an effective use of the IDPS-ESCAPE suite of tools. You will also find dedicated instructions for a network IDPS plus SIEM integrated deployment, describing our combined architectural setup using Wazuh, Suricata and various networking deployment solutions.

Documentation and technical specifications

You can visit our traceability page to view the technical specifications of IDPS-ESCAPE, e.g., HARC for high-level and LARC for low-level architectural diagrams, mission and system requirement specifications (MRS and SRS), software design artifacts (SWD), software validation test case specifications (TST) and validation test campaign test reports (TRB).

Getting Started

RADAR and full stack automated installation

See the main RADAR manual page to learn how to use the build-rader.sh script to bootstrap the entire IDPS-ESCAPE stack and RADAR dependencies, powered by Ansible.

RADAR usage

The RADAR subsystem provides solutions for completing the SOAR mission of IDPS-ESCAPE enabling security orchestration and automation driven by a Risk-aware AD-based active response (AR) paradigm. Please see the corresponding RADAR README for more information.

Run build-radar.sh to bring up core services, optionally agent containers, run the Ansible playbook limited to the manager + agent group for the selected scenario, and build radar-cli:latest.

Usage:

build-radar.sh <scenario> --agent <local|remote> --manager <local|remote> 
                          --manager_exists <true|false> [--ssh-key </path/to/private_key>]

Scenarios:
  suspicious_login | insider_threat | ddos_detection | malware_communication | geoip_detection | log_volume

Flags:
  --agent           Where agents live:      local (docker-compose.agents.yml) | remote (SSH endpoints)
  --manager         Where manager lives:    local (docker-compose.core.yml)   | remote (SSH host)
  --manager_exists  Whether the manager already exists at that location:
                      - true  : do not bootstrap a manager
                      - false : bootstrap (local: docker compose up; remote: let Ansible bootstrap)
  --ssh-key         Optional: path to the SSH private key used for remote manager/agent access.
                    If not provided, defaults to: $HOME/.ssh/id_ed25519

Example

RADAR outcome in Wazuh Dashboard

Here we provide a screenshot of a successful run of the Geo IP detection RADAR scenario:

Wazuh Dashboard Discover RADAR geo IP detection

The currently implemented active response sends an email to a designated recipient.

ADBox installation

For a description of the deployment model using Docker and shell scripts and other installation methods, please see the installation page of the user manual.

ADBox usage

Please note that you can set the parameters (IP, port, username and password) for connecting to Wazuh via the Wazuh credentials JSON file.

The ADBox driver/CLI currently provides four options:

  1. Running ADBox using the -u flag following by the ID of a use-case YAML file (stored under siem_mtad_gat/assets/drivers), e.g., ./adbox.sh -u 2 to start a complete training and prediction pipeline determined by an AD use-case scenario, in this case uc_2.yaml.

  2. Running ADBox using the -i flag, i.e., ./adbox.sh -i running the interactive console (the console currently contains a known bug for prediction-only jobs (i.e., no training and using a trained model), please use option 1).

  3. Running ADBox without any arguments: it runs a training and prediction pipeline using default configurations.

  4. Running ADBox using the -c flag, i.e., ./adbox.sh -c to check your connection with Wazuh, which is recommended to ensure a successful channel can be established before executing AD workflows. Otherwise, in the absence of a functional connection, ADBox automatically falls back to local default configuration files and prepared sample training and prediction data.

  5. Running ADBox using the -s flag enables data shipping to Wazuh on top of the expected behavior. Namely, ./adbox.sh -s and ./adbox.sh -u 2 -s, perform the same operations as without this flag, plus the shipping to Wazuh. We recommend to read the manual’s page about ADBox integration in Wazuh before the usage.

Example of a use-case scenario

For a detailed walkthrough and ADBox use-case scenario preparation and execution, see our dedicated example illustrating the usage of ADBox, adopting the end user point of view.

Wazuh-ADBox integration and detector dashboard

Since IDPS-ESCAPE version 0.1.4, it is possible to ship prediction outcomes to the Wazuh indexer and consult them directly using the Wazuh dashboard. We summarize the key points in the installation page, referring to the corresponding manual page Wazuh-ADBox integration.

Wazuh Dashboard Discover ADBox Detector

With a customized Dashboard example provided below. You can find instructions for building such a dashboard in a dedicated manual page.

For an improved visualization, we explain in our Detector Dashboard Tutorial how to construct a dedicated Detector Dashboard in the Wazuh Dashboard, combining multiple visualizations of global and feature-wise results, and related data from other Wazuh indices as well.

Combining Discover Dashboard and our Detector Dashboard we can monitor (in realtime) and investigate anomalies.

Integrations

In the manual page of our integrations package, you will find a concise overview of the artifacts (manuals, Docker compose files, configuration files, code and scripts) for integrating other tools with IDPS-ESCAPE, e.g., MISP, OpenCTI, OpenBAS. We also discuss best practices for improving such integrations and avoiding certain pitfalls.

Disclaimer: use of alpha/experimental software

This software is currently in its alpha or experimental phase and is provided for testing and evaluation purposes only. It may contain errors, bugs, or other issues that could result in security vulnerabilities, data loss, or other unpredictable outcomes. As such, this software is not intended for use in production environments or for handling sensitive, confidential, or critical information.

In particular, given the nature of security-related software, it is crucial to understand that the algorithms, protocols, and implementations within this software may not have undergone thorough security audits or peer review. Do not rely on this software for critical system functions.

The developers, contributors, and affiliated organizations disclaim all warranties, express or implied, including but not limited to the implied warranties of fitness for a particular purpose. No guarantee is made regarding the correctness, completeness, or security of the software, and you assume full responsibility for any risks associated with its use.

By using this software, you acknowledge that you understand the risks and agree to use it at your own risk. You are strongly encouraged to conduct your own security assessments and tests before deploying this software in any environment.

Usage recommendations and remarks

We advise the user not to

Furthermore, we highlight the following points:

Testing

For software validation test cases, please see the test campaign results (e.g., TRA and TRB) on our traceability web page. The test artifacts described below deal with unit/integration/system testing.

RADAR

RADAR is also shipped with an extensive unit test suite, which can be run in a dedicated containerized environment using a test entry point.

RADAR test framework

Moreover, the RADAR subsystem comes with a dedicated test framework with support for Infrastructure as Code (IaC) via Ansible aimed at automating the experimentation and validation chain of activities, i.e., a pipeline handling ingestion of datasets, preprocessing, training and ML model baseline establishment, attack simulation, data collection, followed by post-processing and computation of statistical measures. See RADAR test framework for more details.

ADBox

ADBox comes with an extensive suite of unit tests. A dedicated containerized environment can be built by running ./build-adbox.sh (the script needs to be made executable). Then, the full set of unit tests can be run as follows

./run_test.sh

Otherwise, a test file can be specified:

./run_test.sh  tests/{name}_test.py

Roadmap

Some of the currently planned items include:

For details on our roadmap and features planned for future releases, please see the Wiki section of this repository.

License

Copyright (c) itrust Abstractions Lab and itrust consulting. All rights reserved.

Licensed under the GNU Affero General Public License (AGPL) v3.0 license.

For more information, please consult the list of authors and contributors page.

Acknowledgment

The creation of the IDPS-ESCAPE software tools and its knowledge base is co-funded by the Ministry of the Economy of Luxembourg, in the context of the CyFORT project.

Contact

If you wish to learn more about the project, feel free to contact us at Abstractions Lab: info@abstractionslab.lu