Help us shape the future of Go! Take the 2026 Go Developer Survey

security

package
v0.8.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 7, 2026 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Package security provides AWS Artifact compliance validation and SCP enforcement

Package security provides integrated security management for Prism

Package security provides configuration validation for production deployments

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DetectUserExternalIP

func DetectUserExternalIP() (string, error)

DetectUserExternalIP detects the user's current external IP address for security group rules

func GetWebInterfaceBindIP

func GetWebInterfaceBindIP() string

GetWebInterfaceBindIP returns the appropriate bind IP for web interfaces based on security configuration

Types

type AWSComplianceStatus

type AWSComplianceStatus struct {
	Framework          ComplianceFramework        `json:"framework"`
	AWSCompliant       bool                       `json:"aws_compliant"`
	ArtifactReportID   string                     `json:"artifact_report_id,omitempty"`
	LastUpdated        time.Time                  `json:"last_updated"`
	ComplianceScope    []string                   `json:"compliance_scope"`
	RequiredSCPs       []string                   `json:"required_scps"`
	ImplementedSCPs    []string                   `json:"implemented_scps"`
	GapAnalysis        []ComplianceGap            `json:"gap_analysis"`
	AWSServices        []AWSServiceCompliance     `json:"aws_services"`
	RecommendedActions []ComplianceRecommendation `json:"recommended_actions"`
}

AWSComplianceStatus represents the compliance status against AWS Artifact reports

type AWSComplianceValidator

type AWSComplianceValidator struct {
	// contains filtered or unexported fields
}

AWSComplianceValidator validates Prism against AWS Artifact compliance reports and SCPs

func NewAWSComplianceValidator

func NewAWSComplianceValidator(awsProfile, region string) (*AWSComplianceValidator, error)

NewAWSComplianceValidator creates a new AWS compliance validator

func (*AWSComplianceValidator) GetSupportedFrameworks

func (v *AWSComplianceValidator) GetSupportedFrameworks() []ComplianceFramework

GetSupportedFrameworks returns list of supported compliance frameworks

func (*AWSComplianceValidator) ValidateCompliance

func (v *AWSComplianceValidator) ValidateCompliance(ctx context.Context, framework ComplianceFramework) (*AWSComplianceStatus, error)

ValidateCompliance validates Prism against specified compliance framework

type AWSServiceCompliance

type AWSServiceCompliance struct {
	ServiceName         string                 `json:"service_name"`
	ComplianceStatus    string                 `json:"compliance_status"`
	CertifiedRegions    []string               `json:"certified_regions"`
	RequiredFeatures    []string               `json:"required_features"`
	ConfigurationNeeded map[string]interface{} `json:"configuration_needed"`
}

AWSServiceCompliance represents compliance status of AWS services used by Prism

type AccessConfig

type AccessConfig struct {
	Strategy   AccessStrategy
	UserIP     string
	SubnetCIDR string
	BindIP     string
	Message    string
}

AccessConfig contains the determined access configuration

func DetermineAccessStrategy

func DetermineAccessStrategy() *AccessConfig

DetermineAccessStrategy determines the best access strategy for web interfaces

type AccessInfo

type AccessInfo struct {
	Strategy     AccessStrategy
	UserIP       string
	SubnetCIDR   string
	BindIP       string
	Message      string
	Instructions []string
}

AccessInfo contains information about current access configuration

func GetAccessInfo

func GetAccessInfo() *AccessInfo

GetAccessInfo returns current access configuration and instructions

type AccessManager

type AccessManager struct {
	// contains filtered or unexported fields
}

AccessManager provides high-level access management functionality

func NewAccessManager

func NewAccessManager(ec2Client EC2ClientInterface, securityGroupID string) *AccessManager

NewAccessManager creates a new access manager

func (*AccessManager) RefreshAccess

func (am *AccessManager) RefreshAccess() error

RefreshAccess updates security group rules for current IP

func (*AccessManager) WatchIPChanges

func (am *AccessManager) WatchIPChanges(interval time.Duration, stopChan <-chan struct{})

WatchIPChanges monitors for IP changes and updates access rules

type AccessStrategy

type AccessStrategy int

AccessStrategy defines how web interfaces should be accessed

const (
	AccessDirect   AccessStrategy = iota // Direct access from user IP
	AccessSubnet                         // Access from user's subnet (/24)
	AccessTunneled                       // SSH tunneling required
)

type ComplianceFramework

type ComplianceFramework string

ComplianceFramework represents supported compliance frameworks

const (
	// Primary research compliance frameworks
	ComplianceNIST800171 ComplianceFramework = "NIST-800-171"
	ComplianceNIST80053  ComplianceFramework = "NIST-800-53"
	ComplianceSOC2       ComplianceFramework = "SOC-2"
	ComplianceHIPAA      ComplianceFramework = "HIPAA"
	ComplianceGDPR       ComplianceFramework = "GDPR"
	ComplianceFedRAMP    ComplianceFramework = "FedRAMP"
	ComplianceISO27001   ComplianceFramework = "ISO-27001"
	CompliancePCIDSS     ComplianceFramework = "PCI-DSS"

	// Export control and defense frameworks
	ComplianceITAR   ComplianceFramework = "ITAR"
	ComplianceEAR    ComplianceFramework = "EAR"
	ComplianceCSA    ComplianceFramework = "CSA-STAR"
	ComplianceFISMA  ComplianceFramework = "FISMA"
	ComplianceDFARS  ComplianceFramework = "DFARS"
	ComplianceCMMC   ComplianceFramework = "CMMC"
	ComplianceCMMCL1 ComplianceFramework = "CMMC-L1"
	ComplianceCMMCL2 ComplianceFramework = "CMMC-L2"
	ComplianceCMMCL3 ComplianceFramework = "CMMC-L3"
	ComplianceENISA  ComplianceFramework = "ENISA"
	ComplianceC5     ComplianceFramework = "C5"
	ComplianceFERPA  ComplianceFramework = "FERPA"
)

type ComplianceGap

type ComplianceGap struct {
	Control           string `json:"control"`
	AWSImplementation string `json:"aws_implementation"`
	PrismGap          string `json:"prism_gap"`
	Severity          string `json:"severity"`
	Remediation       string `json:"remediation"`
}

ComplianceGap represents gaps between Prism and AWS compliance posture

type ComplianceRecommendation

type ComplianceRecommendation struct {
	Priority       string `json:"priority"`
	Action         string `json:"action"`
	AWSService     string `json:"aws_service,omitempty"`
	SCPRequired    string `json:"scp_required,omitempty"`
	Impact         string `json:"impact"`
	Implementation string `json:"implementation"`
}

ComplianceRecommendation provides specific actions to improve compliance alignment

type EC2ClientInterface

type EC2ClientInterface interface {
	AuthorizeSecurityGroupIngress(ctx context.Context, params *ec2.AuthorizeSecurityGroupIngressInput, optFns ...func(*ec2.Options)) (*ec2.AuthorizeSecurityGroupIngressOutput, error)
	RevokeSecurityGroupIngress(ctx context.Context, params *ec2.RevokeSecurityGroupIngressInput, optFns ...func(*ec2.Options)) (*ec2.RevokeSecurityGroupIngressOutput, error)
}

EC2ClientInterface defines the EC2 operations needed for security group updates

type SecurityConfig

type SecurityConfig struct {
	// Audit logging configuration
	AuditLogEnabled  bool `json:"audit_log_enabled"`
	LogRetentionDays int  `json:"log_retention_days"`

	// Monitoring configuration
	MonitoringEnabled bool          `json:"monitoring_enabled"`
	MonitorInterval   time.Duration `json:"monitor_interval"`
	AlertThreshold    string        `json:"alert_threshold"` // LOW, MEDIUM, HIGH, CRITICAL

	// Registry security configuration
	RegistrySecurityEnabled bool   `json:"registry_security_enabled"`
	RegistryURL             string `json:"registry_url"`

	// Correlation analysis configuration
	CorrelationEnabled bool          `json:"correlation_enabled"`
	AnalysisInterval   time.Duration `json:"analysis_interval"`

	// Health check configuration
	HealthCheckEnabled  bool          `json:"health_check_enabled"`
	HealthCheckInterval time.Duration `json:"health_check_interval"`
}

SecurityConfig provides configuration for the security manager

func GetDefaultSecurityConfig

func GetDefaultSecurityConfig() SecurityConfig

GetDefaultSecurityConfig returns default security configuration

type SecurityConfigValidator

type SecurityConfigValidator struct {
	// contains filtered or unexported fields
}

SecurityConfigValidator validates security configurations for production deployment

func NewSecurityConfigValidator

func NewSecurityConfigValidator(config SecurityConfig) *SecurityConfigValidator

NewSecurityConfigValidator creates a new security configuration validator

func (*SecurityConfigValidator) ValidateSecurityConfiguration

func (v *SecurityConfigValidator) ValidateSecurityConfiguration() (*SecurityValidationResult, error)

ValidateSecurityConfiguration performs comprehensive security configuration validation

type SecurityGroupUpdater

type SecurityGroupUpdater struct {
	// contains filtered or unexported fields
}

SecurityGroupUpdater handles dynamic security group updates

func NewSecurityGroupUpdater

func NewSecurityGroupUpdater(ec2Client EC2ClientInterface, groupID string) *SecurityGroupUpdater

NewSecurityGroupUpdater creates a new security group updater

func (*SecurityGroupUpdater) UpdateAccessRules

func (sgu *SecurityGroupUpdater) UpdateAccessRules(ctx context.Context) error

UpdateAccessRules updates security group rules when IP changes

type SecurityLevel

type SecurityLevel string

SecurityLevel represents the overall security level

const (
	SecurityLevelBasic      SecurityLevel = "BASIC"
	SecurityLevelStandard   SecurityLevel = "STANDARD"
	SecurityLevelHardened   SecurityLevel = "HARDENED"
	SecurityLevelEnterprise SecurityLevel = "ENTERPRISE"
)

type SecurityManager

type SecurityManager struct {
	// contains filtered or unexported fields
}

SecurityManager coordinates all security components for Prism

func NewSecurityManager

func NewSecurityManager(config SecurityConfig) (*SecurityManager, error)

NewSecurityManager creates and initializes a new security manager

func (*SecurityManager) GetSecurityStatus

func (m *SecurityManager) GetSecurityStatus() (*SecurityStatus, error)

GetSecurityStatus returns comprehensive security status

func (*SecurityManager) LogAccessAttempt

func (m *SecurityManager) LogAccessAttempt(deviceID string, success bool, reason string, details map[string]interface{})

LogAccessAttempt logs access attempt events

func (*SecurityManager) LogDeviceRegistration

func (m *SecurityManager) LogDeviceRegistration(deviceID, invitationToken string, success bool, errorCode string, details map[string]interface{})

LogDeviceRegistration logs device registration events

func (*SecurityManager) LogSecurityEvent

func (m *SecurityManager) LogSecurityEvent(eventType string, success bool, deviceID string, details map[string]interface{})

LogSecurityEvent logs a security event through the audit logger

func (*SecurityManager) LogTamperAttempt

func (m *SecurityManager) LogTamperAttempt(deviceID, filePath, expectedHash, actualHash string)

LogTamperAttempt logs tamper detection events

func (*SecurityManager) PerformHealthCheck

func (m *SecurityManager) PerformHealthCheck() error

PerformHealthCheck performs comprehensive security health check

func (*SecurityManager) RegisterDevice

func (m *SecurityManager) RegisterDevice(invitationToken, deviceID string) error

RegisterDevice securely registers a device with the registry

func (*SecurityManager) Start

func (m *SecurityManager) Start() error

Start starts the security manager and all enabled components

func (*SecurityManager) Stop

func (m *SecurityManager) Stop() error

Stop gracefully stops the security manager and all components

func (*SecurityManager) UpdateConfig added in v0.7.7

func (m *SecurityManager) UpdateConfig(newConfig SecurityConfig) error

UpdateConfig applies an updated security configuration at runtime. Fields that affect background goroutine scheduling (MonitoringEnabled, CorrelationEnabled) are stored and will take full effect on the next daemon restart; all other fields (AlertThreshold, LogRetentionDays, etc.) take effect immediately.

func (*SecurityManager) ValidateDeviceBinding

func (m *SecurityManager) ValidateDeviceBinding(deviceID string, expectedFingerprint map[string]interface{}) error

ValidateDeviceBinding validates device binding for security

type SecurityStatus

type SecurityStatus struct {
	Enabled         bool                           `json:"enabled"`
	Running         bool                           `json:"running"`
	LastHealthCheck time.Time                      `json:"last_health_check"`
	Dashboard       *security.SecurityDashboard    `json:"dashboard,omitempty"`
	Correlations    []security.SecurityCorrelation `json:"recent_correlations,omitempty"`
	SystemHealth    *security.SystemHealthStatus   `json:"system_health,omitempty"`
	KeychainInfo    *security.KeychainInfo         `json:"keychain_info,omitempty"`
	Configuration   SecurityConfig                 `json:"configuration"`
}

SecurityStatus provides comprehensive security status information

type SecurityValidationResult

type SecurityValidationResult struct {
	Valid           bool                       `json:"valid"`
	Score           int                        `json:"score"` // 0-100 security score
	Level           SecurityLevel              `json:"level"`
	Issues          []ValidationIssue          `json:"issues"`
	Warnings        []ValidationWarning        `json:"warnings"`
	Recommendations []ValidationRecommendation `json:"recommendations"`
	Summary         string                     `json:"summary"`
}

SecurityValidationResult represents the result of security configuration validation

func ValidateCurrentConfiguration

func ValidateCurrentConfiguration() (*SecurityValidationResult, error)

ValidateCurrentConfiguration validates the current security configuration

type ValidationIssue

type ValidationIssue struct {
	Component  string `json:"component"`
	Issue      string `json:"issue"`
	Severity   string `json:"severity"`
	Impact     string `json:"impact"`
	Resolution string `json:"resolution"`
}

ValidationIssue represents a security configuration issue that must be fixed

type ValidationRecommendation

type ValidationRecommendation struct {
	Component      string `json:"component"`
	Recommendation string `json:"recommendation"`
	Priority       string `json:"priority"`
	Benefit        string `json:"benefit"`
}

ValidationRecommendation represents a security improvement recommendation

type ValidationResult

type ValidationResult struct {
	Strategy              AccessStrategy
	DirectAccessAvailable bool
	AccessibleIPs         map[string]bool
	PortsChecked          []int
	Message               string
	Timestamp             time.Time
}

ValidationResult contains results of web access validation

func ValidateWebAccess

func ValidateWebAccess(instanceIP string, ports []int) *ValidationResult

ValidateWebAccess tests if web interfaces are accessible

type ValidationWarning

type ValidationWarning struct {
	Component      string `json:"component"`
	Warning        string `json:"warning"`
	Recommendation string `json:"recommendation"`
}

ValidationWarning represents a security configuration warning

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL