Inicializando automaticamente e protegendo um servidor Linux com um sistema de arquivos criptografado


16

Estou configurando alguns novos servidores Ubuntu e gostaria de proteger os dados deles contra roubo. O modelo de ameaça é atacantes que desejam o hardware ou atacantes ingênuos que desejam os dados.


Por favor, tome nota desta seção.

O modelo de ameaça não inclui atacantes inteligentes que desejam os dados; Presumo que eles farão um ou mais dos seguintes procedimentos:

  1. Emendar um no-break no cabo de alimentação para manter a máquina funcionando continuamente.

  2. Insira um par de pontes Ethernet entre o computador e o ponto de terminação da rede que fará a ponte do tráfego em uma rede sem fio de alcance suficiente para que o host mantenha a conectividade da rede.

  3. Abra a caixa e use uma sonda no barramento de memória para pegar coisas interessantes.

  4. Use os dispositivos TEMPEST para analisar o que o host está fazendo.

  5. Use meios legais (como uma ordem judicial) para me forçar a divulgar os dados

  6. Etc etc.


Então, o que eu quero é ter alguns, ou o ideal, todos os dados no disco em uma partição criptografada, com o material essencial necessário para acessá-lo em algum tipo de mídia externa. Dois métodos em que posso pensar para armazenar o material principal são:

  1. Armazene-o em um host remoto acessível via rede e configure o suficiente da rede para recuperá-lo durante o processo de inicialização. A recuperação seria permitida apenas para o endereço IP atribuído ao host seguro (não permitindo acesso aos dados criptografados se fossem inicializados em outra conexão de rede) e poderia ser desativada pelos administradores se fosse descoberto que a máquina foi roubada.

  2. Armazene-o em um dispositivo de armazenamento USB que seja de alguma forma significativamente mais difícil de roubar do que o próprio host. A localização remota do host, como no final de um cabo USB de cinco metros que leva a outro canto da sala, ou mesmo a outra sala, provavelmente diminuiria significativamente as chances de invasores pegá-lo. Protegê-lo de alguma forma, como acorrentá-lo a algo imóvel ou até colocá-lo em um cofre, funcionaria ainda melhor.

Então, quais são minhas opções para configurar isso? Como eu disse antes, eu preferiria ter tudo (exceto talvez uma pequena partição de inicialização que não contenha / etc) criptografada, para que eu não precise me preocupar sobre onde estou colocando os arquivos ou onde eles estão ' acidentalmente pousando.

Estamos executando o Ubuntu 9.04, se isso fizer alguma diferença.


11
Seu modelo de ameaça veste uniformes com três letras? :)
Sven

Eles não usam uniformes. :-) Mas sério, não; qualquer agência governamental, secreta ou não, provavelmente será esperta o suficiente para levar todo o hardware, não apenas o que pode pegar rapidamente.
Curt J. Sampson

11
Sua pergunta parece se contradizer. Primeiro você diz "Gostaria de proteger os dados contra roubo" e depois diz "não inclui atacantes inteligentes que desejam os dados". Você se importa com os dados ou não?
Zoredache

11
Eu me preocupo sim. Se você puder, por um custo semelhante, protegê-lo contra invasores inteligentes e idiotas, ótimo, eu farei isso. Caso contrário, pelo menos evito a situação em que alguém compra uma unidade usada em uma loja de reciclagem e descobre todos os dados de meus clientes.
Curt J. Sampson

+1 por realmente pensar no modelo de ameaça, algo que muitas pessoas com uma pergunta semelhante esquecem de fazer.
Sleske 9/05

Respostas:


8

Conheço uma variante inteligente da opção 1 chamada Mandos.

Ele usa uma combinação de um par de chaves GPG, Avahi, SSL e IPv6, todos adicionados ao seu disco RAM inicial para recuperar com segurança a senha de chave da partição raiz. Se o servidor Mandos não estiver presente na LAN, seu servidor é um bloco criptografado ou o servidor Mandos não recebe uma pulsação do software cliente Mandos por um determinado período de tempo, ignorará solicitações futuras para esse par de chaves e o servidor é um tijolo criptografado na próxima vez em que for inicializado.

Página inicial do Mandos

Mandos README


11
Idéia interessante. Estou assumindo que você inicializaria o PXE nos clientes para que o par de chaves pública / privada não estivesse na unidade de disco rígido. Ainda assim, você pode espionar o par de chaves do fio e, em seguida, usá-lo, em combinação com o cheiro da transmissão da chave de criptografia em massa pelo computador servidor, para descriptografar a unidade. Todo o "servidor não entregará uma chave se não ouvir um batimento cardíaco na janela de tempo xxx" parece uma maneira interessante de colocar um humano no circuito também. Projeto limpo. Não é muito difícil derrotar se você tiver acesso físico, mas puro.
Evan Anderson

2
Evan, você quer ler o FAQ no Mandos README, eu acho ....
Curt J. Sampson

Hum. Não sei ao certo por que o Mandos é executado apenas em uma LAN. É porque ele não pode configurar um endereço IP e rotas para usar a Internet?
Curt J. Sampson

11
Curt, Mandos usa endereços locais de link ipv6 para se comunicar, o que é limitado à LAN local. No entanto, isso significa que não precisa de nenhuma configuração externa (dhcp) ou conflito com outros servidores na mesma LAN. en.wikipedia.org/wiki/…
Haakon

11
Como co-autor de Mandos, só posso concordar com Haakon. Na verdade, existe uma maneira de o Mandos usar endereços IPv4 globais usando o kernel ip=e os mandos=connectparâmetros, consulte este e-mail: mail.fukt.bsnet.se/pipermail/mandos-dev/2009-February/…, mas observe que isso é um tanto frágil quanto o os clientes tentarão se conectar ao servidor especificado apenas uma vez e, de outra maneira, falharão irrevogavelmente. A configuração recomendada é via LAN. Eu também posso mencionar que Mandos está disponível no Ubuntu desde 9.04 (e também em testes Debian)
Teddy

6

Se você está apenas procurando se proteger contra invasores não técnicos, acho que sua melhor aposta é uma melhor segurança física.

Meu pensamento é assim:

Se você estiver procurando por uma bota que não exija interação humana para inserir material essencial, não encontrará nenhuma solução que seja protegida contra roubo casual por um adjunto com quaisquer habilidades técnicas (ou, mais apropriadamente, o capacidade de pagar alguém com habilidades técnicas).

Colocar o material chave em algo como um pen drive USB não ofereceria nenhuma segurança real. O invasor pode simplesmente ler a chave do pen drive. O pen drive não pode saber se o computador em que foi conectado é o servidor ou o laptop do invasor. Tudo o que o invasor precisa fazer é ter certeza de que eles pegam tudo ou, no caso de sua chave USB no final de um cabo extensor USB de 15 pés de comprimento preso dentro de um cofre, basta conectar o cabo extensor ao PC e ler a chave.

Se você for transferir a chave pela rede, provavelmente a "criptografará". Tudo o que o invasor precisa fazer é escutar o processo de codificação, roubar o servidor e fazer engenharia reversa de qualquer "criptografia" que você fez quando enviou a chave pela rede. Por definição, o computador servidor que recebe uma chave "criptografada" da rede deve ser capaz de "descriptografar" essa chave para usá-la. Então, na verdade, você não está criptografando a chave - está apenas codificando-a.

Por fim, você precisa de uma inteligência (artificial?) Presente para inserir a chave no servidor. Alguém que pode dizer "Eu sei que não estou divulgando a chave para ninguém, exceto o computador servidor, e sei que não foi roubado". Um humano pode fazer isso. Um pen drive USB não pode. Se você encontrar outra inteligência que possa fazê-lo, acho que terá algo comercializável. > sorriso <

Acho que é mais provável que você perca a chave e destrua seus dados sem ganhar nenhuma segurança. No lugar de sua estratégia com jogos de criptografia, acho melhor você ter uma segurança física mais forte.

Editar:

Acho que estamos trabalhando com diferentes definições do termo "modelo de ameaça", talvez.

Se o seu modelo de ameaça é roubo de hardware, a solução proposta: a criptografia de disco não está, a meu ver, fazendo nada para neutralizar a ameaça. Sua solução proposta parece uma contramedida contra roubo de dados, não roubo de hardware.

Se você deseja impedir que o hardware seja roubado, é necessário prendê-lo, travá-lo, envolvê-lo em concreto etc.

Eu já disse o que queria dizer sobre: ​​roubo de dados, para não falar sobre isso novamente, exceto para dizer: se você vai colocar a chave em um dispositivo físico e não pode proteger se o computador servidor for roubado, também não será possível proteger o dispositivo chave.

Acho que sua melhor solução "barata" é manipular algum tipo de troca de chaves baseada em rede. Eu colocaria um ou mais humanos no loop para autenticar a "liberação" da chave no caso de uma reinicialização. Isso causaria tempo de inatividade até que o humano "liberasse" a chave, mas pelo menos lhe daria a chance de descobrir por que uma "liberação" chave estava sendo solicitada e decidir se deveria ou não fazê-lo.


Este é um bom complemento para a análise de segurança, por isso dei um voto positivo, mas não é uma resposta para minha pergunta porque você está usando um modelo de ameaça diferente. Observe o que eu disse na pergunta sobre contra quem eu sou e não estou defendendo.
Curt J. Sampson

11
Quanto à melhor segurança física, gostaria de olhar primeiro para as opções menos caras. Em nosso ambiente atual, custaria muitos milhares de dólares para instalar algo que não poderia ser rapidamente derrotado por alguém com um par de alicates.
Curt J. Sampson

Relendo isso, não tenho certeza se você está claro que meu modelo de ameaça não é roubo de hardware em si , o que é basicamente apenas um inconveniente, mas o roubo concomitante de dados que o acompanha. É exatamente por isso que minha solução proposta é uma contramedida contra roubo de dados, em vez de roubo de hardware.
Curt J. Sampson

É interessante ver um comentário sobre uma pergunta de quase 8 anos. Se sua solução funciona para você, certamente fico feliz com isso.
Evan Anderson

Eu estava pensando "Eu não deveria necropost", então eu vi esses últimos comentários. Acho que o modelo de ameaça de Curt é o mesmo que o meu ... para proteger os dados contra alguém que rouba o hardware. Vários comentários sobre esse e outros posts similares disseram que as pessoas podem simplesmente "escutar" o processo principal e descobrir mais tarde. Somente um processo realmente ridiculamente ruim poderia ser interrompido por qualquer tipo de repetição. Além disso ... "tudo o que o invasor precisa fazer é" ... "fazer engenharia reversa de qualquer criptografia que você fez" ... De quem estamos falando? Quais são as chances de um ladrão comum ter essa capacidade ... ou mesmo desejar fazê-lo?
darron
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.