본문 바로가기
LINUX

auditd 를통해 이벤트 발생의 원인 파악

by Rainbound-IT 2024. 12. 31.
반응형

 

 

sudo ausearch -k 명령어를 통해 변경 원인을 파악할 수 있습니다. auditd 로그는 이벤트 발생의 시간, 주체, 실행된 명령어 등과 같은 정보를 포함하고 있기 때문에 변경 작업을 수행한 프로세스나 사용자를 추적할 수 있습니다.


1. ausearch 출력에서 원인 분석

예를 들어, 다음과 같은 로그를 얻었다고 가정해봅시다:

type=CONFIG_CHANGE msg=audit(1692034567.123:123): auid=1000 uid=0 gid=0 ses=1 op=set sysctl net.ipv4.conf.all.accept_redirects res=1
type=SYSCALL msg=audit(1692034567.123:123): arch=c000003e syscall=101 success=yes exit=0 a0=7ffd1234 a1=7ffd5678 a2=4 a3=0 items=0 ppid=456 pid=789 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="sysctl" exe="/usr/sbin/sysctl" key="sysctl_monitor"
 

2. 로그 분석

2.1. 주요 필드

  1. type=CONFIG_CHANGE:
    • op=set sysctl: 설정이 변경되었음을 나타냄.
    • res=1: 작업이 성공적으로 완료되었음을 의미.
  2. type=SYSCALL:
    • comm="sysctl": 변경을 수행한 명령어 또는 프로그램(sysctl).
    • exe="/usr/sbin/sysctl": 실행된 명령어의 경로.
    • pid=789: 변경 작업을 수행한 프로세스 ID.
    • ppid=456: 부모 프로세스 ID.
    • auid=1000: 작업을 수행한 사용자의 Audit User ID.
      • 이 값이 0이면 root 사용자를 의미.
    • uid=0: 작업을 수행한 유효 사용자 ID.
    • tty=pts0: 명령이 실행된 터미널.

3. 원인 파악

3.1. 변경 주체(사용자)

  • auid=1000: Audit User ID를 통해 변경을 수행한 사용자를 확인할 수 있습니다.
  • 사용자 ID를 이름으로 변환:
     
     
getent passwd 1000

3.2. 변경을 실행한 프로세스

  • comm="sysctl": 변경을 실행한 명령이 sysctl임을 나타냅니다.
  • pid=789: 프로세스 ID를 통해 변경 당시의 프로세스를 추가로 추적할 수 있습니다.

3.3. 부모 프로세스 확인

  • ppid=456: 부모 프로세스를 통해 변경의 출발점을 파악합니다.
     
ps -p 456 -o pid,ppid,cmd

3.4. 실행 경로 확인

  • exe="/usr/sbin/sysctl": 실행된 프로그램의 경로를 통해 명령어의 원본을 확인할 수 있습니다.

4. 자세한 로그 조회

4.1. 특정 이벤트에 대한 자세한 정보

특정 이벤트 ID(위 예시의 1692034567.123:123)를 기준으로 추가 정보를 조회할 수 있습니다:

sudo ausearch -a 123

4.2. 변경과 관련된 전체 로그 추적

특정 키워드(sysctl_monitor)를 기준으로 전체 관련 로그를 확인합니다:

sudo ausearch -k sysctl_monitor
 

5. 활용 예시

/proc/sys/net/ipv4/conf/all/accept_redirects를 변경한 작업이 특정 스크립트나 프로세스에 의해 실행되었는지 확인하려면:

  1. 로그에서 exe와 comm 값을 확인합니다.
  2. 해당 실행 파일의 소스 코드를 점검하거나 스크립트 내용을 확인합니다.

결론

ausearch와 auditd 로그를 통해 변경 주체, 실행된 명령, 프로세스 및 사용자를 포함한 원인을 파악할 수 있습니다. 이를 통해 의도치 않은 변경의 원인을 식별하고 문제를 해결할 수 있습니다.

반응형

댓글