(self, shared_data)
| 26 | """Manages network-based intelligence for vulnerabilities and credentials""" |
| 27 | |
| 28 | def __init__(self, shared_data): |
| 29 | self.shared_data = shared_data |
| 30 | self.logger = Logger(name="NetworkIntelligence", level=logging.INFO) |
| 31 | |
| 32 | # Network context tracking |
| 33 | self.current_network = None |
| 34 | self.previous_network = None |
| 35 | self.network_change_time = None |
| 36 | self.network_history = {} |
| 37 | |
| 38 | # Intelligence storage paths |
| 39 | self.intelligence_dir = self._resolve_intelligence_dir() |
| 40 | self._rebuild_file_paths() |
| 41 | |
| 42 | # State management |
| 43 | self.active_vulnerabilities = {} # network_id -> {vuln_id: vuln_data} |
| 44 | self.active_credentials = {} # network_id -> {cred_id: cred_data} |
| 45 | self.resolved_vulnerabilities = {} |
| 46 | self.resolved_credentials = {} |
| 47 | self.network_profiles = {} |
| 48 | |
| 49 | # Configuration |
| 50 | self.resolution_timeout = shared_data.config.get('network_resolution_timeout', 3600) # 1 hour |
| 51 | self.confirmation_scans = shared_data.config.get('network_confirmation_scans', 3) |
| 52 | self.network_change_grace_period = shared_data.config.get('network_change_grace', 300) # 5 minutes |
| 53 | |
| 54 | # Initialize intelligence system |
| 55 | self.setup_intelligence_directory() |
| 56 | self.load_intelligence_data() |
| 57 | |
| 58 | def _resolve_intelligence_dir(self) -> str: |
| 59 | candidate = getattr(self.shared_data, 'network_intelligence_dir', None) |
nothing calls this directly
no test coverage detected