OpenNIT

Quelltext des aktuellen Standes

Fassung 1.1.1

213_xdr_defender_and_rules.sql

3 KB
-- 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';