@codai/memorai-core
Version:
Simplified advanced memory engine - no tiers, just powerful semantic search with persistence
387 lines • 12.5 kB
TypeScript
/**
* Advanced Memory Security Manager
* Zero-trust security architecture with quantum-resistant encryption and comprehensive audit trails
*/
import { MemoryMetadata } from '../types/index.js';
export interface SecurityConfig {
zeroTrustEnabled: boolean;
encryptionAlgorithm: 'aes-256-gcm' | 'chacha20-poly1305' | 'quantum-resistant';
keyRotationInterval: number;
auditLogging: boolean;
threatDetection: boolean;
dataClassification: boolean;
complianceMode: ComplianceStandard[];
accessControlModel: 'rbac' | 'abac' | 'pbac';
biometricAuth: boolean;
quantumSafety: boolean;
}
export interface EncryptionMetadata {
algorithm: string;
keyId: string;
iv: string;
authTag?: string;
timestamp: Date;
}
export type ComplianceStandard = 'GDPR' | 'HIPAA' | 'SOC2' | 'ISO27001' | 'FedRAMP' | 'PCI-DSS';
export interface SecurityContext {
userId: string;
agentId: string;
sessionId: string;
accessLevel: SecurityLevel;
permissions: Permission[];
riskScore: number;
geoLocation?: {
country: string;
region: string;
ip: string;
};
deviceFingerprint: string;
authenticationMethods: AuthMethod[];
timestamp: Date;
}
export type SecurityLevel = 'public' | 'internal' | 'confidential' | 'restricted' | 'top-secret';
export type Permission = 'read' | 'write' | 'delete' | 'share' | 'export' | 'admin';
export type AuthMethod = 'password' | 'mfa' | 'biometric' | 'certificate' | 'zero-knowledge';
export interface MemoryClassification {
level: SecurityLevel;
categories: string[];
retentionPeriod: number;
encryptionRequired: boolean;
auditRequired: boolean;
geographicRestrictions: string[];
accessLog: boolean;
}
export interface SecurityAuditEvent {
id: string;
timestamp: Date;
eventType: AuditEventType;
userId: string;
agentId: string;
memoryId?: string;
action: string;
result: 'success' | 'failure' | 'blocked';
riskScore: number;
metadata: {
ip: string;
userAgent: string;
location?: string;
details: Record<string, unknown>;
};
compliance: {
gdprCompliant: boolean;
dataSubject?: string;
legalBasis?: string;
retention?: number;
};
}
export type AuditEventType = 'memory_access' | 'memory_creation' | 'memory_modification' | 'memory_deletion' | 'memory_sharing' | 'authentication' | 'authorization' | 'security_violation' | 'compliance_check';
export interface ThreatDetectionRule {
id: string;
name: string;
description: string;
severity: 'low' | 'medium' | 'high' | 'critical';
condition: (events: SecurityAuditEvent[]) => boolean;
action: ThreatResponseAction;
enabled: boolean;
}
export type ThreatResponseAction = 'log_only' | 'alert_admin' | 'block_user' | 'rate_limit' | 'require_auth' | 'escalate_security';
export declare class AdvancedMemorySecurityManager {
private config;
private auditEvents;
private threatDetectionRules;
private encryptionKeys;
private accessTokens;
private readonly MASTER_KEY_ID;
private readonly QUANTUM_ALGORITHM;
constructor(config?: Partial<SecurityConfig>);
/**
* Initialize security infrastructure
*/
private initializeSecurityInfrastructure;
/**
* Authenticate and authorize memory access
*/
authenticateAndAuthorize(userId: string, agentId: string, memoryId: string, action: Permission, context?: Partial<SecurityContext>): Promise<{
authorized: boolean;
securityContext: SecurityContext;
restrictions: string[];
auditEventId: string;
}>;
/**
* Encrypt memory data with advanced encryption
*/
encryptMemory(memory: MemoryMetadata, securityContext: SecurityContext): Promise<{
encryptedData: string;
encryptionMetadata: EncryptionMetadata;
}>;
/**
* Decrypt memory data
*/
decryptMemory(encryptedData: string, encryptionMetadata: EncryptionMetadata, _securityContext: SecurityContext): Promise<MemoryMetadata>;
/**
* Perform zero-trust verification
*/
private performZeroTrustVerification;
/**
* Make access control decision based on configured model
*/
private makeAccessControlDecision;
/**
* Calculate risk score for access attempt
*/
private calculateRiskScore;
/**
* Classify memory data for security purposes
*/
private classifyMemoryData;
/**
* Audit memory access event
*/
private auditMemoryAccess;
/**
* Generate compliance metadata for audit events
*/
private generateComplianceMetadata;
private encryptWithAES256GCM;
private decryptWithAES256GCM;
private encryptWithChaCha20;
private decryptWithChaCha20;
private encryptWithQuantumResistant;
private decryptWithQuantumResistant;
private generateLatticeMatrix;
private applyLatticeEncryption;
private reverseLatticeEncryption;
private applyErrorCorrection;
private removeErrorCorrection;
private calculateParity;
private simulateHashReverse;
private performHKDFExpansion;
private applyLatticeTransformation;
private applyCodeBasedTransformation;
private applyMultivariateTransformation;
private applyIsogenyTransformation;
private generateLatticeBasis;
private generateCodeMatrix;
private generateMultivariateCoefficients;
private generateIsogenyParameters;
private applyIsogenyMap;
private generateMasterKey;
private getCurrentEncryptionKey;
private generateSessionId;
private generateDeviceFingerprint;
private generateAuditId;
private auditEvent;
private scheduleKeyRotation;
private rotateEncryptionKeys;
private initializeThreatDetectionRules;
private evaluateRoleBasedAccess;
private evaluateAttributeBasedAccess;
private evaluatePolicyBasedAccess;
private isDeviceTrusted;
private hasGeographicRestrictions;
private getUserSecurityHistory;
private assessLocationRisk;
private assessTimeBasedRisk;
private assessDeviceRisk;
/**
* Detect anomalous device fingerprint patterns
*/
private isAnomalousDevicePattern;
private assessAuthenticationRisk;
private getRetentionPeriod;
private getGeographicRestrictions;
private determineLegalBasis;
private getGDPRRetentionPeriod;
private analyzeThreatIndicators;
private handleThreatDetection;
/**
* Get security analytics
*/
getSecurityAnalytics(): {
totalAuditEvents: number;
securityViolations: number;
averageRiskScore: number;
encryptionUsage: number;
complianceStatus: Record<ComplianceStandard, boolean>;
};
/**
* Check device registration status in security database
*/
private checkDeviceRegistration;
/**
* Validate device certificate for enhanced security
*/
private validateDeviceCertificate;
/**
* Check device against threat intelligence feeds
*/
private checkDeviceThreatIntelligence;
/**
* Get list of restricted countries based on compliance requirements
*/
private getRestrictedCountries;
/**
* Assess IP address threat level using security intelligence
*/
private assessIPThreatLevel;
/**
* Detect VPN/Proxy usage for compliance scenarios
*/
private detectVPNUsage;
/**
* Validate IP address format
*/
private isValidIP;
/**
* Check for known malicious IP patterns
*/
private isKnownMaliciousPattern;
private calculateGeolocationRisk;
private assessMaliciousPatterns;
private assessNetworkReputation;
private assessAbuseIndicators;
private getHistoricalIncidentRisk;
private extractIncidentFeatures;
private analyzeTemporalPatterns;
private analyzeGeographicIncidents;
private calculateMalwareRisk;
private calculateBruteForceRisk;
private calculatePhishingRisk;
private calculateExfiltrationRisk;
private calculateDDoSRisk;
private calculateSpamRisk;
private applyTemporalDecay;
private calculateIncidentFrequency;
private analyzeSeasonalPatterns;
private calculateRegionalThreatLevel;
private calculateNeighborhoodRisk;
private extractSubnet;
private estimateASN;
private estimateGeolocation;
private calculateStringEntropy;
private hashString;
private calculateASNRisk;
private getASNReputation;
private estimateSubnetSize;
private assessDataQuality;
private applyConfidenceInterval;
private assessRecentActivity;
private calculateTrendDirection;
private assessCrossBorderActivity;
private calculateGeographicRiskFactor;
private calculateJurisdictionalRisk;
private getRecentRequestCount;
private getFailedLoginCount;
private getScannerIndicators;
private generateTimeWindows;
private calculateWindowRequestCount;
private generateIPBehaviorProfile;
private adjustForIPBehavior;
private calculateNetworkLevelModifier;
private calculateSubnetReputation;
private analyzeTimeBasedFailurePatterns;
private calculateRecentFailures;
private analyzeHistoricalFailurePattern;
private analyzeAttackVectors;
private detectCredentialStuffing;
private detectBruteForcePatterns;
private calculateCurrentTimeWindow;
private generateHistoricalFailureData;
private calculateFailurePatternModifier;
private detectRapidFailures;
private detectAccountEnumeration;
private detectPasswordListUsage;
private detectDistributedAttack;
private detectSystematicAttempts;
private detectPasswordVariations;
private detectTargetFocusing;
private assessAttackPersistence;
private generateScanningProfile;
private detectPortScanActivity;
private detectServiceEnumeration;
private detectVulnerabilityScanning;
private detectWebAppScanning;
private detectNetworkReconnaissance;
private detectAutomatedTools;
private calculateScanningIntensity;
private analyzeScanningTargetDiversity;
private analyzeScanningTemporalDistribution;
private analyzeScanningProtocolCoverage;
private detectScanningEvasion;
private detectScanningAutomation;
private calculateUserAgentConsistency;
private analyzeSessionPatterns;
private analyzeGeographicStability;
private analyzeTimingCharacteristics;
private analyzeResourceAccess;
private analyzeTimingRegularity;
private analyzeUserAgentPatterns;
private analyzeRequestStructureConsistency;
private analyzeErrorHandlingPatterns;
private calculateIPHash;
/**
* Assess distributed attack patterns across multiple IPs
*/
private assessDistributedAttackPattern;
/**
* Apply failure decay to risk scores over time
*/
private applyFailureDecay;
/**
* Apply contextual adjustments based on environment and threat landscape
*/
private applyContextualAdjustment;
/**
* Analyze temporal patterns in scanning behavior
*/
private analyzeScanningTemporalPatterns;
/**
* Analyze scanning intensity and volume
*/
private analyzeScanningIntensity;
/**
* Assess sophistication level of scanning techniques
*/
private assessScanningSophistication;
/**
* Detect evasion techniques in scanning behavior
*/
private detectEvasionTechniques;
/**
* Calculate base scanning score
*/
private calculateBaseScanningScore;
/**
* Calculate pattern complexity bonus
*/
private calculatePatternComplexityBonus;
/**
* Calculate sophistication penalty (higher sophistication = higher threat)
*/
private calculateSophisticationPenalty;
/**
* Calculate scanning confidence level
*/
private calculateScanningConfidence;
/**
* Apply confidence adjustment to final score
*/
private applyConfidenceAdjustment;
/**
* Analyze protocol usage patterns
*/
private analyzeProtocolUsage;
/**
* Identify failure peak times
*/
private identifyFailurePeakTimes;
/**
* Analyze cyclical failure patterns
*/
private analyzeCyclicalFailurePatterns;
/**
* Analyze network context for additional threat indicators
*/
private analyzeNetworkContext;
}
//# sourceMappingURL=AdvancedMemorySecurityManager.d.ts.map