Documentation
¶
Overview ¶
Package security provides a unified middleware layer for all security features. This integrates static analysis and data encryption transparently with the engine.
Index ¶
- type Config
- type ScriptAnalysisResult
- type SecurityMetrics
- type SecurityMiddleware
- func (sm *SecurityMiddleware) AnalyzeScript(script string, scriptID string) error
- func (sm *SecurityMiddleware) DecryptField(value string) (string, error)
- func (sm *SecurityMiddleware) EncryptField(fieldName string, value string) (string, error)
- func (sm *SecurityMiddleware) GetMetrics() SecurityMetrics
- func (sm *SecurityMiddleware) IsEnabled() bool
- func (sm *SecurityMiddleware) MarshalMetricsJSON() ([]byte, error)
- func (sm *SecurityMiddleware) ProcessResponse(data interface{}) (interface{}, error)
- func (sm *SecurityMiddleware) ResetMetrics()
- func (sm *SecurityMiddleware) SanitizeLog(logMessage string) string
- func (sm *SecurityMiddleware) SanitizeLogs(logMessages []string) []string
- func (sm *SecurityMiddleware) SetEnabled(analysis, encryption bool)
- func (sm *SecurityMiddleware) WrapEchoHandler(next echo.HandlerFunc) echo.HandlerFunc
- func (sm *SecurityMiddleware) WrapGojaVM(vm *goja.Runtime, scriptID string) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// Static Analysis
EnableStaticAnalysis bool `toml:"enable_static_analysis"`
BlockOnHighSeverity bool `toml:"block_on_high_severity"`
LogSecurityWarnings bool `toml:"log_security_warnings"`
AllowedPatterns []string `toml:"allowed_patterns"` // Patterns to whitelist
// Encryption
EnableEncryption bool `toml:"enable_encryption"`
EncryptionKey string `toml:"encryption_key"`
EncryptSensitiveData bool `toml:"encrypt_sensitive_data"`
EncryptInPlace bool `toml:"encrypt_in_place"`
SensitivePatterns []string `toml:"sensitive_patterns"`
AlwaysEncryptFields []string `toml:"always_encrypt_fields"`
CustomPatterns map[string]string `toml:"custom_patterns"`
// Log Sanitization
EnableLogSanitization bool `toml:"enable_log_sanitization"`
LogMaskingChar string `toml:"log_masking_char"`
LogPreserveLength bool `toml:"log_preserve_length"`
LogShowType bool `toml:"log_show_type"`
LogCustomPatterns map[string]string `toml:"log_custom_patterns"`
// Performance
CacheAnalysisResults bool `toml:"cache_analysis_results"`
CacheTTL time.Duration `toml:"cache_ttl"`
}
Config holds all security configuration
type ScriptAnalysisResult ¶
type ScriptAnalysisResult struct {
Issues []analyzer.SecurityIssue
Timestamp time.Time
}
ScriptAnalysisResult caches analysis results
type SecurityMetrics ¶
type SecurityMetrics struct {
ScriptsAnalyzed uint64
ScriptsBlocked uint64
HighSeverityIssues uint64
MediumSeverityIssues uint64
LowSeverityIssues uint64
DataEncrypted uint64
LogsProcessed uint64
LogsSanitized uint64
AnalysisTime time.Duration
EncryptionTime time.Duration
}
SecurityMetrics tracks security-related metrics
type SecurityMiddleware ¶
type SecurityMiddleware struct {
// contains filtered or unexported fields
}
SecurityMiddleware provides unified security features for nFlow Runtime
func NewSecurityMiddleware ¶
func NewSecurityMiddleware(config *Config) (*SecurityMiddleware, error)
NewSecurityMiddleware creates a new security middleware instance
func (*SecurityMiddleware) AnalyzeScript ¶
func (sm *SecurityMiddleware) AnalyzeScript(script string, scriptID string) error
AnalyzeScript performs static analysis on JavaScript code before execution
func (*SecurityMiddleware) DecryptField ¶
func (sm *SecurityMiddleware) DecryptField(value string) (string, error)
DecryptField decrypts a specific field value
func (*SecurityMiddleware) EncryptField ¶
func (sm *SecurityMiddleware) EncryptField(fieldName string, value string) (string, error)
EncryptField encrypts a specific field value
func (*SecurityMiddleware) GetMetrics ¶
func (sm *SecurityMiddleware) GetMetrics() SecurityMetrics
GetMetrics returns current security metrics
func (*SecurityMiddleware) IsEnabled ¶
func (sm *SecurityMiddleware) IsEnabled() bool
IsEnabled returns whether security features are enabled
func (*SecurityMiddleware) MarshalMetricsJSON ¶
func (sm *SecurityMiddleware) MarshalMetricsJSON() ([]byte, error)
MarshalMetricsJSON returns metrics as JSON
func (*SecurityMiddleware) ProcessResponse ¶
func (sm *SecurityMiddleware) ProcessResponse(data interface{}) (interface{}, error)
ProcessResponse encrypts sensitive data in responses
func (*SecurityMiddleware) ResetMetrics ¶
func (sm *SecurityMiddleware) ResetMetrics()
ResetMetrics resets all security metrics
func (*SecurityMiddleware) SanitizeLog ¶
func (sm *SecurityMiddleware) SanitizeLog(logMessage string) string
SanitizeLog sanitizes a log message to remove sensitive data
func (*SecurityMiddleware) SanitizeLogs ¶
func (sm *SecurityMiddleware) SanitizeLogs(logMessages []string) []string
SanitizeLogs sanitizes multiple log messages
func (*SecurityMiddleware) SetEnabled ¶
func (sm *SecurityMiddleware) SetEnabled(analysis, encryption bool)
SetEnabled enables or disables security features
func (*SecurityMiddleware) WrapEchoHandler ¶
func (sm *SecurityMiddleware) WrapEchoHandler(next echo.HandlerFunc) echo.HandlerFunc
WrapEchoHandler wraps an Echo handler with security features
func (*SecurityMiddleware) WrapGojaVM ¶
func (sm *SecurityMiddleware) WrapGojaVM(vm *goja.Runtime, scriptID string) error
WrapGojaVM wraps a Goja VM to add security hooks
Directories
¶
| Path | Synopsis |
|---|---|
|
Package analyzer provides static analysis capabilities for JavaScript code to detect potentially dangerous patterns before execution.
|
Package analyzer provides static analysis capabilities for JavaScript code to detect potentially dangerous patterns before execution. |
|
Package encryption provides AES-256-GCM encryption for sensitive data.
|
Package encryption provides AES-256-GCM encryption for sensitive data. |
|
Package interceptor provides automatic detection and encryption of sensitive data in workflow responses.
|
Package interceptor provides automatic detection and encryption of sensitive data in workflow responses. |
|
Package sanitizer provides log sanitization capabilities to prevent sensitive data exposure in logs.
|
Package sanitizer provides log sanitization capabilities to prevent sensitive data exposure in logs. |