From 95b13f7d8d9949d435b9584163913a813e1fd2cc Mon Sep 17 00:00:00 2001 From: palaciosjeremias Date: Wed, 16 Dec 2020 16:23:32 -0300 Subject: [PATCH 01/20] Remove agent-info clean from agents ctx test cases --- .../test_authd/test_authd_agents_ctx.py | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/tests/integration/test_authd/test_authd_agents_ctx.py b/tests/integration/test_authd/test_authd_agents_ctx.py index af102f9824..3deeb279cb 100644 --- a/tests/integration/test_authd/test_authd_agents_ctx.py +++ b/tests/integration/test_authd/test_authd_agents_ctx.py @@ -65,7 +65,6 @@ def get_configuration(request): def clean_agents_ctx(): clean_keys() clean_groups() - clean_agentinfo() clean_rids() clean_agents_timestamp() clean_diff() @@ -104,15 +103,6 @@ def clean_diff(): except Exception as e: print('Failed to delete %s. Reason: %s' % (diff_path, e)) -def clean_agentinfo(): - agentinfo_folder = os.path.join(WAZUH_PATH, 'queue', 'agent-info') - for filename in os.listdir(agentinfo_folder): - file_path = os.path.join(agentinfo_folder, filename) - try: - os.unlink(file_path) - except Exception as e: - print('Failed to delete %s. Reason: %s' % (file_path, e)) - def clean_rids(): rids_folder = os.path.join(WAZUH_PATH, 'queue', 'rids') for filename in os.listdir(rids_folder): @@ -258,7 +248,7 @@ def register_agent_local_server(Name, Group=None, IP=None): # Tests def duplicate_ip_agent_delete_test(server): """Register a first agent, then register an agent with duplicated IP. - Check that client.keys, agent-info, agent-groups, agent-timestamp and agent diff were updated correctly + Check that client.keys, agent-groups, agent-timestamp and agent diff were updated correctly Parameters ---------- @@ -300,7 +290,7 @@ def duplicate_ip_agent_delete_test(server): def duplicate_name_agent_delete_test(server): """Register a first agent, then register an agent with duplicated Name. - Check that client.keys, agent-info, agent-groups, agent-timestamp and agent diff were updated correctly + Check that client.keys, agent-groups, agent-timestamp and agent diff were updated correctly Parameters ---------- From 278957b7a7624ad754b0fd00c541083097521bfd Mon Sep 17 00:00:00 2001 From: pereyra-m Date: Tue, 22 Dec 2020 17:35:36 -0300 Subject: [PATCH 02/20] Relocating SCA tests to new legacy folder --- .../test_sca/test_basic_usage/data/sca_commands_test_suite.yml | 0 .../test_sca/test_basic_usage/data/sca_compare_test_suite.yml | 0 .../test_sca/test_basic_usage/data/sca_condition_test_suite.yml | 0 .../test_sca/test_basic_usage/data/sca_directories_test_suite.yml | 0 .../test_sca/test_basic_usage/data/sca_files_test_suite.yml | 0 .../test_sca/test_basic_usage/data/sca_negation_test_suite.yml | 0 .../test_sca/test_basic_usage/data/sca_processes_test_suite.yml | 0 .../test_sca/test_basic_usage/data/sca_repeated_global_ids_1.yml | 0 .../test_sca/test_basic_usage/data/sca_repeated_global_ids_2.yml | 0 .../test_sca/test_basic_usage/data/sca_repeated_local_ids.yml | 0 .../test_basic_usage/data/sca_win_registry_test_suite.yml | 0 .../test_basic_usage/data/set_linux_config_to_compliance.sh | 0 12 files changed, 0 insertions(+), 0 deletions(-) rename tests/{integration => legacy}/test_sca/test_basic_usage/data/sca_commands_test_suite.yml (100%) rename tests/{integration => legacy}/test_sca/test_basic_usage/data/sca_compare_test_suite.yml (100%) rename tests/{integration => legacy}/test_sca/test_basic_usage/data/sca_condition_test_suite.yml (100%) rename tests/{integration => legacy}/test_sca/test_basic_usage/data/sca_directories_test_suite.yml (100%) rename tests/{integration => legacy}/test_sca/test_basic_usage/data/sca_files_test_suite.yml (100%) rename tests/{integration => legacy}/test_sca/test_basic_usage/data/sca_negation_test_suite.yml (100%) rename tests/{integration => legacy}/test_sca/test_basic_usage/data/sca_processes_test_suite.yml (100%) rename tests/{integration => legacy}/test_sca/test_basic_usage/data/sca_repeated_global_ids_1.yml (100%) rename tests/{integration => legacy}/test_sca/test_basic_usage/data/sca_repeated_global_ids_2.yml (100%) rename tests/{integration => legacy}/test_sca/test_basic_usage/data/sca_repeated_local_ids.yml (100%) rename tests/{integration => legacy}/test_sca/test_basic_usage/data/sca_win_registry_test_suite.yml (100%) rename tests/{integration => legacy}/test_sca/test_basic_usage/data/set_linux_config_to_compliance.sh (100%) diff --git a/tests/integration/test_sca/test_basic_usage/data/sca_commands_test_suite.yml b/tests/legacy/test_sca/test_basic_usage/data/sca_commands_test_suite.yml similarity index 100% rename from tests/integration/test_sca/test_basic_usage/data/sca_commands_test_suite.yml rename to tests/legacy/test_sca/test_basic_usage/data/sca_commands_test_suite.yml diff --git a/tests/integration/test_sca/test_basic_usage/data/sca_compare_test_suite.yml b/tests/legacy/test_sca/test_basic_usage/data/sca_compare_test_suite.yml similarity index 100% rename from tests/integration/test_sca/test_basic_usage/data/sca_compare_test_suite.yml rename to tests/legacy/test_sca/test_basic_usage/data/sca_compare_test_suite.yml diff --git a/tests/integration/test_sca/test_basic_usage/data/sca_condition_test_suite.yml b/tests/legacy/test_sca/test_basic_usage/data/sca_condition_test_suite.yml similarity index 100% rename from tests/integration/test_sca/test_basic_usage/data/sca_condition_test_suite.yml rename to tests/legacy/test_sca/test_basic_usage/data/sca_condition_test_suite.yml diff --git a/tests/integration/test_sca/test_basic_usage/data/sca_directories_test_suite.yml b/tests/legacy/test_sca/test_basic_usage/data/sca_directories_test_suite.yml similarity index 100% rename from tests/integration/test_sca/test_basic_usage/data/sca_directories_test_suite.yml rename to tests/legacy/test_sca/test_basic_usage/data/sca_directories_test_suite.yml diff --git a/tests/integration/test_sca/test_basic_usage/data/sca_files_test_suite.yml b/tests/legacy/test_sca/test_basic_usage/data/sca_files_test_suite.yml similarity index 100% rename from tests/integration/test_sca/test_basic_usage/data/sca_files_test_suite.yml rename to tests/legacy/test_sca/test_basic_usage/data/sca_files_test_suite.yml diff --git a/tests/integration/test_sca/test_basic_usage/data/sca_negation_test_suite.yml b/tests/legacy/test_sca/test_basic_usage/data/sca_negation_test_suite.yml similarity index 100% rename from tests/integration/test_sca/test_basic_usage/data/sca_negation_test_suite.yml rename to tests/legacy/test_sca/test_basic_usage/data/sca_negation_test_suite.yml diff --git a/tests/integration/test_sca/test_basic_usage/data/sca_processes_test_suite.yml b/tests/legacy/test_sca/test_basic_usage/data/sca_processes_test_suite.yml similarity index 100% rename from tests/integration/test_sca/test_basic_usage/data/sca_processes_test_suite.yml rename to tests/legacy/test_sca/test_basic_usage/data/sca_processes_test_suite.yml diff --git a/tests/integration/test_sca/test_basic_usage/data/sca_repeated_global_ids_1.yml b/tests/legacy/test_sca/test_basic_usage/data/sca_repeated_global_ids_1.yml similarity index 100% rename from tests/integration/test_sca/test_basic_usage/data/sca_repeated_global_ids_1.yml rename to tests/legacy/test_sca/test_basic_usage/data/sca_repeated_global_ids_1.yml diff --git a/tests/integration/test_sca/test_basic_usage/data/sca_repeated_global_ids_2.yml b/tests/legacy/test_sca/test_basic_usage/data/sca_repeated_global_ids_2.yml similarity index 100% rename from tests/integration/test_sca/test_basic_usage/data/sca_repeated_global_ids_2.yml rename to tests/legacy/test_sca/test_basic_usage/data/sca_repeated_global_ids_2.yml diff --git a/tests/integration/test_sca/test_basic_usage/data/sca_repeated_local_ids.yml b/tests/legacy/test_sca/test_basic_usage/data/sca_repeated_local_ids.yml similarity index 100% rename from tests/integration/test_sca/test_basic_usage/data/sca_repeated_local_ids.yml rename to tests/legacy/test_sca/test_basic_usage/data/sca_repeated_local_ids.yml diff --git a/tests/integration/test_sca/test_basic_usage/data/sca_win_registry_test_suite.yml b/tests/legacy/test_sca/test_basic_usage/data/sca_win_registry_test_suite.yml similarity index 100% rename from tests/integration/test_sca/test_basic_usage/data/sca_win_registry_test_suite.yml rename to tests/legacy/test_sca/test_basic_usage/data/sca_win_registry_test_suite.yml diff --git a/tests/integration/test_sca/test_basic_usage/data/set_linux_config_to_compliance.sh b/tests/legacy/test_sca/test_basic_usage/data/set_linux_config_to_compliance.sh similarity index 100% rename from tests/integration/test_sca/test_basic_usage/data/set_linux_config_to_compliance.sh rename to tests/legacy/test_sca/test_basic_usage/data/set_linux_config_to_compliance.sh From 6b3acb816ea7cfe7e328562213b655466d4d77e6 Mon Sep 17 00:00:00 2001 From: pereyra-m Date: Tue, 22 Dec 2020 19:36:03 -0300 Subject: [PATCH 03/20] Creating a documentation file for SCA tests --- tests/legacy/test_sca/README.md | 111 ++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 tests/legacy/test_sca/README.md diff --git a/tests/legacy/test_sca/README.md b/tests/legacy/test_sca/README.md new file mode 100644 index 0000000000..4e36ba9d5d --- /dev/null +++ b/tests/legacy/test_sca/README.md @@ -0,0 +1,111 @@ +# SCA tests + + +This tests are not part of the current testing framework for Wazuh, so they have to be executed manually. The necessary instructions are described below. + +## Introduction +---------------- + + +A brief knowledge of SCA is recommended, the documentation covers it in detail in [How SCA works](https://documentation.wazuh.com/4.0/user-manual/capabilities/sec-config-assessment/how_it_works.html). Also, there is a blog post about [Security Configuration Assessment](https://wazuh.com/blog/security-configuration-assessment/). + +Basically, the tests inside **data** folder contain different _.yml_ policies that will test the general capabilities of **SCA**. It will be necessary to install a Manager and register an agent. There is more information about this part of the process in the [Installation Guide](https://documentation.wazuh.com/4.0/installation-guide/index.html). + +## Directory structure +---------------------- + + ├── test_basic_usage/data + │ ├── sca_commands_test_suite.yml + │ ├── sca_compare_test_suite.yml + │ ├── sca_condition_test_suite.yml + │ ├── sca_directories_test_suite.yml + │ ├── sca_files_test_suite.yml + │ ├── sca_negation_test_suite.yml + │ ├── sca_processes_test_suite.yml + │ ├── sca_repeated_global_ids_1.yml # Will be skipped + │ ├── sca_repeated_global_ids_2.yml # Will be skipped + │ ├── sca_repeated_local.yml # Will be skipped + │ ├── sca_win_registry_test_suite.yml + │ ├── set_linux_config_to_compliance.sh # Script to improve the SCA score + | + ├── README.md + +## Test execution +----------------- + +The **SCA** module has to be enabled in the agent + +``` + + yes + yes + 12h + yes + +``` + +And the test policies have to copied to __INSTALL_DIR/ruleset/sca__. +Then restart the agent to force the policy evaluation. + +## Results +---------- + +The agent will log to __ossec.log__ these type of messages + +``` + sca: INFO: Starting evaluation of policy: 'policy.yml' + sca: INFO: Evaluation finished for policy: 'policy.yml' +``` + +Some scans will not be performed, because there are some policies that have the same ID on purpose to test this situation. For example: + +``` +sca: WARNING: Found duplicated check ID: 200100. First appearance at policy 'sca_files_test_suite' +sca: WARNING: Error found while validating policy file: '/var/ossec/ruleset/sca/sca_repeated_global_ids_1.yml'. Skipping it. +``` + +After all the scans finish, the results can be checked in the Master with this API request + +``` +curl -k -X GET "https://localhost:55000/sca/001?pretty=true" -H "Authorization: Bearer $TOKEN" +``` +``` + ... + { + "invalid": 6, + "total_checks": 24, + "fail": 11, + "references": "NULL", + "description": "This document includes file rules for testing purposes with the syntax rule of Wazuh v3.10.0", + "start_scan": "2020-12-22T20:16:26Z", + "hash_file": "8688d6b8ae1828f9512d3dc9b68b904d8d08cde1f8709d76cdb9954f382656f2", + "name": "Test suite for conditions.", + "pass": 7, + "policy_id": "sca_condition_test_suite", + "score": 38, + "end_scan": "2020-12-22T20:16:26Z" + }, + ... +``` + +This results and those described in the test must be equal + +``` +... + policy: + id: sca_condition_test_suite + file: sca_condition_test_suite.yml + name: Test suite for conditions. + description: This document includes file rules for testing purposes with the syntax rule of Wazuh v3.10.0 + ############### Expected results + # Pass = 7 + # Fail = 11 + # Invalid = 6 + # Total checks = 24 +... +``` + +## Compliance script +-------------------- + +The _set_linux_config_to_compliance.sh_ script modifies some configurations in a Linux environment to improve the tests scores for policies like _cis_debian9_L1.yml_ and _cis_debian9_L2.yml_. \ No newline at end of file From a771a659ad687a97bf80fccf7cd058dad6cbfe8e Mon Sep 17 00:00:00 2001 From: pereyra-m Date: Tue, 22 Dec 2020 19:40:00 -0300 Subject: [PATCH 04/20] Updating the expected results for some SCA tests --- .../test_basic_usage/data/sca_commands_test_suite.yml | 6 +++--- .../test_basic_usage/data/sca_compare_test_suite.yml | 2 +- .../test_basic_usage/data/sca_directories_test_suite.yml | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/legacy/test_sca/test_basic_usage/data/sca_commands_test_suite.yml b/tests/legacy/test_sca/test_basic_usage/data/sca_commands_test_suite.yml index 0fe9f71d9d..2b5eb44589 100644 --- a/tests/legacy/test_sca/test_basic_usage/data/sca_commands_test_suite.yml +++ b/tests/legacy/test_sca/test_basic_usage/data/sca_commands_test_suite.yml @@ -15,7 +15,7 @@ policy: # Passed = 2 # Failed = 2 # Invalid = 3 -# Total checks = 6 +# Total checks = 7 checks: - id: 300100 @@ -35,13 +35,13 @@ checks: condition: any rules: - c:echo -n ABC -> r:CBA - + - id: 300103 title: PASS -- Negate yield ABC and try to find CBA condition: any rules: - not c:echo -n ABC -> r:CBA - + - id: 300104 title: INVALID -- Command does not exist (will trigger leak reports due to execvp failing) condition: any diff --git a/tests/legacy/test_sca/test_basic_usage/data/sca_compare_test_suite.yml b/tests/legacy/test_sca/test_basic_usage/data/sca_compare_test_suite.yml index 83568b1f7a..2f63f79c94 100644 --- a/tests/legacy/test_sca/test_basic_usage/data/sca_compare_test_suite.yml +++ b/tests/legacy/test_sca/test_basic_usage/data/sca_compare_test_suite.yml @@ -15,7 +15,7 @@ policy: # Pass = 6 # Fail = 1 # Invalid = 7 -# Total checks = 13 +# Total checks = 14 checks: diff --git a/tests/legacy/test_sca/test_basic_usage/data/sca_directories_test_suite.yml b/tests/legacy/test_sca/test_basic_usage/data/sca_directories_test_suite.yml index 45d57a0c61..b2f61c5e4c 100644 --- a/tests/legacy/test_sca/test_basic_usage/data/sca_directories_test_suite.yml +++ b/tests/legacy/test_sca/test_basic_usage/data/sca_directories_test_suite.yml @@ -12,10 +12,10 @@ policy: name: Test suite for directories rules description: This document includes directories rules for testing purposes with the syntax rule of Wazuh v3.10.0 ############### Expected results -# Passed = 8 -# Failed = 8 -# Invalid = 2 -# Total checks = 18 +# Passed = 12 +# Failed = 9 +# Invalid = 4 +# Total checks = 25 # Directory checks checks: ################################# From 815a1ab1c8023ab5575b7ec5a98908166dcf56ef Mon Sep 17 00:00:00 2001 From: pereyra-m Date: Tue, 22 Dec 2020 19:57:20 -0300 Subject: [PATCH 05/20] Fixing some typo and redaction issues --- tests/legacy/test_sca/README.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/tests/legacy/test_sca/README.md b/tests/legacy/test_sca/README.md index 4e36ba9d5d..9e37260f07 100644 --- a/tests/legacy/test_sca/README.md +++ b/tests/legacy/test_sca/README.md @@ -1,11 +1,10 @@ # SCA tests -This tests are not part of the current testing framework for Wazuh, so they have to be executed manually. The necessary instructions are described below. +These tests are not part of the current testing framework for Wazuh, so they have to be executed manually. The necessary instructions are described below. ## Introduction ----------------- - +--------------- A brief knowledge of SCA is recommended, the documentation covers it in detail in [How SCA works](https://documentation.wazuh.com/4.0/user-manual/capabilities/sec-config-assessment/how_it_works.html). Also, there is a blog post about [Security Configuration Assessment](https://wazuh.com/blog/security-configuration-assessment/). @@ -22,9 +21,9 @@ Basically, the tests inside **data** folder contain different _.yml_ policies th │ ├── sca_files_test_suite.yml │ ├── sca_negation_test_suite.yml │ ├── sca_processes_test_suite.yml - │ ├── sca_repeated_global_ids_1.yml # Will be skipped - │ ├── sca_repeated_global_ids_2.yml # Will be skipped - │ ├── sca_repeated_local.yml # Will be skipped + │ ├── sca_repeated_global_ids_1.yml # Will be skipped + │ ├── sca_repeated_global_ids_2.yml # Will be skipped + │ ├── sca_repeated_local.yml # Will be skipped │ ├── sca_win_registry_test_suite.yml │ ├── set_linux_config_to_compliance.sh # Script to improve the SCA score | @@ -45,7 +44,7 @@ The **SCA** module has to be enabled in the agent ``` And the test policies have to copied to __INSTALL_DIR/ruleset/sca__. -Then restart the agent to force the policy evaluation. +Then, restart the agent to force the policy evaluation. ## Results ---------- @@ -88,7 +87,7 @@ curl -k -X GET "https://localhost:55000/sca/001?pretty=true" -H "Authorization: ... ``` -This results and those described in the test must be equal +The scan results and those described in the test must be equal ``` ... @@ -108,4 +107,4 @@ This results and those described in the test must be equal ## Compliance script -------------------- -The _set_linux_config_to_compliance.sh_ script modifies some configurations in a Linux environment to improve the tests scores for policies like _cis_debian9_L1.yml_ and _cis_debian9_L2.yml_. \ No newline at end of file +The _set_linux_config_to_compliance.sh_ script modifies some configurations in a Linux environment to improve the tests scores for policies like _cis_debian9_L1.yml_ and _cis_debian9_L2.yml_. From 33fc48d20eed666b0fadd125d8eb53487e517060 Mon Sep 17 00:00:00 2001 From: pereyra-m Date: Wed, 23 Dec 2020 13:18:12 -0300 Subject: [PATCH 06/20] Updating README.md with review comments --- tests/legacy/test_sca/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/legacy/test_sca/README.md b/tests/legacy/test_sca/README.md index 9e37260f07..095edf97c3 100644 --- a/tests/legacy/test_sca/README.md +++ b/tests/legacy/test_sca/README.md @@ -63,7 +63,7 @@ sca: WARNING: Found duplicated check ID: 200100. First appearance at policy 'sca sca: WARNING: Error found while validating policy file: '/var/ossec/ruleset/sca/sca_repeated_global_ids_1.yml'. Skipping it. ``` -After all the scans finish, the results can be checked in the Master with this API request +After all the scans finish, the results can be checked in the manager with this API request ``` curl -k -X GET "https://localhost:55000/sca/001?pretty=true" -H "Authorization: Bearer $TOKEN" From 3f596a4f1b1388653126adcfec2e56eea9a09105 Mon Sep 17 00:00:00 2001 From: pereyra-m Date: Wed, 23 Dec 2020 20:12:45 -0300 Subject: [PATCH 07/20] Fixing rules ID array for test_rules.py --- .../integration/test_gcloud/test_functioning/test_rules.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/integration/test_gcloud/test_functioning/test_rules.py b/tests/integration/test_gcloud/test_functioning/test_rules.py index cfed48cb15..8e3b959b22 100644 --- a/tests/integration/test_gcloud/test_functioning/test_rules.py +++ b/tests/integration/test_gcloud/test_functioning/test_rules.py @@ -84,10 +84,13 @@ def test_rules(get_configuration, configure_environment, rules_id = [] file_ind = 0 - for number in range(65004, 65037): + for number in range(65005, 65011): rules_id.append(number) - for number in range(65039, 65045): + for number in range(65012, 65039): + rules_id.append(number) + + for number in range(65041, 65047): rules_id.append(number) events_file = open(file_path, 'r') From a85526eb0987d3c8a154f572916680448030c7ab Mon Sep 17 00:00:00 2001 From: pereyra-m Date: Wed, 23 Dec 2020 20:42:12 -0300 Subject: [PATCH 08/20] Improving the gcp-pubsub JSON field search --- .../test_configuration/test_remote_configuration.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tests/integration/test_gcloud/test_configuration/test_remote_configuration.py b/tests/integration/test_gcloud/test_configuration/test_remote_configuration.py index a9f47d6700..758beac942 100644 --- a/tests/integration/test_gcloud/test_configuration/test_remote_configuration.py +++ b/tests/integration/test_gcloud/test_configuration/test_remote_configuration.py @@ -94,13 +94,9 @@ def get_remote_configuration(component_name, config): try: if rec_msg_ok.startswith('ok'): remote_configuration = json.loads(rec_msg) - if host_type == 'server': - remote_configuration_gcp = remote_configuration['wmodules'][6]['gcp-pubsub'] - else: - if sys.platform == 'darwin': - remote_configuration_gcp = remote_configuration['wmodules'][3]['gcp-pubsub'] - else: - remote_configuration_gcp = remote_configuration['wmodules'][5]['gcp-pubsub'] + for element in remote_configuration['wmodules']: + if 'gcp-pubsub' in element: + remote_configuration_gcp = element['gcp-pubsub'] else: s.close() raise ValueError(rec_msg_ok) From 1d9b30381d042bb123de3a58b3ef441126888db1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20L=C3=B3pez=20S=C3=A1nchez?= Date: Thu, 24 Dec 2020 10:10:11 +0100 Subject: [PATCH 09/20] Skip/xfail tests for deprecated or in development features. (#993) --- .../test_behind_proxy_server/test_behind_proxy_server.py | 1 + .../test_cluster/test_key_polling/test_key_polling_master.py | 2 +- .../test_cluster/test_key_polling/test_key_polling_worker.py | 2 +- .../test_agent_key_polling/test_agent_key_polling.py | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/integration/test_api/test_config/test_behind_proxy_server/test_behind_proxy_server.py b/tests/integration/test_api/test_config/test_behind_proxy_server/test_behind_proxy_server.py index a84387e506..679c6f02db 100644 --- a/tests/integration/test_api/test_config/test_behind_proxy_server/test_behind_proxy_server.py +++ b/tests/integration/test_api/test_config/test_behind_proxy_server/test_behind_proxy_server.py @@ -35,6 +35,7 @@ def get_configuration(request): # Tests +@pytest.mark.xfail(reason='To be deprecated in https://github.com/wazuh/wazuh/issues/7006') @pytest.mark.parametrize('tags_to_apply', [ {'bps_enabled'}, {'bps_disabled'}, diff --git a/tests/integration/test_cluster/test_key_polling/test_key_polling_master.py b/tests/integration/test_cluster/test_key_polling/test_key_polling_master.py index 46d84b03de..fe0390fb84 100644 --- a/tests/integration/test_cluster/test_key_polling/test_key_polling_master.py +++ b/tests/integration/test_cluster/test_key_polling/test_key_polling_master.py @@ -60,6 +60,7 @@ def get_configuration(request): # Tests +@pytest.mark.skip(reason='Development in progress: https://github.com/wazuh/wazuh/issues/4387') @pytest.mark.parametrize('cmd, counter, payload, expected', [ (b'run_keypoll', 1, b'{"message": "id:001"}', "id:001"), (b'run_keypoll', 2, b'{"message": "ip:124.0.0.1"}', "ip:124.0.0.1") @@ -85,7 +86,6 @@ def test_key_polling_master(cmd, counter, payload, expected, configure_environme expected : str Expected message in krequest socket """ - pytest.xfail("Development in progress: https://github.com/wazuh/wazuh/issues/4387") # Build message and send it to the master message = cluster_msg_build(cmd=cmd, counter=counter, payload=payload, encrypt=True) receiver_sockets[0].send(message) diff --git a/tests/integration/test_cluster/test_key_polling/test_key_polling_worker.py b/tests/integration/test_cluster/test_key_polling/test_key_polling_worker.py index 30b5041065..b6dc4fb77f 100644 --- a/tests/integration/test_cluster/test_key_polling/test_key_polling_worker.py +++ b/tests/integration/test_cluster/test_key_polling/test_key_polling_worker.py @@ -55,6 +55,7 @@ def get_configuration(request): # Tests +@pytest.mark.skip(reason='Development in progress: https://github.com/wazuh/wazuh/issues/4387') @pytest.mark.parametrize('cmd, counter, payload', [ (b'run_keypoll', 1, b'{"message": "id:001"}'), (b'run_keypoll', 2, b'{"message": "ip:124.0.0.1"}') @@ -78,7 +79,6 @@ def test_key_polling_worker(cmd, counter, payload, configure_environment, config payload : bytes Cluster message payload data """ - pytest.xfail("Development in progress: https://github.com/wazuh/wazuh/issues/4387") # Build message to send to c-internal.sock in the worker and send it message = cluster_msg_build(cmd=cmd, counter=counter, payload=payload, encrypt=False) receiver_sockets[0].send(message) diff --git a/tests/system/test_cluster/test_agent_key_polling/test_agent_key_polling.py b/tests/system/test_cluster/test_agent_key_polling/test_agent_key_polling.py index 93f4c28216..a709319677 100644 --- a/tests/system/test_cluster/test_agent_key_polling/test_agent_key_polling.py +++ b/tests/system/test_cluster/test_agent_key_polling/test_agent_key_polling.py @@ -33,6 +33,7 @@ def configure_environment(host_manager): host_manager.clear_file(host='wazuh-agent2', file_path=os.path.join(WAZUH_LOGS_PATH, 'ossec.log')) +@pytest.mark.skip(reason='Development in progress: https://github.com/wazuh/wazuh/issues/4387') def test_agent_key_polling(inventory_path): """Check that the agent key polling cycle works correctly. To do this, we use the messages and the hosts defined in data/messages.yml and the hosts inventory. @@ -42,7 +43,6 @@ def test_agent_key_polling(inventory_path): inventory_path : str Path to the Ansible hosts inventory """ - pytest.xfail("Development in progress: https://github.com/wazuh/wazuh/issues/4387") actual_path = os.path.dirname(os.path.abspath(__file__)) host_manager = HostManager(inventory_path=inventory_path) configure_environment(host_manager) From fb6f0a052e520da168ee952dc92e5c286403e948 Mon Sep 17 00:00:00 2001 From: palaciosjeremias Date: Wed, 23 Dec 2020 20:28:18 -0300 Subject: [PATCH 10/20] WPK agent test with parametrized upgrade version --- tests/integration/README.md | 1 + tests/integration/conftest.py | 10 ++++++++++ tests/integration/test_wpk/test_wpk_agent.py | 18 ++++++++++++------ 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/tests/integration/README.md b/tests/integration/README.md index 2936a96875..0cb65d8a74 100644 --- a/tests/integration/README.md +++ b/tests/integration/README.md @@ -367,6 +367,7 @@ python3 -m pytest [options] [file_or_dir] [file_or_dir] [...] is not met before the given time lapse. Some tests make use of this value and other has other fixed timeout that cannot be modified. - `--fim_mode`: Specify the mode of execution of the FIM tests. (ex. --fim_mode="scheduled"). To run the test in realtime and whodata the option must be specified twice: --fim_mode="realtime" --fim_mode="whodata". If the option is not specified, the test will run using scheduled, whodata and realtime. +- `--wpk_version`: Specify the WPK package version used to upgrade on WPK tests. Required. (ex. --wpk_version=v4.2.0). _Use `-h` to see the rest or check its [documentation](https://docs.pytest.org/en/latest/usage.html)._ diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index d81b58ef1f..985069dca6 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -173,6 +173,14 @@ def pytest_addoption(parser): type=str, help="run tests using a specific FIM mode" ) + parser.addoption( + "--wpk_version", + action="append", + metavar="wpk_version", + default=None, + type=str, + help="run tests using a specific WPK package version" + ) def pytest_configure(config): @@ -217,6 +225,8 @@ def pytest_configure(config): mode = ["scheduled", "whodata", "realtime"] global_parameters.fim_mode = mode + # Set WPK package version + global_parameters.wpk_version = config.getoption("--wpk_version") def pytest_html_results_table_header(cells): cells.insert(4, html.th('Tier', class_='sortable tier', col='tier')) diff --git a/tests/integration/test_wpk/test_wpk_agent.py b/tests/integration/test_wpk/test_wpk_agent.py index 09926fee18..b2d0556c78 100644 --- a/tests/integration/test_wpk/test_wpk_agent.py +++ b/tests/integration/test_wpk/test_wpk_agent.py @@ -19,6 +19,7 @@ from wazuh_testing.tools.file import truncate_file from wazuh_testing.tools.remoted_sim import RemotedSimulator from wazuh_testing.tools.services import control_service +from wazuh_testing import global_parameters pytestmark = [pytest.mark.linux, pytest.mark.win32, pytest.mark.tier(level=0), pytest.mark.agent] @@ -36,7 +37,9 @@ CRYPTO = "aes" SERVER_ADDRESS = 'localhost' PROTOCOL = "tcp" -version_to_upgrade = 'v4.1.0' +if not global_parameters.wpk_version: + raise Exception("The WPK package version must be defined by parameter. See README.md") +version_to_upgrade = global_parameters.wpk_version[0] # Test will varying according to agent version. This test should be tried @@ -60,7 +63,8 @@ def get_current_version(): _agent_version = get_current_version() error_msg = '' -if _agent_version == version_to_upgrade: +ver_split = _agent_version.replace("v", "").split(".") +if int(ver_split[0])>=4 and int(ver_split[1])>=1: error_msg = 'Could not chmod' \ if platform.system() == 'Linux' else \ 'Error executing command' @@ -70,7 +74,7 @@ def get_current_version(): 'err Cannot execute installer' test_metadata = [ - # 1. Upgrade from initial_version to v4.1.0 + # 1. Upgrade from initial_version to new version { 'protocol': PROTOCOL, 'initial_version': _agent_version, @@ -140,9 +144,9 @@ def get_current_version(): }] elif _agent_version == version_to_upgrade: test_metadata += [{ - # 5. Simulate a rollback (v4.1.0) + # 5. Simulate a rollback (new version) 'protocol': PROTOCOL, - 'initial_version': 'v4.1.0', + 'initial_version': version_to_upgrade, 'agent_version': version_to_upgrade, 'use_http': False, 'upgrade_script': DEFAULT_UPGRADE_SCRIPT, @@ -210,7 +214,9 @@ def start_agent(request, get_configuration): mode='CONTROLED_ACK', start_on_init=False, client_keys=CLIENT_KEYS_PATH) - if _agent_version == 'v4.1.0': + + ver_split = _agent_version.replace("v", "").split(".") + if int(ver_split[0])>=4 and int(ver_split[1])>=1: remoted_simulator.setWcomMessageVersion('4.1') else: remoted_simulator.setWcomMessageVersion(None) From e5788a84d4274071327c104c9534d30cb6a1c283 Mon Sep 17 00:00:00 2001 From: palaciosjeremias Date: Thu, 24 Dec 2020 11:03:52 -0300 Subject: [PATCH 11/20] Update README --- tests/integration/README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/integration/README.md b/tests/integration/README.md index 0cb65d8a74..d2e15650ef 100644 --- a/tests/integration/README.md +++ b/tests/integration/README.md @@ -141,13 +141,19 @@ Finally, copy your `wazuh-qa` repository within your testing environment and you Our newest integration tests are located in `wazuh-qa/tests/integration/`. They are organized by capabilities: +- _test_agentd_ - _test_analysisd_ +- _test_api_ +- _test_authd_ - _test_cluster_ - _test_fim_ - _test_gcloud_ -- _test_mitre_ +- _test_logtest_ +- _test_rids_ +- _test_rootcheck_ +- _test_vulnerability_detector_ - _test_wazuh_db_ -- _test_sca_ +- _test_wpk_ Every group will have the following structure: @@ -367,7 +373,7 @@ python3 -m pytest [options] [file_or_dir] [file_or_dir] [...] is not met before the given time lapse. Some tests make use of this value and other has other fixed timeout that cannot be modified. - `--fim_mode`: Specify the mode of execution of the FIM tests. (ex. --fim_mode="scheduled"). To run the test in realtime and whodata the option must be specified twice: --fim_mode="realtime" --fim_mode="whodata". If the option is not specified, the test will run using scheduled, whodata and realtime. -- `--wpk_version`: Specify the WPK package version used to upgrade on WPK tests. Required. (ex. --wpk_version=v4.2.0). +- `--wpk_version`: Specify the WPK package version used to upgrade on WPK tests. (ex. --wpk_version=v4.2.0). Note: This field is required to execute any WPK test and the WPK package must be previously created in the [repository](packages-dev.wazuh.com/trash/wpk/). _Use `-h` to see the rest or check its [documentation](https://docs.pytest.org/en/latest/usage.html)._ From 3d5faf1d527a1898bbfe33425b09e5b82b1552ef Mon Sep 17 00:00:00 2001 From: palaciosjeremias Date: Thu, 24 Dec 2020 11:23:30 -0300 Subject: [PATCH 12/20] Parametrize WPK manager test --- tests/integration/test_wpk/test_wpk_agent.py | 1 + .../integration/test_wpk/test_wpk_manager.py | 23 ++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/tests/integration/test_wpk/test_wpk_agent.py b/tests/integration/test_wpk/test_wpk_agent.py index b2d0556c78..922e1b365b 100644 --- a/tests/integration/test_wpk/test_wpk_agent.py +++ b/tests/integration/test_wpk/test_wpk_agent.py @@ -37,6 +37,7 @@ CRYPTO = "aes" SERVER_ADDRESS = 'localhost' PROTOCOL = "tcp" + if not global_parameters.wpk_version: raise Exception("The WPK package version must be defined by parameter. See README.md") version_to_upgrade = global_parameters.wpk_version[0] diff --git a/tests/integration/test_wpk/test_wpk_manager.py b/tests/integration/test_wpk/test_wpk_manager.py index 62e0b234a2..afc6a00fb4 100644 --- a/tests/integration/test_wpk/test_wpk_manager.py +++ b/tests/integration/test_wpk/test_wpk_manager.py @@ -12,13 +12,16 @@ import time import hashlib import requests +import platform +from configobj import ConfigObj from wazuh_testing.tools import WAZUH_PATH, LOG_FILE_PATH from wazuh_testing.tools.configuration import load_wazuh_configurations from wazuh_testing.tools.agent_simulator import Sender, Injector from wazuh_testing.tools.services import control_service from wazuh_testing.tools.file import truncate_file from wazuh_testing.tools.monitoring import FileMonitor +from wazuh_testing import global_parameters pytestmark = [pytest.mark.linux, pytest.mark.tier(level=0), pytest.mark.server] @@ -26,7 +29,6 @@ TASK_SOCKET = os.path.join(WAZUH_PATH, 'queue', 'tasks', 'task') UPGRADE_PATH = os.path.join(WAZUH_PATH, 'var', 'upgrade') SERVER_ADDRESS = 'localhost' -MANAGER_VERSION = 'v4.1.0' WPK_REPOSITORY_4x = 'packages-dev.wazuh.com/trash/wpk/' WPK_REPOSITORY_3x = 'packages.wazuh.com/wpk/' CRYPTO = "aes" @@ -35,6 +37,21 @@ global valid_sha1_list valid_sha1_list = {} +if not global_parameters.wpk_version: + raise Exception("The WPK package version must be defined by parameter. See README.md") +version_to_upgrade = global_parameters.wpk_version[0] +ver_split = version_to_upgrade.replace("v", "").split(".") +agent_sim_version = "{}.{}".format(ver_split[0],ver_split[1]) + +def get_current_version(): + if platform.system() == 'Linux': + config_file_path = os.path.join(WAZUH_PATH, 'etc', 'ossec-init.conf') + _config = ConfigObj(config_file_path) + return _config['VERSION'] + return None + +MANAGER_VERSION = get_current_version() + cases = [ # 0. Single Agent - success { @@ -193,7 +210,7 @@ 'upgrade_script_result': [0], 'status': ['Error'], 'upgrade_notification': [False], - 'message_params': {'version': 'v4.1.0', 'force_upgrade': False}, + 'message_params': {'version': MANAGER_VERSION, 'force_upgrade': False}, 'error_msg': ['The repository is not reachable'], 'expected_response': 'Success' } @@ -866,7 +883,7 @@ def test_wpk_manager(set_debug_mode, get_configuration, configure_environment, metadata['upgrade_notification'][index], metadata['upgrade_script_result'][index], stage_disconnect=metadata['stage_disconnect'][index], - version='4.1' if metadata['agents_os'][index] == 'debian8' else None) + version=agent_sim_version if metadata['agents_os'][index] == 'debian8' else None) injector = Injector(sender, agent) injectors.append(injector) injector.run() From 062feb558d9d3af2cd9076a0c54a3a862f214320 Mon Sep 17 00:00:00 2001 From: pereyra-m Date: Mon, 28 Dec 2020 11:16:15 -0300 Subject: [PATCH 13/20] Removing unused variable after review --- .../test_gcloud/test_configuration/test_remote_configuration.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/integration/test_gcloud/test_configuration/test_remote_configuration.py b/tests/integration/test_gcloud/test_configuration/test_remote_configuration.py index 758beac942..4513d7b590 100644 --- a/tests/integration/test_gcloud/test_configuration/test_remote_configuration.py +++ b/tests/integration/test_gcloud/test_configuration/test_remote_configuration.py @@ -76,7 +76,6 @@ def get_remote_configuration(component_name, config): socket_path = os.path.join(WAZUH_PATH, 'queue', 'ossec') dest_socket = os.path.join(socket_path, component_name) command = f"getconfig {config}" - host_type = 'agent' if 'agent' in WAZUH_SERVICE else 'server' # Socket connection s = SocketController(dest_socket) From 856df48839240fcabeab77091c657ee947c6778d Mon Sep 17 00:00:00 2001 From: palaciosjeremias Date: Mon, 28 Dec 2020 12:00:00 -0300 Subject: [PATCH 14/20] Agent simulator keepalive with parametrized VERSION field --- .../wazuh_testing/data/keepalives.txt | 18 +++++----- .../wazuh_testing/tools/agent_simulator.py | 21 +++++++----- .../integration/test_wpk/test_wpk_manager.py | 34 ++++++++++++++++--- 3 files changed, 52 insertions(+), 21 deletions(-) diff --git a/deps/wazuh_testing/wazuh_testing/data/keepalives.txt b/deps/wazuh_testing/wazuh_testing/data/keepalives.txt index 58adae393d..b5b6219643 100644 --- a/deps/wazuh_testing/wazuh_testing/data/keepalives.txt +++ b/deps/wazuh_testing/wazuh_testing/data/keepalives.txt @@ -1,36 +1,36 @@ mojave -#!-Darwin |snaow-imac.home |18.5.0 |Darwin Kernel Version 18.5.0: Mon Mar 11 20:40:32 PDT 2019; root:xnu-4903.251.3~3/RELEASE_X86_64 |x86_64 [Mac OS X|darwin: 10.14.4 (Mojave)] - Wazuh v3.11.0 / ab73af41699f13fdd81903b5f23d8d00 +#!-Darwin |snaow-imac.home |18.5.0 |Darwin Kernel Version 18.5.0: Mon Mar 11 20:40:32 PDT 2019; root:xnu-4903.251.3~3/RELEASE_X86_64 |x86_64 [Mac OS X|darwin: 10.14.4 (Mojave)] - Wazuh / ab73af41699f13fdd81903b5f23d8d00 d6e3ac3e75ca0319af3e7c262776f331 merged.mg #"_agent_ip":172.16.5.5 ubuntu12.04 -#!-Linux |agent-ubuntu12 |3.2.0-126-virtual |#220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 |x86_64 [Ubuntu|ubuntu: 12.04.5 LTS, Precise Pangolin] - Wazuh v3.11.3 / ab73af41699f13fdd81903b5f23d8d00 +#!-Linux |agent-ubuntu12 |3.2.0-126-virtual |#220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 |x86_64 [Ubuntu|ubuntu: 12.04.5 LTS, Precise Pangolin] - Wazuh / ab73af41699f13fdd81903b5f23d8d00 d6e3ac3e75ca0319af3e7c262776f331 merged.mg #"_agent_ip":172.16.5.6 ubuntu14.04 -#!-Linux |agent-ubuntu14 |3.13.0-170-generic |#220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 |x86_64 [Ubuntu|ubuntu: 14.04.6 LTS, Trusty Tahr] - Wazuh v3.11.3 / ab73af41699f13fdd81903b5f23d8d00 +#!-Linux |agent-ubuntu14 |3.13.0-170-generic |#220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 |x86_64 [Ubuntu|ubuntu: 14.04.6 LTS, Trusty Tahr] - Wazuh / ab73af41699f13fdd81903b5f23d8d00 d6e3ac3e75ca0319af3e7c262776f331 merged.mg #"_agent_ip":172.16.5.7 ubuntu16.04 -#!-Linux |agent-ubuntu16 |4.4.0-173-generic |#220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 |x86_64 [Ubuntu|ubuntu: 16.04.6 LTS (Xenial Xerus)] - Wazuh v3.11.3 / ab73af41699f13fdd81903b5f23d8d00 +#!-Linux |agent-ubuntu16 |4.4.0-173-generic |#220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 |x86_64 [Ubuntu|ubuntu: 16.04.6 LTS (Xenial Xerus)] - Wazuh / ab73af41699f13fdd81903b5f23d8d00 d6e3ac3e75ca0319af3e7c262776f331 merged.mg #"_agent_ip":172.16.5.8 ubuntu18.04 -#!-Linux |agent-ubuntu18 |4.15.0-76-generic |#220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 |x86_64 [Ubuntu|ubuntu: 18.04.4 LTS (Bionic Beaver)] - Wazuh v3.11.3 / ab73af41699f13fdd81903b5f23d8d00 +#!-Linux |agent-ubuntu18 |4.15.0-76-generic |#220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 |x86_64 [Ubuntu|ubuntu: 18.04.4 LTS (Bionic Beaver)] - Wazuh / ab73af41699f13fdd81903b5f23d8d00 d6e3ac3e75ca0319af3e7c262776f331 merged.mg #"_agent_ip":172.16.5.9 debian7 -#!-Linux |agent-debian7 |3.16.0-9-amd64 |#1 SMP Debian 3.16.68-1 (2019-05-22) |x86_64 [Debian GNU/Linux|debian: 7 (wheezy)] - Wazuh v3.11.3 / ab73af41699f13fdd81903b5f23d8d00 +#!-Linux |agent-debian7 |3.16.0-9-amd64 |#1 SMP Debian 3.16.68-1 (2019-05-22) |x86_64 [Debian GNU/Linux|debian: 7 (wheezy)] - Wazuh / ab73af41699f13fdd81903b5f23d8d00 d6e3ac3e75ca0319af3e7c262776f331 merged.mg #"_agent_ip":10.0.2.15 debian8 -#!-Linux |agent-debian8 |3.16.0-9-amd64 |#1 SMP Debian 3.16.68-1 (2019-05-22) |x86_64 [Debian GNU/Linux|debian: 8 (jessie)] - Wazuh v4.1.0 / ab73af41699f13fdd81903b5f23d8d00 +#!-Linux |agent-debian8 |3.16.0-9-amd64 |#1 SMP Debian 3.16.68-1 (2019-05-22) |x86_64 [Debian GNU/Linux|debian: 8 (jessie)] - Wazuh / ab73af41699f13fdd81903b5f23d8d00 d6e3ac3e75ca0319af3e7c262776f331 merged.mg #"_agent_ip":10.0.2.15 debian9 -#!-Linux |agent-debian9 |4.9.0-12-amd64 |#1 SMP Debian 4.9.210-1 (2020-01-20) |x86_64 [Debian GNU/Linux|debian: 9 (stretch)] - Wazuh v3.11.3 / ab73af41699f13fdd81903b5f23d8d00 +#!-Linux |agent-debian9 |4.9.0-12-amd64 |#1 SMP Debian 4.9.210-1 (2020-01-20) |x86_64 [Debian GNU/Linux|debian: 9 (stretch)] - Wazuh / ab73af41699f13fdd81903b5f23d8d00 d6e3ac3e75ca0319af3e7c262776f331 merged.mg #"_agent_ip":10.0.2.15 debian10 -#!-Linux |agent-debian10 |4.9.0-12-amd64 |#1 SMP Debian 4.9.210-1 (2020-01-20) |x86_64 [Debian GNU/Linux|debian: 10 (buster)] - Wazuh v3.11.3 / ab73af41699f13fdd81903b5f23d8d00 +#!-Linux |agent-debian10 |4.9.0-12-amd64 |#1 SMP Debian 4.9.210-1 (2020-01-20) |x86_64 [Debian GNU/Linux|debian: 10 (buster)] - Wazuh / ab73af41699f13fdd81903b5f23d8d00 d6e3ac3e75ca0319af3e7c262776f331 merged.mg #"_agent_ip":10.0.2.15 diff --git a/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py b/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py index b7380604f4..71f38084a6 100644 --- a/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py +++ b/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py @@ -39,13 +39,15 @@ class Agent: def __init__(self, manager_address, cypher="aes", os=None, inventory_sample=None, rootcheck_sample= None, - id=None, name=None, key=None, version="3.12", + id=None, name=None, key=None, version="v3.12.0", fim_eps=None, fim_integrity_eps=None, authd_password=None): self.id = id self.name = name self.key = key - self.version = version + self.long_version = version + ver_split = version.replace("v","").split(".") + self.short_version = '{}.{}'.format(ver_split[0],ver_split[1]) self.cypher = cypher self.os = os self.fim_eps = 1000 if fim_eps is None else fim_eps @@ -104,7 +106,9 @@ def set_wpk_variables(self, sha=None, upgrade_exec_result=None, self.upgrade_script_result = upgrade_script_result self.stage_disconnect = stage_disconnect if version: - self.version = version + self.long_version = version + ver_split = version.replace("v","").split(".") + self.short_version = '{}.{}'.format(ver_split[0],ver_split[1]) # Set agent name def set_name(self): @@ -286,7 +290,7 @@ def processCommand(self, sender, message_list): self.stage_disconnect == 'clear_upgrade_result': self.stop_receive = 1 else: - if float(self.version) < 4.1 or command == 'lock_restart': + if float(self.short_version) < 4.1 or command == 'lock_restart': sender.sendEvent(self.createEvent(f'#!-req {message_list[1]} ok ')) else: sender.sendEvent(self.createEvent(f'#!-req {message_list[1]} ' @@ -297,7 +301,7 @@ def processCommand(self, sender, message_list): if command == 'sha1' and self.stage_disconnect == 'sha1': self.stop_receive = 1 else: - if float(self.version) < 4.1: + if float(self.short_version) < 4.1: sender.sendEvent(self.createEvent(f'#!-req {message_list[1]} ' f'ok {self.sha_key}')) else: @@ -310,7 +314,7 @@ def processCommand(self, sender, message_list): if command == 'upgrade' and self.stage_disconnect == 'upgrade': self.stop_receive = 1 else: - if float(self.version) < 4.1: + if float(self.short_version) < 4.1: sender.sendEvent(self.createEvent( f'#!-req {message_list[1]} ok ' f'{self.upgrade_exec_result}')) @@ -353,6 +357,7 @@ def createKeepAlive(self): line = fp.readline() break line = fp.readline() + msg = msg.replace("",self.long_version) self.keep_alive_msg = self.createEvent(msg) def initializeModules(self): @@ -361,10 +366,10 @@ def initializeModules(self): if self.modules["rootcheck"]["status"] == "enabled": self.rootcheck = Rootcheck(self.rootcheck_sample) if self.modules["fim"]["status"] == "enabled": - self.fim = GeneratorFIM(self.id, self.name, self.version) + self.fim = GeneratorFIM(self.id, self.name, self.short_version) if self.modules["fim_integrity"]["status"] == "enabled": self.fim_integrity = GeneratorIntegrityFIM(self.id, self.name, - self.version) + self.short_version) class Inventory: diff --git a/tests/integration/test_wpk/test_wpk_manager.py b/tests/integration/test_wpk/test_wpk_manager.py index afc6a00fb4..bdeeef38a4 100644 --- a/tests/integration/test_wpk/test_wpk_manager.py +++ b/tests/integration/test_wpk/test_wpk_manager.py @@ -40,8 +40,6 @@ if not global_parameters.wpk_version: raise Exception("The WPK package version must be defined by parameter. See README.md") version_to_upgrade = global_parameters.wpk_version[0] -ver_split = version_to_upgrade.replace("v", "").split(".") -agent_sim_version = "{}.{}".format(ver_split[0],ver_split[1]) def get_current_version(): if platform.system() == 'Linux': @@ -66,6 +64,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -88,6 +87,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -111,6 +111,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['INVALID'], 'upgrade_exec_result': ['0'], @@ -134,6 +135,7 @@ def get_current_version(): 'agents_number': 3, 'protocol': 'tcp', 'agents_os': ['debian7', 'ubuntu12.04', 'debian10'], + 'agents_version': ['v3.11.3','v3.11.3','v3.11.3'], 'stage_disconnect': [None, None, None], 'sha_list': ['VALIDSHA1', 'INVALIDSHA', 'VALIDSHA1'], 'upgrade_exec_result': ['0', '0', '0'], @@ -157,6 +159,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -180,6 +183,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -204,6 +208,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -228,6 +233,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['mojave'], + 'agents_version': ['v3.11.0'], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -250,6 +256,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian8'], + 'agents_version': [version_to_upgrade], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -272,6 +279,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -295,6 +303,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian8'], + 'agents_version': [version_to_upgrade], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -317,7 +326,8 @@ def get_current_version(): 'wpk_repository': WPK_REPOSITORY_4x, 'agents_number': 1, 'protocol': 'tcp', - 'agents_os': ['debian8'], # debian8 have v4.1.0 agent version + 'agents_os': ['debian8'], + 'agents_version': [version_to_upgrade], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -341,6 +351,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -365,6 +376,7 @@ def get_current_version(): 'protocol': 'tcp', 'stage_disconnect': [None], 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], 'upgrade_script_result': [0], @@ -387,6 +399,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -411,6 +424,7 @@ def get_current_version(): 'protocol': 'tcp', 'stage_disconnect': ['open'], 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], 'upgrade_script_result': [0], @@ -434,6 +448,7 @@ def get_current_version(): 'protocol': 'tcp', 'stage_disconnect': ['write'], 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], 'upgrade_script_result': [0], @@ -457,6 +472,7 @@ def get_current_version(): 'protocol': 'tcp', 'stage_disconnect': ['close'], 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], 'upgrade_script_result': [0], @@ -480,6 +496,7 @@ def get_current_version(): 'protocol': 'tcp', 'stage_disconnect': ['lock_restart'], 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], 'upgrade_script_result': [0], @@ -503,6 +520,7 @@ def get_current_version(): 'protocol': 'tcp', 'stage_disconnect': ['sha1'], 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], 'upgrade_script_result': [0], @@ -526,6 +544,7 @@ def get_current_version(): 'protocol': 'tcp', 'stage_disconnect': ['upgrade'], 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], 'upgrade_script_result': [0], @@ -548,6 +567,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -572,6 +592,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -597,6 +618,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -622,6 +644,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -648,6 +671,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -672,6 +696,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -695,6 +720,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -883,7 +909,7 @@ def test_wpk_manager(set_debug_mode, get_configuration, configure_environment, metadata['upgrade_notification'][index], metadata['upgrade_script_result'][index], stage_disconnect=metadata['stage_disconnect'][index], - version=agent_sim_version if metadata['agents_os'][index] == 'debian8' else None) + version=metadata['agents_version'][index]) injector = Injector(sender, agent) injectors.append(injector) injector.run() From 20abf48038cca010ad180ba3352cecdc3256c922 Mon Sep 17 00:00:00 2001 From: palaciosjeremias Date: Mon, 28 Dec 2020 16:13:26 -0300 Subject: [PATCH 15/20] Set Agent Version on agents creation --- .../wazuh_testing/tools/agent_simulator.py | 19 ++++++++++++------- tests/integration/test_wpk/conftest.py | 2 +- .../integration/test_wpk/test_wpk_manager.py | 3 +-- .../test_wpk/test_wpk_manager_task_states.py | 5 +++++ 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py b/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py index 71f38084a6..d5b79743a3 100644 --- a/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py +++ b/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py @@ -626,11 +626,11 @@ def getAttributes(self): return attributes def formatMessage(self, message): - if self.agent_version == "3.12": + if float(self.agent_version) >= 3.12: return '{0}:[{1}] ({2}) any->syscheck:{3}' \ .format(self.SYSCHECK_MQ, self.agent_id, self.agent_name, message) - if self.agent_version == "3.11": + else: # If first time generating. Send control message to simulate # end of FIM baseline. if self.baseline_completed == 0: @@ -641,7 +641,7 @@ def formatMessage(self, message): message) def generateMessage(self): - if self.agent_version == "3.12": + if float(self.agent_version) >= 3.12: if self.event_type == "added": timestamp = int(time()) self.generateAttributes() @@ -672,7 +672,7 @@ def generateMessage(self): message = json.dumps({"type": "event", "data": data}) - if self.agent_version == "3.11": + else: self.generateAttributes() message = '{0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9} {10}'.format( self._size, self._mode, self._uid, self._gid, self._md5, @@ -884,7 +884,7 @@ def stop_rec(self): def create_agents(agents_number, manager_address, cypher, fim_eps=None, - authd_password=None, os=None): + authd_password=None, os=None, version=None): global agent_count # Read client.keys and create virtual agents agents = [] @@ -893,11 +893,16 @@ def create_agents(agents_number, manager_address, cypher, fim_eps=None, agent_os = os[agent] else: agent_os = None + if version is not None: + agent_version = version[agent] + else: + agent_version = None + if authd_password is not None: agents.append(Agent(manager_address, cypher, fim_eps=fim_eps, - authd_password=authd_password, os=agent_os)) + authd_password=authd_password, os=agent_os, version=agent_version)) else: agents.append(Agent(manager_address, cypher, fim_eps=fim_eps, - os=agent_os)) + os=agent_os, version=agent_version)) agent_count = agent_count + 1 return agents diff --git a/tests/integration/test_wpk/conftest.py b/tests/integration/test_wpk/conftest.py index 18a08c9f5b..9840b1fd71 100644 --- a/tests/integration/test_wpk/conftest.py +++ b/tests/integration/test_wpk/conftest.py @@ -9,5 +9,5 @@ def configure_agents(request, get_configuration): SERVER_ADDRESS = getattr(request.module, 'SERVER_ADDRESS') CRYPTO = getattr(request.module, 'CRYPTO') - agents = create_agents(agents_number, SERVER_ADDRESS, CRYPTO, os=metadata['agents_os']) + agents = create_agents(agents_number, SERVER_ADDRESS, CRYPTO, os=metadata['agents_os'], version=metadata['agents_version']) setattr(request.module, 'agents', agents) diff --git a/tests/integration/test_wpk/test_wpk_manager.py b/tests/integration/test_wpk/test_wpk_manager.py index bdeeef38a4..20b20ec331 100644 --- a/tests/integration/test_wpk/test_wpk_manager.py +++ b/tests/integration/test_wpk/test_wpk_manager.py @@ -908,8 +908,7 @@ def test_wpk_manager(set_debug_mode, get_configuration, configure_environment, metadata['upgrade_exec_result'][index], metadata['upgrade_notification'][index], metadata['upgrade_script_result'][index], - stage_disconnect=metadata['stage_disconnect'][index], - version=metadata['agents_version'][index]) + stage_disconnect=metadata['stage_disconnect'][index]) injector = Injector(sender, agent) injectors.append(injector) injector.run() diff --git a/tests/integration/test_wpk/test_wpk_manager_task_states.py b/tests/integration/test_wpk/test_wpk_manager_task_states.py index da30c97143..c8bf782d7a 100644 --- a/tests/integration/test_wpk/test_wpk_manager_task_states.py +++ b/tests/integration/test_wpk/test_wpk_manager_task_states.py @@ -42,6 +42,7 @@ 'agents_number': 2, 'protocol': 'tcp', 'agents_os': ['debian7', 'debian7'], + 'agents_version': ['v3.11.3', 'v3.11.3'], 'stage_disconnect': ['lock_restart', None], 'first_status': ['Updating', 'In queue'], 'expected_response': 'Success', @@ -63,6 +64,7 @@ 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': ['write'], 'first_status': ['Updating'], 'expected_response': 'Success', @@ -84,6 +86,7 @@ 'agents_number': 2, 'protocol': 'tcp', 'agents_os': ['debian7', 'debian7'], + 'agents_version': ['v3.11.3', 'v3.11.3'], 'stage_disconnect': ['lock_restart', None], 'first_status': ['Updating', 'In queue'], 'expected_response': 'Success', @@ -108,6 +111,7 @@ 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': ['write'], 'first_status': ['Updating'], 'expected_response': 'Success', @@ -132,6 +136,7 @@ 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], + 'agents_version': ['v3.11.3'], 'stage_disconnect': ['write'], 'first_status': ['Updating'], 'expected_response': 'Success', From 77780f4c1085c84596d779e865081874c36852cf Mon Sep 17 00:00:00 2001 From: palaciosjeremias Date: Mon, 28 Dec 2020 20:54:59 -0300 Subject: [PATCH 16/20] Extend custom package timeout. --- tests/integration/test_wpk/test_wpk_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_wpk/test_wpk_manager.py b/tests/integration/test_wpk/test_wpk_manager.py index 20b20ec331..2cbaec02de 100644 --- a/tests/integration/test_wpk/test_wpk_manager.py +++ b/tests/integration/test_wpk/test_wpk_manager.py @@ -981,7 +981,7 @@ def test_wpk_manager(set_debug_mode, get_configuration, configure_environment, if metadata.get('checks') and ('wpk_name' in metadata.get('checks')): # Checking version in logs try: - log_monitor.start(timeout=120, callback=wait_wpk_custom) + log_monitor.start(timeout=180, callback=wait_wpk_custom) except TimeoutError as err: raise AssertionError("Custom wpk log tooks too much!") From b15c5fc953646e6b5f13a88b3fdb80cd18a566a0 Mon Sep 17 00:00:00 2001 From: palaciosjeremias Date: Tue, 29 Dec 2020 13:23:23 -0300 Subject: [PATCH 17/20] Revert agents version --- .../integration/test_wpk/test_wpk_manager.py | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/tests/integration/test_wpk/test_wpk_manager.py b/tests/integration/test_wpk/test_wpk_manager.py index 2cbaec02de..03d2af832a 100644 --- a/tests/integration/test_wpk/test_wpk_manager.py +++ b/tests/integration/test_wpk/test_wpk_manager.py @@ -64,7 +64,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -87,7 +87,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -111,7 +111,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['INVALID'], 'upgrade_exec_result': ['0'], @@ -135,7 +135,7 @@ def get_current_version(): 'agents_number': 3, 'protocol': 'tcp', 'agents_os': ['debian7', 'ubuntu12.04', 'debian10'], - 'agents_version': ['v3.11.3','v3.11.3','v3.11.3'], + 'agents_version': ['v3.12.0','v3.12.0','v3.12.0'], 'stage_disconnect': [None, None, None], 'sha_list': ['VALIDSHA1', 'INVALIDSHA', 'VALIDSHA1'], 'upgrade_exec_result': ['0', '0', '0'], @@ -159,7 +159,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -183,7 +183,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -208,7 +208,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -279,7 +279,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -351,7 +351,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -376,7 +376,7 @@ def get_current_version(): 'protocol': 'tcp', 'stage_disconnect': [None], 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], 'upgrade_script_result': [0], @@ -399,7 +399,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -424,7 +424,7 @@ def get_current_version(): 'protocol': 'tcp', 'stage_disconnect': ['open'], 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], 'upgrade_script_result': [0], @@ -448,7 +448,7 @@ def get_current_version(): 'protocol': 'tcp', 'stage_disconnect': ['write'], 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], 'upgrade_script_result': [0], @@ -472,7 +472,7 @@ def get_current_version(): 'protocol': 'tcp', 'stage_disconnect': ['close'], 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], 'upgrade_script_result': [0], @@ -496,7 +496,7 @@ def get_current_version(): 'protocol': 'tcp', 'stage_disconnect': ['lock_restart'], 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], 'upgrade_script_result': [0], @@ -520,7 +520,7 @@ def get_current_version(): 'protocol': 'tcp', 'stage_disconnect': ['sha1'], 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], 'upgrade_script_result': [0], @@ -544,7 +544,7 @@ def get_current_version(): 'protocol': 'tcp', 'stage_disconnect': ['upgrade'], 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], 'upgrade_script_result': [0], @@ -567,7 +567,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -592,7 +592,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -618,7 +618,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -644,7 +644,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['NOT_NEED'], 'upgrade_exec_result': ['0'], @@ -671,7 +671,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -696,7 +696,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], @@ -720,7 +720,7 @@ def get_current_version(): 'agents_number': 1, 'protocol': 'tcp', 'agents_os': ['debian7'], - 'agents_version': ['v3.11.3'], + 'agents_version': ['v3.12.0'], 'stage_disconnect': [None], 'sha_list': ['VALIDSHA1'], 'upgrade_exec_result': ['0'], From 0165f78226c330497d19c3f1842d5faee03cca02 Mon Sep 17 00:00:00 2001 From: palaciosjeremias Date: Tue, 29 Dec 2020 16:32:16 -0300 Subject: [PATCH 18/20] Add timeout on test end to avoid agent_simulator race conditions. --- tests/integration/test_wpk/test_wpk_manager.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/integration/test_wpk/test_wpk_manager.py b/tests/integration/test_wpk/test_wpk_manager.py index 03d2af832a..794e43f445 100644 --- a/tests/integration/test_wpk/test_wpk_manager.py +++ b/tests/integration/test_wpk/test_wpk_manager.py @@ -1064,3 +1064,5 @@ def test_wpk_manager(set_debug_mode, get_configuration, configure_environment, for injector in injectors: injector.stop_receive() + + time.sleep(3) # Wait for agents threads to stop From a07473cd70766b2a34619e5393d38531e74e1daf Mon Sep 17 00:00:00 2001 From: Diego Provinciani Date: Wed, 20 Jan 2021 10:01:45 -0300 Subject: [PATCH 19/20] Fixing comments from pull request --- .../wazuh_testing/tools/agent_simulator.py | 27 ++++++++----------- .../test_remote_configuration.py | 4 +-- .../test_functioning/test_rules.py | 11 +++----- .../integration/test_wpk/test_wpk_manager.py | 5 ++-- tests/legacy/test_sca/README.md | 2 +- 5 files changed, 19 insertions(+), 30 deletions(-) diff --git a/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py b/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py index d5b79743a3..6377d9e54e 100644 --- a/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py +++ b/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py @@ -45,9 +45,10 @@ def __init__(self, manager_address, cypher="aes", os=None, self.id = id self.name = name self.key = key - self.long_version = version - ver_split = version.replace("v","").split(".") - self.short_version = '{}.{}'.format(ver_split[0],ver_split[1]) + if version is not None: + self.long_version = version + ver_split = version.replace("v","").split(".") + self.short_version = f"{'.'.join(ver_split[:2])}" self.cypher = cypher self.os = os self.fim_eps = 1000 if fim_eps is None else fim_eps @@ -105,10 +106,6 @@ def set_wpk_variables(self, sha=None, upgrade_exec_result=None, self.send_upgrade_notification = upgrade_notification self.upgrade_script_result = upgrade_script_result self.stage_disconnect = stage_disconnect - if version: - self.long_version = version - ver_split = version.replace("v","").split(".") - self.short_version = '{}.{}'.format(ver_split[0],ver_split[1]) # Set agent name def set_name(self): @@ -290,7 +287,7 @@ def processCommand(self, sender, message_list): self.stage_disconnect == 'clear_upgrade_result': self.stop_receive = 1 else: - if float(self.short_version) < 4.1 or command == 'lock_restart': + if self.short_version < "4.1" or command == 'lock_restart': sender.sendEvent(self.createEvent(f'#!-req {message_list[1]} ok ')) else: sender.sendEvent(self.createEvent(f'#!-req {message_list[1]} ' @@ -301,7 +298,7 @@ def processCommand(self, sender, message_list): if command == 'sha1' and self.stage_disconnect == 'sha1': self.stop_receive = 1 else: - if float(self.short_version) < 4.1: + if self.short_version < "4.1": sender.sendEvent(self.createEvent(f'#!-req {message_list[1]} ' f'ok {self.sha_key}')) else: @@ -314,7 +311,7 @@ def processCommand(self, sender, message_list): if command == 'upgrade' and self.stage_disconnect == 'upgrade': self.stop_receive = 1 else: - if float(self.short_version) < 4.1: + if self.short_version < "4.1": sender.sendEvent(self.createEvent( f'#!-req {message_list[1]} ok ' f'{self.upgrade_exec_result}')) @@ -626,7 +623,7 @@ def getAttributes(self): return attributes def formatMessage(self, message): - if float(self.agent_version) >= 3.12: + if self.agent_version >= "3.12": return '{0}:[{1}] ({2}) any->syscheck:{3}' \ .format(self.SYSCHECK_MQ, self.agent_id, self.agent_name, message) @@ -641,7 +638,7 @@ def formatMessage(self, message): message) def generateMessage(self): - if float(self.agent_version) >= 3.12: + if self.agent_version >= "3.12": if self.event_type == "added": timestamp = int(time()) self.generateAttributes() @@ -893,10 +890,8 @@ def create_agents(agents_number, manager_address, cypher, fim_eps=None, agent_os = os[agent] else: agent_os = None - if version is not None: - agent_version = version[agent] - else: - agent_version = None + + agent_version = version[agent] if version is not None else None if authd_password is not None: agents.append(Agent(manager_address, cypher, fim_eps=fim_eps, diff --git a/tests/integration/test_gcloud/test_configuration/test_remote_configuration.py b/tests/integration/test_gcloud/test_configuration/test_remote_configuration.py index 4513d7b590..3cc3d8de52 100644 --- a/tests/integration/test_gcloud/test_configuration/test_remote_configuration.py +++ b/tests/integration/test_gcloud/test_configuration/test_remote_configuration.py @@ -93,8 +93,8 @@ def get_remote_configuration(component_name, config): try: if rec_msg_ok.startswith('ok'): remote_configuration = json.loads(rec_msg) - for element in remote_configuration['wmodules']: - if 'gcp-pubsub' in element: + for element in remote_configuration['wmodules']: + if 'gcp-pubsub' in element: remote_configuration_gcp = element['gcp-pubsub'] else: s.close() diff --git a/tests/integration/test_gcloud/test_functioning/test_rules.py b/tests/integration/test_gcloud/test_functioning/test_rules.py index 8e3b959b22..9daadaf6c4 100644 --- a/tests/integration/test_gcloud/test_functioning/test_rules.py +++ b/tests/integration/test_gcloud/test_functioning/test_rules.py @@ -84,14 +84,9 @@ def test_rules(get_configuration, configure_environment, rules_id = [] file_ind = 0 - for number in range(65005, 65011): - rules_id.append(number) - - for number in range(65012, 65039): - rules_id.append(number) - - for number in range(65041, 65047): - rules_id.append(number) + rules_id = [id for id in range(65005, 65011)] + rules_id += [id for id in range(65012, 65039)] + rules_id += [id for id in range(65041, 65047)] events_file = open(file_path, 'r') for line in events_file: diff --git a/tests/integration/test_wpk/test_wpk_manager.py b/tests/integration/test_wpk/test_wpk_manager.py index 794e43f445..9e52f4273d 100644 --- a/tests/integration/test_wpk/test_wpk_manager.py +++ b/tests/integration/test_wpk/test_wpk_manager.py @@ -37,8 +37,8 @@ global valid_sha1_list valid_sha1_list = {} -if not global_parameters.wpk_version: - raise Exception("The WPK package version must be defined by parameter. See README.md") +if global_parameters.wpk_version is None: + raise ValueError("The WPK package version must be defined by parameter. See README.md") version_to_upgrade = global_parameters.wpk_version[0] def get_current_version(): @@ -46,7 +46,6 @@ def get_current_version(): config_file_path = os.path.join(WAZUH_PATH, 'etc', 'ossec-init.conf') _config = ConfigObj(config_file_path) return _config['VERSION'] - return None MANAGER_VERSION = get_current_version() diff --git a/tests/legacy/test_sca/README.md b/tests/legacy/test_sca/README.md index 095edf97c3..12e032400f 100644 --- a/tests/legacy/test_sca/README.md +++ b/tests/legacy/test_sca/README.md @@ -6,7 +6,7 @@ These tests are not part of the current testing framework for Wazuh, so they hav ## Introduction --------------- -A brief knowledge of SCA is recommended, the documentation covers it in detail in [How SCA works](https://documentation.wazuh.com/4.0/user-manual/capabilities/sec-config-assessment/how_it_works.html). Also, there is a blog post about [Security Configuration Assessment](https://wazuh.com/blog/security-configuration-assessment/). +A brief knowledge of SCA is recommended, the documentation covers it in detail in [How SCA works](https://documentation.wazuh.com/4.2/user-manual/capabilities/sec-config-assessment/how_it_works.html). Also, there is a blog post about [Security Configuration Assessment](https://wazuh.com/blog/security-configuration-assessment/). Basically, the tests inside **data** folder contain different _.yml_ policies that will test the general capabilities of **SCA**. It will be necessary to install a Manager and register an agent. There is more information about this part of the process in the [Installation Guide](https://documentation.wazuh.com/4.0/installation-guide/index.html). From 536186cd0624a58336118d89f945cd4516514ce8 Mon Sep 17 00:00:00 2001 From: Diego Provinciani Date: Thu, 21 Jan 2021 10:14:47 -0300 Subject: [PATCH 20/20] Removing not used parameter from function --- deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py b/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py index 6377d9e54e..35a690bdbf 100644 --- a/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py +++ b/deps/wazuh_testing/wazuh_testing/tools/agent_simulator.py @@ -100,7 +100,7 @@ def set_os(self): # Set variables related to wpk simulated responses def set_wpk_variables(self, sha=None, upgrade_exec_result=None, upgrade_notification=False, upgrade_script_result=0, - stage_disconnect=None, version=None): + stage_disconnect=None): self.sha_key = sha self.upgrade_exec_result = upgrade_exec_result self.send_upgrade_notification = upgrade_notification