Process accounting do kernel Linux como fonte forense complementar ao bash_history
Um diário do SANS ISC detalha o recurso de process accounting do kernel Linux, que registra automaticamente todo processo executado no sistema — inclusive fora de sessões interativas de shell, onde o bash_history nada captura. O autor mostra como ativar o recurso com o pacote acct e consultar os registros com lastcomm e sa, posicionando a técnica como complemento (não substituto) a outras fontes de auditoria.
O artigo parte de uma discussão anterior sobre o Atuin, ferramenta que organiza e enriquece o histórico de comandos do bash, para apresentar uma alternativa nativa do kernel: o process accounting. Diferentemente do histórico de shell, que só registra comandos digitados interativamente por um usuário em uma sessão bash, o process accounting opera no nível do kernel e grava metadados de todo processo que termina no sistema — independentemente de ter sido lançado por um shell, um cron job, um daemon ou um processo filho de outro programa.
Tecnicamente, o recurso é ativado com o pacote `acct` (via `accton`), que passa a gravar um arquivo binário de log (tipicamente `/var/log/account/pacct`) contendo nome do processo, flags de execução, usuário responsável, tempo de CPU consumido e timestamp de término. Duas ferramentas de linha de comando dão acesso a esses dados: `lastcomm`, que lista os registros em formato legível processo a processo, e `sa`, que gera sumarizações agregadas de uso de CPU e comandos executados ao longo do tempo.
Do ponto de vista forense, a vantagem central é a cobertura: como o registro ocorre no kernel e não depende de qual shell ou ambiente lançou o processo, ele captura atividade que escaparia de uma análise baseada apenas em bash_history — por exemplo, comandos executados por scripts, tarefas agendadas ou processos gerados por outro binário comprometido. Isso o torna útil para reconstrução de timeline de incidentes e auditoria de containers privilegiados, com baixo overhead de recursos (a estimativa citada é de cerca de 50 MB de log por dia em sistemas não saturados) e possibilidade de integração com SIEM via syslog-ng para centralização de evidências.
A limitação relevante, e que o próprio artigo destaca, é que o process accounting não registra os argumentos de linha de comando — apenas o nome do binário executado. Isso significa que ele não substitui soluções mais granulares como auditd ou logging de EDR, mas funciona bem como camada suplementar de baixo custo: se um binário suspeito rodou em um host, mesmo sem argumentos, sua simples presença no log já ajuda a estabelecer uma linha do tempo de execução durante a resposta a incidentes.