execve 시스템 호출 매개변수를 정의하는 Linux 감사 표준의 정규식이 아직 사용 중입니까?

execve 시스템 호출 매개변수를 정의하는 Linux 감사 표준의 정규식이 아직 사용 중입니까?

~에 따르면필드 사전[1] 일부 필드에는 다음 정규식으로 정의된 이름이 있습니다.

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

a4and와 같은 필드의 예를 찾을 수 있었습니다 a5(참조2) 그러나 정규 표현식에서는 작동하지 않습니다. 대괄호 한 쌍이 필요한 것 같습니다(따라서 또는 a4이어야 합니다 ). Linux Audit 소스 코드에서 참조를 찾을 수 없습니다.a4[]a4[foo]

내 질문은

  1. 이 정규식은 유효하고 최신입니까? 아니면 더 이상 적용되지 않는 오래된 규칙인가요?
  2. execve 시스템 호출의 이러한 매개변수가 어떻게 처리되는지 확인하기 위해 어디를 볼 수 있는지 제안해 주실 수 있나요?
  3. 정규식에 적합한 필드가 포함된 레코드의 예를 게시할 수 있습니까(정규식이 작동한다고 가정)?

링크

  1. https://github.com/linux-audit/audit-documentation/blob/master/specs/fields/field-dictionary.csv#L3
  2. https://www.redhat.com/archives/linux-audit/2012-October/msg00090.html

참고: 이 질문은 Linux Audit 메일링 리스트에서도 요청되었지만 아직 피드백을 받지 못했습니다.

답변1

다음은 Steve Grubb과 Paul Moore로부터 제가 받은 답변을 요약한 것입니다. 최종 메시지는 관련 스레드에서 볼 수 있습니다.여기(링크).


  1. 이 정규식( a[[:digit:]+]\[.*\])이 유효하고 최신입니까? 아니면 더 이상 적용되지 않는 오래된 규칙인가요?

    이 정규식은 오래된 것이 아닙니다. 매개변수가 너무 길어서 단일 필드에 맞지 않을 때(예: ) 사용하십시오 a4. 대신, 매개변수는 필드로 분할되므로 결국 우리는 다음을 얻습니다.

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

    바꾸다

    a4=long
    

    실제로 정규식은 다음과 같이 정의될 수 있지만 a[[:digit:]+]\[[:digit:]+\]현재 정규식은 이미 해당 작업을 수행하므로 수정할 필요가 없습니다.

  2. execve 시스템 호출의 이러한 매개변수가 어떻게 처리되는지 확인하기 위해 어디를 볼 수 있는지 제안해 주실 수 있나요?

    바라보다kernel/auditsc.c:audit_log_single_execve_arg 자세히 알아보기(링크).

  3. 정규식에 적합한 필드가 포함된 레코드의 예를 게시할 수 있습니까(정규식이 작동한다고 가정)?

    다음을 사용하여 예제를 생성할 수 있습니다.Linux 감사 테스트 제품군(링크)아니면 여기를 참조하세요Linux 감사 아카이브의 오래된 이메일(링크).

    폴 무어의 말을 인용하자면:

    커널은 EXECVE 레코드를 생성하며 kernel/auditsc.c:audit_log_execve_info()다음에서 EXECVE 레코드에 대한 테스트를 찾을 수 있습니다.감사 테스트 스위트(exec_execve).

관련 정보