Commit Graph

6199 Commits

Author SHA1 Message Date
VakarisZ ace60052da Alter usages of telemetry collection in report to store/fetch system info telemetry using the Telemetry model
This is required to automatically encrypt/decrypt the telemetries and it's a good practice to have a DAL for telemetries
2021-09-24 13:31:26 +03:00
VakarisZ e6ad125be9 Change the telemetry model to have a method for fetching the telemetries based on queries.
Telemetry code mainly uses queries and mongoengine has no good way of field encryption, that's why this method prefers to handle queries rather than Telemetry models
2021-09-24 13:31:26 +03:00
VakarisZ 3781095f25 Change the mock database name to "db", because all of the codebase is using this database.
This change enables us to write unit tests without the need to patch the the database name in all of the mongo queries that look like "mongo.db.collection"
2021-09-24 13:31:26 +03:00
VakarisZ 1ab0fe7b13 Add Telemetry model 2021-09-24 13:31:26 +03:00
VakarisZ 989d0ffd84 Add unit tests for telemetry model 2021-09-24 13:31:26 +03:00
VakarisZ b2db5e77c4 Change test_string_list_encryptor.py to re-use fixture "uses_encryptor" rather than implementing the same fixture locally 2021-09-24 13:31:23 +03:00
VakarisZ 854ce4e1e1 Refactor DocumentEncryptor class into a series of methods.
DocumentEncryptor class serves no purpose because it holds no state, sensitive_fields can be passed as a parameter to methods
2021-09-24 13:30:28 +03:00
VakarisZ f3865d022b Change mongomock_fixtures.py to drop the whole database instead of specified collections.
This makes it easier to add new database related tests, because we no longer need to modify the mongomock_fixtures.py to also drop a particular collection we are testing.
2021-09-24 13:30:27 +03:00
VakarisZ f1c7cf4047 Generalize report_encryptor.py into document_encryptor.py and extract the sensitive fields to report_encryptor.py 2021-09-24 13:30:27 +03:00
Mike Salvatore 089158a976 Agent: Remove editable pyspnego degendency
pyspnego v0.2.0 has been released, so we no longer need to specify a git
commit hash in order to get the correct version.
2021-09-23 14:14:32 -04:00
Mike Salvatore 1996387cc5 Remove unnecessary # noqa: E402 from __init__.py files 2021-09-23 13:39:48 -04:00
Mike Salvatore f0a2a43d51 Remove unnecessary # noqa: F401 from __init__.py files 2021-09-23 13:38:47 -04:00
Mike Salvatore 8b7cb9c0b1
Merge pull request #1481 from guardicore/1471/merge-encryptions
Refactor encryptors
2021-09-23 13:38:00 -04:00
Ilija Lazoroski e2ede28967 Island: Rename get_encryptor and initialize_encryptor
Renamed to get_datastore_encryptor and
initialize_datastore_encryptor
2021-09-23 19:04:22 +02:00
Ilija Lazoroski e0779347b2 Island: Add all imports from encryption to __init__
Now the imports are shorter by one directory.
Check the __init__ in encryption.
2021-09-23 19:00:13 +02:00
Ilija Lazoroski 071a4eb1a7 Island: Add IEncryptor to __init__
Dnt abbrev in PassworBasedEncryptor and KeyBasedEncryptor
Add comment for review and evaluate the padding function
2021-09-23 17:52:15 +02:00
Ilija Lazoroski 1b91616778 Island: Add explanation for KBE and PBE
KeyBasedEncryptor and PasswordBasedEncryptor
2021-09-23 12:44:05 +02:00
Ilija Lazoroski a661dc4fe6 Island: Refactor encryptors
All encryptors are moved to server_utils/encryption.
They were renamed according to the class name.
Everywhere that we had use the encryptors I have updated the names.
Unit tests are also moved to UTs server_utils/encryption.
2021-09-22 22:48:13 +02:00
Ilija Lazoroski 803d1c910f Island: Separate password and key encryption 2021-09-22 18:10:16 +02:00
Mike Salvatore 380d0ee74f
Merge pull request #1479 from guardicore/1476/upgrade-python-deps
Update Python dependencies
2021-09-22 08:30:13 -04:00
Mike Salvatore 67b23c42bf Tests: Simplify test names in test_string_list_encryptor.py 2021-09-22 07:44:54 -04:00
Ilija Lazoroski 71d0cccdba Island: Update boto3, botocore and awscli
botocore is dependency of boto3 which is
then dependency of awscli.
2021-09-22 11:26:47 +02:00
Ilija Lazoroski 57bce38661 Agent: Upgrade urllib3 to 1.26.5
It should work because all the deps are
there.
2021-09-22 11:23:07 +02:00
VakarisZ ba4aabb67f
Merge pull request #1477 from guardicore/report_encryption
Report encryption
2021-09-22 11:48:22 +03:00
VakarisZ 88f3a2b9ca Add unit tests for string list encryptor 2021-09-22 10:23:41 +03:00
VakarisZ a1c0af4257 Improve readability and test empty list in test_report_model.py 2021-09-22 10:21:48 +03:00
Mike Salvatore 627a31c902 Island: Remove string_encryptor.py 2021-09-21 13:58:16 -04:00
Mike Salvatore 2ddd369afd Island: Move encode/decode dot mongo functions to Report model 2021-09-21 13:58:14 -04:00
Mike Salvatore f662369a07 Tests: Decouple test_report_model.py from StringListEncryptor 2021-09-21 12:51:55 -04:00
Mike Salvatore 13ba0b9091 Island: Rename FieldType to FieldEncryptor
* Switch FieldTypeABC from abstract class to interface, since there's no
  intention of ever implementing FieldTypeABC's methods.

* Rename FieldTypeABC to IFieldEncryptor and rename StringList to
  StringListEncryptor.
2021-09-21 12:30:35 -04:00
Mike Salvatore 96ac13c579
Merge pull request #1478 from guardicore/powershell-pth-on-windows
Powershell pth on windows
2021-09-21 08:14:45 -04:00
VakarisZ 5077d84269 Change report service to use report model.
Because report saving/fetching happens through model, model can encrypt/decrypt sensitive data
2021-09-21 10:45:39 +03:00
VakarisZ ea7a75df26 Add infrastructure for encrypting fields in database. 2021-09-21 10:43:34 +03:00
VakarisZ c7e91c5784 Add report model and a unit test for it's encryption 2021-09-21 10:39:39 +03:00
VakarisZ cf7b94613b Rename test_config_encryption.py to test_encryption.py
This change is done because the code being tested is in encryption.py, not in config_encryption.py
2021-09-21 10:25:48 +03:00
VakarisZ f61602552f Island: update dpath to the latest v2.0.5 and other packages version updates.
dpath lib had to be updated to get a bugfix
2021-09-21 10:19:21 +03:00
Mike Salvatore 8fc79c2fe3 Agent: Use pyspnego with bugfix to enable PowerShell PTH on Windows
Specify commit 3f748f21 of pyspnego, as this commit contains a bugfix
that allows Infection Monkey to launch pass-the-hash attacks from a
Windows attacker.
2021-09-20 20:43:00 -04:00
ilija-lazoroski 4afeba6334
Merge pull request #1475 from guardicore/1468/fix-nodejs-dependencies
Update nodejs dependencies
2021-09-20 09:58:59 +02:00
Mike Salvatore 844d244d67 Agent: Use NTLM specifically for PowerShell if using pass-the-hash 2021-09-17 11:43:06 -04:00
Mike Salvatore 79aacf3dcb Agent: Extract _get_*() functions from get_auth_options() 2021-09-17 11:42:52 -04:00
Mike Salvatore 444fb90f93 Agent: Return single AuthOptions from get_auth_options()
The test suite was overly complicated for get_auth_options(), which
indicated that, perhaps, the function itself was overly complicated.
Previously, it accepted a list of Credentials and returned a list of
AuthOptions. Now, it accepts a single Credentials object and returns a
single AuthOptions object. This simpler interface allowed the test suite
to be easier to read, while adding negligible complexity to
PowerShellExploiter._exploit_host()
2021-09-17 11:30:32 -04:00
Ilija Lazoroski 83615e8c66 UI: Upgrade babel/cli due to vuln in glob-parent 2021-09-17 16:22:28 +02:00
Ilija Lazoroski aac1b00553 UI: Replace node-sass with sass (Dart Sass)
Note: There are some annoying deprecation warnings
which come from bootstrap. Those can be dealt with
if we upgrade bootstrap.
2021-09-17 14:55:21 +02:00
Ilija Lazoroski f942e87b75 UI: Update npm webpack
Note: webpack doesn't have verbose option anymore
2021-09-17 14:02:33 +02:00
Mike Salvatore 9d07f82bd6 Fix typo in CHANGELOG 2021-09-17 07:46:27 -04:00
VakarisZ 5a8507e5c6 Add the removal of "Execution through the module load" T1129 attack technique to the CHANGELOG.md 2021-09-17 14:21:06 +03:00
VakarisZ b69916428b Remove T1129 attack technique from the codebase 2021-09-17 14:19:42 +03:00
Ilija Lazoroski 525a112eaa UI: Update npm version to 7.24.0 2021-09-17 12:27:57 +02:00
Ilija Lazoroski 43b1201751 UI: Update node dependencies using npm audit fix 2021-09-17 11:43:00 +02:00
VakarisZ a93d6361a3 Docs: fix broken scenario link in homepage_shortcuts.html 2021-09-16 14:46:31 +03:00