Quelltext des aktuellen Standes
-- XDR: zweiter Anbieter (Microsoft Defender XDR) und Regeln für die
-- automatische Behandlung eingehender Warnungen.
--
-- Der Anbieter selbst braucht kein eigenes Schema – xdr_alerts ist
-- anbieterneutral und nimmt ihn über provider/external_id auf. Ergänzt werden
-- nur die Felder, mit denen eine Regel ihr Ergebnis am Alarm hinterlässt:
-- welche Regel gegriffen hat, was sie entschieden hat und wer zuständig ist.
-- ------------------------------------------------------------
-- Regeln
-- ------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `xdr_alert_rules` (
`id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(160) NOT NULL,
`enabled` TINYINT(1) NOT NULL DEFAULT 1,
`sort_order` INT NOT NULL DEFAULT 100 COMMENT 'Prueffolge; die erste zutreffende Regel gewinnt',
`match_provider` VARCHAR(40) NULL COMMENT 'Anbieter-Schluessel, NULL = alle',
`match_alert_type` VARCHAR(40) NULL COMMENT 'workbench | oat | alert, NULL = alle',
`match_min_severity` ENUM('critical','high','medium','low','info') NULL COMMENT 'Mindest-Schweregrad, NULL = alle',
`match_state` ENUM('any','matched','unmatched') NOT NULL DEFAULT 'any' COMMENT 'Zuordnungslage des Geraets',
`match_title` VARCHAR(255) NULL COMMENT 'Textmuster auf den Titel (* und ? erlaubt)',
`match_endpoint` VARCHAR(255) NULL COMMENT 'Textmuster auf den Geraetenamen (* und ? erlaubt)',
`action` ENUM('suppress','assign','ticket') NOT NULL,
`action_user_id` BIGINT UNSIGNED NULL COMMENT 'Zustaendige Person bei action = assign',
`applied_count` INT UNSIGNED NOT NULL DEFAULT 0,
`last_applied_at` DATETIME NULL,
`created_by` BIGINT UNSIGNED NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
KEY `idx_enabled_order` (`enabled`, `sort_order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ------------------------------------------------------------
-- Ergebnis einer Regel am Alarm
-- ------------------------------------------------------------
ALTER TABLE `xdr_alerts`
ADD COLUMN `applied_rule_id` INT UNSIGNED NULL COMMENT 'Regel, die diese Warnung behandelt hat' AFTER `ticket_id`;
ALTER TABLE `xdr_alerts`
ADD COLUMN `auto_action` ENUM('suppress','assign','ticket') NULL COMMENT 'Von der Regel getroffene Entscheidung' AFTER `applied_rule_id`;
ALTER TABLE `xdr_alerts`
ADD COLUMN `assigned_to` BIGINT UNSIGNED NULL COMMENT 'Zustaendige Person' AFTER `auto_action`;
ALTER TABLE `xdr_alerts`
ADD KEY `idx_assigned_to` (`assigned_to`);
-- Die Art einer Warnung ist nicht mehr auf die Trend-Quellen beschraenkt.
ALTER TABLE `xdr_alerts`
MODIFY COLUMN `alert_type` VARCHAR(40) NOT NULL DEFAULT 'workbench' COMMENT 'workbench | oat | alert';