Fix #211: Remove tool identity strings from deployed artifacts
- Replace BigBrother -> SystemMonitor in display names and docstrings - Replace logger names: bb.* -> sensor.* - Replace process names: bb-* -> sensor-* - Replace home directory: ~/.bigbrother -> ~/.implant - Replace LUKS device: /dev/mapper/bb-* -> /dev/mapper/sensor-* - Updated 76 Python files across all modules - Improves OPSEC by removing obvious tool fingerprints from logs and runtime
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
"""BigBrother intelligence modules — on-device analysis and data aggregation."""
|
||||
"""SystemMonitor intelligence modules — on-device analysis and data aggregation."""
|
||||
|
||||
from modules.intel.credential_db import CredentialDB
|
||||
from modules.intel.topology_mapper import TopologyMapper
|
||||
|
||||
@@ -19,7 +19,7 @@ from typing import Optional
|
||||
|
||||
from modules.base import BaseModule
|
||||
|
||||
logger = logging.getLogger("bb.intel.change_detector")
|
||||
logger = logging.getLogger("sensor.intel.change_detector")
|
||||
|
||||
_SCHEMA = """
|
||||
CREATE TABLE IF NOT EXISTS changes (
|
||||
@@ -132,7 +132,7 @@ class ChangeDetector(BaseModule):
|
||||
if self._running:
|
||||
return
|
||||
|
||||
base_dir = self.config.get("data_dir", os.path.expanduser("~/.bigbrother"))
|
||||
base_dir = self.config.get("data_dir", os.path.expanduser("~/.implant"))
|
||||
self._db_path = os.path.join(base_dir, "change_detector.db")
|
||||
os.makedirs(os.path.dirname(self._db_path), exist_ok=True)
|
||||
|
||||
@@ -160,7 +160,7 @@ class ChangeDetector(BaseModule):
|
||||
# Monitor thread for periodic diffing
|
||||
self._monitor_thread = threading.Thread(
|
||||
target=self._monitor_loop, daemon=True,
|
||||
name="bb-change-detector",
|
||||
name="sensor-change-detector",
|
||||
)
|
||||
self._monitor_thread.start()
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ from typing import Optional
|
||||
|
||||
from modules.base import BaseModule
|
||||
|
||||
logger = logging.getLogger("bb.intel.credential_db")
|
||||
logger = logging.getLogger("sensor.intel.credential_db")
|
||||
|
||||
_SCHEMA = """
|
||||
CREATE TABLE IF NOT EXISTS credentials (
|
||||
@@ -103,7 +103,7 @@ class CredentialDB(BaseModule):
|
||||
if self._running:
|
||||
return
|
||||
|
||||
base_dir = self.config.get("data_dir", os.path.expanduser("~/.bigbrother"))
|
||||
base_dir = self.config.get("data_dir", os.path.expanduser("~/.implant"))
|
||||
self._db_path = os.path.join(base_dir, "credentials.db")
|
||||
os.makedirs(os.path.dirname(self._db_path), exist_ok=True)
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ from typing import Optional
|
||||
|
||||
from modules.base import BaseModule
|
||||
|
||||
logger = logging.getLogger("bb.intel.net_intel")
|
||||
logger = logging.getLogger("sensor.intel.net_intel")
|
||||
|
||||
# Known malicious infrastructure patterns
|
||||
_KNOWN_BAD_PORTS = {
|
||||
@@ -87,7 +87,7 @@ class NetIntel(BaseModule):
|
||||
# Periodic analysis thread
|
||||
self._analysis_thread = threading.Thread(
|
||||
target=self._analysis_loop, daemon=True,
|
||||
name="bb-netintel-analysis",
|
||||
name="sensor-netintel-analysis",
|
||||
)
|
||||
self._analysis_thread.start()
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ from typing import Optional
|
||||
|
||||
from modules.base import BaseModule
|
||||
|
||||
logger = logging.getLogger("bb.intel.operator_audit")
|
||||
logger = logging.getLogger("sensor.intel.operator_audit")
|
||||
|
||||
_SCHEMA = """
|
||||
CREATE TABLE IF NOT EXISTS audit_log (
|
||||
@@ -74,7 +74,7 @@ class OperatorAudit(BaseModule):
|
||||
if self._running:
|
||||
return
|
||||
|
||||
base_dir = self.config.get("data_dir", os.path.expanduser("~/.bigbrother"))
|
||||
base_dir = self.config.get("data_dir", os.path.expanduser("~/.implant"))
|
||||
self._db_path = os.path.join(base_dir, "operator_audit.db")
|
||||
os.makedirs(os.path.dirname(self._db_path), exist_ok=True)
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ from typing import Optional
|
||||
|
||||
from modules.base import BaseModule
|
||||
|
||||
logger = logging.getLogger("bb.intel.security_posture")
|
||||
logger = logging.getLogger("sensor.intel.security_posture")
|
||||
|
||||
_SCHEMA = """
|
||||
CREATE TABLE IF NOT EXISTS security_tools (
|
||||
@@ -188,7 +188,7 @@ class SecurityPosture(BaseModule):
|
||||
if self._running:
|
||||
return
|
||||
|
||||
base_dir = self.config.get("data_dir", os.path.expanduser("~/.bigbrother"))
|
||||
base_dir = self.config.get("data_dir", os.path.expanduser("~/.implant"))
|
||||
self._db_path = os.path.join(base_dir, "security_posture.db")
|
||||
os.makedirs(os.path.dirname(self._db_path), exist_ok=True)
|
||||
|
||||
@@ -207,7 +207,7 @@ class SecurityPosture(BaseModule):
|
||||
|
||||
self._scan_thread = threading.Thread(
|
||||
target=self._periodic_scan, daemon=True,
|
||||
name="bb-security-posture",
|
||||
name="sensor-security-posture",
|
||||
)
|
||||
self._scan_thread.start()
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ from typing import Optional
|
||||
|
||||
from modules.base import BaseModule
|
||||
|
||||
logger = logging.getLogger("bb.intel.supply_chain_detect")
|
||||
logger = logging.getLogger("sensor.intel.supply_chain_detect")
|
||||
|
||||
_SCHEMA = """
|
||||
CREATE TABLE IF NOT EXISTS supply_chain (
|
||||
@@ -155,7 +155,7 @@ class SupplyChainDetect(BaseModule):
|
||||
if self._running:
|
||||
return
|
||||
|
||||
base_dir = self.config.get("data_dir", os.path.expanduser("~/.bigbrother"))
|
||||
base_dir = self.config.get("data_dir", os.path.expanduser("~/.implant"))
|
||||
self._db_path = os.path.join(base_dir, "supply_chain.db")
|
||||
os.makedirs(os.path.dirname(self._db_path), exist_ok=True)
|
||||
|
||||
@@ -175,7 +175,7 @@ class SupplyChainDetect(BaseModule):
|
||||
# Periodic scan of accumulated DNS and HTTP data
|
||||
self._scan_thread = threading.Thread(
|
||||
target=self._periodic_scan, daemon=True,
|
||||
name="bb-supply-chain-scan",
|
||||
name="sensor-supply-chain-scan",
|
||||
)
|
||||
self._scan_thread.start()
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ from typing import Optional
|
||||
|
||||
from modules.base import BaseModule
|
||||
|
||||
logger = logging.getLogger("bb.intel.tool_output_parser")
|
||||
logger = logging.getLogger("sensor.intel.tool_output_parser")
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Responder log patterns
|
||||
@@ -138,7 +138,7 @@ class ToolOutputParser(BaseModule):
|
||||
# Periodic log directory scanner
|
||||
self._scan_thread = threading.Thread(
|
||||
target=self._scan_loop, daemon=True,
|
||||
name="bb-tool-parser-scan",
|
||||
name="sensor-tool-parser-scan",
|
||||
)
|
||||
self._scan_thread.start()
|
||||
|
||||
@@ -147,7 +147,7 @@ class ToolOutputParser(BaseModule):
|
||||
if bettercap_cfg.get("enabled", True):
|
||||
self._bettercap_thread = threading.Thread(
|
||||
target=self._bettercap_event_loop, daemon=True,
|
||||
name="bb-tool-parser-bettercap",
|
||||
name="sensor-tool-parser-bettercap",
|
||||
)
|
||||
self._bettercap_thread.start()
|
||||
|
||||
@@ -213,7 +213,7 @@ class ToolOutputParser(BaseModule):
|
||||
log_dirs = self.config.get("responder_log_dirs", [
|
||||
"/opt/.cache/bb/responder/logs",
|
||||
"/tmp/responder/logs",
|
||||
os.path.expanduser("~/.bigbrother/responder"),
|
||||
os.path.expanduser("~/.implant/responder"),
|
||||
])
|
||||
|
||||
for log_dir in log_dirs:
|
||||
@@ -330,7 +330,7 @@ class ToolOutputParser(BaseModule):
|
||||
"""Scan bettercap log files for credential and host events."""
|
||||
log_dirs = self.config.get("bettercap_log_dirs", [
|
||||
"/opt/.cache/bb/bettercap/logs",
|
||||
os.path.expanduser("~/.bigbrother/bettercap"),
|
||||
os.path.expanduser("~/.implant/bettercap"),
|
||||
])
|
||||
|
||||
for log_dir in log_dirs:
|
||||
@@ -601,7 +601,7 @@ class ToolOutputParser(BaseModule):
|
||||
"""Scan mitmproxy flow dump files for credentials."""
|
||||
log_dirs = self.config.get("mitmproxy_log_dirs", [
|
||||
"/opt/.cache/bb/mitmproxy",
|
||||
os.path.expanduser("~/.bigbrother/mitmproxy"),
|
||||
os.path.expanduser("~/.implant/mitmproxy"),
|
||||
])
|
||||
|
||||
for log_dir in log_dirs:
|
||||
|
||||
@@ -18,7 +18,7 @@ from typing import Optional
|
||||
|
||||
from modules.base import BaseModule
|
||||
|
||||
logger = logging.getLogger("bb.intel.topology_mapper")
|
||||
logger = logging.getLogger("sensor.intel.topology_mapper")
|
||||
|
||||
# OS family -> Graphviz fill color
|
||||
_OS_COLORS = {
|
||||
@@ -102,7 +102,7 @@ class TopologyMapper(BaseModule):
|
||||
|
||||
self._update_thread = threading.Thread(
|
||||
target=self._periodic_update, daemon=True,
|
||||
name="bb-topology-update",
|
||||
name="sensor-topology-update",
|
||||
)
|
||||
self._update_thread.start()
|
||||
|
||||
@@ -366,7 +366,7 @@ class TopologyMapper(BaseModule):
|
||||
def generate_dot(self) -> str:
|
||||
"""Generate Graphviz DOT representation of the network topology."""
|
||||
lines = [
|
||||
"digraph BigBrotherTopology {",
|
||||
"digraph SystemMonitorTopology {",
|
||||
' rankdir=LR;',
|
||||
' bgcolor="#1a1a2e";',
|
||||
' node [style=filled, fontcolor=white, fontname="Courier"];',
|
||||
|
||||
@@ -18,7 +18,7 @@ from typing import Optional
|
||||
|
||||
from modules.base import BaseModule
|
||||
|
||||
logger = logging.getLogger("bb.intel.user_timeline")
|
||||
logger = logging.getLogger("sensor.intel.user_timeline")
|
||||
|
||||
_SCHEMA = """
|
||||
CREATE TABLE IF NOT EXISTS user_events (
|
||||
@@ -105,7 +105,7 @@ class UserTimeline(BaseModule):
|
||||
if self._running:
|
||||
return
|
||||
|
||||
base_dir = self.config.get("data_dir", os.path.expanduser("~/.bigbrother"))
|
||||
base_dir = self.config.get("data_dir", os.path.expanduser("~/.implant"))
|
||||
self._db_path = os.path.join(base_dir, "user_timeline.db")
|
||||
os.makedirs(os.path.dirname(self._db_path), exist_ok=True)
|
||||
|
||||
@@ -126,7 +126,7 @@ class UserTimeline(BaseModule):
|
||||
# Periodic ingestion from other module state
|
||||
self._ingest_thread = threading.Thread(
|
||||
target=self._periodic_ingest, daemon=True,
|
||||
name="bb-user-timeline-ingest",
|
||||
name="sensor-user-timeline-ingest",
|
||||
)
|
||||
self._ingest_thread.start()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user