Colocando um servidor linux inteiro sob controle de origem (git)

15

Estou pensando em colocar todo o meu servidor Linux sob controle de versão usando o git. A razão por trás disso é que essa pode ser a maneira mais fácil de detectar modificações maliciosas / rootkits. Tudo o que eu acho que é ingenuamente necessário para verificar a integridade do sistema: Monte a partição linux a cada semana usando um sistema de resgate, verifique se o repositório git ainda está desatualizado e emita um status git para detectar quaisquer alterações feitas no sistema .

Além do desperdício óbvio de espaço em disco, existem outros efeitos colaterais negativos?

É uma ideia totalmente louca?

É mesmo uma forma segura de checar contra rootkits, já que eu provavelmente teria que pelo menos excluir / dev e / proc?

    
por Tobias Hertkorn 17.03.2011 / 16:40

5 respostas

14

Essa é uma "Idéia ruim" (tm). Além de todo o resto, o seu repositório irá correr devagar como tudo, e vai piorar à medida que cada revisão é mantida.

Tente gerenciamento centralizado, como fantoche / cfengine / chef. Isso manterá as coisas como você espera e reverterá mudanças inesperadas.

Combine isso com algo parecido com o iwatch para receber e-mails de alterações de arquivo não autorizadas.

Combine isso com arquivos rpm / deb, se necessário, para distribuir aplicativos personalizados.

Jogue algo como rkhunter ou chkrootkit de vez em quando para chutes e você deve estar pronto para ir.

Trabalho feito.

    
por 17.03.2011 / 16:49
4

Outra alternativa é configurar o tripwire , que é um software da GPL que mostra todos os arquivos importantes em seu sistema e determina quais foram alterados de formas que você definiu como inaceitáveis. A mudança pode ser definida simplesmente como mtime, através do número de inode, até checksums criptograficamente strongs.

São necessárias algumas configurações e ajustes se você não quiser obter muitos relatórios toda noite sobre arquivos alterados em /var/run , alterações em arquivos de clientes DHCP em /etc e coisas semelhantes, mas se você vá para esse problema, pode ser realmente muito útil.

O banco de dados de propriedades de arquivo é assinado com uma chave não conhecida na máquina, o que ajuda você a ter certeza de que nenhuma ferramenta alterou maliciosamente o banco de dados ou os binários do tripwire. Para ter certeza absoluta, você pode gravar uma cópia das ferramentas e bancos de dados tripwire em uma mídia somente leitura, que pode ser montada no servidor e usada para verificar todas as alterações desde que o disco foi gravado, se for necessária uma análise forense completa.

Se você for fazer isso, é muito importante configurar e executar o tripwire antes de a máquina ser implantada na produção, ou você nunca pode ter certeza absoluta de que algum usuário mal-intencionado não teve a chance de infectar o computador. máquina antes de ser tripwired.

    
por 17.03.2011 / 18:05
2

@Sirex já forneceu uma resposta muito boa, mas se você quiser dar um passo adiante com segurança, a melhor maneira de lidar com isso é primeiro a prevenção e depois a detecção.

Tente configurar um sistema com / sistema de arquivos montado somente leitura. Faça / tmp um ramf separado montado com opção noexec, nodev. Para o sistema funcionar, você realmente só precisa de / var para ser montado read-write. Então, sob / var montar um fs com rw, noexec, nodev e remover permissões de gravação para / var / tmp (afaik, raramente é necessário por daemons e isso deve ser configurável). Também use um patch de segurança para o seu kernel para limitar ainda mais o acesso aos recursos pelos usuários, tente grsec por exemplo. Use um firewall com as regras mais restritivas possíveis.

Algumas distribuições fornecem documentação extensiva sobre o endurecimento do sistema. Por exemplo:

por 17.03.2011 / 17:48
1

Eu não acho que é provável que isso funcione, mas como um experimento, gostaria de ver o que acontece se você fizer isso apenas com a pasta / etc. É aí que a maioria das informações de configuração é mantida.

    
por 17.03.2011 / 17:00
0

Acho que é uma boa ideia analisar as alterações que uma ferramenta faz no seu sistema:

  1. instale um Linux simples em uma VM
  2. inicialize o root git
  3. instale a ferramenta que você deseja analisar
  4. veja todas as alterações feitas no seu sistema

... Exclua a VM

Você teria que adicionar muitas pastas ao arquivo .gitignore , como proc, etc.

    
por 02.12.2015 / 07:09