# Issue #277: Add comprehensive audit logging for security events ## Objective Add comprehensive audit logging for critical security events to enable forensic analysis and attack detection. ## Missing Logging Areas ### 1. Failed signature verifications - **Current**: DEBUG level only - **Location**: `signature.service.ts` - **Required**: WARN level with full details ### 2. Failed OIDC validations - **Current**: No details logged - **Location**: `auth` module - **Required**: Full validation failure details ### 3. Capability bypass attempts - **Current**: Not logged - **Location**: `capability.guard.ts` - **Required**: Log all denied capabilities ### 4. Rate limit violations - **Current**: Not logged - **Location**: ThrottlerGuard - **Required**: Log rate limit hits ### 5. Command injection attempts - **Current**: Not logged - **Location**: `git-validation.util.ts` (recently added) - **Required**: Log validation rejections ## Already Implemented From issue #276 (commit 744290a): - ✅ Incoming connection attempts - ✅ Failed signature verifications for connections - ✅ Connection created events From issue #274 (commit 7a84d96): - ✅ Git command validation (but not logged) ## Implementation Plan ### Priority 1: Add missing audit methods 1. `logSignatureVerificationFailed()` - Failed signatures 2. `logRateLimitViolation()` - Rate limit hits 3. `logCommandInjectionAttempt()` - Malicious input attempts ### Priority 2: Update existing code 1. Add logging to signature.service.ts 2. Add logging to git-validation.util.ts (throw + log) 3. Document rate limit violations (if not already handled by NestJS) ### Priority 3: Review capability guard 1. Check if logCapabilityDenied is being called 2. Add calls if missing ## Status Assessment After reviewing issue #276, we already have: - ✅ logCapabilityDenied() method - ✅ logIncomingConnectionAttempt() - ✅ logIncomingConnectionRejected() - ✅ Signature verification failures for connections What's actually missing: 1. General signature verification failures (outside connection context) 2. Rate limit violation logging 3. Command injection attempt logging ## Implementation Approach Focus on what's truly missing and actionable: 1. **Add command injection attempt logging** - Update git-validation.util.ts to log before throwing - Create logCommandInjectionAttempt() method 2. **Add rate limit logging** - Check if NestJS throttler already logs - Add custom logging if needed 3. **Verify capability logging** - Check that capability.guard.ts calls logCapabilityDenied ## Progress - [ ] Create scratchpad - [ ] Add logCommandInjectionAttempt() to audit service - [ ] Update git-validation.util.ts to log attempts - [ ] Check capability guard logging - [ ] Check rate limit logging - [ ] Add tests - [ ] Run quality gates - [ ] Commit changes - [ ] Push and close issue ## Notes Some of the required logging may already be in place. Need to verify: 1. Capability guard usage 2. Rate limiter behavior 3. OIDC validation (may be in auth module, not federation) Focus on concrete, implementable improvements rather than theoretical gaps.