report.html

Report generated on 13-May-2024 at 14:43:40 by pytest-html v3.1.1

Summary

1 tests ran in 535.26 seconds.

0 passed, 0 skipped, 1 failed, 0 errors, 0 expected failures, 0 unexpected passes
Tests Failed Success XFail Error
test_vulnerability_detector/test_vulnerability_detector.py 1 0 0 0

Results

Result Test Description Duration Links
Failed test_vulnerability_detector/test_vulnerability_detector.py::TestScanSyscollectorCases::test_change_agent_manager[install_package] 510.53

Test function details

Extended Summary

Parameters

self = <test_vulnerability_detector.TestScanSyscollectorCases object at 0x73ec59bf0850>, permutate_agents_managers = None
request = <FixtureRequest for <Function test_change_agent_manager[install_package]>>, preconditions = None
body = {'operation': 'install_package', 'package': {'centos': {'amd64': 'grafana-8.5.5-1', 'arm64v8': 'grafana-8.5.5-1'}, 'ma...proxy-0.5.9'}, 'ubuntu': {'amd64': 'grafana-8.5.5', 'arm64v8': 'grafana-8.5.5'}, 'windows': {'amd64': 'node-v17.0.1'}}}
teardown = {'operation': 'remove_package', 'package': {'centos': {'amd64': 'grafana-8.5.5-1', 'arm64v8': 'grafana-8.5.5-1'}, 'mac...proxy-0.5.9'}, 'ubuntu': {'amd64': 'grafana-8.5.5', 'arm64v8': 'grafana-8.5.5'}, 'windows': {'amd64': 'node-v17.0.1'}}}
setup = [], host_manager = <wazuh_testing.tools.system.HostManager object at 0x73ec59bf2110>, record_property = <function record_property.<locals>.append_property at 0x73ec58832710>
clean_environment_logs = None, delete_states_vulnerability_index = None, clean_environment_logs_function = None

@pytest.mark.parametrize("preconditions, body, teardown", test_cases_change_manager,
ids=list_ids_change_manager,)
def test_change_agent_manager(self, permutate_agents_managers, request, preconditions, body,
teardown, setup, host_manager, record_property, clean_environment_logs,
delete_states_vulnerability_index, clean_environment_logs_function):
# Is mandatory to launch this test along with the first scan test'
global AGENTS_SCANNED_FIRST_SCAN
AGENTS_SCANNED_FIRST_SCAN = ['agent1']
if len(AGENTS_SCANNED_FIRST_SCAN) == 0:
pytest.skip("No agent was scanned in the first scan. Skipping test.")

target_to_ignore = list(
set(host_manager.get_group_hosts("agent")) - set(AGENTS_SCANNED_FIRST_SCAN)
)

utc_now_timestamp = datetime.datetime.now(datetime.timezone.utc)
test_timestamp = utc_now_timestamp.strftime("%Y-%m-%dT%H:%M:%S")

test_result = TestResult(request.node.name)
test_result.add_check(self.no_errors_check)
test_result.add_check(self.operation_successfull_for_all_agents_check)
test_result.add_check(self.expected_vulnerabilities_found_in_index_check)
test_result.add_check(self.no_unexpected_vulnerabilities_found_in_index_check)
test_result.add_check(self.expected_vulnerability_affected_alert_check)
test_result.add_check(self.expected_vulnerability_mitigated_alert_check)
test_result.add_check(self.no_duplicated_vulnerabilities_check)

record_property("test_result", test_result)

# Install Vulnerable package
operations_result = launch_parallel_operations(
body, host_manager, target_to_ignore
)

logging.critical(f"Remote operation results: {operations_result}")
test_result.validate_check(
"operation_successfull_for_all_agents",
[Evidence("operation_results", operations_result)],
)

# Wait for Syscollector and VD Scan
time.sleep(VD_E2E_TIMEOUT_SYSCOLLECTOR_SCAN + PACKAGE_VULNERABILITY_SCAN_TIME)

package_data = [body["package"]]

vulnerabilities = get_vulnerabilities_index(host_manager, AGENTS_SCANNED_FIRST_SCAN, package_data)
expected_vulnerabilities = get_expected_index(host_manager, AGENTS_SCANNED_FIRST_SCAN, body["operation"],
body["package"])

result = compare_expected_found_vulnerabilities(vulnerabilities, expected_vulnerabilities)

vulnerabilities_not_found = result["vulnerabilities_not_found"]
vulnerabilities_unexpected = result["vulnerabilities_unexpected"]
duplicated_vulnerabilities = get_duplicated_vulnerabilities(vulnerabilities)

logging.critical("Validating found vulnerabilities")
test_result.validate_check('no_duplicated_vulnerabilities',
[Evidence('duplicated_vulnerabilities', duplicated_vulnerabilities),
Evidence('vulnerabilities', vulnerabilities)
])

test_result.validate_check(
"expected_vulnerabilities_found_in_index",
[
Evidence("missing_vulnerabilities", vulnerabilities_not_found),
Evidence("vulnerabilities_found_in_index", vulnerabilities),
Evidence("expected_vulnerabilities", expected_vulnerabilities),
],
)

logging.critical("Validating unexpected vulnerabilities")
test_result.validate_check(
"no_unexpected_vulnerabilities_found_in_index",
[
Evidence("unexpected_vulnerabilities", vulnerabilities_unexpected),
Evidence("vulnerabilities_found_in_index", vulnerabilities),
Evidence("expected_vulnerabilities", expected_vulnerabilities),
],
)

alerts = get_vulnerability_alerts(
host_manager, AGENTS_SCANNED_FIRST_SCAN, package_data, test_timestamp
)
expected_alerts = get_expected_alerts(
host_manager, AGENTS_SCANNED_FIRST_SCAN, body["operation"], body["package"]
)

result_alert = compare_expected_found_vulnerabilities_alerts(
alerts, expected_alerts
)

logging.critical("Validating found alerts")
test_result.validate_check(
"expected_vulnerability_affected_alert",
[
Evidence(
"missing_affected_alerts",
result_alert["vulnerabilities_affected_not_found"],
),
Evidence("alerts_found_in_index", alerts),
Evidence("expected_alerts", expected_alerts),
],
)

logging.critical("Validating unexpected alerts")
test_result.validate_check(
"expected_vulnerability_mitigated_alert",
[
Evidence(
"missing_mitigated_alerts",
result_alert["vulnerabilities_mitigated_not_found"],
),
Evidence("alerts_found_in_index", alerts),
Evidence("expected_alerts", expected_alerts),
],
)

errors_environment = check_errors_in_environment(
host_manager,
expected_errors=VULNERABILITY_DETECTION_E2E_EXPECTED_ERRORS,
greater_than_timestamp=test_timestamp,
)

test_result.validate_check("no_errors", [Evidence("error_level_messages", errors_environment)])

> assert test_result.get_test_result(), test_result.report()
E AssertionError:
E Test test_change_agent_manager[install_package] failed
E
E Check no_errors succeeded
E Check operation_successfull_for_all_agents succeeded
E Check expected_vulnerabilities_found_in_index failed. Evidences (['missing_vulnerabilities']) can be found in the report.
E Check no_unexpected_vulnerabilities_found_in_index succeeded
E Check expected_vulnerability_affected_alert failed. Evidences (['missing_affected_alerts']) can be found in the report.
E Check expected_vulnerability_mitigated_alert succeeded
E Check no_duplicated_vulnerabilities succeeded
E -----
E
E assert False
E + where False = <bound method TestResult.get_test_result of <wazuh_testing.end_to_end.TestResult object at 0x73ec599cb280>>()
E + where <bound method TestResult.get_test_result of <wazuh_testing.end_to_end.TestResult object at 0x73ec599cb280>> = <wazuh_testing.end_to_end.TestResult object at 0x73ec599cb280>.get_test_result

end_to_end/test_vulnerability_detector/test_vulnerability_detector.py:874: AssertionError
-------------------------------Captured log setup-------------------------------
CRITICAL root:conftest.py:376 Enabling modulesd debug mode ERROR root:test_vulnerability_detector.py:620 Changing manager for agent agent1 to manager2 (172.31.12.29) ERROR root:test_vulnerability_detector.py:626 Restarting agents
-------------------------------Captured log call--------------------------------
CRITICAL root:test_vulnerability_detector.py:783 Remote operation results: {'agent1': True} ERROR root:__init__.py:237 Marked check operation_successfull_for_all_agents result to True with evidences ['operation_results'] CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2022-23498', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2022-23552', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2022-31097', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2022-31107', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2022-31123', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2022-31130', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2022-35957', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2022-36062', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2022-39201', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2022-39229', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2022-39306', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2022-39307', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2022-39324', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2023-0507', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2023-0594', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2023-1410', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2023-2183', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:30 Vulnerability not found for agent1: Vulnerability(cve='CVE-2023-3128', package_name='grafana', package_version='8.5.5', architecture='x86_64') CRITICAL root:check_validators.py:50 Vulnerabilities not found: {'agent1': [Vulnerability(cve='CVE-2022-23498', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-23552', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31097', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31107', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31123', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31130', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-35957', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-36062', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39201', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39229', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39306', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39307', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39324', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-0507', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-0594', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-1410', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-2183', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-3128', package_name='grafana', package_version='8.5.5', architecture='x86_64')]} CRITICAL root:check_validators.py:51 Vulnerabilities unexpected: {} CRITICAL root:test_vulnerability_detector.py:804 Validating found vulnerabilities ERROR root:__init__.py:237 Marked check no_duplicated_vulnerabilities result to True with evidences ['duplicated_vulnerabilities', 'vulnerabilities'] CRITICAL root:check_validators.py:145 agent1 is not empty: [Vulnerability(cve='CVE-2022-23498', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-23552', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31097', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31107', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31123', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31130', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-35957', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-36062', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39201', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39229', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39306', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39307', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39324', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-0507', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-0594', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-1410', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-2183', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-3128', package_name='grafana', package_version='8.5.5', architecture='x86_64')] ERROR root:__init__.py:237 Marked check expected_vulnerabilities_found_in_index result to False with evidences ['missing_vulnerabilities', 'vulnerabilities_found_in_index', 'expected_vulnerabilities'] CRITICAL root:test_vulnerability_detector.py:819 Validating unexpected vulnerabilities ERROR root:__init__.py:237 Marked check no_unexpected_vulnerabilities_found_in_index result to True with evidences ['unexpected_vulnerabilities', 'vulnerabilities_found_in_index', 'expected_vulnerabilities'] CRITICAL root:check_validators.py:123 Vulnerabilities affected not found: {'agent1': [Vulnerability(cve='CVE-2022-23498', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-23552', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31097', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31107', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31123', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31130', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-35957', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-36062', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39201', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39229', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39306', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39307', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39324', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-0507', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-0594', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-1410', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-2183', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-3128', package_name='grafana', package_version='8.5.5', architecture='x86_64')]} CRITICAL root:check_validators.py:124 Vulnerabilities mitigated not found: {} CRITICAL root:test_vulnerability_detector.py:840 Validating found alerts CRITICAL root:check_validators.py:145 agent1 is not empty: [Vulnerability(cve='CVE-2022-23498', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-23552', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31097', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31107', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31123', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-31130', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-35957', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-36062', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39201', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39229', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39306', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39307', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2022-39324', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-0507', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-0594', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-1410', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-2183', package_name='grafana', package_version='8.5.5', architecture='x86_64'), Vulnerability(cve='CVE-2023-3128', package_name='grafana', package_version='8.5.5', architecture='x86_64')] ERROR root:__init__.py:237 Marked check expected_vulnerability_affected_alert result to False with evidences ['missing_affected_alerts', 'alerts_found_in_index', 'expected_alerts'] CRITICAL root:test_vulnerability_detector.py:853 Validating unexpected alerts ERROR root:__init__.py:237 Marked check expected_vulnerability_mitigated_alert result to True with evidences ['missing_mitigated_alerts', 'alerts_found_in_index', 'expected_alerts'] ERROR root:__init__.py:237 Marked check no_errors result to True with evidences ['error_level_messages']
-----------------------------Captured log teardown------------------------------
ERROR root:conftest.py:152 Truncate managers and agents logs ERROR root:test_vulnerability_detector.py:635 Restarting agents ERROR root:conftest.py:164 Delete vulnerability index ERROR root:conftest.py:138 Truncate managers and agents logs CRITICAL root:conftest.py:384 Disabling modulesd debug mode