Skip to content

Commit 54a4bc9

Browse files
authored
Merge pull request #1861 from stratosphereips/develop
Slips v1.1.19
2 parents 195d32f + e19ad44 commit 54a4bc9

84 files changed

Lines changed: 4610 additions & 1917 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/integration-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ jobs:
5555
5656
- name: Upload Artifacts
5757
if: always()
58-
uses: actions/upload-artifact@v5
58+
uses: actions/upload-artifact@v6
5959
with:
6060
# Replaces slashes with underscores for valid artifact naming
6161
name: ${{ github.run_id }}-${{ strategy.job-index }}-integration-output

.github/workflows/unit-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
5757
- name: Upload Artifacts
5858
if: always()
59-
uses: actions/upload-artifact@v5
59+
uses: actions/upload-artifact@v6
6060
with:
6161
name: test_slips-output-${{ strategy.job-index }}
6262
path: |

.secrets.baseline

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@
149149
"filename": "config/slips.yaml",
150150
"hashed_secret": "4cac50cee3ad8e462728e711eac3e670753d5016",
151151
"is_verified": false,
152-
"line_number": 268
152+
"line_number": 278
153153
}
154154
],
155155
"dataset/test14-malicious-zeek-dir/http.log": [
@@ -7185,5 +7185,5 @@
71857185
}
71867186
]
71877187
},
7188-
"generated_at": "2026-03-02T22:46:58Z"
7188+
"generated_at": "2026-03-27T14:25:16Z"
71897189
}

AGENTS.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# AGENTS.md
2+
3+
## Project overview
4+
- Entry point: `slips.py` (starts the main process, spawns modules, runs in interactive/daemon modes).
5+
- Core framework code lives in `slips/`, `slips_files/`, and `managers/`.
6+
- Detection/analysis modules are in `modules/` (implement the `IModule` interface).
7+
- Configuration is in `config/` (main config: `config/slips.yaml`).
8+
- Tests live under `tests/` (unit + integration suites).
9+
- Documentation is in `docs/` (see `docs/contributing.md` for contribution workflow, branching, and PR expectations).
10+
- UIs/tools: `SlipsWeb/`, `webinterface/`, `webinterface.sh`, and `kalipso.sh`.
11+
12+
## Build and test commands
13+
- Run locally (no build step):
14+
- `./slips.py -e 1 -f dataset/test7-malicious.pcap -o output_dir`
15+
- Build the Docker image (from `docs/installation.md`):
16+
- `docker build --no-cache -t slips -f docker/Dockerfile .`
17+
- If build networking fails: `docker build --network=host --no-cache -t slips -f docker/Dockerfile .`
18+
- Run the Docker image:
19+
- `docker run -it --rm --net=host slips`
20+
21+
## Code style guidelines
22+
- Python formatting is enforced via pre-commit:
23+
- Black with `--line-length 79` (see `.pre-commit-config.yaml`).
24+
- Ruff is used for linting and autofixes.
25+
- Keep docstrings at the top of files where present (pre-commit `check-docstring-first`).
26+
- Maintain clean whitespace (no trailing whitespace, final newline).
27+
- Follow existing module patterns (`IModule` in `slips_files/common/abstracts/module.py`).
28+
29+
## Testing instructions
30+
- The canonical test runner is `tests/run_all_tests.sh` (runs unit tests then integration tests).
31+
- Equivalent manual sequence (from `tests/run_all_tests.sh`):
32+
- `./slips.py -cc`
33+
- `printf "0" | ./slips.py -k`
34+
- `python3 -m pytest tests/ --ignore="tests/integration_tests" -n 7 -p no:warnings -vvvv -s`
35+
- `python3 tests/destrctor.py`
36+
- `./slips.py -cc`
37+
- `printf "0" | ./slips.py -k`
38+
- `python3 -m pytest -s tests/integration_tests/test_portscans.py -p no:warnings -vv`
39+
- `python3 -m pytest -s tests/integration_tests/test_dataset.py -p no:warnings -vv`
40+
- `python3 -m pytest -s tests/integration_tests/test_config_files.py -p no:warnings -vv`
41+
- `printf "0" | ./slips.py -k`
42+
- `./slips.py -cc`

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
1.1.19 (Mar 31st, 2026)
2+
3+
* Add SSH bruteforce detection based on Zeek SSH, software, and notice logs.
4+
* Improve performance under high-throughput traffic with parallel evidence handling, profiler/input optimizations.
5+
* Fix issues while slips is shutting down.
6+
* Add optional performance plots and CSV metrics for latency, throughput, and resource usage.
7+
* Fix skipped first-flow processing and reduce shutdown race conditions on small files and PCAPs.
8+
19
1.1.18 (Mar 3rd, 2026)
210

311
* Add the HTTPS anomaly detection module with adaptive baselines, confidence scoring, and detailed evidence reasons.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<h1 align="center">
2-
Slips v1.1.18
2+
Slips v1.1.19
33
</h1>
44

55

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.1.18
1+
1.1.19

config/slips.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,16 @@ parameters:
163163
# client_ips : [10.0.0.1, 11.0.0.0/24]
164164
client_ips: []
165165

166+
#############################
167+
Debug:
168+
# Generate latency, throughput, and other performance related CSV files and plots in output/performance_plots/ for debugging
169+
# When enabled, Slips records extra per-flow/per-minute performance data from
170+
# input, profiler workers, and evidence handling, then generates summary plots
171+
# during shutdown. Keep this disabled for normal runs because it adds extra
172+
# bookkeeping and disk writes.
173+
# available options are true/false
174+
generate_performance_plots: false
175+
166176
#############################
167177
detection:
168178

@@ -215,6 +225,12 @@ flowmldetection:
215225
# 'Malicious' data in order for the test to work.
216226
mode: test
217227

228+
#############################
229+
bruteforcing:
230+
# Minimum number of SSH attempts from one source to one destination
231+
# before Slips considers it brute forcing.
232+
ssh_attempt_threshold: 9
233+
218234
#############################
219235
anomaly_detection_https:
220236
# Number of initial hours used to train the baseline model assuming benign traffic.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
## SSH Bruteforce
2+
Using nmap to bruteforce SSH with 1 user and 40 passwords in port 902/TCP with SSH.
3+
4+
Command
5+
`nmap -p 902 --script ssh-brute --script-args userdb=users.lst,passdb=pass.lst,ssh-brute.timeout=4s 147.32.80.37 -sV`
260 KB
Binary file not shown.

0 commit comments

Comments
 (0)