A regex que define os argumentos para o syscall execve no padrão Linux Audit ainda é usada?

0

De acordo com o dicionário de campo [ 1 ] existem campos cujos nomes são definidos pelo seguinte regex:

a[[:digit:]+]\[.*\]

Consegui encontrar exemplos de campos como a4 e a5 (consulte 2 ), mas não cabe no regex, o que parece exigir um par de colchetes (para que a4 seja a4[] ou a4[foo] ). Não encontrei nenhuma referência no código-fonte do Linux Audit.

Minhas perguntas são

  1. Esta regex é válida e atualizada? Ou é uma regra desatualizada que não se aplica mais?
  2. Você poderia me sugerir onde procurar para ver como esses argumentos para o syscall execve são tratados?
  3. Você poderia postar um exemplo de um registro com um campo que se encaixa no regex (supondo que o regex seja válido)?

Links

  1. link
  2. link

Nota: Esta questão foi colocada na lista de discussão do Linux Audit, mas ainda não recebi nenhum feedback.

    
por Mateusz Piotrowski 01.08.2016 / 12:28

1 resposta

0

Este é um resumo das respostas que recebi de Steve Grubb e Paul Moore. A mensagem final no tópico relacionado pode ser vista aqui (link) .

  1. Esta regex ( a[[:digit:]+]\[.*\] ) é válida e atualizada? Ou é uma regra desatualizada que não se aplica mais?

    Este regex não está desatualizado. É usado quando o argumento é muito longo para caber em um único campo como a4 . Em vez disso, o argumento é dividido em vários campos, então, no final do dia, obtemos

    a4_len=4 a4[0]=l a4[1]=o a4[2]=n a4[3]=g
    

    em vez de

    a4=long
    

    Na verdade, o regex pode ser definido como a[[:digit:]+]\[[:digit:]+\] , mas o atual faz o seu trabalho, portanto não há necessidade de corrigi-lo.

  2. Você poderia me sugerir onde procurar para ver como esses argumentos para o syscall execve são tratados?

    Veja kernel / auditsc.c: audit_log_single_execve_arg para detalhes (link) .

  3. Você poderia postar um exemplo de um registro com um campo que se encaixa no regex (supondo que o regex seja válido)?

    Um exemplo pode ser gerado com o pacote Linux Audittest (link) ou visto aqui em análo antigo do arquivo de auditoria do linux (link) .

    Citando Paul Moore:

    The kernel generates the EXECVE record in kernel/auditsc.c:audit_log_execve_info() and you can find a test for for the EXECVE record in the audit-testsuite (exec_execve).

por 11.08.2016 / 17:40