💡 A containerized, Splunk-powered SOC environment, combining alerting, ticket automation, change management, and policy design.
This homelab features automated security incident detection using Splunk with alert patterns documented in alerts.md.
This homelab features a custom integration between Splunk and Jira to automatically create tickets for each alert.
This homelab features a change management workflow to ensure audit-safe operations.
This homelab features a mock policy setup compliant to SOC 2.
This homelab features role-based access control (RBAC) using OpenLDAP for authentication and groups as documented in groups and users.md.
This homelab is built with docker-compose to provide a simple way to launch the entire system locally.
For more detailed instructions, see Requirements & Launching locally.
Example Requirement Ticket created by "Head of IT Governance" after releasing new security policies:
Example Feature Ticket proposed by "Head of SOC Team":
Example Security Incident Ticket after usage of sudo:
Example Splunk search for sudo usage events with field extraction:
Example Splunk dashboard for monitoring log volume and incident trends:
This homelab simulates real-world monitoring and alerting scenarios for the following activity types:
🔐 Authentication & Access Control
Source | Use Case | Name | Description |
---|---|---|---|
Unix | UC0001 | Unix use of sudo | Detects elevated privilege usage for accountability |
LDAP | UC1001 | LDAP failed admin login | Detects failed login attempts to the OpenLDAP admin account |
🗃️ Database Monitoring (Postgres)
Source | Use Case | Name | Description |
---|---|---|---|
Postgres | UC2001 | Postgres schema change | Detects DDL activity for Postgres instances |
🧠 Collaboration Platform Changes
Source | Use Case | Name | Description |
---|---|---|---|
Jira | UC3001 | Jira repeated failed login | Detects repeated failed logins via Jira |
Jira | UC3002 | Jira successful login at unusual time | Detects logins via Jira at non-business hours |
Jira | UC3003 | Jira permission scheme change | Detects changes to the Jira permission scheme |
Path | Description |
---|---|
/Components/ | Component configuration files |
/Components/*/Config/ | Application-specific configuration |
/Components/*/ConfigEtc/ | OS-specific configuration (e.g. sudo logging) |
/Components/*/ConfigSplunk/ | Splunk data forwarding configuration |
/Components/*/Dockerfile | Docker configuration for installing and configuring container |
/Components/Splunk/CustomApp/ | Custom Splunk app storing indexes, alerts, dashboards and more |
/Documentation/ | Documentation simulating IT Governance duties |
/Documentation/Project/ | Top-level documentation about the system |
/Documentation/Jira/ | Jira-specific documentation (installation, structure) |
/Documentation/Policies/ | Mock policy setup simulating basic SOC 2 compliance |
/compose.yaml | Docker compose entrypoint for starting containers |
- OpenLDAP
- PhpLDAPAdmin (not secured, only for visualizing LDAP structure)
- Postgres instance
- Jira
- Splunk server for log ingestion
- Docker Desktop v4.44.3+ (might work on older versions, untested)
- Splunk account (for downloading universal forwarders)
- Jira License (a trial license is sufficient)
In the root project directory, run docker compose up -d
and wait for installation to finish.
Follow application-specific instructions:
- https://localhost:6443: PhpLDAPAdmin
- http://localhost:8080: Jira
- http://localhost:8000: Splunk
- 🔧 Governance: Expand Policy definitions
- 🔄 Automation: Automate Jira setup process
- 🧠 Integration: Add Incident update automation if activity continues
- 📊 Visualization: Add Jira dashboards to repo
- ✅ Workflow Enforcement: Enforce Jira ticket consistency
- 📚 Documentation: Add Confluence
- 📤 Reporting: Automate report exports from Splunk/Jira