Como ativar uma autodestruição do sistema com uma determinada senha é digitada

46

Como configuro meu sistema para destruir todos os dados pessoais quando uma certa senha é inserida? A motivação por trás disso é coisa da NSA.

Eu imagino que haja três casos de uso principais.

  1. No login, a inserção de uma senha predeterminada aciona a destruição dos dados do usuário.
  2. No sistema, acorde. a inserção de uma senha predeterminada desencadeia a destruição de dados pessoais.
  3. Inserir qualquer comando privilegiado com uma senha predeterminada aciona a destruição de dados pessoais.

Eu sei que algo como

dd if=/dev/urandom of=/dev/$HOME

Deve ser adequado para destruição de dados. Eu não sei como isso foi acionado por uma certa senha, no entanto.

Pontos de bônus se, em seguida, permitir um login enquanto os dados estão sendo excluídos.

Josh
fonte
9
se você realmente quer fazer isso funcionar, você deve criptografar seu disco rígido. isso ocorre porque, sem criptografia, você terá que sobrescrever todo o disco rígido, mas, com a criptografia, você só precisará sobrescrever o cabeçalho LUKS (ou o que for).
strugee
1
Existe um módulo pam_python, que provavelmente tornaria mais fácil a implementação do que você deseja: ace-host.stuart.id.au/russell/files/pam_python
repita
7
Se você está preocupado com a NSA, então dd if=/dev/urandom of=/dev/$HOMEnão fará muito bem. Mesmo supondo que sejam estúpidos o suficiente para usar o sistema operacional em vez de remover o disco e lê-lo diretamente, existem empresas de recuperação forense que podem obter dados de um disco que foi substituído e queimado fisicamente.
Pare de prejudicar Monica
2
# 1 Se a NSA estava realmente atrás de você, eles já haviam filtrado seus dados silenciosamente semanas atrás. # 2 Criptografar seus dados concede à NSA o direito legal de mantê- los para sempre ou , por quanto tempo for necessário para descriptografá-los, o que ocorrer primeiro. # 3 As evidências da destruição de evidências costumam ser suficientes para que o tribunal entenda algo. Esses programas de "apagamento seguro" que enchem sua unidade com zeros ou sem sentido aleatório são evidências de que você destruiu algo e que seria apresentado em tribunal.
Ryan Ries
3
Ele não cobre todos os seus 3 casos, mas dê uma olhada aqui: kali.org/how-to/emergency-self-destruction-luks-kali
faker

Respostas:

26

Idéia # 1 - SO oculto

Como método alternativo, você pode usar o "Sistema operacional oculto" do TrueCrypt . Isso permite acessar um sistema operacional alternativo falso quando uma certa senha é usada, em vez do sistema operacional primário.

excerto

Se a partição do sistema ou a unidade do sistema estiver criptografada usando o TrueCrypt, você precisará digitar sua senha de autenticação de pré-inicialização na tela do TrueCrypt Boot Loader depois de ligar ou reiniciar o computador. Pode ser que você seja forçado por alguém a descriptografar o sistema operacional ou revelar a senha de autenticação antes da inicialização. Existem muitas situações em que você não pode se recusar a fazê-lo (por exemplo, devido à extorsão). O TrueCrypt permite criar um sistema operacional oculto cuja existência deve ser impossível de provar (desde que determinadas diretrizes sejam seguidas - veja abaixo). Portanto, você não precisará descriptografar ou revelar a senha do sistema operacional oculto.

Bruce Schneier aborda a eficácia do uso desses ( sistemas de arquivos denegáveis) , portanto, você pode querer investigá-lo mais antes de mergulhar.

Toda a idéia de criptografia denegável é uma espécie de lata de worms; portanto, é preciso ter cuidado ao usá-lo em determinadas situações, com antecedência.

Idéia # 2 - Adicione um script ao / etc / passwd

Você pode inserir scripts alternativos na entrada de um usuário no /etc/passwdarquivo.

Exemplo

# /etc/passwd
tla:TcHypr3FOlhAg:237:20:Ted L. Abel:/u/tla:/usr/local/etc/sdshell

Você pode configurar a conta de um usuário para que ele execute um script como o /usr/local/etc/sdshellque verificará qual senha foi fornecida. Se for a senha mágica que aciona a limpeza, ele pode iniciar esse processo (até mesmo em segundo plano) e cair em um shell ou fazer outra coisa.

Se a senha fornecida não for essa mágica, continue executando um shell normal /bin/bash, por exemplo.

Fonte: 19.6.1 Integrando senhas de uso único com Unix

slm
fonte
2
A idéia 2 não funcionará. O shell só será chamado quando a senha correta tiver sido inserida (conforme configurado em / etc / shadow). Mesmo que funcionasse, não havia como o script verificar qual senha foi inserida no momento do login.
faker
@faker - esse método é extraído das senhas de uso único no unix, então acredito que funcionará. Pode não se integrar diretamente à senha / etc / shadow do sistema, mas é viável.
Slm
@slm na página à qual você vinculou: This puts two passwords on the account: the traditional account password followed by the one-time password.é claro que você pode, no script, procurar uma senha de destruição, mas somente depois de inserir a senha correta da conta. Essencialmente, você tem três senhas. Senha da conta comum, senha correta da 2ª etapa e auto-destruição da senha da 2ª etapa. Não é muito agradável e muito suspeito ...
faker
@faker: slm está certo - eu não seguiria o link passo a passo, mas funcionaria. Ainda seria vinculado a um shell ou script diferente. Não vejo razão para estar incorreto.
Josh Josh
@ Josh funciona se você considerar que precisa lembrar de três senhas para ficar OK. Caso contrário, não funciona.
faker
16

Minha abordagem para isso seria acionar a auto-destruição em um módulo pam . Existem mecanismos para capturar a senha com um script, verifique se é a "especial" e inicie o processo de autodestruição.

Escreva uma linha na sua /etc/pam.d/common-authprimeira linha como esta:

auth    optional        pam_exec.so debug expose_authtok /etc/security/suicide.sh

(ou, por exemplo, /etc/pam.d/gdmse você deseja que ele funcione apenas com autenticação via gdm) expose_authtokfaz com que o pam_exec.somódulo entregue a senha via stdin no script de login chamado /etc/security/suicide.sh. Este script seria executado com privilégios de root e, por exemplo, teria a seguinte aparência:

#!/bin/bash
# read the users password from stdin (pam_exec.so gives the provided password 
# if invoked with expose_authtok)
read password

# if its an authentication and it's the user "user" and the special password
if [ "$PAM_TYPE" == "auth" ] && [ "$PAM_USER" == "user" ] && [ "$password" == "magic" ]; then
  # do whatever you want in the background and the authentication could continue
  # normally as though nothing had happened
  exit 0
else
  exit 0
fi

Funcionaria mesmo se você alterar a senha do usuário "normal".

caos
fonte
8

Só para você saber se alguém do governo etc. agarra seu computador, a primeira coisa que eles fazem é copiar a unidade pouco a pouco e resolver a cópia. A mesma coisa é feita sempre que alguém faz análise forense do computador; portanto, se você danificar ao analisar uma unidade, apenas danifica a cópia.

Então, digamos que a grande NSA ruim pegue seu computador e coloque seu polegar em um vício para que você diga a senha. Quando você der a senha errada, ela será deletada e não a original. Agora eles sabem que você está mexendo com eles.

Portanto, qualquer uso de uma palavra pass-kill só seria eficaz se você a executasse antes que alguém entrasse em seu sistema. Então, tudo o que você faria é fornecer uma maneira complicada de executar algo que você poderia fazer alias.

Marca
fonte
6

Se você realmente deseja destruir seus dados. Você primeiro precisa garantir que ninguém faça uma cópia dos seus dados (ou seja, todo o disco) no início. Mas isso não é possível no nível do sistema operacional.

A única maneira de garantir que seus dados não caiam em mãos erradas é usar criptografia. A criptografia especialmente negável seria a coisa certa no seu caso: se você digitar a senha correta, seus dados pessoais serão exibidos. Se você digitar a outra senha, alguns dados inócuos aparecerão.

michas
fonte
Estou mais preocupado com o cenário em que alguém me obriga a digitar uma senha ou pega o computador depois que eu digito uma senha.
Josh
3
Se alguém obriga a digitar uma senha, basta digitar a senha "outro", que desbloqueia os dados inócuos. - Portanto, você pode negar a existência de dados reais. - Se eu for sério sobre a obtenção de seus dados, não deixarei você tocar em seu computador, mas primeiro faça uma cópia de tudo.
Michas
6

Se você realmente deseja destruir seus dados, protegê-los da NSA, precisa de algo com explosivos e fogo que derreta o metal nos pratos de disco e precisa ativá-los remotamente.

Eu suspeito que isso não é prático.

Bill White
fonte
0

Bem, você pode ter um script para descartar o diretório principal / do usuário principal (assim como / var, / tmp e todos os outros lugares com dados apenas para os olhos) se fizer login com um nome de usuário diferente ... o script começaria em faça o login e carregue automaticamente algo que engane o espectador, fazendo algo supostamente útil. Se danificar seu sistema sem enganar o espectador, eles podem simplesmente desligar o interruptor e impedir que seu melhor plano funcione. Isso também permite que você faça o login enquanto isso estiver em andamento ... embora eu coloque o usuário TRASHME em uma unidade diferente, pois a unidade que está sendo lixeira estará bastante ocupada e, portanto, esquisita.

K7AAY
fonte
1
Não dentro das restrições declaradas.
Josh
0

Um disco rígido seguro, ou unidade flash, é um oxímoro. A única maneira de proteger suas informações é usar um sistema operacional virtual que é executado na memória e evapora quando você desliga, com todos os dados que precisam ser salvos em mídia externa que você pode ocultar, se desejar. Existem várias distribuições Linux "Live" por aí que permitem que você faça exatamente isso. Com relativamente pouco esforço, você pode remasterizar o CD ou DVD e personalizá-lo para melhor atender às suas necessidades. Além disso, esteja ciente de que muitas das informações comportamentais estão sendo retransmitidas pelo navegador e, para qualquer pesquisa que você acredite estar comprometendo, você deve usar um navegador seguro, como o Tor.

user55950
fonte
Não é o meu pedido. Estou perfeitamente ciente de que a segurança perfeita é impraticável. Não estou pedindo uma solução perfeita.
Josh Josh
0

Se você deseja manter as coisas seguras, entenda que não existe segurança perfeita e que a segurança não passa de uma troca de aceitáveis ​​após a avaliação precisa dos riscos.

Para começar, por que destruir qualquer coisa. Primeiro, observe a diminuição da facilidade de acesso. Crie um espaço de ar. Compre uma caixa bcheaap para material on-line e qualquer coisa que você queira enviar do seu transporte de caixa principal para lá por meio da sneakernet. Use uma boa criptografia, como o Scrypt. Truecrypt e outros tiveram seu dia venerável.

Existem muitas outras estratégias que você pode empregar, sem espaço suficiente para entrar nelas aqui e, francamente, não tenho tempo suficiente para entrar nelas. Eu acho que você descobriu um novo caminho de aprendizado.

David Crosswell
fonte
Não dentro do contexto declarado.
Josh
0

Como foi apontado para mim e apresentado no Phoronix, o Kali Linux criou um método para fazer isso também. Observando parte do código, há uma fraqueza que ainda permitirá que o patch seja derrotado, mas ajuda bastante a permitir uma senha de autodestruição eficaz. Como nota, o ponto fraco é uma particularidade de hardware relacionada à zeragem de dados - as ferramentas do fabricante podem recuperar dados zerados e a substituição de locais-chave em uma mídia deve ser feita várias vezes com um gerador de números aleatórios para garantir a mistura de dados.

Link aqui: http://www.kali.org/how-to/emergency-self-destruction-luks-kali/

Josh
fonte
0

Sim, você precisa destruir a superfície da unidade. Recomenda-se uma granada de termite (é isso que eles nos ensinaram). Você pode fazer o seu próprio com um iniciador de incêndio (bloco de magnésio) e uma fonte de ignição ... o objetivo é criar um incêndio de classe D ... impossível de apagar .

Brian Winn
fonte
Eu não acho que OP estava falando sobre a destruição física ...
don_crissti