block-nuke-telemetry/scripts/monitor_nuke_telemetry.sh
Nicholai 6fada7889a Initial public release - Nuke telemetry monitoring toolkit
This toolkit provides comprehensive monitoring, analysis, and blocking capabilities
for network telemetry sent by The Foundry's Nuke compositor on Linux.

Key features:
- Network monitoring scripts with automated alerts
- Multi-tier blocking methods (hosts, firewall, namespace, AppArmor)
- Detailed packet capture analysis and documentation
- EULA legal analysis and privacy assessment
- Sanitized example captures and comprehensive guides

All sensitive data (personal IPs, usernames, packet captures) removed.
Ready for public sharing on Gitea.
2025-11-26 15:28:21 -07:00

118 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
# Ongoing Nuke telemetry monitor
# Logs all Foundry-related network connections with timestamps
LOG_DIR="$HOME/Documents/obsidian-vault/2-projects/Nuke-monitoring/telemetry-logs"
TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
LOG_FILE="$LOG_DIR/nuke_telemetry_$TIMESTAMP.log"
PCAP_FILE="$LOG_DIR/nuke_telemetry_$TIMESTAMP.pcap"
# Create log directory if it doesn't exist
mkdir -p "$LOG_DIR"
echo "=== Nuke Telemetry Monitor Started ===" | tee -a "$LOG_FILE"
echo "Started: $(date)" | tee -a "$LOG_FILE"
echo "Log file: $LOG_FILE" | tee -a "$LOG_FILE"
echo "Packet capture: $PCAP_FILE" | tee -a "$LOG_FILE"
echo "" | tee -a "$LOG_FILE"
# Known Foundry domains and IPs
FOUNDRY_DOMAINS=(
"foundry.com"
"learn.foundry.com"
"sentry.foundry.com"
"api.honeycomb.io"
"52.50.232.31" # AWS Ireland - learn.foundry.com
"52.205.16.9" # AWS Virginia - api.honeycomb.io
)
echo "Monitoring for connections to:" | tee -a "$LOG_FILE"
for domain in "${FOUNDRY_DOMAINS[@]}"; do
echo " - $domain" | tee -a "$LOG_FILE"
done
echo "" | tee -a "$LOG_FILE"
# Build tcpdump filter
FILTER=""
for i in "${!FOUNDRY_DOMAINS[@]}"; do
if [ $i -eq 0 ]; then
FILTER="host ${FOUNDRY_DOMAINS[$i]}"
else
FILTER="$FILTER or host ${FOUNDRY_DOMAINS[$i]}"
fi
done
# Start packet capture in background
echo "Starting packet capture..." | tee -a "$LOG_FILE"
sudo tcpdump -i any -w "$PCAP_FILE" "$FILTER" >> "$LOG_FILE" 2>&1 &
TCPDUMP_PID=$!
echo "tcpdump PID: $TCPDUMP_PID" | tee -a "$LOG_FILE"
echo "" | tee -a "$LOG_FILE"
# Function to log connection
log_connection() {
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
echo "[$timestamp] $1" | tee -a "$LOG_FILE"
}
# Function to cleanup on exit
cleanup() {
log_connection "Monitor stopped by user (Ctrl+C)"
log_connection "Stopping tcpdump (PID: $TCPDUMP_PID)..."
sudo kill $TCPDUMP_PID 2>/dev/null
# Generate summary
echo "" | tee -a "$LOG_FILE"
echo "=== Session Summary ===" | tee -a "$LOG_FILE"
echo "Ended: $(date)" | tee -a "$LOG_FILE"
if [ -f "$PCAP_FILE" ]; then
PACKET_COUNT=$(sudo tcpdump -r "$PCAP_FILE" 2>/dev/null | wc -l)
PCAP_SIZE=$(du -h "$PCAP_FILE" | cut -f1)
echo "Packets captured: $PACKET_COUNT" | tee -a "$LOG_FILE"
echo "Capture file size: $PCAP_SIZE" | tee -a "$LOG_FILE"
# Quick analysis
echo "" | tee -a "$LOG_FILE"
echo "Domains contacted:" | tee -a "$LOG_FILE"
sudo tcpdump -r "$PCAP_FILE" -n 2>/dev/null | \
grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | \
sort -u | while read ip; do
echo " - $ip" | tee -a "$LOG_FILE"
done
fi
echo "" | tee -a "$LOG_FILE"
echo "Log saved to: $LOG_FILE" | tee -a "$LOG_FILE"
echo "Capture saved to: $PCAP_FILE" | tee -a "$LOG_FILE"
exit 0
}
trap cleanup INT TERM
# Monitor active connections in real-time
log_connection "Monitoring active connections (press Ctrl+C to stop)..."
echo "" | tee -a "$LOG_FILE"
LAST_CONNECTIONS=""
while true; do
# Check if Nuke is running
NUKE_PIDS=$(pgrep -f Nuke)
if [ -n "$NUKE_PIDS" ]; then
# Check for Foundry connections
CURRENT_CONNECTIONS=$(sudo ss -tnp 2>/dev/null | grep -E "$(echo ${FOUNDRY_DOMAINS[@]} | tr ' ' '|')" 2>/dev/null)
if [ -n "$CURRENT_CONNECTIONS" ] && [ "$CURRENT_CONNECTIONS" != "$LAST_CONNECTIONS" ]; then
log_connection "NEW CONNECTION DETECTED:"
echo "$CURRENT_CONNECTIONS" | while read line; do
echo " $line" | tee -a "$LOG_FILE"
done
echo "" | tee -a "$LOG_FILE"
LAST_CONNECTIONS="$CURRENT_CONNECTIONS"
fi
fi
sleep 5
done