
DeadManSwitch in Rust con diversi trigger (remoto, locale e di rete)

Dead Man Switch è un'applicazione di sicurezza multipiattaforma scritta in Rust che protegge automaticamente i dati sensibili in situazioni di emergenza. L'applicazione monitora molteplici meccanismi di attivazione ed esegue procedure immediate di blocco del sistema quando attivata, inclusi lo smontaggio di volumi crittografati e lo spegnimento controllato del sistema.
Modifica src/config.rs per personalizzare le impostazioni:
pub fn default() -> Result<Self> {
Self::new(
"YOUR_TELEGRAM_BOT_TOKEN".to_string(),
3600, // Heartbeat timeout (seconds)
45370, // Network broadcast port
"trigger_dms".to_string(), // Network trigger message
"execute".to_string(), // Manual trigger command
0x090c, // USB vendor ID
0x1000, // USB product ID
"auto".to_string(), // Flic IP (auto-detected)
5551, // Flic port
)
}
@BotFather su Telegram/newbotForma base:
./DeadManSwitch --mode <modes> [--trigger]
--mode: elenco di modalità separate da virgole. Se omesso, viene usato all.--trigger: esegue immediatamente le azioni e mostra l'interfaccia di avviso, senza attendere alcun trigger esterno.Modalità disponibili:
timer – Timer heartbeat Telegrambot – Attivazione manuale Telegramnet – Listener broadcast UDPusb – Trigger VID/PID USBflic – Trigger pulsante Flicall – Tutte le precedentiEsempi:
# Tutti i trigger (predefinito)
./DeadManSwitch
# Solo heartbeat Telegram + USB
./DeadManSwitch --mode timer,usb
# Solo broadcast di rete
./DeadManSwitch --mode net
# Solo attivazione manuale
./DeadManSwitch --trigger
Si attiva automaticamente dopo il periodo di timeout specificato senza check-in.
Configurazione:
telegram_heartbeat_timeout: 3600 // seconds
Esecuzione:
./DeadManSwitch --mode timer
Comandi Telegram:
/alive - Reimposta il timer di countdown/status - Interroga il tempo rimanenteComportamento:
Interfaccia di controllo manuale remota.
Configurazione:
Esecuzione:
./DeadManSwitch --mode bot
Comando:
/dms execute - Attivazione manuale del triggerMeccanismo di attivazione basato su LAN.
Configurazione:
broadcast_port: 45370
broadcast_message: "trigger_dms"
Esecuzione:
# Macchina protetta
./DeadManSwitch --mode net
# Attivazione dalla rete
echo "trigger_dms" | nc -u -b 255.255.255.255 45370
Attivazione basata su hardware alla connessione del dispositivo.
Identificazione degli ID dispositivo:
git clone https://github.com/BlackSnufkin/Rusty-Playground.git
cd Rusty-Playground/USB_mon
cargo run
# Connect device and note vendor:product IDs
Configurazione:
usb_vendor_id: 0x090c
usb_product_id: 0x1000
Esecuzione:
./DeadManSwitch --mode usb
Meccanismo di attivazione tramite pulsante fisico.
Installazione del server:
Associazione del pulsante:
./simpleclient scan
./simpleclient connect <button_address>
Configurazione:
flic_ip: "192.168.1.242".to_string() // or "auto" for detection
Esecuzione:
./DeadManSwitch --mode flic
Attivazione: Premi e tieni premuto il pulsante
ActionExecutor per smontare e spegnere al momento del trigger