Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
177 commits
Select commit Hold shift + click to select a range
197ef5e
icore: calc the flows per second for a module based on total number o…
AlyaGomaa Mar 11, 2026
3d924c7
add a DoS detector that runs when the input flows read per min exceed…
AlyaGomaa Mar 11, 2026
3e4193e
DoS detector: get the number of flows to skip based on the flows per …
AlyaGomaa Mar 11, 2026
16a65f3
DoS detector: make the 1 min sampling time window configurable
AlyaGomaa Mar 11, 2026
4d25b5c
read_zeek_files: skip flows when the DoS detector decides to
AlyaGomaa Mar 11, 2026
f79363f
print a warning when slips starts skipping flows due to DoS protection
AlyaGomaa Mar 11, 2026
6508a2b
stress_testing: delete irrelevant info
AlyaGomaa Apr 2, 2026
7fd2030
Merge remote-tracking branch 'origin/develop' into alya/immune/DoS_pr…
AlyaGomaa Apr 2, 2026
1351eac
add logging for when slips starts and stops sampling flows
AlyaGomaa Apr 2, 2026
5a3541e
dont print a msg saying that slips stoppped sampling when it's still …
AlyaGomaa Apr 2, 2026
9ff1d1c
add unit tests for dos protector
AlyaGomaa Apr 2, 2026
4fd59ef
update test_input unit tests
AlyaGomaa Apr 2, 2026
24a40e5
Merge pull request #1863 from stratosphereips/alya/immune/DoS_protection
AlyaGomaa Apr 2, 2026
0fdda95
improve AGENTS.md
AlyaGomaa Apr 2, 2026
93a68a3
place module logs in output/module_name/ and .sqlite dbs in output/da…
AlyaGomaa Apr 2, 2026
5440185
update secrets baseline
AlyaGomaa Apr 2, 2026
c09a24e
unify module names and use snake_case
AlyaGomaa Apr 2, 2026
ebf59d2
update the docs with new names
AlyaGomaa Apr 2, 2026
37882b0
update unit tests
AlyaGomaa Apr 2, 2026
c5e204c
rename brute_forcing module to brute_force_detector following the X_Y…
AlyaGomaa Apr 2, 2026
5662ab0
rename brute_forcing module to brute_force_detector following the X_Y…
AlyaGomaa Apr 2, 2026
2e042a6
update unit tests of brute_forcing module
AlyaGomaa Apr 3, 2026
9887f0a
update Immune.md with finetuning documentation links
harpomaxx Apr 5, 2026
49045fe
add new finetuning reports
harpomaxx Apr 5, 2026
fddab21
remove refence to skill
harpomaxx Apr 5, 2026
9727e9e
add quantization analysis
harpomaxx Apr 6, 2026
7cad615
fix tldr lines
harpomaxx Apr 6, 2026
88dbc3e
fix -ap parameter usage
AlyaGomaa Apr 7, 2026
a77bcac
add output_files to return the output sqlite path or the db dir
AlyaGomaa Apr 7, 2026
ea0ded7
update sercrets baseline
AlyaGomaa Apr 7, 2026
4a06986
rename the "modes" param in slips.yaml to "output"
AlyaGomaa Apr 7, 2026
18c01bc
fix zeek log rotation not working
AlyaGomaa Apr 7, 2026
352456b
update sercrets baseline
AlyaGomaa Apr 7, 2026
7626bf2
Handle the deletion of rotated zeek files more efficiently
AlyaGomaa Apr 7, 2026
861b850
print something in slips.log when a rotated zeek file is deleted
AlyaGomaa Apr 7, 2026
b096509
rename fides_module to fides.py to be consistent with the rest of the…
AlyaGomaa Apr 8, 2026
9f918cc
update unit tests
AlyaGomaa Apr 8, 2026
0a4c9ed
update sercrets baseline
AlyaGomaa Apr 8, 2026
77e89a7
add a persistent directory for slips to store the artifacts the shoul…
AlyaGomaa Apr 8, 2026
1784d94
use the permanent/ dir to store p2p and fides dbs and keys
AlyaGomaa Apr 8, 2026
6688557
Add and use output/databases/ and output/alerts/ directories
AlyaGomaa Apr 8, 2026
9c0fe6f
remove all output dir related logic from the db manager
AlyaGomaa Apr 8, 2026
7783412
place all redis log and .conf files inside output_dir/redis/
AlyaGomaa Apr 8, 2026
8b4ca37
update unit tests
AlyaGomaa Apr 8, 2026
6bd6bb7
update integration tests
AlyaGomaa Apr 8, 2026
54cf0e8
update all references to fides_module to use modules/fides/ instead
AlyaGomaa Apr 8, 2026
b4177a0
update fides tests
AlyaGomaa Apr 8, 2026
ec1c8b1
use the default interface in iris integration test
AlyaGomaa Apr 8, 2026
43f70c4
renae irismodule.py to iris.py
AlyaGomaa Apr 8, 2026
d8198d8
fides_sqlite_db.py: make store_peer_trust_data() overwrite old peer d…
AlyaGomaa Apr 8, 2026
cb5c430
update fides and iris integration tests
AlyaGomaa Apr 8, 2026
174e612
update integration tests to look for alerts.log inside output/alerts/
AlyaGomaa Apr 8, 2026
8b01052
test_portscans.py: fix unable to find alerts.log
AlyaGomaa Apr 8, 2026
c9a6085
test_dataset.py.py: fix unable to find alerts.log
AlyaGomaa Apr 8, 2026
5c06c06
intgeration tests: remove all calls to get_profiles_len_from_output_d…
AlyaGomaa Apr 8, 2026
80716ee
intgeration tests: fix config tests
AlyaGomaa Apr 8, 2026
a29d62c
Merge pull request #1871 from stratosphereips/alya/immune/improve_log…
AlyaGomaa Apr 8, 2026
9caf2ea
set default_rotation_interval to 1day
AlyaGomaa Apr 8, 2026
64a51a2
Merge remote-tracking branch 'origin/alya/fix_ap_parameter' into develop
AlyaGomaa Apr 9, 2026
abfc775
remove duplicate river from requirements.txt
AlyaGomaa Apr 10, 2026
cb44e26
fix blank lines
harpomaxx Apr 6, 2026
6b334c1
update finetuning eval results and training procedure docs
harpomaxx Apr 10, 2026
34929f4
update quantization doc with revised eval baseline scores
harpomaxx Apr 10, 2026
8c90262
update values for finetuning results
harpomaxx Apr 12, 2026
2758281
build(deps): bump pytest from 8.4.2 to 9.0.3 in /install
dependabot[bot] Apr 14, 2026
3cc97aa
Merge pull request #1876 from stratosphereips/dependabot/pip/install/…
AlyaGomaa Apr 14, 2026
2d9ca8f
increase DoS protector threshold to 20k flows per min read by the inp…
AlyaGomaa Apr 14, 2026
cca6498
update secrets baseline
AlyaGomaa Apr 16, 2026
482bc4a
add an auto update config param
AlyaGomaa Apr 16, 2026
b24031a
add an update.json file for deployed slips to check for updates
AlyaGomaa Apr 16, 2026
a0facae
call the auto update param auto_update_slips instead of auto_update
AlyaGomaa Apr 16, 2026
04ae7f0
add an UpdateManager class that handles checking for updates and doin…
AlyaGomaa Apr 16, 2026
9e1ff16
update manager: add a parser for update.json to check for backwards c…
AlyaGomaa Apr 16, 2026
a0d172a
add an undocumented flag (-u) that will only be used by and older sli…
AlyaGomaa Apr 16, 2026
289bdfa
add a function to check if a new slips version is available by compar…
AlyaGomaa Apr 16, 2026
2f9f47e
update_manager: only update slips if the auto_update param in the con…
AlyaGomaa Apr 16, 2026
4ed5e79
update_manager: check for available updates once a day
AlyaGomaa Apr 17, 2026
955e257
Add functions to keep track of the offset of the last line read in ea…
AlyaGomaa Apr 17, 2026
fe26c4f
rename the old Updatemanager to FeedsUpdateManager to avoid name matc…
AlyaGomaa Apr 17, 2026
1ec413c
process_manager: create a mp event and pass it to input and update ma…
AlyaGomaa Apr 17, 2026
b72d2b2
store the last read zeek logs offsets in the db when input detects th…
AlyaGomaa Apr 17, 2026
4f20328
send the current slips version with each pub/sub msg to avoid process…
AlyaGomaa Apr 17, 2026
0c9ee47
imodule: ensure that the pub/sub recvd msg doesn't belong to the upda…
AlyaGomaa Apr 17, 2026
52bf7fe
extract the txt msg only from the pubsub msgs and ignore metadata lik…
AlyaGomaa Apr 17, 2026
6356377
main: don't overwrite the output dir when slips is started with -u & …
AlyaGomaa Apr 20, 2026
aae1052
dont clear output log files on startup if slips is started with -u
AlyaGomaa Apr 20, 2026
ffe67f4
Add a centralized func (utils.initialize_logfile) for initializing lo…
AlyaGomaa Apr 20, 2026
1b76479
if slips is started with -u, read zeek log files from the offsets sto…
AlyaGomaa Apr 20, 2026
92656c5
dont flush the redis server as soon as slips connects to redis if sli…
AlyaGomaa Apr 20, 2026
a068bbb
delete unused timewindow updater thread
AlyaGomaa Apr 20, 2026
4c17fb7
fix the db unable to log when starting the cache redis db
AlyaGomaa Apr 20, 2026
6b29b7c
refactoring for clarity
AlyaGomaa Apr 20, 2026
d78e708
update unit tests
AlyaGomaa Apr 20, 2026
a5a1a49
removing the creation of the used zeek dir from main.py
AlyaGomaa Apr 21, 2026
aa821a4
add prints when slips is storing and restoring zeek offsets
AlyaGomaa Apr 21, 2026
752b048
move the creation of zeek dir to zeek_input_utils
AlyaGomaa Apr 21, 2026
2a300c8
each updated slips version now creates its own zeek dir inside output…
AlyaGomaa Apr 21, 2026
57d8615
remove the logic for creating and restoring offsets. each version of …
AlyaGomaa Apr 21, 2026
38ccd9a
Make sure any exports that happen at the end of the analysis don't ha…
AlyaGomaa Apr 22, 2026
7b6209a
Detect when slips is done updating, and start draining, and call shut…
AlyaGomaa Apr 22, 2026
5c4337d
git pull origin master before draining if slips detected that it shou…
AlyaGomaa Apr 22, 2026
c8d4170
start the new version of slips with -u before completely stopping the…
AlyaGomaa Apr 22, 2026
fdd3071
update unit tests
AlyaGomaa Apr 22, 2026
0e580dc
abort update if uncommitted changes were detected during a git pull
AlyaGomaa Apr 22, 2026
3c4048c
update_manager.py: fixthe func checking for slips new version
AlyaGomaa Apr 23, 2026
416f7d3
Make the new updated slips use the same CLI as the old slips. the old…
AlyaGomaa Apr 23, 2026
5532a78
if old slips is started by -m, make sure the new slips knows which po…
AlyaGomaa Apr 23, 2026
f6cd346
update unit tests
AlyaGomaa Apr 23, 2026
e623d50
update unit tests and docs
AlyaGomaa Apr 23, 2026
49f9445
add auto update docs
AlyaGomaa Apr 23, 2026
c0d4e19
update unit tests
AlyaGomaa Apr 23, 2026
0e3e89e
abort update on any git err
AlyaGomaa Apr 23, 2026
7eb7b76
update unit tests
AlyaGomaa Apr 23, 2026
9eca133
update unit tests
AlyaGomaa Apr 23, 2026
2ea4ff1
update iris main config for integration tests
AlyaGomaa Apr 24, 2026
388f783
add risk assessment finetuning docs and update evaluation references
harpomaxx Apr 24, 2026
a36ef98
add link to new dataset
harpomaxx Apr 24, 2026
53ea999
remove duplicated reference to sum results
harpomaxx Apr 24, 2026
d15c3c1
organize integration_tests dir to be able to group config files with …
AlyaGomaa Apr 25, 2026
d48e6e6
change the names of iris and slips config files used in test_iris()
AlyaGomaa Apr 25, 2026
75bacdc
test_iris(): split peer1 and peer2 handling into separate funcs
AlyaGomaa Apr 25, 2026
6eac29a
Merge pull request #1915 from stratosphereips/alya/immune/auto_update
AlyaGomaa Apr 25, 2026
489df98
add auto update docs in immune.md
AlyaGomaa Apr 25, 2026
811f29d
document manual update
AlyaGomaa Apr 25, 2026
5e23093
Automate the creation of a new tag and release on push to master
AlyaGomaa Apr 25, 2026
58019e5
delete kalipso code
AlyaGomaa Apr 27, 2026
5c402a8
update secrets baseline
AlyaGomaa Apr 27, 2026
ad4637c
delete kalipso docs and dependencies from slips
AlyaGomaa Apr 27, 2026
9edf44f
add kalispo as a submodule
AlyaGomaa Apr 27, 2026
abdbf4a
rename the files with {org} ip ranges to org_ip_ranges instead of {or…
AlyaGomaa Apr 27, 2026
6309bcb
update google ip ranges and ASN
AlyaGomaa Apr 27, 2026
bd57c8d
update all orgs ip ranges
AlyaGomaa Apr 27, 2026
65a7ec1
update google domains
AlyaGomaa Apr 27, 2026
ec642f8
update all orgs asn
AlyaGomaa Apr 27, 2026
b46d24b
update all orgs domains
AlyaGomaa Apr 27, 2026
d8db33d
feeds_update_manager.py: fix the path to orgs ip ranges
AlyaGomaa Apr 27, 2026
22dd18e
update org domains
AlyaGomaa Apr 28, 2026
52fd2fc
increase bloom filters capacity
AlyaGomaa Apr 28, 2026
d52e2c0
fix the label of the nfdump file in dataset/
AlyaGomaa Apr 28, 2026
fe0c067
fix queriying flows of invalid profile IDs
AlyaGomaa Apr 28, 2026
96794b6
Merge pull request #1927 from stratosphereips/alya/update_ti_feeds
AlyaGomaa Apr 28, 2026
da70046
fix the label of the nfdump file in dataset/
AlyaGomaa Apr 28, 2026
c562a7a
fix queriying flows of invalid profile IDs
AlyaGomaa Apr 28, 2026
1ec3e8d
Proper capitalization of evidence description
AlyaGomaa Apr 28, 2026
227c8ef
make the threat level of any advertisers-related TI feed "info"
AlyaGomaa Apr 28, 2026
3efe382
make sure integration tests close the used redis server when they're …
AlyaGomaa Apr 28, 2026
112a8a8
Merge remote-tracking branch 'origin/alya/improve_integration_tests' …
AlyaGomaa Apr 28, 2026
40e0195
generate and use a high-number port on the fly for each test instead …
AlyaGomaa Apr 28, 2026
6c4fda0
delete the destructor, each test now does its cleanup on success
AlyaGomaa Apr 28, 2026
880270a
fix the Permission error when running unit tests outside of docker
AlyaGomaa Apr 28, 2026
ff800c2
report evidence as str (low, med, high) instead of a float
AlyaGomaa Apr 28, 2026
44bdbbe
make arp poisoner module check for the existence of arp-scan tool bef…
AlyaGomaa Apr 28, 2026
92f3998
avoid integration tests changing permanent p2p dbs and config files
AlyaGomaa Apr 28, 2026
a330fef
avoid fides unit tests creating an empty ":memory:" file.
AlyaGomaa Apr 28, 2026
22e93c5
update unit tests
AlyaGomaa Apr 28, 2026
890a260
make sure the needed redis server is started before each integration …
AlyaGomaa Apr 28, 2026
670db48
run_all_tests.sh: auto-discover integration tests
AlyaGomaa Apr 28, 2026
df3c5ce
fix fides integration test
AlyaGomaa Apr 29, 2026
e665512
fix iris integration test
AlyaGomaa Apr 29, 2026
cbd77e1
fix GH workflow not uploading artifacts
AlyaGomaa Apr 29, 2026
4da218b
make sure no 2 integration tests try to use the same redis port
AlyaGomaa Apr 29, 2026
6e0e088
GH CI: better naming for uploaded artifacts
AlyaGomaa Apr 29, 2026
c25a20b
fix fidex integration test
AlyaGomaa Apr 29, 2026
1d4a716
fix ci name sanitization
AlyaGomaa Apr 29, 2026
afc3458
fides.py: rollback config file changes
AlyaGomaa Apr 30, 2026
7b52475
fides.py: fix the logger
AlyaGomaa Apr 30, 2026
ec2518d
fides.py: use the version of th emsg as the cur slips version
AlyaGomaa Apr 30, 2026
2f574fb
test_Fides: improve logging and msg versioning
AlyaGomaa Apr 30, 2026
a765be6
fix fides config test
AlyaGomaa Apr 30, 2026
4126f3b
del debugging print
AlyaGomaa Apr 30, 2026
2a54e55
fix unit tests
AlyaGomaa Apr 30, 2026
4faae5a
Merge pull request #1928 from stratosphereips/alya/improve_integratio…
AlyaGomaa Apr 30, 2026
097c99d
fix issues with the web interface
AlyaGomaa Apr 30, 2026
1e51e51
refactor _init_whitelisted_orgs_bf()
AlyaGomaa Apr 30, 2026
037c962
fix problem stopping slips daemon
AlyaGomaa Apr 30, 2026
b9414e1
update slips version to 1.1.20 and update changelog
AlyaGomaa Apr 30, 2026
634a916
update update.json
AlyaGomaa Apr 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
154 changes: 154 additions & 0 deletions .github/workflows/create-a-new-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
name: create a new release

on:
push:
branches:
- master

permissions:
contents: write

jobs:
create_release:
runs-on: ubuntu-22.04

steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
fetch-depth: 0

- name: Fetch tags
run: git fetch --tags --force

- name: Prepare release metadata
id: prepare_release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
python3 <<'PY'
import os
import pathlib
import re
import subprocess

github_output = pathlib.Path(os.environ["GITHUB_OUTPUT"])
release_notes_path = pathlib.Path("release_notes.md")

def write_output(name, value):
with github_output.open("a", encoding="utf-8") as output_file:
print(f"{name}={value}", file=output_file)

def capitalize_sentences(text):
"""Capitalize the first alphabetical character of each sentence."""
result = []
capitalize_next = True
for character in text:
if capitalize_next and character.isalpha():
result.append(character.upper())
capitalize_next = False
else:
result.append(character)

if character in ".!?":
capitalize_next = True
return "".join(result)

version = pathlib.Path("VERSION").read_text(encoding="utf-8").strip()
if not re.fullmatch(r"\d+\.\d+\.\d+", version):
raise SystemExit(f"VERSION must contain x.y.z, found: {version}")

tag_name = f"v{version}"

changelog_lines = pathlib.Path("CHANGELOG.md").read_text(
encoding="utf-8"
).splitlines()

latest_section = []
started = False
version_heading = re.compile(r"^\d+\.\d+\.\d+\b")

for line in changelog_lines:
if not started:
if line.strip():
started = True
latest_section.append(line)
continue

if version_heading.match(line.strip()):
break

latest_section.append(line)

while latest_section and not latest_section[-1].strip():
latest_section.pop()

if not latest_section:
raise SystemExit("Could not extract the latest release notes from CHANGELOG.md")

latest_heading = latest_section[0].strip()
if not latest_heading.startswith(version):
raise SystemExit(
"The top section in CHANGELOG.md does not match the version in VERSION"
)

normalized_lines = [latest_section[0].strip(), ""]
for line in latest_section[1:]:
stripped = line.strip()
if not stripped:
normalized_lines.append("")
continue

bullet_match = re.match(r"^([*-]\s+)(.*)$", stripped)
if bullet_match:
prefix, content = bullet_match.groups()
normalized_lines.append(f"{prefix}{capitalize_sentences(content.strip())}")
continue

normalized_lines.append(capitalize_sentences(stripped))

release_notes_path.write_text(
"\n".join(normalized_lines).strip() + "\n",
encoding="utf-8",
)

existing_tag = subprocess.run(
["git", "tag", "--list", tag_name],
check=True,
capture_output=True,
text=True,
).stdout.strip()

release_exists = subprocess.run(
["gh", "release", "view", tag_name],
capture_output=True,
text=True,
).returncode == 0

write_output("tag_name", tag_name)
write_output("tag_exists", "true" if existing_tag else "false")
write_output("release_exists", "true" if release_exists else "false")
PY

- name: Create and push tag
if: steps.prepare_release.outputs.tag_exists == 'false'
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git tag "${{ steps.prepare_release.outputs.tag_name }}"
git push origin "${{ steps.prepare_release.outputs.tag_name }}"

- name: Create GitHub release
if: steps.prepare_release.outputs.release_exists == 'false'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create "${{ steps.prepare_release.outputs.tag_name }}" \
--title "${{ steps.prepare_release.outputs.tag_name }}" \
--notes-file release_notes.md \
--latest

- name: Skip existing tag and release
if: steps.prepare_release.outputs.tag_exists == 'true' && steps.prepare_release.outputs.release_exists == 'true'
run: |
echo "Tag ${{ steps.prepare_release.outputs.tag_name }} and its release already exist. Skipping."
13 changes: 10 additions & 3 deletions .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,18 @@ jobs:
run: |
python3 -m pytest tests/${{ matrix.test_file }} -p no:warnings -vv -s -n 3

- name: Build Artifact Name
# otherwise we get numeric names for the artifacts and we dont know which is which
id: artifact-name
run: |
sanitized_test_file="${{ matrix.test_file }}"
sanitized_test_file=$(printf '%s\n' "$sanitized_test_file" | tr '/' '_')
echo "name=${sanitized_test_file}-integration-output" >> "$GITHUB_OUTPUT"

- name: Upload Artifacts
if: always()
uses: actions/upload-artifact@v6
with:
# Replaces slashes with underscores for valid artifact naming
name: ${{ github.run_id }}-${{ strategy.job-index }}-integration-output
name: ${{ steps.artifact-name.outputs.name }}
path: |
output/integration
output/integration_tests
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ slack_bot_token_secret
# Ignore daemon output files
daemon/

# Ignore private AGENTS.md, may contain private paths
private/AGENTS.md


# Ignore the results folders
2019-
2020-
Expand All @@ -29,7 +33,7 @@ daemon/
*.swp
*.swo

# apple shit
# apple-related
*.bst

# pcap
Expand Down
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,7 @@
path = SlipsWeb
url = https://github.com/stratosphereips/SlipsWeb.git
branch = master
[submodule "modules/kalipso"]
path = modules/kalipso
url = https://github.com/stratosphereips/Kalipso
branch = main
13 changes: 2 additions & 11 deletions .secrets.baseline
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@
"filename": "config/slips.yaml",
"hashed_secret": "4cac50cee3ad8e462728e711eac3e670753d5016",
"is_verified": false,
"line_number": 278
"line_number": 304
}
],
"dataset/test14-malicious-zeek-dir/http.log": [
Expand Down Expand Up @@ -7174,16 +7174,7 @@
"is_verified": false,
"line_number": 791
}
],
"webinterface/templates/app.html": [
{
"type": "Base64 High Entropy String",
"filename": "webinterface/templates/app.html",
"hashed_secret": "4541da42e4bee42db18b73a671a93eee3fe5caf9",
"is_verified": false,
"line_number": 139
}
]
},
"generated_at": "2026-03-27T14:25:16Z"
"generated_at": "2026-04-27T14:39:21Z"
}
Loading
Loading