Então resolvi uma pequena parte do problema - descobri que auditd start, ver=2.2
é válido. Eu não consegui encontrar nenhuma documentação embora. O único documento que tenho é um exemplo do manual da Red Hat:
Example 7.5. Additional audit.log events
The following Audit event records a successful start of the auditd daemon. The ver field shows the version of the Audit daemon that was started.
type=DAEMON_START msg=audit(1363713609.192:5426): auditd start, ver=2.2 format=raw kernel=2.6.32-358.2.1.el6.x86_64 auid=500 pid=4979 subj=unconfined_u:system_r:auditd_t:s0 res=success
The following Audit event records a failed attempt of user with UID of 500 to log in as the root user.
type=USER_AUTH msg=audit(1364475353.159:24270): user pid=3280 uid=500 auid=500 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:authentication acct="root" exe="/bin/su" hostname=? addr=? terminal=pts/0 res=failed'
O triste é que estes são apenas exemplos. Eu adoraria ler a documentação atual do padrão, já que não consigo encontrá-lo em lugar nenhum.
Atualizar
Eu fiz as perguntas da lista de discussão oficial ( veja a resposta completa à minha pergunta ).
Veja o que aprendi:
Um campo inválido name = value em um registro
Não estou claro para mim por que auditd start
existe, mas aqui está a resposta de Steve Grubb à minha pergunta.
Where are all the elements like auditd start, user, etc. listed? I cannot find any document which specifies what can occurs between the colon (separating the type and the msg=audit(…) from the fields) and the record’s fields.
Realmente não existe nenhum, Libauparse cuida de tudo isso para que você não precisa. Se você está querendo fazer a tradução, você pode alimentar o registra-se no auparse e depois formata o evento da maneira que você quiser.
Basicamente, a resposta está escondida em algum lugar da biblioteca auparse.
Uma vírgula e um espaço como separador
Why do some records are separated by a comma and a whitespace? Example:
type=DAEMON_START msg=audit(1363713609.192:5426): auditd start, ver=2.2 format=raw kernel=2.6.32-358.2.1.el6.x86_64 auid=500 pid=4979 subj=unconfined_u:system_r:auditd_t:s0 res=success
Há muito tempo, os registros foram feitos para serem legíveis para humanos (não ria) e consumível da máquina. Com o tempo, estes foram pares de name = value convertidos. Mesmo o que você mencionou acima foi fixo.
Espaços adicionais em branco em um registro
Este já foi corrigido por Steve Grubb.
O patch: link