Ao usar vários sistemas operacionais, é ideal sempre ter ferramentas que nos permitem manter o controle centralizado e direto sobre eles. Uma das questões mais delicadas é indiscutivelmente a segurança e integridade dos arquivos, pois isso garante a disponibilidade e confiabilidade dos arquivos.
Hoje Solvetic vai falar sobre uma ferramenta prática chamada AIDE através da qual será possível verificar a integridade de um arquivo ou diretório nas várias distribuições do Linux e assim ter certeza da total confiabilidade do arquivo selecionado.
O que é AIDEAIDE ((Advanced Intrusion Detection Environment) é um verificador de integridade de arquivos e diretórios em ambientes Linux que nos permite, como administradores, manter um controle específico sobre eles.
Seu funcionamento consiste na criação de um banco de dados desenhado a partir das regras de expressão regular que estão disponíveis nos arquivos de configuração. Depois que esse banco de dados é inicializado, ele pode ser usado para verificar a integridade dos arquivos necessários.
Atributos de arquivo AIDEAIDE é responsável por construir o banco de dados a partir dos arquivos especificados em aide.conf, que é o arquivo de configuração do AIDE. O banco de dados AIDE armazena vários atributos de arquivo, dentro dos quais temos:
- tipo de arquivo
- permitem
- usuário e grupo
- tamanho do arquivo
- mtime, ctime e atime
- tamanho de crescimento
- número de links e nome do link.
Além disso, o AIDE cria uma soma de verificação criptográfica ou hash de cada arquivo usando um ou uma combinação dos seguintes algoritmos de resumo de mensagem: sha1, sha256, sha512, md5, rmd160, tiger, haval, crc32 e também os atributos acl, xattr, selinux , e e2fsattrs podem ser usados quando explicitamente habilitados em tempo de compilação.
AIDE tem vários algoritmos de resumo de mensagem que são usados para verificar a integridade do arquivo. Todos os atributos de arquivo usuais também podem ser verificados quanto a inconsistências dentro dele. AIDE é capaz de ler bancos de dados de versões mais antigas ou mais recentes.
Recursos do AIDEAo utilizar esta ferramenta temos as seguintes características:
- Algoritmos compatíveis com o resumo da mensagem, como: md5, sha1, rmd160, tigger, crc32, sha256, sha512, whirlpool (adicionalmente com libmhash: gost, haval, crc32b)
- Atributos de arquivo com suporte: Tipo de arquivo, permissões, Inode, Uid, Gid, nome do link, tamanho, número do bloco, número de links, Mtime, Ctime e Atime
- Ele tem suporte para Posix ACL, SELinux, XAttrs e atributos de sistema de arquivo estendido se o suporte for compilado em texto simples e arquivos de configuração de banco de dados para simplificar
- Possui suporte a expressões regulares para incluir ou excluir seletivamente arquivos e diretórios para serem monitorados
AIDE está incluído nas seguintes distribuições UNIX
- Debian
- Gentoo
- MacPorts
- FreeBSD
- CentOS / RedHat
- IPCop
- OpenSUSE
É importante esclarecer que o AIDE não pode fornecer segurança absoluta na alteração de um arquivo, pois como qualquer outro arquivo de sistema, o banco de dados e / ou binários do AIDE também podem ser alterados usando as ferramentas adequadas.
1. Instalando AIDE no Linux
O AIDE está disponível nos repositórios oficiais das distribuições Linux mais populares, para isso podemos instalá-lo usando um gerenciador de pacotes de acordo com a distro selecionada da seguinte forma:
apt install aide (Debian / Ubuntu) yum install aide CRHEL / CentOS) dnf install aide (Fedora) zypper install aide (OpenSUSE) emerge aide (Gentoo)
Nesse caso, usamos o Ubuntu. Lá digitamos a letra S para aceitar o download e instalação do AIDE. Depois de instalado, veremos o seguinte:
Como podemos ver, o arquivo de configuração principal é /etc/aide/aide.conf. Para visualizar a versão instalada, bem como os parâmetros de tempo de compilação, podemos executar o seguinte:
ajudante -v
2. Acesso ao arquivo de configuração do AIDE Linux
Podemos acessar o arquivo de configuração do AIDE executando a seguinte linha com o editor desejado:
nano /etc/aide/aide.confVeremos o seguinte:
Neste arquivo encontramos diretivas que definem a localização do banco de dados, a localização do relatório, as regras padrão, os diretórios ou arquivos a serem incluídos no banco de dados e muito mais.
3. Como gerenciar e compreender as regras do AIDE
AIDE gerencia regras como:
pPermissões - Permissões
nNúmero de links
ou= Usuário
gGrupos
sTamanho (tamanho)
bContagem de blocos
mmtime
paraum tempo
cctime
SelinuxContexto de segurança Selinux
xattrsExibe os atributos estendidos de um arquivo
A partir dessas regras será possível criar regras personalizadas no arquivo de configuração do AIDE. Por exemplo, podemos criar a seguinte regra:
PERMS = p + u + g + acl + selinux + xattrsNesse caso, a regra PERMS é implementada para controle de acesso, que detectará quaisquer alterações no arquivo ou diretórios com base nas permissões de arquivo ou diretório, usuário, grupo, permissões de controle de acesso, atributos de arquivo e muito mais.
Outra regra que podemos implementar é aquela que verifica apenas o conteúdo do arquivo e o tipo de arquivo selecionado, por exemplo:
CONTEÚDO = sha256 + ftypeSe quisermos verificar o conteúdo estendido, o tipo de arquivo e o acesso, podemos criar uma regra como:
CONTENT_EX = sha256 + ftype + p + u + g + n + acl + selinux + xattrsUma regra que nos ajuda a detectar mudanças no diretório apenas no nível dos dados é:
SOMENTE DADOS = p + n + u + g + s + acl + selinux + xattrs + sha256Essas regras devem ser adicionadas na parte inferior do arquivo de configuração do AIDE:
Salvamos as alterações usando as teclas Ctrl + O e saímos usando Ctrl + X.
4. Como definir regras para visualizar arquivos e diretórios AIDE
Com AIDE também será possível criar regras para determinados arquivos ou diretórios a serem analisados. Para isso acessamos o caminho /etc/aide/aide.conf novamente e podemos criar as seguintes regras:
/ root / \… * PERMS (Esta regra verifica as permissões no diretório raiz) / root / CONTENT_EX (Esta regra verifica todos os arquivos na raiz antes de qualquer alteração) / etc / DATAONLY (Esta regra nos permite detectar qualquer alteração no diretório / etc)
Podemos salvar as alterações no arquivo de configuração do AIDE.
5. Como usar AIDE para verificar arquivos e integridade de diretório no Linux
Uma vez que as regras a serem usadas com AIDE tenham sido definidas, o próximo passo será construir o banco de dados contra as verificações que serão realizadas usando o parâmetro --init.
Com o seguinte comando será criado um banco de dados que contém todos os arquivos que definimos no arquivo de configuração do AIDE:
Aide --init
Feito isso, mude o nome do banco de dados para /var/lib/aide/aide.db.gz antes de continuar, para isso podemos usar o seguinte comando:
mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db.gzRecomenda-se mover este banco de dados para um local seguro, mas devemos ter certeza de atualizar o arquivo de configuração para que ele possa ser lido de lá.
Em seguida, devemos compilar um novo arquivo de configuração do Aide. Executamos o seguinte comando:
update-aide.confAgora vamos copiar este novo arquivo para o diretório / etc / aide:
cp /var/lib/aide/aide.conf.autogenerated /etc/aide/aide.confDepois que o banco de dados é criado, podemos verificar a integridade dos arquivos e diretórios usando a sinalização -check:
auxiliar - verificar
6. Como avaliar AIDE
Para testar o funcionamento do AIDE, executaremos as seguintes linhas:
mkdir / root / aide-test touch / root / aide-test / testsolvetic touch / root / aide-test / testsolvetic1Com eles estamos criando um novo diretório e arquivos no sistema. Posteriormente executamos a seguinte linha para sua validação e verificação:
Aide -checkO resultado será o seguinte:
Lá podemos ver que uma diferença é encontrada no arquivo e indica que tipo de ação foi, adição, exclusão ou alteração.
Desta forma, o AIDE é uma ferramenta útil para determinar em tempo real as mudanças ocorridas no sistema.