ETC Collector - Open Source Security Auditor
Identity security auditor rewritten from Node.js to Go. Single binary, zero dependencies. 400+ checks, ADCS ESC1-11 auditing, concurrent LDAP queries. REST API (Gin), Docker multi-arch, audits 500 users in under 60 seconds. Sustainable Use License.
Go-Based CLI + REST API Architecture
Open-source security auditor rewritten from Node.js to Go for performance and portability
CLI & REST API
Cobra CLI framework + Gin HTTP server on port 8443. JWT authentication, rate limiting (100 req/min), async job support with polling for large domains. Health check endpoint.
Audit Engine
400+ detectors across 15 categories. Self-registering detector registry pattern. Graph-based attack path analysis for privilege escalation detection. Concurrent LDAP queries via goroutines.
Provider Layer
LDAP provider (AD on-prem), Azure provider (Graph API with pagination >999 items), Network probes, SMB protocol. YAML config with environment variable interpolation.
Key Features
400+ Security Checks
AD + Azure Entra ID across 15 categories: Kerberos, ADCS, Permissions, GPO, Network, Compliance, Attack Paths, and more
Complete Go Rewrite
From Node.js to Go. Single binary, zero external dependencies, concurrent operations via goroutines
Graph-Based Attack Path Analysis
Privilege escalation detection analyzing relationships between AD objects, group memberships, and permissions. Maps vulnerabilities to real attack chains
ADCS Certificate Auditing (ESC1-11)
Complete Active Directory Certificate Services security coverage. Detects ESC1 through ESC11 certificate vulnerability patterns
REST API with Async Jobs
JWT auth, rate limiting, async mode for large domains (10,000+ objects) with polling. Health checks. AD and Azure audit endpoints
Multi-Format Output
JSON, HTML, CSV export. Structured findings with severity classification, MITRE ATT&CK mapping, and remediation guidance per finding
Compliance Frameworks
ANSSI, CIS, NIST, DISA built-in. Standards-aligned security checks with compliance scoring and gap analysis
Docker Multi-Arch
linux/amd64 + linux/arm64. Alpine 3.19, non-root execution, health checks. Also available as standalone binary for any platform
Tech Stack
99.2% of codebase. Single binary, zero dependencies, goroutines for concurrency
Active Directory connectivity. Connection pooling, LDAPS (port 636), injection prevention
Azure Entra ID auditing. Pagination >999 items, conditional access, PIM analysis
REST API server. JWT middleware, rate limiting, async job support, health checks
CLI command structure + YAML config with environment variable interpolation
Network-level security probing (port 445). SMB signing verification
Alpine 3.19, multi-stage build, non-root user, amd64 + arm64 support
Structured logging. Production-grade, high-performance, leveled logging
Results & Metrics
Technical Performance
Business Impact
Security & Compliance
Technical Challenges & Solutions
Complete Rewrite Node.js to Go
Graph-Based Attack Path Engine
Azure Graph API Pagination for Large Tenants
Detector Registry Scalability
Demonstrated Skills
Go Development
Security Engineering
Protocol Engineering
API Design
Open Source & DevOps
Interested in this project?
Contact me to discuss similar projects or for more information.