-
Notifications
You must be signed in to change notification settings - Fork 788
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
920 changed files
with
32,756 additions
and
15,585 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,17 @@ | ||
[flake8] | ||
## Warn about linter issues. | ||
|
||
exclude = ../monkey/monkey_island/cc/ui, | ||
../monkey/common/cloud | ||
exclude = monkey/monkey_island/cc/ui,vulture_allowlist.py | ||
show-source = True | ||
max-complexity = 10 | ||
max-line-length = 127 | ||
max-line-length = 100 | ||
|
||
### ignore "whitespace before ':'", "line break before binary operator" for | ||
### compatibility with black, and cyclomatic complexity (for now). | ||
extend-ignore = E203, W503, C901 | ||
|
||
### --statistics Count the number of occurrences of each error/warning code and print a report. | ||
statistics = True | ||
|
||
### --count will print the total number of errors. | ||
count = True | ||
|
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,4 @@ | ||
monkey/tests/data_for_tests/ransomware_targets/** -text | ||
monkey/tests/data_for_tests/test_readme.txt -text | ||
monkey/tests/data_for_tests/stable_file.txt -text | ||
monkey/infection_monkey/ransomware/ransomware_readme.txt -text |
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
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
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,54 @@ | ||
default_stages: [commit] | ||
repos: | ||
- repo: https://github.com/pycqa/isort | ||
rev: 5.8.0 | ||
hooks: | ||
- id: isort | ||
name: isort (python) | ||
- id: isort | ||
name: isort (cython) | ||
types: [cython] | ||
- id: isort | ||
name: isort (pyi) | ||
types: [pyi] | ||
- repo: https://github.com/psf/black | ||
rev: 20.8b1 | ||
hooks: | ||
- id: black | ||
- repo: https://gitlab.com/pycqa/flake8 | ||
rev: 3.9.1 | ||
hooks: | ||
- id: flake8 | ||
additional_dependencies: [dlint] | ||
- repo: https://github.com/pre-commit/pre-commit-hooks | ||
rev: v3.4.0 | ||
hooks: | ||
- id: check-added-large-files | ||
- id: check-case-conflict | ||
- id: check-json | ||
- id: check-merge-conflict | ||
- id: detect-private-key | ||
- id: end-of-file-fixer | ||
- id: trailing-whitespace | ||
- repo: https://github.com/eslint/eslint | ||
rev: v7.24.0 | ||
hooks: | ||
- id: eslint | ||
args: ["monkey/monkey_island/cc/ui/src/", "--fix", "--max-warnings=0"] | ||
- repo: local | ||
hooks: | ||
- id: pytest | ||
name: pytest | ||
entry: bash -c "cd monkey && pytest" | ||
language: system | ||
files: "monkey/" | ||
exclude: "monkey/monkey_island/cc/ui" | ||
stages: [push] | ||
- repo: https://github.com/swimmio/pre-commit | ||
rev: v0.2 | ||
hooks: | ||
- id: swimm-verify | ||
- repo: https://github.com/jendrikseipp/vulture | ||
rev: v2.3 | ||
hooks: | ||
- id: vulture |
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 |
---|---|---|
@@ -1,92 +1,86 @@ | ||
{ | ||
"id": "AzD8XysWg1BBXCjCDkfq", | ||
"name": "Add a new configuration setting to the Agent ⚙", | ||
"dod": "Make the max victim number that Monkey will find before stopping configurable by the user instead of constant.", | ||
"description": "# Make something configurable\n\nIn this unit, you will learn how to add a configuration option to Monkey and how to use it in the Monkey Agent code. \n\n![computer fire](https://media.giphy.com/media/7J4P7cUur2DlErijp3/giphy.gif \"computer fire\")\n\n## Why is this important?\n\nEnabling users to configure the Monkey's behaviour gives them a lot more freedom in how they want to use the Monkey and enables more use cases.\n\n## What is \"Max victims to find\"?\n\nThe Monkey has a function which finds \"victim\" machines on the network for the Monkey to try and exploit. It's called `get_victim_machines`. This function accepts an argument which limits how many machines the Monkey should find.\n\nWe want to make that value editable by the user instead of constant in the code.\n\n## Manual testing\n\n1. After you've performed the required changes, reload the Server and check your value exists in the Internal tab of the config (see image).\n\n![](https://i.imgur.com/e0XAxuV.png)\n\n2. Set the new value to 1, and run Monkey locally (from source). See that the Monkey only scans one machine.", | ||
"summary": "* When changing config schema by adding or deleting keys, you need to update the Blackbox Test configurations as well [here](https://github.com/guardicore/monkey/tree/develop/envs/monkey_zoo/blackbox/island_configs).", | ||
"hunksOrder": [ | ||
"monkey/infection_monkey/config.py_0", | ||
"monkey/infection_monkey/monkey.py_0", | ||
"monkey/monkey_island/cc/services/config_schema/internal.py_0" | ||
], | ||
"tests": [], | ||
"hints": [ | ||
"Look for `victims_max_exploit` - it's rather similar." | ||
], | ||
"play_mode": "all", | ||
"swimmPatch": { | ||
"monkey/infection_monkey/config.py": { | ||
"diffType": "MODIFIED", | ||
"fileDiffHeader": "diff --git a/monkey/infection_monkey/config.py b/monkey/infection_monkey/config.py\nindex 1fbcb876..67ed19de 100644\n--- a/monkey/infection_monkey/config.py\n+++ b/monkey/infection_monkey/config.py", | ||
"hunks": [ | ||
{ | ||
"swimmHunkMetadata": { | ||
"hunkComments": [] | ||
}, | ||
"hunkDiffLines": [ | ||
"@@ -131,8 +131,6 @@", | ||
" exploiter_classes = []\r", | ||
" system_info_collector_classes = []\r", | ||
" \r", | ||
"- # how many victims to look for in a single scan iteration\r", | ||
"- victims_max_find = 100\r", | ||
" \r", | ||
" # how many victims to exploit before stopping\r", | ||
" victims_max_exploit = 100\r" | ||
] | ||
} | ||
"task": { | ||
"dod": "Make the max victim number that Monkey will find before stopping configurable by the user instead of constant.", | ||
"tests": [], | ||
"hints": [ | ||
"Look for `victims_max_exploit` - it's rather similar." | ||
] | ||
}, | ||
"content": [ | ||
{ | ||
"type": "text", | ||
"text": "# Make something configurable\n\nIn this unit, you will learn how to add a configuration option to Monkey and how to use it in the Monkey Agent code. \n\n![computer fire](https://media.giphy.com/media/7J4P7cUur2DlErijp3/giphy.gif \"computer fire\")\n\n## Why is this important?\n\nEnabling users to configure the Monkey's behaviour gives them a lot more freedom in how they want to use the Monkey and enables more use cases.\n\n## What is \"Max victims to find\"?\n\nThe Monkey has a function which finds \"victim\" machines on the network for the Monkey to try and exploit. It's called `get_victim_machines`. This function accepts an argument which limits how many machines the Monkey should find.\n\nWe want to make that value editable by the user instead of constant in the code.\n\n## Manual testing\n\n1. After you've performed the required changes, reload the Server and check your value exists in the Internal tab of the config (see image).\n\n![](https://i.imgur.com/e0XAxuV.png)\n\n2. Set the new value to 1, and run Monkey locally (from source). See that the Monkey only scans one machine." | ||
}, | ||
{ | ||
"type": "snippet", | ||
"path": "monkey/infection_monkey/config.py", | ||
"comments": [], | ||
"firstLineNumber": 124, | ||
"lines": [ | ||
" exploiter_classes = []", | ||
" system_info_collector_classes = []", | ||
" ", | ||
"* # how many victims to look for in a single scan iteration\r", | ||
"* victims_max_find = 100\r", | ||
" ", | ||
" # how many victims to exploit before stopping", | ||
" victims_max_exploit = 100" | ||
] | ||
}, | ||
"monkey/infection_monkey/monkey.py": { | ||
"diffType": "MODIFIED", | ||
"fileDiffHeader": "diff --git a/monkey/infection_monkey/monkey.py b/monkey/infection_monkey/monkey.py\nindex 444bde45..ff23f671 100644\n--- a/monkey/infection_monkey/monkey.py\n+++ b/monkey/infection_monkey/monkey.py", | ||
"hunks": [ | ||
{ | ||
"swimmHunkMetadata": { | ||
"hunkComments": [] | ||
}, | ||
"hunkDiffLines": [ | ||
"@@ -159,8 +159,6 @@", | ||
" if not self._keep_running or not WormConfiguration.alive:\r", | ||
" break\r", | ||
" \r", | ||
"- machines = self._network.get_victim_machines(max_find=WormConfiguration.victims_max_find,\r", | ||
"- stop_callback=ControlClient.check_for_stop)\r", | ||
" is_empty = True\r", | ||
" for machine in machines:\r", | ||
" if ControlClient.check_for_stop():\r" | ||
] | ||
} | ||
{ | ||
"type": "snippet", | ||
"path": "monkey/infection_monkey/monkey.py", | ||
"comments": [], | ||
"firstLineNumber": 220, | ||
"lines": [ | ||
" if not self._keep_running or not WormConfiguration.alive:", | ||
" break", | ||
" ", | ||
"* machines = self._network.get_victim_machines(", | ||
"* max_find=WormConfiguration.victims_max_find,", | ||
"* stop_callback=ControlClient.check_for_stop,", | ||
"* )", | ||
" is_empty = True", | ||
" for machine in machines:", | ||
" if ControlClient.check_for_stop():" | ||
] | ||
}, | ||
"monkey/monkey_island/cc/services/config_schema/internal.py": { | ||
"diffType": "MODIFIED", | ||
"fileDiffHeader": "diff --git a/monkey/monkey_island/cc/services/config_schema/internal.py b/monkey/monkey_island/cc/services/config_schema/internal.py\nindex bdbae246..d6042d35 100644\n--- a/monkey/monkey_island/cc/services/config_schema/internal.py\n+++ b/monkey/monkey_island/cc/services/config_schema/internal.py", | ||
"hunks": [ | ||
{ | ||
"swimmHunkMetadata": { | ||
"hunkComments": [] | ||
}, | ||
"hunkDiffLines": [ | ||
"@@ -40,12 +40,6 @@", | ||
" \"title\": \"Monkey\",\r", | ||
" \"type\": \"object\",\r", | ||
" \"properties\": {\r", | ||
"- \"victims_max_find\": {\r", | ||
"- \"title\": \"Max victims to find\",\r", | ||
"- \"type\": \"integer\",\r", | ||
"- \"default\": 100,\r", | ||
"- \"description\": \"Determines the maximum number of machines the monkey is allowed to scan\"\r", | ||
"- },\r", | ||
" \"victims_max_exploit\": {\r", | ||
" \"title\": \"Max victims to exploit\",\r", | ||
" \"type\": \"integer\",\r" | ||
] | ||
} | ||
{ | ||
"type": "snippet", | ||
"path": "monkey/monkey_island/cc/services/config_schema/internal.py", | ||
"comments": [], | ||
"firstLineNumber": 42, | ||
"lines": [ | ||
" \"title\": \"Monkey\",", | ||
" \"type\": \"object\",", | ||
" \"properties\": {", | ||
"* \"victims_max_find\": {", | ||
"* \"title\": \"Max victims to find\",", | ||
"* \"type\": \"integer\",", | ||
"* \"default\": 100,", | ||
"* \"description\": \"Determines the maximum number of machines the monkey is \"", | ||
"* \"allowed to scan\",", | ||
"* },", | ||
" \"victims_max_exploit\": {", | ||
" \"title\": \"Max victims to exploit\",", | ||
" \"type\": \"integer\"," | ||
] | ||
}, | ||
{ | ||
"type": "text", | ||
"text": "* When changing config schema by adding or deleting keys, you need to update the Blackbox Test configurations as well [here](https://github.com/guardicore/monkey/tree/develop/envs/monkey_zoo/blackbox/config_templates)." | ||
} | ||
}, | ||
"app_version": "0.3.5-1", | ||
"file_version": "1.0.4", | ||
"last_commit_sha_for_swimm_patch": "17ee823b086f0b027612e2d1864930d2c5593c3e" | ||
} | ||
], | ||
"symbols": {}, | ||
"file_version": "2.0.1", | ||
"meta": { | ||
"app_version": "0.4.9-1", | ||
"file_blobs": { | ||
"monkey/infection_monkey/config.py": "0bede1c57949987f5c8025bd9b8f7aa29d02a6af", | ||
"monkey/infection_monkey/monkey.py": "89d2fa8452dee70f6d2985a9bb452f0159ea8219", | ||
"monkey/monkey_island/cc/services/config_schema/internal.py": "1ce1c864b1df332b65e16b4ce9ed533affd73f9c" | ||
} | ||
} | ||
} |
Oops, something went wrong.