# yaroslavprokofiev25-art/suricata-intrusion-detection-system architecture

> Architecture diagram of the GitHub repository yaroslavprokofiev25-art/suricata-intrusion-detection-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system
- Repository: https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system

## Overview

Це репозиторій лабораторного стенду для розгортання Suricata та оцінювання її виявлення мережевих атак. Основний потік: підготовка середовища, запуск сценаріїв з Kali, спостереження Suricata за трафіком, запис спрацювань і оцінювання результатів. Граф спирається на README; деталі реалізації, не підтверджені доступними уривками, не включені.

Main entry points: [`scripts/setup-environment.sh`](https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/scripts/setup-environment.sh) (Підготовка середовища), [`scripts/run-tests.sh`](https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/scripts/run-tests.sh) (Run test commands), [`logs/fast.log.sample`](https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/logs/fast.log.sample) (Suricata fast.log), [`docs/evaluation-criteria.md`](https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/docs/evaluation-criteria.md) (Evaluation criteria)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_setup["Середовище стенду"]
  node_setup_script["Підготовка середовища"]
  node_host["CachyOS host"]
  node_docker["Docker"]
  node_juice_shop["OWASP Juice Shop"]
end

subgraph group_traffic["Тестовий трафік"]
  node_kali(("Kali Linux VM"))
  node_scenarios["Test scenarios<br/>[test-scenarios.md]"]
  node_test_script["Run test commands<br/>[run-tests.sh]"]
  node_attack_tools["Test tools"]
  node_network["Monitored network"]
end

subgraph group_detection["Виявлення Suricata"]
  node_suricata["Suricata IDS"]
  node_suricata_config["Suricata config snippet"]
  node_rules["Local test rules<br/>[local.rules]"]
end

subgraph group_evaluation["Оцінювання"]
  node_fast_log["Suricata fast.log<br/>[fast.log.sample]"]
  node_criteria["Evaluation criteria"]
  node_results["Detection results"]
end

node_setup_script -->|"prepares"| node_host
node_setup_script -->|"sets up"| node_docker
node_setup_script -->|"deploys"| node_juice_shop
node_host -->|"hosts"| node_suricata
node_host -->|"hosts"| node_juice_shop
node_suricata -->|"uses config"| node_suricata_config
node_suricata -->|"loads rules"| node_rules
node_kali -->|"runs"| node_test_script
node_test_script -->|"executes"| node_scenarios
node_test_script -->|"invokes"| node_attack_tools
node_attack_tools -->|"generate traffic"| node_network
node_network -->|"observed by"| node_suricata
node_network -->|"reaches"| node_juice_shop
node_suricata -->|"writes alerts"| node_fast_log
node_fast_log -->|"provides evidence"| node_criteria
node_criteria -->|"evaluates"| node_results

click node_setup_script "https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/scripts/setup-environment.sh"
click node_suricata_config "https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/config/suricata.yaml.snippet"
click node_rules "https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/config/local.rules"
click node_scenarios "https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/docs/test-scenarios.md"
click node_test_script "https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/scripts/run-tests.sh"
click node_fast_log "https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/logs/fast.log.sample"
click node_criteria "https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/docs/evaluation-criteria.md"
click node_results "https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/docs/evaluation-criteria.md"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_setup_script,node_host,node_docker,node_juice_shop toneBlue
class node_kali,node_scenarios,node_test_script,node_attack_tools,node_network toneAmber
class node_suricata,node_suricata_config,node_rules toneMint
class node_fast_log,node_criteria,node_results toneRose
```

## Components

### Середовище стенду

- [Підготовка середовища](https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/scripts/setup-environment.sh): `scripts/setup-environment.sh`
- **CachyOS host**
- **Docker**
- **OWASP Juice Shop**

### Тестовий трафік

- **Kali Linux VM**
- [Test scenarios](https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/docs/test-scenarios.md): `docs/test-scenarios.md`
- [Run test commands](https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/scripts/run-tests.sh): `scripts/run-tests.sh`
- **Test tools**
- **Monitored network**

### Виявлення Suricata

- **Suricata IDS**
- [Suricata config snippet](https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/config/suricata.yaml.snippet): `config/suricata.yaml.snippet`
- [Local test rules](https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/config/local.rules): `config/local.rules`

### Оцінювання

- [Suricata fast.log](https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/logs/fast.log.sample): `logs/fast.log.sample`
- [Evaluation criteria](https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/docs/evaluation-criteria.md): `docs/evaluation-criteria.md`
- [Detection results](https://github.com/yaroslavprokofiev25-art/suricata-intrusion-detection-system/blob/main/docs/evaluation-criteria.md): `docs/evaluation-criteria.md`

## Connections

- Підготовка середовища → CachyOS host: prepares
- Підготовка середовища → Docker: sets up
- Підготовка середовища → OWASP Juice Shop: deploys
- CachyOS host → Suricata IDS: hosts
- CachyOS host → OWASP Juice Shop: hosts
- Suricata IDS → Suricata config snippet: uses config
- Suricata IDS → Local test rules: loads rules
- Kali Linux VM → Run test commands: runs
- Run test commands → Test scenarios: executes
- Run test commands → Test tools: invokes
- Test tools → Monitored network: generate traffic
- Monitored network → Suricata IDS: observed by
- Monitored network → OWASP Juice Shop: reaches
- Suricata IDS → Suricata fast.log: writes alerts
- Suricata fast.log → Evaluation criteria: provides evidence
- Evaluation criteria → Detection results: evaluates
