감사로그(Audit Log)란 무엇인가?
기업의 Linux 서버에서는 사용자의 로그인, 관리자 권한(sudo) 사용, 중요 파일 접근, 프로세스 실행, 방화벽 정책 변경 등 다양한 보안 이벤트가 발생합니다. 이러한 사용자의 행위를 상세히 기록하는 로그가 바로 감사로그(Audit Log, audit.log)입니다.
일반적인 시스템 로그(messages, secure 등)가 운영 상태와 서비스 이벤트를 중심으로 기록한다면, Audit Log는 “누가, 언제, 어떤 작업을 수행했는지”를 훨씬 상세하게 기록합니다. 최근에는 ISO 27001, ISMS-P, 개인정보보호법 등 다양한 보안 컴플라이언스에서도 감사로그의 수집·보관·분석을 필수 요구사항으로 명시하고 있습니다.
일반 Syslog와 Audit Log의 차이
많은 관리자들이 Linux 서버의 모든 로그가 Syslog를 통해 수집된다고 생각하지만, Audit Log는 기본적으로 Syslog와 별도로 관리되는 독립적인 로그 체계입니다.
| 구분 | Syslog | Audit Log |
|---|---|---|
| 주요 목적 | 시스템 운영 로그 | 보안 감사 로그 |
| 대표 파일 | messages, secure | audit.log |
| 기록 내용 | 서비스 상태, 시스템 이벤트 | 로그인, sudo, 파일 접근, 정책 변경 |
| 활용 목적 | 운영 및 장애 분석 | 보안 감사 및 침해사고 분석 |
즉, Audit Log는 시스템 운영보다 사용자의 행위와 보안 이벤트를 추적하기 위한 로그라고 볼 수 있습니다.
Audit Log는 왜 별도 수집이 필요할까?
Audit Log는 기본적으로 Syslog에 포함되지 않기 때문에, 중앙 로그 서버나 SIEM에서 분석하려면 별도의 수집 구성이 반드시 필요합니다.
실제 운영 환경에서는 rsyslog의 imfile 모듈을 이용해 audit.log 파일을 실시간으로 읽고, Syslog 형태로 변환하여 LogCenter와 같은 중앙 로그 관리 시스템으로 전송하는 방식을 많이 사용합니다. 기존 Syslog 인프라를 그대로 활용하면서 Audit Log까지 함께 수집할 수 있다는 점이 이 방식의 장점입니다.
설정 예시 (rsyslog imfile 연동) — audit.log를 실시간으로 읽어 Syslog 형태로 변환·전송하는 기본 설정은 아래와 같은 구조를 가집니다.
module(load="imfile")
input(type="imfile"
File="/var/log/audit/audit.log"
Tag="auditd:"
Severity="info"
Facility="local6")
local6.* @LogCenter_IP:514위 설정 적용 후 rsyslog 데몬을 재시작하면, audit.log에 새로 기록되는 이벤트가 실시간으로 LogCenter에 전송됩니다.
LogCenter를 활용한 Audit Log 분석
LogCenter는 수집된 audit.log를 파싱하여 Audit Type별로 구분합니다. 대표적인 이벤트 유형은 다음과 같습니다.
| Audit Type | 설명 |
|---|---|
USER_LOGIN | 외부 사용자가 인증 과정을 거쳐 시스템 로그인에 최종 성공한 상황 |
LOGIN | 로그인에 성공한 사용자를 위해 시스템 내부 터미널 세션이 배정된 상황 |
USER_ROLE_CHANGE | 사용자 로그인 시 해당 계정에 맞는 시스템 보안 역할과 권한 범위가 적용된 상황 |
USER_CMD | 일반 사용자가 시스템 관리자 권한을 부여받아 특정 명령어를 실행한 상황 |
USER_END | 사용자가 획득했던 특정 권한이나 세션을 정상적으로 종료하고 반납한 상황 |
CRYPTO_SESSION | 외부에서 SSH 접속 시, 안전한 통신을 위한 암호화 알고리즘 조율 및 세션을 성공적으로 수립한 상황 |
CRYPTO_KEY_USER | 암호화 통신 과정에서 사용되었던 일회성 또는 특정 암호화 키가 파기·정리된 상황 |
EXECVE | 새로운 프로세스가 구동될 때 커널로부터 실행 환경 변수와 인자값을 전달받은 상황 |
PROCTITLE | 새로운 프로세스가 실행되면서 해당 프로세스의 명령어 이름이 커널에 등록된 상황 |
PATH | 프로세스가 작업 디렉터리를 변경하거나 특정 파일·디렉터리·라이브러리 경로를 참조한 상황 |
SYSCALL | 프로세스가 하드웨어 제어나 네트워크 연결 등을 위해 커널에 시스템 콜을 요청한 상황 |
SOCKADDR | 프로세스가 네트워크 통신을 위해 특정 IP 주소와 포트 번호를 할당받은 상황 |
SERVICE_STOP | 시스템에 등록된 특정 백그라운드 서비스(데몬)가 중지된 상황 |
NETFILTER_CFG | 커널 방화벽의 규칙이나 정책 룰셋이 추가 및 변경된 상황 |
AVC | 실행 중인 프로세스의 행위가 시스템 보안 모듈(SELinux)의 정책에 위배되어 거부된 상황 |
ANOM_PROMISCUOUS | NIC가 모든 패킷을 수집할 수 있는 무차별(Promiscuous) 모드로 전환된 상황 |
이처럼 LogCenter는 로그인·권한·프로세스·네트워크·정책변경 등 다양한 관점의 이벤트를 세분화하여 분석하며, 필요 시 신규 유형도 추가로 등록할 수 있습니다.
이러한 이벤트는 개별적으로도 의미가 있지만, 시간 순서대로 연계하여 분석하면 하나의 보안 행위 흐름을 재구성할 수 있습니다.
위와 같은 흐름이 확인된다면, 사용자가 로그인한 이후 관리자 권한을 획득하고 프로세스를 실행한 뒤 방화벽 정책까지 변경한 것으로 분석할 수 있습니다. 단일 로그만 확인했을 때보다 훨씬 정확하게 행위의 흐름을 파악할 수 있습니다.
실제 운영 환경에서의 활용
최근 보안 컴플라이언스 대응을 위해 Audit Log 연동 문의가 지속적으로 증가하고 있습니다. 실제 운영 환경에서는 Audit Log를 LogCenter로 연동한 뒤 다음과 같은 항목을 집중적으로 모니터링합니다.
- 관리자 권한(sudo) 사용 이력
- SSH 로그인 성공 및 실패 이력
- 중요 파일 접근 기록
- 서비스 시작 및 종료
- SELinux 정책 위반
- 방화벽 정책 변경
- 프로세스 실행 기록
이러한 이벤트를 방화벽, 웹 서버, 데이터베이스 등의 로그와 함께 연계 분석하면 단일 장비에서는 확인하기 어려운 공격 흐름까지 파악할 수 있습니다.
예를 들어 해외 IP에서 SSH 로그인에 성공한 이후 sudo 명령 실행, 방화벽 정책 변경, 중요 파일 접근이 순차적으로 발생하였다면 내부 침해 가능성을 빠르게 판단할 수 있습니다.
결론
Audit Log는 단순한 시스템 로그가 아니라 사용자의 행위와 시스템 변경 이력을 기록하는 핵심 보안 데이터입니다. 특히 ISO 27001, ISMS-P, 개인정보보호법 등 다양한 보안 컴플라이언스에서 감사로그의 수집·보관·분석 체계를 중요한 요구사항으로 제시하고 있습니다.
LogCenter는 Audit Log를 중앙에서 실시간으로 수집하고, 방화벽·웹 서버·데이터베이스 등 다양한 로그와 연계 분석하여 보안 위협을 보다 빠르게 탐지할 수 있도록 지원합니다. 감사로그를 효과적으로 관리하는 것은 단순한 로그 저장을 넘어, 보안 사고 대응과 컴플라이언스 준수를 위한 핵심 운영 체계라고 할 수 있습니다.