Skip to content

Commit 31e689d

Browse files
authored
Merge pull request #1501 from stratosphereips/develop
Slips v1.1.10
2 parents bfd402b + 694d46f commit 31e689d

File tree

85 files changed

+2722
-1184
lines changed

Some content is hidden

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

85 files changed

+2722
-1184
lines changed

.github/workflows/unit-tests.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ jobs:
3636
- test_smtp.py
3737
- test_whitelist.py
3838
- test_arp.py
39+
- test_arp_poisoner.py
3940
- test_blocking.py
41+
- test_unblocker.py
4042
- test_flow_handler.py
4143
- test_horizontal_portscans.py
4244
- test_http_analyzer.py

.secrets.baseline

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,14 +149,14 @@
149149
"filename": "config/slips.yaml",
150150
"hashed_secret": "4cac50cee3ad8e462728e711eac3e670753d5016",
151151
"is_verified": false,
152-
"line_number": 224
152+
"line_number": 223
153153
},
154154
{
155155
"type": "Secret Keyword",
156156
"filename": "config/slips.yaml",
157157
"hashed_secret": "d033e22ae348aeb5660fc2140aec35850c4da997",
158158
"is_verified": false,
159-
"line_number": 394
159+
"line_number": 393
160160
}
161161
],
162162
"dataset/test14-malicious-zeek-dir/http.log": [
@@ -7192,5 +7192,5 @@
71927192
}
71937193
]
71947194
},
7195-
"generated_at": "2025-02-13T22:47:52Z"
7195+
"generated_at": "2025-05-08T14:51:28Z"
71967196
}

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
1.1.10 (May 26, 2025)
2+
- Add support for unblocking attackers using IP tables after a probation period.
3+
- Add support for blocking attackers using ARP poisoning.
4+
- Improve how the gateway IP and MAC are detected.
5+
- Support running slips as an AP to block attackers in the RPI.
6+
17
1.1.9 (April 30, 2025)
28
- Add bootstrapping node mode for the global P2P. Thanks to @d-strat
39
- Add support for ARM64 architecture in Docker images.

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.9
2+
Slips v1.1.10
33
</h1>
44

55

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.1.9
1+
1.1.10

config/slips.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ parameters:
2626
# For 5 min
2727
# time_window_width : 300
2828
# For 1 hour
29-
# time_window_width : 3600
3029
time_window_width: 3600
3130
# For 1 day
3231
# time_window_width = 86400

docs/architecture.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Slips is heavily based on the Zeek monitoring tool as input tool for packets fro
1212
Figure 1 shows how the data is analyzed by Slips.
1313
As we can see, Slips internally uses <a href="https://zeek.org/">Zeek</a>, an
1414
open source network security monitoring tool. Slips divides flows into profiles and
15-
each profile into a timewindows.
15+
each profile into a timewindows, timewindows are numbered from 1 to infinity.
1616
Slips runs detection modules on each flow and stores all evidence,
1717
alerts and features in an appropriate profile structure.
1818
All profile info, performed detections, profiles and timewindows' data,

docs/fides_module.md

Lines changed: 21 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,31 @@
1-
# Fides module
1+
# Fides module. Global P2P Threat Ingelligence Sharing
22

3-
The Fides module is an essential component of the Global P2P system in Slips.
3+
Slips implements an internet global P2P system for Threat Intelligence sharing and alerting.
44

5+
The Fides module implements the Global P2P system in Slips.
56

67
Traditional network defense systems depend on centralized threat intelligence, which has limitations like single points of failure, inflexibility, and reliance on trust in centralized authorities. Peer-to-peer networks offer an alternative for sharing threat intelligence but face challenges in verifying the trustworthiness of participants, including potential malicious actors.
78

8-
The Fides Module, based on [Master Theses](https://github.com/stratosphereips/fides/tree/bfac47728172d3a4bbb27a5bb53ceef424e45e4f) on CTU FEL by Lukáš Forst. The goal of this module is to address the challenge of trustworthiness of peers in peer-to-peer networks by providing several trust evaluation models. It evaluates peer behavior, considers membership in trusted organizations, and assesses incoming threat data to determine reliability. Fides aggregates and weights data to enhance intrusion prevention systems, even in adversarial scenarios. Experiments show that Fides can maintain accurate threat intelligence even when 75% of the network is controlled by malicious actors, assuming the remaining 25% are trusted.
9+
The Fides Module is based on the [Master Thesis](https://dspace.cvut.cz/handle/10467/101312) of Lukáš Forst and implemented in Slips in the Master Thesis of David Otta. The goal of the Fides module is to address the challenge of trust of peers in P2P networks by providing several trust evaluation models. It evaluates peer behavior, considers membership in trusted organizations, and assesses incoming threat data to determine reliability. Fides aggregates and weights data to enhance intrusion prevention systems, even in adversarial scenarios. Experiments show that Fides can maintain accurate threat intelligence even when 75% of the network is controlled by malicious actors, assuming the remaining 25% are trusted.
910

1011
The whole architecture is thoroughly documented in the thesis itself, which can be downloaded from the link above.
1112

1213
## Docker direct use
13-
You can use Slips with Fides Module by allowing it in the Slips config file or by using the following commands.
14+
You can use Slips with the Fides Module by allowing it in the Slips config file or by using the following commands.
1415

1516
```
1617
docker pull stratosphereips/slips
17-
docker run -it --rm --net=host --cap-add=NET_ADMIN stratosphereips/slips
18+
docker run -it --rm --net=host --use_fides=True --cap-add=NET_ADMIN stratosphereips/slips
1819
```
1920

20-
To be able to use the fides module you should use ```--cap-add=NET_ADMIN```
21+
To be able to use the fides module, you should use ```--cap-add=NET_ADMIN```
2122

22-
## Installation:
23+
## Conditions
2324

24-
```
25-
docker pull stratosphereips/slips
26-
docker run -it --rm --net=host --use_fides=True stratosphereips/slips
27-
```
25+
If you plan on using the Fides Module, please be aware that it is used only if Slips is running on an interface OR on a growing Zeek directory. The `--use_fides=True` is ignored when Slips is run on a file.
2826

29-
***NOTE***
30-
31-
If you plan on using the Fides Module, lease be aware that it is used only
32-
if Slips is running on an interface. The `--use_fides=True` is ignored when Slips is run on a file.
33-
34-
### Configuration
35-
Evaluation model, evaluation thrash-holds and other configuration is located in fides.conf.yml
27+
## Configuration
28+
The evaluation model used, the evaluation thresholds, and other configurations are located in ```fides.conf.yml``` file
3629

3730
**Possible threat intelligence evaluation models**
3831

@@ -48,51 +41,33 @@ Fides is inactive by default in Slips.
4841

4942
To enable it, change ```use_fides=False``` to ```use_fides=True``` in ```config/slips.yaml```.
5043

51-
And start slips on your interface.
52-
53-
## Project sections
54-
55-
The project is built into Slips as a module and uses Redis for communication. Integration with Slips
56-
is seamless, and it should be easy to adjust the module for use with other IPSs.
57-
58-
- Slips, the Intrusion Prevention System
59-
- Fides Module the trust evaluation module for global p2p interaction
60-
44+
And start Slips on your interface.
6145

6246
## How it works:
6347

6448
Slips interacts with other slips peers for the following purposes:
6549

66-
### Sharing opinion on peers
50+
### Sharing an opinion with peers
6751

68-
If a peers A is asked for its opinion on peer B by peer C, peer A sends the aggregated opinion on peer B to peer C, if there is any.
52+
If peer A is asked for its opinion on peer B by peer C, peer A sends its opinion on peer B to peer C, if there is any.
6953

7054
### Asking for an opinion
7155

72-
Newly connected peer will create a base trust by asking ather peers for opinion.
56+
Peers can ask other peers what they think about an IP address or domain.
7357

7458
### Dispatching alerts
7559

76-
If a threat so great it may impact whole network, one or more groups, threat alert is
77-
dispatched to peers, without regard to trust level accumulated on them.
78-
79-
### Answering and receiving requests form global P2P module.
60+
If a peer generates an alert based on evidence of an attack, it can alert other peers by sending an **Alert message** in the P2P network.
8061

8162
## Logs
8263

83-
Slips contains a minimal log file for reports received by other peers and peer updates in
84-
```output``` directory if not manually specified using the appropriate slips parameter upon start.
85-
Custom logger ```modules/fidesModule/utils/logger.py``` is used by Fide Module for internal logging. Either Slips' logging is used, or the custom logger is defaulted to logging via Python's printing function.
86-
87-
## Limitations
88-
89-
For now, slips supports the trust intelligence evaluation, global p2p is to be implemented.
64+
Slips contains a minimal log file for reports received by other peers and peer updates in the ```output``` directory if not manually specified using the appropriate slips parameter upon start.
65+
The custom logger ```modules/fidesModule/utils/logger.py``` code is used by the Fides Module for internal logging.
9066

9167
## Implementation notes and credit
92-
The mathematical models for trust evaluation were written by Lukáš Forst as part of his theses and can be accessed [here](https://github.com/LukasForst/fides/commits?author=LukasForst).
68+
The mathematical models for the trust evaluation were written by Lukáš Forst as part of his [Master Thesis](https://dspace.cvut.cz/handle/10467/101312).
9369

9470

95-
## TLDR;
71+
## Privacy
9672

97-
Slips (meaning Fides Module here) only shares trust level and confidence (numbers) generated by slips about IPs to the network,
98-
no private information is shared.
73+
Slips only shares the trust level and confidence values generated by Slips about IPs to the network, no more information.
128 KB
Loading
173 KB
Loading

0 commit comments

Comments
 (0)