forked from MoeBuTa/MTDSimTime
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
65 additions
and
59 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
1. set up new discrete event simulation structure: | ||
- get rid of the original `ActionManager` based structure | ||
- use [SimPy](https://simpy.readthedocs.io/en/latest/index.html) to manage the time simulation, event processing, interaction (interruption) | ||
- use [time generator](https://github.com/MoeBuTa/MTDSimTime/blob/main/mtdnetwork/component/time_generator.py) to generate exponential/normal/uniform/weibull/poisson variate | ||
|
||
2. set up new mtd action flow in [mtd_operation](https://github.com/MoeBuTa/MTDSimTime/blob/main/mtdnetwork/operation/mtd_operation.py): | ||
- introduce resource occupation mechanism: | ||
- MTD fetch resource when it executes, release resource when it completes | ||
- each resource has a `capacity` parameter (default=1) represents the number of available resource in the network. | ||
- two types of resource: network / application | ||
- network: [completetopologyshuffle](https://github.com/MoeBuTa/MTDSimTime/blob/main/mtdnetwork/mtd/completetopologyshuffle.py), [hosttoplogyshuffle](https://github.com/MoeBuTa/MTDSimTime/blob/main/mtdnetwork/mtd/hosttopologyshuffle.py), [ipshuffle](https://github.com/MoeBuTa/MTDSimTime/blob/main/mtdnetwork/mtd/ipshuffle.py) | ||
- application: [osdiversity](https://github.com/MoeBuTa/MTDSimTime/blob/main/mtdnetwork/mtd/osdiversity.py), [portshuffle](https://github.com/MoeBuTa/MTDSimTime/blob/main/mtdnetwork/mtd/portshuffle.py), [servicediversity](https://github.com/MoeBuTa/MTDSimTime/blob/main/mtdnetwork/mtd/servicediversity.py) | ||
- reserve: [usershuffle](https://github.com/MoeBuTa/MTDSimTime/blob/main/mtdnetwork/mtd/usershuffle.py) (_todo_) | ||
- interrupt attack process: | ||
- network MTD operation: any attack action -> scan_host | ||
- application MTD operation: (scan_port, exploit_vuln, brute_force) -> scan_port | ||
- | ||
|
||
3. Rework the attack profile to facilitate `SimPy` framework ([hacker](https://github.com/MoeBuTa/MTDSimTime/blob/New-Attack-Method/mtdnetwork/hacker.py) -> [adversary](https://github.com/MoeBuTa/MTDSimTime/blob/main/mtdnetwork/component/adversary.py)) | ||
- scan_host: merged start network enum and set up host enum | ||
- enum_host: merged start host enum and process host enum | ||
- scan_port: merged port scan and check pass reuse | ||
- exploit_vuln: merged find and exploit vulns | ||
- brute_force: merged start and process brute force | ||
- scan_neighbor: merged start and set up new neighbors | ||
|
||
|
||
4. Implement snapshot mechanism to save the state of the network object and the adversary object. Restrictions with generator object issues: | ||
- cannot save and maintain generator object generated by SimPy when saving | ||
- **solution**: [snapshot saving](https://github.com/MoeBuTa/MTDSimTime/tree/main/mtdnetwork/snapshot) [operation](https://github.com/MoeBuTa/MTDSimTime/tree/main/mtdnetwork/operation) | ||
- extract mtd_operation object from network object to handle state saving for network object | ||
- extract attack_operation object from adversary object to handle state saving for adversary object | ||
- introduce SnapshotCheckpoint to save and load files based on simulation time. | ||
|
||
5. Refactor [data collection and analysis](https://github.com/MoeBuTa/MTDSimTime/tree/main/mtdnetwork/statistic) | ||
|
||
6. implement three [MTD Schemes](https://github.com/MoeBuTa/MTDSimTime/tree/main/mtdnetwork/component/mtd_scheme): simultaneously, randomly, alternatively. | ||
|
||
7. implement evaluation metrics: Mean Time to Compromise, Attack Success Rate, MTD Execute Frequency. |
Binary file not shown.
Binary file not shown.
File renamed without changes.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.