fix(wazuh): persist break-glass packets safely
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 2m25s
CD Pipeline / build-and-deploy (push) Failing after 9m41s
CD Pipeline / post-deploy-checks (push) Has been skipped

This commit is contained in:
ogt
2026-07-15 21:15:03 +08:00
parent 05b575d809
commit ff9798bdab
3 changed files with 55 additions and 7 deletions

View File

@@ -8934,6 +8934,9 @@ def _build_wazuh_break_glass_capability_packet(
"source_candidate_op_id": str(source_candidate_op_id),
"source_check_mode_op_id": str(check_op_id),
"catalog_id": str(catalog_id),
"semantic_operation_type": (
_WAZUH_BREAK_GLASS_CAPABILITY_PACKET_OPERATION_TYPE
),
"capability_type": "bounded_privileged_convergence",
"risk_level": "critical",
"policy_route": "critical_break_glass_queue",
@@ -8999,7 +9002,17 @@ async def _insert_wazuh_break_glass_capability_packet(
input, output, dry_run_result, parent_op_id, tags
)
SELECT
'{_WAZUH_BREAK_GLASS_CAPABILITY_PACKET_OPERATION_TYPE}',
CASE
WHEN EXISTS (
SELECT 1
FROM pg_constraint
WHERE conname = 'automation_operation_log_type_valid'
AND pg_get_constraintdef(oid) LIKE
'%{_WAZUH_BREAK_GLASS_CAPABILITY_PACKET_OPERATION_TYPE}%'
)
THEN '{_WAZUH_BREAK_GLASS_CAPABILITY_PACKET_OPERATION_TYPE}'
ELSE '{_EXECUTION_CAPABILITY_FALLBACK_OPERATION_TYPE}'
END,
'ansible_check_mode_worker',
'pending',
:incident_db_id,
@@ -9014,8 +9027,16 @@ async def _insert_wazuh_break_glass_capability_packet(
WHERE NOT EXISTS (
SELECT 1
FROM automation_operation_log existing
WHERE existing.operation_type =
'{_WAZUH_BREAK_GLASS_CAPABILITY_PACKET_OPERATION_TYPE}'
WHERE (
existing.operation_type =
'{_WAZUH_BREAK_GLASS_CAPABILITY_PACKET_OPERATION_TYPE}'
OR (
existing.operation_type =
'{_EXECUTION_CAPABILITY_FALLBACK_OPERATION_TYPE}'
AND existing.input ->> 'semantic_operation_type' =
'{_WAZUH_BREAK_GLASS_CAPABILITY_PACKET_OPERATION_TYPE}'
)
)
AND existing.input ->> 'capability_packet_id'
= :capability_packet_id
)
@@ -9175,8 +9196,16 @@ async def backfill_missing_wazuh_break_glass_capability_packets_once(
AND NOT EXISTS (
SELECT 1
FROM automation_operation_log packet
WHERE packet.operation_type =
'{_WAZUH_BREAK_GLASS_CAPABILITY_PACKET_OPERATION_TYPE}'
WHERE (
packet.operation_type =
'{_WAZUH_BREAK_GLASS_CAPABILITY_PACKET_OPERATION_TYPE}'
OR (
packet.operation_type =
'{_EXECUTION_CAPABILITY_FALLBACK_OPERATION_TYPE}'
AND packet.input ->> 'semantic_operation_type' =
'{_WAZUH_BREAK_GLASS_CAPABILITY_PACKET_OPERATION_TYPE}'
)
)
AND packet.parent_op_id = check_mode.op_id
)
ORDER BY check_mode.created_at DESC

View File

@@ -166,8 +166,15 @@ _LIVE_RUNTIME_SQL = """
FROM automation_operation_log packet
JOIN latest_check check_mode
ON packet.parent_op_id::text = check_mode.check_op_id
WHERE packet.operation_type =
'ansible_break_glass_capability_work_item_queued'
WHERE (
packet.operation_type =
'ansible_break_glass_capability_work_item_queued'
OR (
packet.operation_type = 'remediation_executed'
AND packet.input ->> 'semantic_operation_type' =
'ansible_break_glass_capability_work_item_queued'
)
)
ORDER BY packet.created_at DESC
LIMIT 1
), runtime_stages AS (

View File

@@ -29,6 +29,7 @@ from src.services.awooop_ansible_check_mode_service import (
)
from src.services.awooop_ansible_post_verifier import postconditions_for_catalog
from src.services.iwooos_wazuh_controlled_executor_runtime import (
_LIVE_RUNTIME_SQL,
build_iwooos_wazuh_controlled_executor_runtime_readback,
)
@@ -46,6 +47,12 @@ def _current_wazuh_source_recurrence(observed_at: str) -> dict[str, object]:
}
def test_wazuh_runtime_sql_reads_schema_safe_packet_fallback() -> None:
assert "ansible_break_glass_capability_work_item_queued" in _LIVE_RUNTIME_SQL
assert "remediation_executed" in _LIVE_RUNTIME_SQL
assert "semantic_operation_type" in _LIVE_RUNTIME_SQL
def _durable_scheduled_wazuh_source_recurrence(
observed_at: str,
identity_anchor: str = (
@@ -600,9 +607,14 @@ async def test_failed_wazuh_check_atomically_queues_deduplicated_packet(
assert len(calls) == 2
insert_sql, insert_params = calls[1]
assert "ansible_break_glass_capability_work_item_queued" in insert_sql
assert "remediation_executed" in insert_sql
assert "pg_get_constraintdef" in insert_sql
assert "WHERE NOT EXISTS" in insert_sql
packet_input = json.loads(str(insert_params["input"]))
assert packet_input["work_item_id"] == "P0-03-WAZUH-ALERT-INGRESS"
assert packet_input["semantic_operation_type"] == (
"ansible_break_glass_capability_work_item_queued"
)
assert packet_input["secret_value_exposed"] is False