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:
Cobra
2026-04-06 11:39:48 -04:00
parent ae4933044b
commit 1eb35c9050
76 changed files with 203 additions and 203 deletions
+1 -1
View File
@@ -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
+3 -3
View File
@@ -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()
+2 -2
View File
@@ -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)
+2 -2
View File
@@ -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()
+2 -2
View File
@@ -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)
+3 -3
View File
@@ -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()
+3 -3
View File
@@ -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()
+6 -6
View File
@@ -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:
+3 -3
View File
@@ -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"];',
+3 -3
View File
@@ -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()