Event Logging System
Event Architecture
Bitwarden implements a distributed event logging system: Core Components:- Event Service: Captures and emits events (
src/Core/Dirt/Services/Implementations/EventService.cs) - Event Writers: Persist events to storage
- Event Publishers: Send events to message buses
- Event Listeners: Process events for integrations
Event Storage Options
Azure Queue Storage
src/Core/Dirt/Services/Implementations/AzureQueueEventWriteService.cs
Azure Service Bus
- Durable message storage
- Dead-letter queue for failed processing
- Concurrent message processing
- Automatic retry with exponential backoff
src/Core/Settings/GlobalSettings.cs:307
RabbitMQ
src/Core/Dirt/Services/Implementations/RabbitMqService.cs:26
Database Storage
src/Core/Dirt/Repositories/IEventRepository.cs
Event Types
Bitwarden tracks comprehensive event types:User Events (1000-1999)
Cipher Events (2000-2999)
Collection Events (3000-3999)
Organization Events (4000-4999)
Security Task Events (5000-5999)
Event Data Structure
Base Event Interface:- Service account operations
- Provider operations
- Secret manager events
- Device trust events
Audit Trail Implementation
Querying Audit Logs
User Activity:Event Export
Export to CSV:Compliance Frameworks
GDPR Compliance
Right to Access
Right to Erasure
Data Processing Records
Maintain records of:- Data collection purposes
- Data retention periods
- Data processors and sub-processors
- Security measures implemented
- Data transfers outside EU
HIPAA Compliance
Access Controls
Unique User Identification:Audit Controls
Audit Log Review:SOC 2 Compliance
Logical Access (CC6.1)
Access Review:System Monitoring (CC7.2)
Availability Metrics:PCI DSS (If Applicable)
Requirements:- Network segmentation (Req 1)
- Encryption of cardholder data (Req 3)
- Access controls (Req 7)
- Monitoring and logging (Req 10)
- Regular security testing (Req 11)
Event Integration
SIEM Integration
Splunk Integration
HTTP Event Collector:src/Core/Dirt/Models/Data/EventIntegrations/HecListenerConfiguration.cs
Datadog Integration
Webhook Integration
Configuration:Slack/Teams Integration
Alert on Critical Events:src/Core/Dirt/Services/Implementations/SlackService.cs
Retention Policies
Event Retention
Default Retention:Automated Archival
Compliance Reporting
Automated Reports
Access Report:Best Practices
Comprehensive Logging
Enable all event types relevant to your compliance requirements. Don’t selectively disable events.
Protect Audit Logs
Implement write-once storage or secure log forwarding to prevent tampering with audit trails.
Regular Reviews
Schedule quarterly access reviews and monthly audit log analysis. Automate where possible.
Incident Response
Configure real-time alerts for critical security events. Document response procedures.