Log execve's, junto com o processo pai argv?

Log execve's, junto com o processo pai argv?

Estou tentando descobrir se posso desativar um servidor antigo. Preciso de informações sobre processos automatizados em execução lá. Até agora tentei o seguinte:

auditctl -a exit,always -F arch=b64  -S execve -k any-commands

Na fase de análise de log, descobri que faltavam duas partes do contexto:

  1. Como esses programas foram executados? Qual processo era o pai deles e qual era o seu argumento?
  2. Para onde foi o stdin/stdout? Idealmente, eu adoraria ver o comando shell reconstruído, mas sei que provavelmente estou pedindo demais, então pelo menos ter o ID do descritor de pipe serviria (para que eu possa tentar reconstruí-lo com meus próprios scripts).

Como posso abordar esse problema?

Responder1

A execvechamada do sistema substitui o processo atual. Se um programa deseja manter o controle após iniciar outro programa, ele precisa primeiro criar um novo processo (usando forkou vfork) que então chama execve.

Os descritores e permissões de arquivos abertos são assumidos quando a imagem do programa é substituída em execve(exceto aqueles marcados com o CLOEXECsinalizador), de modo que os arquivos abertos são herdados do processo pai durante fork, depois modificados entre forke execve(por exemplo, usando dup2) e, finalmente, filtrados durante a execvechamada.

Portanto, será difícil obter uma visão completa dos dados de auditoria.

informação relacionada