UNPKG

claude-flow-novice

Version:

Claude Flow Novice - Advanced orchestration platform for multi-agent AI workflows with CFN Loop architecture Includes CodeSearch (hybrid SQLite + pgvector), mem0/memgraph specialists, and all CFN skills.

185 lines (142 loc) 7.46 kB
# Security Implementation for AST-Aware CodeSearch Accelerator ## Overview This document describes the comprehensive security controls implemented for the AST-Aware CodeSearch Accelerator to protect against path traversal attacks, resource exhaustion, and malicious inputs. ## Confidence Score: 0.92 ## Security Features Implemented ### 1. Path Traversal Protection (`security.py`) #### PathValidator Class - **Canonicalization**: All paths are resolved to absolute paths - **Base Directory Enforcement**: Validates paths stay within allowed directories - **Symlink Safety**: Checks symlink targets don't escape base directory - **Suspicious Pattern Detection**: Blocks paths with dangerous characters (`..`, `$`, `<`, `>`, etc.) - **Path Length Limits**: Maximum path length of 4096 characters ```python validator = PathValidator("/safe/base/path") safe_path = validator.validate_path(user_input) # Raises SecurityError if invalid ``` ### 2. Resource Limits Enforcement #### File Size Limits - **Maximum file size**: 10MB per file - **Batch size limit**: 1000 files maximum - **Embedding dimension limit**: 8192 dimensions maximum #### ResourceMonitor Class ```python monitor = ResourceMonitor() monitor.check_file_size(file_path) # Raises SecurityError if too large monitor.check_batch_size(batch_count) # Raises SecurityError if too large monitor.check_embedding_dimension(dim) # Raises SecurityError if too large ``` ### 3. Database Security (`sqlite_store.py`) #### DatabaseQuota Management - **Maximum database size**: 1GB - **Automatic cleanup**: Removes old entries when quota exceeded - **Security pragmas**: `foreign_keys=ON`, `secure_delete=ON`, `journal_mode=WAL` - **Audit logging**: Tracks all pattern operations in security_audit table #### SQL Injection Prevention - **Prepared statements**: All queries use parameterized inputs - **Whitelisted ORDER BY**: Only allowed column names for sorting - **Input validation**: All inputs sanitized before database operations ### 4. Input Sanitization (`security.py`) #### InputSanitizer Class - **Query sanitization**: Removes control characters, SQL injection patterns - **File type validation**: Only alphanumeric characters and dots allowed - **Pattern ID validation**: Strict format `pattern_[hex16]` required - **Metadata sanitization**: Removes dangerous keys, limits sizes ```python query = InputSanitizer.sanitize_query(user_query) file_type = InputSanitizer.sanitize_file_type(user_type) pattern_id = InputSanitizer.sanitize_pattern_id(user_id) ``` ### 5. Safe File Operations #### secure_file_read() - **Size limits**: Reads up to specified maximum - **Encoding safety**: Handles UTF-8 with Latin-1 fallback - **Partial read protection**: Detects truncated reads #### Hash Verification - **SHA-256 hashing**: Content integrity verification - **Collision resistance**: Strong hash for content identification ### 6. Embeddings Security (`embeddings_manager.py`) #### Validation Checks - **Vector validation**: Checks for NaN/Inf values - **Dimension verification**: Enforces consistent dimensions - **Norm checking**: Prevents zero vectors - **Content hash tracking**: Detects content modifications #### Storage Limits - **Maximum embeddings**: 100,000 entries - **File size limits**: 1GB for embeddings file - **Memory management**: Controls embedding cache size ### 7. Shell Script Security (`index-code.sh`) #### Path Validation - **Null byte detection**: Rejects paths with null characters - **Directory restrictions**: Blocks system directories (/etc, /usr/bin, etc.) - **Pattern blocking**: Skips node_modules, .git, build directories - **Parent directory limits**: Maximum of 5 `..` references #### File System Checks - **Permission validation**: Rejects world-writable files - **Ownership verification**: Checks file ownership on Unix systems - **File limits**: Configurable maximum files to process ### 8. Security Context Manager ```python with security_context(base_path, operation) as (validator, monitor): # All operations within this context are protected # Automatic resource tracking and logging ``` ## Security Testing ### Comprehensive Test Suite (`test_security.py`) - **17 test cases** covering all security features - **Path traversal tests**: Validates directory escape prevention - **Resource limit tests**: Verifies size/batch enforcement - **Input sanitization tests**: Checks malicious input blocking - **Integration tests**: End-to-end security validation ### Test Results ``` ✅ All 17 security tests passed - Path traversal protection: PASS - Resource limit enforcement: PASS - Input sanitization: PASS - File operation safety: PASS - Database security: PASS ``` ## Security Controls Summary | Control | Implementation | Status | |---------|----------------|--------| | Path Traversal Protection | PathValidator class, symlink checks | ✅ Active | | File Size Limits | ResourceMonitor, 10MB limit | ✅ Active | | Batch Size Limits | MAX_BATCH_SIZE constant, validation | ✅ Active | | Database Quotas | DatabaseQuota class, 1GB limit | ✅ Active | | Input Sanitization | InputSanitizer class, regex validation | ✅ Active | | SQL Injection Prevention | Prepared statements, whitelists | ✅ Active | | Embedding Security | NaN/Inf checks, dimension limits | ✅ Active | | Audit Logging | security_audit table, operation tracking | ✅ Active | ## Security Best Practices Applied 1. **Defense in Depth**: Multiple layers of validation 2. **Fail-Safe Defaults**: Reject suspicious inputs by default 3. **Least Privilege**: Minimal access to file system 4. **Resource Limits**: Prevent exhaustion attacks 5. **Audit Trail**: Complete logging of operations 6. **Input Validation**: Sanitize all user inputs 7. **Error Handling**: Graceful failure with logging ## Recommendations for Deployment 1. **File Permissions**: Ensure application runs with minimal privileges 2. **Storage Location**: Use dedicated directory with restricted access 3. **Regular Cleanup**: Schedule database cleanup for old entries 4. **Monitoring**: Review security audit logs regularly 5. **Updates**: Keep security controls updated with new threat patterns ## Compliance Notes - **OWASP Top 10**: Addresses injection, broken access control, security misconfiguration - **CWE Mitigation**: Prevents CWE-22 (Path Traversal), CWE-400 (Resource Exhaustion) - **Secure Coding**: Follows secure coding best practices ## Risk Assessment ### Before Security Controls - **Critical**: Path traversal vulnerabilities - **High**: Resource exhaustion attacks - **High**: SQL injection possibilities - **Medium**: Malicious file processing ### After Security Controls - **Low**: Residual risks with proper configuration - **Mitigated**: All major attack vectors addressed - **Managed**: Resource usage controlled - **Logged**: All security events audited ## Conclusion The AST-Aware CodeSearch Accelerator now includes comprehensive security controls that protect against the most common attack vectors. The implementation follows security best practices and includes thorough testing to ensure effectiveness. **Confidence Score: 0.92** - High confidence in the security implementation with room for minor improvements in monitoring and alerting.