Existe alguma maneira de registrar atividades realizadas por um usuário (outro superusuário)?

1

Eu estava explorando as possibilidades com o comando Toque , enquanto desenvolvi a seguinte situação em mente.

  1. Suponha que haja dois administradores ou superusuários (Usuário A e Usuário B) de uma Máquina / Servidor.

  2. O UserB está executando atividades maliciosas, neste caso, vamos considerar que o Usuário B está modificando assinaturas de arquivos usando o comando touch .

Perguntas

  1. Como o usuário A pode identificar essas modificações?

  2. Se houver apenas um administrador e seu sistema estiver comprometido. Como é possível que o administrador detecte as atividades maliciosas?

Uma abordagem possível para detectar essa invasão é verificar os registros do sistema, mas e se o invasor / atacante tiver modificado os registros do sistema de alguma forma.

    
por Chinmaya B 19.09.2016 / 21:08

3 respostas

2

Você pode tentar usar auditd para registrar o acesso aos arquivos ( e mais), mas se um invasor obtiver acesso à sua máquina como superusuário, é possível que todos os logs e rastreios sejam apagados sem qualquer maneira de detectá-lo.

Uma atenuação possível é ativar o registro remoto (pela rede) ou usar outro hardware que permita anexar dados somente sem a capacidade de sobrescrever coisas.

Se você suspeitar de um comprometimento e quiser investigá-lo, está entrando na área de análise forense. Dependendo do desleixo do atacante, isso pode ter sucesso ou falhar. Exemplos incluem esquecer de remover um .bash_history ou arquivos de log e excluir arquivos sem fragmentá-lo.

Você menciona "assinatura de arquivo", mas "toque" apenas modifica os metadados do arquivo. Estes são armazenados em um formato específico do sistema de arquivos no dispositivo de disco subjacente. Geralmente, programas sem privilégios não podem modificar diretamente o dispositivo de disco subjacente. Em vez disso, eles se comunicam com o kernel usando chamadas de sistema e solicitam modificações no sistema de arquivos (que então propaga as alterações no disco subjacente). Para ver qual sistema chama um programa, use o programa strace . Por exemplo, strace touch x me dá:

...
open("x", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
dup2(3, 0)                              = 0
close(3)                                = 0
utimensat(0, NULL, NULL, 0)             = 0
...

Aqui você pode ver que a chamada do sistema open é passada por um caminho e retorna um descritor de arquivo. Posteriormente, esse filedescriptor é usado em uma chamada para a utimensat chamada de sistema que muda o registro de data e hora do arquivo. Todas essas ações podem ser registradas pelo daemon de auditoria descrito anteriormente e, é claro, os resultados podem ser observados devido a alterações no sistema de arquivos. Se você cavar fundo o suficiente, você pode encontrar evidências dessa atividade, mas então você está realmente confiando na criatividade da ciência forense.

    
por Lekensteyn 19.09.2016 / 21:55
1

Você pode usar o AIDE , um sistema de detecção de invasões baseado em host (HIDS) para verificar a integridade dos arquivos com assinatura. Diz-se que é capaz de armazenar mtime, ctime e atime de cada arquivo. Então, seu exemplo está coberto.

Naturalmente, você pode querer armazenar o resultado do AIDE fora do local para que nada seja moderado com o resultado.

Tenho certeza de que há outros HIDS que oferecem um recurso semelhante à assinatura: link

    
por solsTiCe 19.09.2016 / 22:28
0

Se alguém conseguir obter acesso root, poderá fazer o que quiser, inclusive removendo todos os vestígios de sua atividade.

Desculpe, mas a única coisa que você pode e deve fazer é proteger sua (s) senha (s) root / sudo.

    
por Byte Commander 19.09.2016 / 21:50