auditd 로그에서 audit_cmd를 어떻게 구문 분석하나요?

auditd 로그에서 audit_cmd를 어떻게 구문 분석하나요?

auditd.logaudit_cmd와 긴 16진수 문자열이 포함된 줄이 있습니다 .

type=USER_CMD msg=audit(<TIMESTAMP>): pid=<PID> uid=<UID> auid=<AUID> ses=72940 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 
msg='cwd="/home/<account>" cmd=2F62696E2F7368202D63206563686F204<HEX> terminal=pts/2 res=success' 

어떻게 분석할 수 있나요?

참고: 로그가 원래 생성된 컴퓨터에 항상 있지 않을 수도 있습니다(어떤 경우에는 Elasticsearch 서버로 전달된 로그를 볼 수도 있습니다).

답변1

auditd.logSplunkUniversalForwarder를 통해 수집하고 Splunk에서 조사할 때도 동일한 문제에 직면했습니다.

처럼 @톰 크리노아래에서 이미 언급하고 논의했습니다.auditd execve 매개변수는 인코딩된 데이터처럼 보입니다., 명령 문자열은 16진수로 인코딩된 ASCII로 나타납니다.

따라서 다음과 같이 디코딩할 수 있습니다.

echo "<HEX encoded ASCII string>" | xxd -r -p

나중에 원격 로그 수집기(예: Splunk)가 xxd설치된 경우 vim.

나에게 더 나은 접근 방식은 로그를 전처리 ausearch -if audit.log -i하고 사용하는 것 같습니다.스플렁크 앱rlog.sh.

관련 정보