SecureWatch SIEM - Correlation & Rules Engine ERD¶

Version: 1.0.0
Created: June 2025
Purpose: Entity-Relationship Diagrams for Correlation and Rules Engine Integration

1. Correlation Rules Engine - Complete Entity Relationship Model¶

erDiagram
    %% Core Entities
    organizations {
        UUID id PK
        VARCHAR name
        VARCHAR domain
        VARCHAR subscription_tier
        INTEGER max_users
        INTEGER max_data_retention_days
        JSONB settings
        TIMESTAMPTZ created_at
        TIMESTAMPTZ updated_at
    }
    
    users {
        UUID id PK
        UUID organization_id FK
        VARCHAR email UNIQUE
        VARCHAR username UNIQUE
        VARCHAR first_name
        VARCHAR last_name
        BOOLEAN is_active
        TIMESTAMPTZ created_at
        TIMESTAMPTZ updated_at
    }
    
    %% Logs and Events
    logs {
        UUID id PK
        TIMESTAMPTZ timestamp PARTITION_KEY
        UUID organization_id FK
        VARCHAR source_identifier
        VARCHAR source_type
        VARCHAR log_level
        TEXT message
        VARCHAR hostname
        VARCHAR process_name
        INTEGER process_id
        VARCHAR user_name
        VARCHAR event_id
        VARCHAR event_category
        INET source_ip
        INET destination_ip
        INTEGER source_port
        INTEGER destination_port
        TEXT file_path
        VARCHAR file_hash
        JSONB attributes
        TIMESTAMPTZ ingested_at
        BOOLEAN normalized
        BOOLEAN enriched
        TSVECTOR search_vector
    }
    
    %% Correlation Rules Engine
    correlation_rules {
        UUID id PK
        UUID organization_id FK
        VARCHAR name
        TEXT description
        BOOLEAN enabled
        JSONB conditions
        VARCHAR[] correlation_fields
        INTEGER time_window_ms
        INTEGER threshold
        VARCHAR action
        VARCHAR severity
        VARCHAR[] tags
        UUID created_by FK
        TIMESTAMPTZ created_at
        TIMESTAMPTZ updated_at
    }
    
    correlation_windows {
        UUID id PK
        UUID rule_id FK
        UUID organization_id FK
        TIMESTAMPTZ start_time
        TIMESTAMPTZ end_time
        INTEGER event_count
        JSONB correlation_field_values
        BOOLEAN matched
        TIMESTAMPTZ created_at
        TIMESTAMPTZ updated_at
    }
    
    correlation_matches {
        UUID id PK
        UUID rule_id FK
        UUID window_id FK
        UUID organization_id FK
        TIMESTAMPTZ timestamp
        VARCHAR severity
        INTEGER confidence
        JSONB correlation_data
        VARCHAR[] actions
        INTEGER event_count
        JSONB events_summary
        VARCHAR status
        UUID assigned_to FK
        TIMESTAMPTZ created_at
        TIMESTAMPTZ resolved_at
    }
    
    correlation_events {
        UUID correlation_match_id PK,FK
        UUID log_id PK,FK
        INTEGER sequence_order
        JSONB matched_fields
        TIMESTAMPTZ added_at
    }
    
    %% SIGMA Rules Engine
    sigma_rules {
        UUID id PK
        UUID organization_id FK
        VARCHAR title
        TEXT description
        VARCHAR status
        VARCHAR author
        VARCHAR[] references
        VARCHAR[] tags
        JSONB logsource
        JSONB detection
        VARCHAR[] falsepositives
        VARCHAR level
        VARCHAR[] fields
        BOOLEAN enabled
        UUID created_by FK
        TIMESTAMPTZ created_at
        TIMESTAMPTZ updated_at
    }
    
    sigma_rule_matches {
        UUID id PK
        UUID sigma_rule_id FK
        UUID log_id FK
        UUID organization_id FK
        TIMESTAMPTZ timestamp
        VARCHAR severity
        INTEGER confidence
        VARCHAR[] matched_conditions
        JSONB event_data
        VARCHAR status
        UUID assigned_to FK
        TIMESTAMPTZ created_at
        TIMESTAMPTZ resolved_at
    }
    
    %% Alert Management
    alert_rules {
        UUID id PK
        UUID organization_id FK
        VARCHAR name
        TEXT description
        TEXT query
        VARCHAR condition_operator
        NUMERIC condition_value
        INTERVAL time_window
        VARCHAR severity
        BOOLEAN is_active
        VARCHAR rule_type
        UUID created_by FK
        TIMESTAMPTZ created_at
        TIMESTAMPTZ updated_at
    }
    
    alerts {
        UUID id PK
        UUID rule_id FK
        UUID correlation_match_id FK
        UUID sigma_match_id FK
        UUID organization_id FK
        TIMESTAMPTZ triggered_at PARTITION_KEY
        TIMESTAMPTZ resolved_at
        VARCHAR severity
        VARCHAR status
        TEXT message
        JSONB query_result
        JSONB context
        UUID acknowledged_by FK
        TIMESTAMPTZ acknowledged_at
        UUID resolved_by FK
        TEXT notes
        JSONB metadata
        INTEGER confidence
        VARCHAR alert_source
    }
    
    %% Threat Intelligence
    threat_indicators {
        UUID id PK
        UUID organization_id FK
        VARCHAR type
        VARCHAR value
        VARCHAR source
        INTEGER confidence
        VARCHAR severity
        VARCHAR[] tags
        TIMESTAMPTZ first_seen
        TIMESTAMPTZ last_seen
        TIMESTAMPTZ expires_at
        JSONB metadata
        VARCHAR[] related_iocs
        VARCHAR tlp
        BOOLEAN active
        TIMESTAMPTZ created_at
    }
    
    threat_actor_profiles {
        UUID id PK
        UUID organization_id FK
        VARCHAR name
        VARCHAR[] aliases
        TEXT description
        VARCHAR[] motivation
        VARCHAR sophistication
        BOOLEAN active
        TIMESTAMPTZ first_seen
        TIMESTAMPTZ last_seen
        VARCHAR origin
        VARCHAR[] targeted_countries
        VARCHAR[] targeted_sectors
        VARCHAR[] ttps
        VARCHAR[] associated_malware
        UUID[] associated_indicators FK
        TIMESTAMPTZ created_at
        TIMESTAMPTZ updated_at
    }
    
    %% UEBA (User and Entity Behavior Analytics)
    entity_behavior_profiles {
        UUID id PK
        UUID organization_id FK
        VARCHAR entity_id
        VARCHAR entity_type
        JSONB baseline_behavior
        JSONB current_behavior
        INTEGER risk_score
        TIMESTAMPTZ last_updated
        JSONB peer_group
        JSONB anomaly_history
        TIMESTAMPTZ created_at
    }
    
    behavior_anomalies {
        UUID id PK
        UUID entity_profile_id FK
        UUID organization_id FK
        VARCHAR metric_name
        NUMERIC baseline_value
        NUMERIC observed_value
        NUMERIC deviation_score
        INTEGER anomaly_score
        VARCHAR severity
        TEXT description
        JSONB context
        TIMESTAMPTZ detected_at
        TIMESTAMPTZ resolved_at
        VARCHAR status
    }
    
    %% Risk Scoring
    risk_scores {
        UUID id PK
        UUID organization_id FK
        VARCHAR entity_id
        VARCHAR entity_type
        INTEGER current_score
        INTEGER previous_score
        JSONB score_breakdown
        JSONB contributing_factors
        TIMESTAMPTZ calculated_at
        TIMESTAMPTZ expires_at
        JSONB metadata
    }
    
    risk_factors {
        UUID id PK
        UUID risk_score_id FK
        VARCHAR factor_type
        VARCHAR factor_name
        INTEGER weight
        INTEGER contribution
        TEXT description
        JSONB details
        TIMESTAMPTZ detected_at
    }
    
    %% Actions and Responses
    automated_responses {
        UUID id PK
        UUID organization_id FK
        VARCHAR trigger_type
        UUID trigger_id
        VARCHAR action_type
        JSONB action_parameters
        VARCHAR status
        TEXT result_message
        JSONB execution_log
        TIMESTAMPTZ triggered_at
        TIMESTAMPTZ completed_at
        UUID initiated_by FK
    }
    
    investigation_cases {
        UUID id PK
        UUID organization_id FK
        VARCHAR case_number
        VARCHAR title
        TEXT description
        VARCHAR priority
        VARCHAR status
        UUID assigned_to FK
        UUID created_by FK
        TIMESTAMPTZ created_at
        TIMESTAMPTZ updated_at
        TIMESTAMPTZ closed_at
        JSONB metadata
    }
    
    case_events {
        UUID case_id PK,FK
        UUID event_id PK,FK
        VARCHAR event_type
        TEXT description
        UUID added_by FK
        TIMESTAMPTZ added_at
        JSONB event_data
    }
    
    %% Notification and Communication
    notification_rules {
        UUID id PK
        UUID organization_id FK
        VARCHAR name
        TEXT description
        VARCHAR trigger_type
        JSONB trigger_conditions
        VARCHAR[] notification_channels
        VARCHAR[] recipients
        JSONB message_template
        BOOLEAN enabled
        UUID created_by FK
        TIMESTAMPTZ created_at
        TIMESTAMPTZ updated_at
    }
    
    notifications {
        UUID id PK
        UUID organization_id FK
        UUID rule_id FK
        UUID trigger_event_id
        VARCHAR channel
        VARCHAR recipient
        VARCHAR subject
        TEXT message
        VARCHAR status
        TIMESTAMPTZ sent_at
        TIMESTAMPTZ delivered_at
        TEXT error_message
        JSONB metadata
    }
    
    %% Primary Relationships
    organizations ||--o{ users : "employs"
    organizations ||--o{ logs : "owns"
    organizations ||--o{ correlation_rules : "defines"
    organizations ||--o{ sigma_rules : "configures"
    organizations ||--o{ alert_rules : "maintains"
    organizations ||--o{ alerts : "receives"
    organizations ||--o{ threat_indicators : "tracks"
    organizations ||--o{ entity_behavior_profiles : "monitors"
    organizations ||--o{ risk_scores : "calculates"
    
    %% User Relationships
    users ||--o{ correlation_rules : "creates"
    users ||--o{ sigma_rules : "authors"
    users ||--o{ alert_rules : "defines"
    users ||--o{ alerts : "acknowledges"
    users ||--o{ investigation_cases : "manages"
    users ||--o{ automated_responses : "initiates"
    
    %% Correlation Engine Relationships
    correlation_rules ||--o{ correlation_windows : "creates"
    correlation_rules ||--o{ correlation_matches : "triggers"
    correlation_windows ||--o{ correlation_matches : "generates"
    correlation_matches ||--o{ correlation_events : "contains"
    correlation_matches ||--o{ alerts : "creates"
    logs ||--o{ correlation_events : "participates_in"
    
    %% SIGMA Rules Relationships
    sigma_rules ||--o{ sigma_rule_matches : "detects"
    sigma_rule_matches ||--o{ alerts : "triggers"
    logs ||--o{ sigma_rule_matches : "evaluated_by"
    
    %% Alert Relationships
    alert_rules ||--o{ alerts : "generates"
    alerts ||--o{ investigation_cases : "initiates"
    alerts ||--o{ automated_responses : "triggers"
    alerts ||--o{ notifications : "sends"
    
    %% Threat Intelligence Relationships
    threat_indicators ||--o{ correlation_matches : "enriches"
    threat_indicators ||--o{ sigma_rule_matches : "validates"
    threat_actor_profiles ||--o{ threat_indicators : "associated_with"
    
    %% UEBA Relationships
    entity_behavior_profiles ||--o{ behavior_anomalies : "detects"
    entity_behavior_profiles ||--o{ risk_scores : "contributes_to"
    behavior_anomalies ||--o{ alerts : "generates"
    
    %% Risk Scoring Relationships
    risk_scores ||--o{ risk_factors : "composed_of"
    risk_scores ||--o{ alerts : "influences"
    
    %% Case Management Relationships
    investigation_cases ||--o{ case_events : "tracks"
    case_events }o--|| logs : "references"
    case_events }o--|| alerts : "investigates"
    case_events }o--|| correlation_matches : "analyzes"
    
    %% Notification Relationships
    notification_rules ||--o{ notifications : "generates"

2. Correlation Rules Engine Data Flow¶

graph TB
    subgraph "Input Layer"
        LOG_EVENTS[Log Events<br/>Real-time Ingestion]
        SIGMA_RULES[SIGMA Rules<br/>Detection Patterns]
        CORRELATION_RULES[Correlation Rules<br/>Multi-event Patterns]
        THREAT_INTEL[Threat Intelligence<br/>IOCs & TTPs]
    end
    
    subgraph "Processing Layer"
        EVENT_PROCESSOR[Event Processor<br/>Normalization & Enrichment]
        SIGMA_ENGINE[SIGMA Rules Engine<br/>Pattern Matching]
        CORRELATION_ENGINE[Correlation Engine<br/>Multi-event Analysis]
        THREAT_ENRICHMENT[Threat Enrichment<br/>IOC Matching]
        UEBA_ENGINE[UEBA Engine<br/>Behavior Analysis]
    end
    
    subgraph "Correlation Layer"
        TIME_WINDOWS[Time Windows<br/>Event Grouping]
        FIELD_CORRELATION[Field Correlation<br/>Common Attributes]
        THRESHOLD_DETECTION[Threshold Detection<br/>Count-based Rules]
        SEQUENCE_ANALYSIS[Sequence Analysis<br/>Ordered Events]
        ANOMALY_DETECTION[Anomaly Detection<br/>Statistical Analysis]
    end
    
    subgraph "Decision Layer"
        RULE_EVALUATION[Rule Evaluation<br/>Condition Assessment]
        CONFIDENCE_SCORING[Confidence Scoring<br/>Match Quality]
        ALERT_GENERATION[Alert Generation<br/>Notification Creation]
        RISK_CALCULATION[Risk Calculation<br/>Entity Risk Scoring]
        ACTION_TRIGGERS[Action Triggers<br/>Automated Response]
    end
    
    subgraph "Output Layer"
        ALERTS[Security Alerts<br/>Prioritized Incidents]
        INVESTIGATIONS[Investigation Cases<br/>Detailed Analysis]
        DASHBOARDS[Real-time Dashboards<br/>Visual Analytics]
        REPORTS[Intelligence Reports<br/>Trend Analysis]
        NOTIFICATIONS[Notifications<br/>Team Communication]
        RESPONSES[Automated Responses<br/>Immediate Actions]
    end
    
    %% Data Flow Connections
    LOG_EVENTS --> EVENT_PROCESSOR
    SIGMA_RULES --> SIGMA_ENGINE
    CORRELATION_RULES --> CORRELATION_ENGINE
    THREAT_INTEL --> THREAT_ENRICHMENT
    
    EVENT_PROCESSOR --> SIGMA_ENGINE
    EVENT_PROCESSOR --> CORRELATION_ENGINE
    EVENT_PROCESSOR --> THREAT_ENRICHMENT
    EVENT_PROCESSOR --> UEBA_ENGINE
    
    SIGMA_ENGINE --> TIME_WINDOWS
    CORRELATION_ENGINE --> FIELD_CORRELATION
    CORRELATION_ENGINE --> THRESHOLD_DETECTION
    CORRELATION_ENGINE --> SEQUENCE_ANALYSIS
    UEBA_ENGINE --> ANOMALY_DETECTION
    
    TIME_WINDOWS --> RULE_EVALUATION
    FIELD_CORRELATION --> RULE_EVALUATION
    THRESHOLD_DETECTION --> RULE_EVALUATION
    SEQUENCE_ANALYSIS --> RULE_EVALUATION
    ANOMALY_DETECTION --> RULE_EVALUATION
    
    RULE_EVALUATION --> CONFIDENCE_SCORING
    CONFIDENCE_SCORING --> ALERT_GENERATION
    CONFIDENCE_SCORING --> RISK_CALCULATION
    ALERT_GENERATION --> ACTION_TRIGGERS
    
    ALERT_GENERATION --> ALERTS
    ALERTS --> INVESTIGATIONS
    ALERTS --> DASHBOARDS
    RISK_CALCULATION --> REPORTS
    ACTION_TRIGGERS --> NOTIFICATIONS
    ACTION_TRIGGERS --> RESPONSES
    
    %% Feedback Loops
    INVESTIGATIONS -.-> CORRELATION_RULES
    ALERTS -.-> SIGMA_RULES
    RESPONSES -.-> THREAT_INTEL
    
    %% Styling
    classDef input fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
    classDef processing fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
    classDef correlation fill:#fff3e0,stroke:#f57c00,stroke-width:2px
    classDef decision fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    classDef output fill:#fce4ec,stroke:#c2185b,stroke-width:2px
    
    class LOG_EVENTS,SIGMA_RULES,CORRELATION_RULES,THREAT_INTEL input
    class EVENT_PROCESSOR,SIGMA_ENGINE,CORRELATION_ENGINE,THREAT_ENRICHMENT,UEBA_ENGINE processing
    class TIME_WINDOWS,FIELD_CORRELATION,THRESHOLD_DETECTION,SEQUENCE_ANALYSIS,ANOMALY_DETECTION correlation
    class RULE_EVALUATION,CONFIDENCE_SCORING,ALERT_GENERATION,RISK_CALCULATION,ACTION_TRIGGERS decision
    class ALERTS,INVESTIGATIONS,DASHBOARDS,REPORTS,NOTIFICATIONS,RESPONSES output

3. SIEM Workflow Integration Points¶

graph LR
    subgraph "Data Sources"
        MAC_AGENT[Mac Agent<br/>System Events]
        WIN_AGENT[Windows Agent<br/>Event Logs]
        CLOUD_LOGS[Cloud Services<br/>API Events]
        NETWORK_LOGS[Network Devices<br/>Syslog Events]
    end
    
    subgraph "Ingestion & Normalization"
        LOG_COLLECTOR[Log Collector<br/>Multi-protocol Support]
        DATA_NORMALIZER[Data Normalizer<br/>Common Schema]
        FIELD_MAPPER[Field Mapper<br/>Source Adaptation]
    end
    
    subgraph "Rules & Correlation Engine"
        SIGMA_PROCESSOR[SIGMA Processor<br/>Detection Rules]
        CORRELATION_PROCESSOR[Correlation Processor<br/>Multi-event Analysis]
        THREAT_MATCHER[Threat Matcher<br/>IOC Correlation]
        UEBA_ANALYZER[UEBA Analyzer<br/>Behavioral Patterns]
    end
    
    subgraph "Intelligence & Context"
        THREAT_FEEDS[Threat Intelligence<br/>External Feeds]
        ENTITY_CONTEXT[Entity Context<br/>Asset Information]
        GEO_CONTEXT[Geographic Context<br/>Location Data]
        REPUTATION_DB[Reputation Database<br/>Known Bad/Good]
    end
    
    subgraph "Decision & Response"
        ALERT_MANAGER[Alert Manager<br/>Deduplication & Prioritization]
        CASE_MANAGER[Case Manager<br/>Investigation Workflows]
        RESPONSE_ORCHESTRATOR[Response Orchestrator<br/>Automated Actions]
        NOTIFICATION_ENGINE[Notification Engine<br/>Communication Hub]
    end
    
    subgraph "User Interface"
        DASHBOARD_UI[Interactive Dashboards<br/>Real-time Monitoring]
        INVESTIGATION_UI[Investigation Interface<br/>Case Management]
        REPORTING_UI[Reporting Interface<br/>Analytics & Trends]
        ADMIN_UI[Administration Interface<br/>Rules & Configuration]
    end
    
    %% Data Flow
    MAC_AGENT --> LOG_COLLECTOR
    WIN_AGENT --> LOG_COLLECTOR
    CLOUD_LOGS --> LOG_COLLECTOR
    NETWORK_LOGS --> LOG_COLLECTOR
    
    LOG_COLLECTOR --> DATA_NORMALIZER
    DATA_NORMALIZER --> FIELD_MAPPER
    
    FIELD_MAPPER --> SIGMA_PROCESSOR
    FIELD_MAPPER --> CORRELATION_PROCESSOR
    FIELD_MAPPER --> THREAT_MATCHER
    FIELD_MAPPER --> UEBA_ANALYZER
    
    THREAT_FEEDS --> THREAT_MATCHER
    ENTITY_CONTEXT --> CORRELATION_PROCESSOR
    GEO_CONTEXT --> THREAT_MATCHER
    REPUTATION_DB --> SIGMA_PROCESSOR
    
    SIGMA_PROCESSOR --> ALERT_MANAGER
    CORRELATION_PROCESSOR --> ALERT_MANAGER
    THREAT_MATCHER --> ALERT_MANAGER
    UEBA_ANALYZER --> ALERT_MANAGER
    
    ALERT_MANAGER --> CASE_MANAGER
    ALERT_MANAGER --> RESPONSE_ORCHESTRATOR
    ALERT_MANAGER --> NOTIFICATION_ENGINE
    
    CASE_MANAGER --> INVESTIGATION_UI
    ALERT_MANAGER --> DASHBOARD_UI
    CORRELATION_PROCESSOR --> REPORTING_UI
    RESPONSE_ORCHESTRATOR --> ADMIN_UI
    
    %% Styling
    classDef source fill:#e1f5fe,stroke:#01579b,stroke-width:2px
    classDef ingestion fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
    classDef engine fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
    classDef intelligence fill:#fff3e0,stroke:#e65100,stroke-width:2px
    classDef decision fill:#fce4ec,stroke:#c2185b,stroke-width:2px
    classDef ui fill:#f1f8e9,stroke:#388e3c,stroke-width:2px
    
    class MAC_AGENT,WIN_AGENT,CLOUD_LOGS,NETWORK_LOGS source
    class LOG_COLLECTOR,DATA_NORMALIZER,FIELD_MAPPER ingestion
    class SIGMA_PROCESSOR,CORRELATION_PROCESSOR,THREAT_MATCHER,UEBA_ANALYZER engine
    class THREAT_FEEDS,ENTITY_CONTEXT,GEO_CONTEXT,REPUTATION_DB intelligence
    class ALERT_MANAGER,CASE_MANAGER,RESPONSE_ORCHESTRATOR,NOTIFICATION_ENGINE decision
    class DASHBOARD_UI,INVESTIGATION_UI,REPORTING_UI,ADMIN_UI ui

4. Database Integration Schema Extensions¶

New Tables Required for Full Correlation Engine:¶

-- Correlation Rules Engine Tables
CREATE TABLE correlation_rules (
    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
    organization_id UUID REFERENCES organizations(id) ON DELETE CASCADE,
    name VARCHAR(255) NOT NULL,
    description TEXT,
    enabled BOOLEAN DEFAULT true,
    conditions JSONB NOT NULL,
    correlation_fields VARCHAR[] NOT NULL,
    time_window_ms INTEGER NOT NULL DEFAULT 300000, -- 5 minutes
    threshold INTEGER NOT NULL DEFAULT 2,
    action VARCHAR(50) NOT NULL DEFAULT 'alert',
    severity VARCHAR(20) NOT NULL DEFAULT 'medium',
    tags VARCHAR[] DEFAULT '{}',
    created_by UUID REFERENCES users(id),
    created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE correlation_windows (
    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
    rule_id UUID REFERENCES correlation_rules(id) ON DELETE CASCADE,
    organization_id UUID REFERENCES organizations(id) ON DELETE CASCADE,
    start_time TIMESTAMPTZ NOT NULL,
    end_time TIMESTAMPTZ NOT NULL,
    event_count INTEGER DEFAULT 0,
    correlation_field_values JSONB DEFAULT '{}',
    matched BOOLEAN DEFAULT false,
    created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE correlation_matches (
    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
    rule_id UUID REFERENCES correlation_rules(id) ON DELETE CASCADE,
    window_id UUID REFERENCES correlation_windows(id) ON DELETE CASCADE,
    organization_id UUID REFERENCES organizations(id) ON DELETE CASCADE,
    timestamp TIMESTAMPTZ NOT NULL,
    severity VARCHAR(20) NOT NULL,
    confidence INTEGER NOT NULL,
    correlation_data JSONB DEFAULT '{}',
    actions VARCHAR[] DEFAULT '{}',
    event_count INTEGER NOT NULL,
    events_summary JSONB DEFAULT '{}',
    status VARCHAR(20) DEFAULT 'new',
    assigned_to UUID REFERENCES users(id),
    created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
    resolved_at TIMESTAMPTZ
);

-- SIGMA Rules Tables
CREATE TABLE sigma_rules (
    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
    organization_id UUID REFERENCES organizations(id) ON DELETE CASCADE,
    title VARCHAR(255) NOT NULL,
    description TEXT,
    status VARCHAR(20) DEFAULT 'experimental',
    author VARCHAR(255),
    references VARCHAR[] DEFAULT '{}',
    tags VARCHAR[] DEFAULT '{}',
    logsource JSONB NOT NULL,
    detection JSONB NOT NULL,
    falsepositives VARCHAR[] DEFAULT '{}',
    level VARCHAR(20) NOT NULL,
    fields VARCHAR[] DEFAULT '{}',
    enabled BOOLEAN DEFAULT true,
    created_by UUID REFERENCES users(id),
    created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);

-- Threat Intelligence Tables
CREATE TABLE threat_indicators (
    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
    organization_id UUID REFERENCES organizations(id) ON DELETE CASCADE,
    type VARCHAR(50) NOT NULL,
    value VARCHAR(1000) NOT NULL,
    source VARCHAR(255) NOT NULL,
    confidence INTEGER NOT NULL,
    severity VARCHAR(20) NOT NULL,
    tags VARCHAR[] DEFAULT '{}',
    first_seen TIMESTAMPTZ NOT NULL,
    last_seen TIMESTAMPTZ NOT NULL,
    expires_at TIMESTAMPTZ,
    metadata JSONB DEFAULT '{}',
    related_iocs VARCHAR[] DEFAULT '{}',
    tlp VARCHAR(10) DEFAULT 'amber',
    active BOOLEAN DEFAULT true,
    created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);

-- UEBA Tables
CREATE TABLE entity_behavior_profiles (
    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
    organization_id UUID REFERENCES organizations(id) ON DELETE CASCADE,
    entity_id VARCHAR(255) NOT NULL,
    entity_type VARCHAR(50) NOT NULL,
    baseline_behavior JSONB DEFAULT '{}',
    current_behavior JSONB DEFAULT '{}',
    risk_score INTEGER DEFAULT 0,
    last_updated TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
    peer_group JSONB DEFAULT '{}',
    anomaly_history JSONB DEFAULT '{}',
    created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);

Document Version: 1.0.0
Last Updated: June 2025
Part of: SecureWatch SIEM Architecture Documentation

This ERD provides the complete data model for integrating correlation and rules engines into the SecureWatch SIEM platform, showing all necessary entities, relationships, and data flows for comprehensive threat detection and response.