Dead Man’s Switch: O Sistema que se Auto-Destrói Quando Você Morre

Você já parou pra pensar no que acontece com seus dados digitais depois que você morre? Fotos, documentos sensíveis, projetos secretos? Provavelmente vão ficar aí pra sempre, em posse de quem não deveria ter acesso.

Apresento: Dead Man’s Switch – um sistema que monitora sua atividade e, se você desaparecer por mais de 90 dias, se auto-destrói completamente.

O Problema Real

Imagina só:

  • Você tem um servidor com dados sensíveis
  • Algo acontece com você (acidente, sequestro, o que for)
  • Seu servidor fica rodando pra sempre, com acesso aberto
  • Alguém invade e tira proveito

Ou pior: você simplesmente não quer que ninguém use seu trabalho depois que você partir.

A Solução: Dead Man’s Switch

É exatamente o que diz o nome. Como um botão de emergência que só você consegue desativar:

Você logando no PC → Sistema registra atividade
└─ Reseta contador de 90 dias
   └─ Se 90 dias passarem sem login
      └─ Destruição total: rm -Rf /

Como Funciona

1. Monitoramento de Atividade

O sistema intercepta seu login no Windows/Linux:

#!/bin/bash
LAST_LOGIN=$(stat -c %y ~/.bashrc | cut -d' ' -f1)
DAYS_PASSED=$(( ($(date +%s) - $(date -d "$LAST_LOGIN" +%s)) / 86400 ))

if [ $DAYS_PASSED -gt 90 ]; then
    echo "Você desapareceu. Destruindo tudo..."
    rm -Rf /home/user/dados-sensiveis
    shutdown -h now
fi

2. Integração com API

Se você tiver uma API (como eu tenho):

// Heartbeat via API
async function sendHeartbeat() {
    try {
        await fetch('https://seu-servidor.com/api/heartbeat', {
            method: 'POST',
            headers: { 'Authorization': 'Bearer YOUR_TOKEN' }
        });
        console.log('Heartbeat enviado');
    } catch (e) {
        console.error('Falha no heartbeat');
    }
}

// Roda a cada login
setInterval(sendHeartbeat, 3600000); // 1 hora

3. Servidor Verifica

<?php
// /api/heartbeat
$ultimoHeartbeat = time();
file_put_contents('last_heartbeat.txt', $ultimoHeartbeat);

// Cron job (roda a cada hora)
$ultimo = (int)file_get_contents('last_heartbeat.txt');
$diasSemHeartbeat = (time() - $ultimo) / 86400;

if ($diasSemHeartbeat > 90) {
    // Executa destruição
    shell_exec('rm -Rf /var/www/dados-criticos');
    // Ou encripta tudo com chave que só você tem
}
?>

Casos de Uso

1. Proteção de Privacidade

Arquivos pessoais, fotos, documentos que você não quer que alguém veja depois

2. Cripto e Financeiro

Se você usa chaves privadas, carteiras, dados sensíveis de negócios

3. Dados Corporativos Secretos

Código proprietário, trade secrets, formulas

4. Segurança e Sigilo

Se você trabalha com informações sensíveis e não quer que caiam em mãos erradas

Implementação Básica

Pré-requisitos

  • Acesso root/admin no servidor
  • Cron jobs habilitados
  • Node.js ou Bash (seu gosto)

Setup

  1. Crie um script de monitoramento
#!/bin/bash
# check_heartbeat.sh

HEARTBEAT_FILE="/var/lib/dms/heartbeat"
TIMEOUT_DAYS=90
TIMEOUT_SECONDS=$((TIMEOUT_DAYS * 86400))

if [ ! -f "$HEARTBEAT_FILE" ]; then
    touch "$HEARTBEAT_FILE"
fi

LAST_BEAT=$(cat "$HEARTBEAT_FILE")
NOW=$(date +%s)
DIFF=$((NOW - LAST_BEAT))

if [ $DIFF -gt $TIMEOUT_SECONDS ]; then
    echo "[$(date)] TIMEOUT! Iniciando destruição..." >> /var/log/dms.log
    
    # Destruir dados
    rm -Rf /home/user/sensitive-data
    
    # Notificar (opcional)
    curl -X POST https://seu-webhook.com/triggered
    
    # Desligar servidor
    shutdown -h now
fi
  1. Adicione ao cron
crontab -e

# Roda a cada hora
0 * * * * /usr/local/bin/check_heartbeat.sh
  1. Envie heartbeat ao fazer login
# ~/.bashrc ou ~/.bash_profile
curl -s https://seu-servidor.com/api/heartbeat?token=YOUR_TOKEN && \
echo "$(date +%s)" > /var/lib/dms/heartbeat
  1. Pronto!

Agora, se você não fizer login por 90 dias, tudo desaparece automaticamente.

Considerações Importantes

Legal

  • Em alguns países pode ser considerado “destruição de propriedade”
  • Mas se é SEU servidor e SEUS dados? Direito seu
  • Deixa documentado em algum lugar

Segurança

  • Guarde seu token bem guardado
  • Use HTTPS sempre
  • Considere 2FA no heartbeat
  • Backup offline dos dados realmente importantes

Acidentes

  • E se você viajar sem acesso? Reset de 90 dias
  • E se o servidor cair? Heartbeat falha, contador aumenta
  • Solução: Múltiplos pontos de atividade (App, site, CLI)

Versão Avançada

Para mais segurança, você pode:

  1. Encriptar em vez de deletar
# Em vez de rm -Rf
gpg --symmetric --cipher-algo AES256 /caminho/dados
  1. Notificação antes
# Envia email 7 dias antes
if [ $DIFF -gt $((TIMEOUT_SECONDS - 604800)) ]; then
    mail -s "DMS: 7 dias até destruição" [email protected]
fi
  1. Múltiplos níveis
  • 30 dias: Aviso
  • 60 dias: Backup encriptado deletado
  • 90 dias: Tudo destruído

Por Que Fazer Isso?

Porque você quer controle total sobre seu legado digital. Não quer deixar rastros. Não quer que terceiros lucrem com seu trabalho. Não quer que dados sensíveis caiam em mãos erradas.

É a máxima expressão de autonomia digital.

Conclusão

Dead Man’s Switch não é paranoia. É planejamento. Assim como você faz um testamento, você pode fazer um “testamento digital”.

O código é seu. Os dados são seus. E o que acontece com eles depois também é seu direito decidir.

Rolar para cima