OWASAKA SIEM - Development Phases
Development Strategy
This document outlines the phased development approach for building the O.W.A.S.A.K.A. SIEM platform, from foundation to full production deployment.
PHASE 0: Foundation & Environment Setup ✅
Status: IN PROGRESS Duration: Week 1 Objective: Establish the development substrate and core dependencies
Deliverables
- Repository structure initialized
- Go module configuration (go.mod)
- Directory layout (/cmd, /internal, /pkg, /configs, /web, /docs)
- Build system (Makefile)
- .gitignore for Go + Svelte project
- README.md with project overview
- Architecture documentation (OVERVIEW.md, DATA_MODEL.md)
- Configuration templates (YAML examples)
- Basic logging infrastructure (pkg/logging)
- Basic configuration loader (pkg/config)
Success Criteria
-
make buildproduces a binary -
make testruns (even with no tests yet) - Documentation is comprehensive
- Project structure follows Go best practices
PHASE 1: Network Intelligence Layer
Status: PENDING Duration: Week 2-3 Objective: Build the nervous system - network monitoring with surgical precision
Components to Build
1.1 High-Performance DNS Resolver
Location: internal/network/dns/
Files to Create:
resolver.go- Core DNS resolvercache.go- Query caching with TTLlogger.go- Query logginganalyzer.go- Pattern analysis and anomaly detectionresolver_test.go- Unit tests
Features:
- Custom DNS resolver with complete query logging
- DNS-over-HTTPS (DoH) support
- Query pattern analysis
- Malicious domain detection (local threat feeds)
- Metrics: queries/sec, cache hit ratio, anomaly score
Dependencies:
go get golang.org/x/net/dns
go get github.com/miekg/dns
1.2 Transparent Proxy Engine
Location: internal/network/proxy/
Files to Create:
proxy.go- HTTP/HTTPS proxy serverinterceptor.go- Request/response interceptiontls.go- mTLS termination & cert generationdpi.go- Deep packet inspection hooksprotocol.go- Protocol detectionproxy_test.go- Unit tests
Features:
- mTLS termination for SSL/TLS inspection
- Multi-protocol support (HTTP/HTTPS/WebSocket/gRPC)
- Deep Packet Inspection (DPI)
- Traffic shaping and QoS
- Connection pooling
Dependencies:
go get github.com/elazarl/goproxy
go get golang.org/x/net/http2
1.3 Network Discovery Scanner
Location: internal/network/discovery/
Files to Create:
scanner.go- Network scanner orchestratorarp.go- ARP scanningicmp.go- ICMP (ping) scanningmdns.go- mDNS/Bonjour discoverypassive.go- Passive traffic analysisfingerprint.go- OS/device fingerprintingscanner_test.go- Unit tests
Features:
- Active discovery (ARP, ICMP, mDNS)
- Passive fingerprinting via traffic analysis
- Device classification
- Concurrent scanning with rate limiting
Dependencies:
go get github.com/google/gopacket
go get github.com/google/gopacket/pcap
1.4 Network Topology Mapper
Location: internal/network/topology/
Files to Create:
graph.go- Graph data structurebuilder.go- Topology constructiondiffer.go- Change detectionvisualizer.go- Graph export for UIgraph_test.go- Unit tests
Features:
- Relationship graph construction
- Device categorization
- Change detection with diffing
- Export to JSON for UI visualization
Success Criteria
- DNS resolver intercepts and logs all queries
- Proxy can intercept HTTP/HTTPS traffic
- Network scanner discovers all devices on local subnet
- Topology graph accurately represents network
- All components have >80% test coverage
- Performance: <100ms DNS lookup, <50ms proxy overhead
Testing Plan
- Unit tests for each component
- Integration test: Full network monitoring pipeline
- Performance benchmarks
- Load testing (1000+ concurrent connections)
PHASE 2: Asset Discovery & Attack Surface Mapping
Status: PENDING Duration: Week 4-5 Objective: Map EVERYTHING - physical, virtual, active, dormant, ghost ports
Components to Build
2.1 Physical Device Enumerator
Location: internal/discovery/physical/
Files to Create:
enumerator.go- Hardware enumeration orchestratorusb.go- USB device detectionpci.go- PCIe device detectionhardware.go- Hardware inventoryenumerator_test.go- Unit tests
Features:
- USB/Thunderbolt/PCIe enumeration
- Hardware inventory via /sys/bus
- Firmware version detection
- Hotplug event monitoring
2.2 Virtual Machine Scanner
Location: internal/discovery/virtual/
Files to Create:
vm_scanner.go- VM scanner orchestratorlibvirt.go- libvirt integrationvmware.go- VMware vSphere integrationhyperv.go- Hyper-V integration (future)vm_scanner_test.go- Unit tests
Features:
- Hypervisor detection
- VM inventory via APIs
- Resource allocation tracking
- Snapshot detection
Dependencies:
go get libvirt.org/go/libvirt
2.3 Container Scanner
Location: internal/discovery/virtual/ (containers are "virtual" assets)
Files to Create:
container.go- Container scanningdocker.go- Docker API integrationcontainerd.go- containerd integrationimage.go- Image layer analysis
Features:
- Docker/Podman/containerd integration
- Container inventory and status
- Image vulnerability scanning (basic)
- Network namespace mapping
Dependencies:
go get github.com/docker/docker/client
2.4 Attack Surface Mapper
Location: internal/discovery/attack_surface/
Files to Create:
mapper.go- Attack surface orchestratorport_scanner.go- Full port scanner (0-65535)service_probe.go- Service fingerprintingbanner.go- Banner grabbingtls_scanner.go- TLS/SSL analysismapper_test.go- Unit tests
Features:
- FULL port scan (0-65535, TCP & UDP)
- Service fingerprinting
- Banner grabbing
- TLS/SSL certificate analysis
- Detect dormant/ghost services
2.5 Continuous Reconciliation Engine
Location: internal/discovery/reconciler/
Files to Create:
reconciler.go- Reconciliation orchestratordiffer.go- State diffing algorithmscheduler.go- Periodic re-scanningalerter.go- Change alertingreconciler_test.go- Unit tests
Features:
- Periodic re-scanning (configurable)
- State diffing (Merkle trees)
- Drift analysis
- Historical tracking
Success Criteria
- Discovers all physical devices
- Discovers all VMs and containers
- Scans all 65535 ports (TCP) in <60s
- Detects dormant and ghost services
- Change detection triggers alerts
- All components have >80% test coverage
PHASE 3: Self-Hosted Firefox Integration
Status: PENDING Duration: Week 6 Objective: Secure browsing with forensic-grade logging
Components to Build
3.1 Firefox Launcher
Location: internal/browser/firefox/
Files to Create:
launcher.go- Firefox process managementprofile.go- Profile isolationsandbox.go- Process sandboxinglauncher_test.go- Unit tests
3.2 Policy Enforcer
Location: internal/browser/policies/
Files to Create:
enforcer.go- Policy applicationhardening.go- Security hardening (user.js)extensions.go- Extension lockdownenforcer_test.go- Unit tests
3.3 Browser Automation
Location: internal/browser/automation/
Files to Create:
driver.go- WebDriver/CDP integrationcapture.go- Screenshot/HAR captureforensics.go- Forensic loggingdriver_test.go- Unit tests
Dependencies:
go get github.com/tebeka/selenium
go get github.com/chromedp/chromedp # For CDP
Success Criteria
- Firefox launches with hardened config
- All browsing activity logged
- Screenshots captured on demand
- HAR files saved for analysis
PHASE 4: Modern, Elegant Frontend (UX Layer)
Status: PENDING Duration: Week 7-8 Objective: Build a SIEM dashboard that doesn't suck
Tech Stack
Selected: Svelte + TypeScript + Tailwind CSS
Components to Build
4.1 Dashboard Skeleton
Location: web/src/
Files to Create:
App.svelte- Main applicationroutes/+page.svelte- Home dashboardroutes/+layout.svelte- Layout wrapperlib/websocket.ts- WebSocket clientstores/events.ts- Event storestores/assets.ts- Asset storestores/alerts.ts- Alert store
4.2 Core Components
Location: web/src/components/
Files to Create:
Dashboard.svelte- Main dashboardNetworkGraph.svelte- Network topology visualizationAlertPanel.svelte- Alert listingEventStream.svelte- Real-time event streamAssetList.svelte- Asset inventorySearchBar.svelte- Global search
4.3 Visualization
Dependencies:
npm install d3
npm install cytoscape
npm install chart.js
Success Criteria
- Real-time updates via WebSocket
- <100ms UI response time
- Dark mode by default
- Responsive design (desktop focus)
- Bundle size <500KB (gzipped)
PHASE 5: Local NAS Integration & Data Persistence
Status: PENDING Duration: Week 9 Objective: Secure, encrypted storage with integrity guarantees
Components to Build
5.1 NAS Connector
Location: internal/storage/nas/
Files to Create:
connector.go- NAS connection managernfs.go- NFS clientsmb.go- SMB clienthealthcheck.go- Connection monitoringconnector_test.go- Unit tests
5.2 Encryption Engine
Location: internal/storage/crypto/
Files to Create:
vault.go- Encryption/decryptionkeygen.go- Key derivation (Argon2id)aes.go- AES-256-GCM implementationvault_test.go- Unit tests
5.3 Integrity Verifier
Location: internal/storage/integrity/
Files to Create:
verifier.go- Integrity checkingmerkle.go- Merkle tree implementationaudit.go- Audit log (append-only)snapshot.go- Snapshot managementverifier_test.go- Unit tests
Success Criteria
- Connects to NAS via NFS/SMB
- All data encrypted at rest (AES-256-GCM)
- Integrity verification passes
- Audit logs are tamper-proof
- Automatic snapshot creation
PHASE 6: Intelligence & Correlation Engine
Status: PENDING Duration: Week 10-11 Objective: Turn data into actionable insights
Components to Build
6.1 Stream Processor
Location: internal/analytics/stream/
Files to Create:
processor.go- Event stream processorbuffer.go- In-memory event bufferwindow.go- Sliding window analysisnormalizer.go- Event normalizationprocessor_test.go- Unit tests
6.2 Correlation Engine
Location: internal/analytics/correlation/
Files to Create:
engine.go- Correlation orchestratorrule_parser.go- SIGMA rule parsermatcher.go- Pattern matchinggraph.go- Graph-based correlationengine_test.go- Unit tests
Dependencies:
go get github.com/bradleyjkemp/sigma-go # SIGMA support
6.3 ML Anomaly Detector
Location: internal/analytics/ml/
Files to Create:
detector.go- Anomaly detection orchestratorstatistical.go- Statistical methodsisolation_forest.go- Isolation Forest implementationbaseline.go- Behavioral baseliningdetector_test.go- Unit tests
Success Criteria
- Processes >10,000 events/sec
- SIGMA rules work correctly
- Anomaly detection <5% false positives
- Correlation across multiple sources
- All components have >80% test coverage
Post-MVP (Future Phases)
PHASE 7: Advanced Features
- Distributed mode (multi-node)
- Blockchain-based audit logs
- Hardware acceleration (FPGA)
- AR/VR visualization
- Voice control interface
Development Principles
- Build vertical slices - End-to-end features, not horizontal layers
- Test early, test often - Unit tests before integration tests
- Performance benchmark every commit - No regressions
- Document as you code - godoc comments mandatory
- Security review before merge - Peer review all crypto/network code
Document Version: 0.1.0 Last Updated: 2025-10-25 Status: PHASE 0 - Foundation