Formato do Arquivo

Propósito

Descreve as estruturas de dados de auditoria.

Descrição

O arquivo /usr/include/sys/audit.h contém estrutura e definições constantes para os comandos do sistema de auditoria, subroutines, e daemons:

Formatar o Formato Bin

O formato da bin de auditoria é descrito pela estrutura aud_bin . Uma trilha de auditoria consiste em uma sequência de bins, cada um deles deve começar com um cabeçote de bin e terminar com um rabo de bin. A estrutura aud_bin contém os seguintes campos:

Item Descrição
bin_magic O número mágico para o bin (0xf0f0).
bin_version O número da versão para o bin (0).
bin_tail Indica se a bin descreve a cabeça de trilha de auditoria ou cauda:
0
Identifica o cabeçalho bin.
1
Identifica a extremidade bin (cauda).
2
Identifica a extremidade da trilha.
bin_len O comprimento (não embalado) dos registros de bin. Um valor não zero indica que o bin tem um registro de cauda.
bin_plen O comprimento atual do registro do bin (pode ser embalado).
bin_time O tempo em que a cabeça ou cauda foi escrita.
bin_reserved1 Não usado atualmente.
bin_reserved2 Não usado atualmente.

Formato de Classe de Auditoria

O formato da classe de auditoria é descrito pela estrutura audit_class , que contém os seguintes campos:

Item Descrição
ae_name Um ponteiro para o nome da classe de auditoria.
ae_list Um ponteiro para uma lista de nomes de eventos de auditoria terminados em null para esta classe de auditoria. A lista é terminada por um nome nulo (um byte nulo líder ou dois bytes nulos consecutivos).
Nota: Os nomes de eventos e de classe são limitados a 15 caracteres significativos.
ae_len O comprimento da lista de eventos noae_listmembro. Este comprimento inclui a terminação de bytes nulos. Em uma operação AUDIT_SET , o caller deve configurar este membro para indicar o comprimento real da lista (em bytes) apontado porae_list. Em uma operação AUDIT_GET ou AUDIT_LOCK , a subroutine auditevents configura este membro para indicar o tamanho real da lista.

Formato de Objeto de Auditoria

O formato do objeto de auditoria é descrito pela estrutura o_event , que contém os seguintes campos:

Item Descrição
o_type Especifica o tipo do objeto, em termos de espaço de nomenclatura. Atualmente, apenas um espaço de nomenclatura de objetos é suportado:
AUDIT_FILE
Denota o espaço de nomenclatura do sistema de arquivos.
o_name Especifica o nome do objeto.
o_event Especifica qualquer matriz de nomes de eventos a serem gerados quando o objeto for acessado. Note que nomes de eventos estão atualmente limitados a 16 bytes, incluindo o null trailing. O índice de um nome de evento nesta matriz corresponde a um modo de acesso. Índices válidos são definidos no arquivo audit.h e incluem o seguinte:
  • AUDIT_READ
  • AUDIT_WRITE
  • AUDIT_EXEC
Nota: O compilador C++ irá gerar um aviso indicando que o_event é definido tanto como uma estrutura quanto um campo dentro dessa estrutura. Embora o campo o_event possa ser usado dentro de C + +, o aviso pode por bytransmitido definindo O_EVENTENT_RENAME. Isto substituirá o campo o_event com o_event_array. o_event é o campo padrão.

Formato de registro de auditoria

Cada registro de auditoria consiste em uma lista de identificadores de eventos de comprimento fixo, cada um dos quais pode ser seguido por uma cauda de comprimento variável. O formato do registro de auditoria é descrito pela estrutura aud_rec , que contém os seguintes campos para identificar o evento:

Item Descrição
ah_magic Número mágico para registro de auditoria.
ah_length O comprimento da parte da cauda do registro de auditoria.
ah_event[16] O nome do evento e um terminador nulo.
ah_result Uma indicação de se o evento descreve uma operação bem-sucedida. Os valores para este campo são:
0
Indica conclusão bem-sucedida.
1
Indica uma falha.
>1
Um valor errno descrevendo a falha.

A estrutura aud_rec também contém os seguintes campos para identificar o usuário e o processo:

Item Descrição
ah_ruid O ID real do usuário; ou seja, o número de ID do usuário que criou o processo que escreveu este registro.
ah_luid O ID de login do usuário que criou o processo que escreveu este registro.
ah_name[16] O nome do programa do processo, juntamente com um terminador nulo.
ah_pid O ID do processo do processo que escreveu este registro.
ah_ppid O ID do processo do pai deste processo.
ah_time O tempo em segundos em que este registro de auditoria foi escrito.
ah_ntime Os nanosegundos deslocados deah_time.

A cauda de registro segue esta informação de cabeçalho.