Skip to content

Glosario

Registro EXECVE

El registro de audit.log con los argumentos de un programa ejecutado (argc y a0..aN), en hexadecimal si contienen espacios o caracteres especiales.

Un registro EXECVE es el registro de audit.log que contiene la lista de argumentos de un programa ejecutado. Cuando una regla de auditd audita la llamada al sistema execve, cada ejecución produce varios registros que comparten la misma marca msg=audit(sec.msec:serial): SYSCALL (quién lo ejecutó, con auid, uid, ses y exe), EXECVE (argc y un campo a0, a1… por argumento), CWD (el directorio de trabajo), uno o varios PATH y PROCTITLE, cerrados por EOE.

Los valores de los argumentos aparecen de tres formas. Entre comillas dobles, son texto plano. Sin comillas, el valor está codificado en hexadecimal porque el argumento contiene un espacio, una comilla doble, un carácter de control o bytes no ASCII. Los argumentos largos se dividen en aN_len= seguido de fragmentos aN[0]=, aN[1]=…, y una línea de comandos muy larga puede ocupar varios registros EXECVE del mismo evento.

Por qué importa en una investigación

El registro EXECVE es la prueba de línea de comandos más precisa en un host Linux. Captura los comandos escritos en una shell de root, que auth.log nunca ve, y elimina ambigüedades: la línea de sudo en auth.log muestra /srv/finance/Q3 close sin decir si es un argumento o dos, mientras que la codificación hexadecimal de EXECVE lo resuelve. PROCTITLE también contiene la línea de comandos, pero el kernel la trunca cuando es larga, así que conviene preferir EXECVE cuando existen ambos.

Ejemplo

type=EXECVE msg=audit(1789381120.086:181322): argc=4 a0="tar" a1="czf" a2="/tmp/.f.tgz" a3=2F7372762F66696E616E63652F513320636C6F7365

a3 se decodifica como /srv/finance/Q3 close, un único argumento con un espacio. Agrupa los registros por la marca completa, no solo por el número de serie, que se reinicia en cada arranque.

Términos relacionados

  • auid: el usuario que inició sesión, en el registro SYSCALL correspondiente.
  • auditd: el daemon y sus reglas.

Linux Log Parser reensambla automáticamente los argumentos en hexadecimal y fragmentados. Más detalles en el análisis forense de EXECVE en auditd.