[DB] mariadb 감사로그 저장 (server_audit 플러그인)

2025. 8. 22. 21:35보안 컨설팅/기술적 취약점 점검

인프라 취약점 진단 중 MariaDB 감사로그 저장 시 general_log on을 하면 모든 쿼리문과 결과값이 파일에 저장되어 DB성능과 파일 저장소 크기에 무리가 될 수 있다.  mariadb 자체 플러그인 server_audit 플러그인을 통해 특정 사용자 또는 특정 쿼리문을 선별적으로 기록할 수 있도록 하는 방법이 있다. 이를 테스트해보고자 한다.

일단 MariaDB를 설치한다.

✅ 1. 시스템 패키지 업데이트

 
sudo apt update sudo apt upgrade -y

✅ 2. MariaDB 설치

 
sudo apt install mariadb-server -y

✅ 3. MariaDB 서비스 상태 확인

 
sudo systemctl status mariadb
  • 실행 중인지 확인 (active (running))

 

MariaDB 설치가 완료됐다.

해당 mariadb 테스트는 10.11버전에서 진행되었다.

 

1. gerneral 로그 확인

1) mariaDB에 접속해서 일시적으로 generlog를 on 시킨다. 서버 재시작 불필요하다. (서버 재시작 시 해제된다)

※ 영구적으로 generlog on 하는 방법

  • RHEL 계열: /etc/my.cnf 또는 /etc/my.cnf.d/server.cnf
  • Debian/Ubuntu: /etc/mysql/mariadb.conf.d/50-server.cnf

상단의 파일에서 하단의 설정을 추가한후 재시작한다.

[mysqld]
general_log = 1

 

 

 

2) 쿼리를 입력해본다.

3) /var/lib/mysql 디렉토리에서 저장된 로그를 확인한다. 입력한 쿼리문 뿐만 아니라 결과도 저장된다. (별도의 저장 위치 설정을 하지 않는다면 /var/lib/mysql에 저장된다.

 

 

2. server_audit 플러그 확인

1) server_audit 플러그인 설치

2)플러그인 설치 확인

명령 쿼리: SHOW PLUGINS;

또는 SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE 'SERVER_AUDIT';

 

3) /etc/mysql/my.cnf  파일에서 아래와 같이 설정한다. 이 설정 외에도 특정 DML을 기록이 제외되도록 하여 로그 저장 용량을 줄일 수 있다. (ex> select)

[mysqld]
plugin_load_add = server_audit              # MariaDB 시작 시 audit 플러그인 자동 로드
server_audit_logging = ON                   # 감사 로그 기능 활성화 (ON/OFF)
server_audit_events = CONNECT,QUERY,TABLE   # 기록할 이벤트: CONNECT=로그인/로그아웃, QUERY=쿼리 실행, TABLE=테이블 접근
server_audit_output_type = FILE             # 로그 저장 방식: FILE(파일) 또는 SYSLOG
server_audit_file_path = /var/lib/mysql/server_audit.log   # 감사 로그 파일 경로
server_audit_file_rotate_size = 100M        # 로그 파일 크기가 100MB 넘으면 회전(rotate)
server_audit_file_rotations = 9             # 회전된 로그 파일 최대 9개까지 보관

4) mariaDB를 재시작한다.

sudo systemctl restart mariadb

 

5) 쿼리를 입력해본다. 이전 generlog 테스트를 했을 때와 같이 입력하였다.

6) /var/lib/mysql 디렉토리에서 저장된 로그를 확인한다. 설정한 쿼리문만 저장된다. (별도의 저장 위치 설정을 하지 않는다면 /var/lib/mysql에 저장된다.

 

결론,

server_audit 플러그인은 사용자가 원하는 특정 감사로그만 저장할 수 있어 로그 저장소의 용량을 줄일 수 있다.

 

또한, 플러그인 취약점이 있을까.. 고민이 된다면

server_audit 플러그인은  서드파티 플러그인이 아닌 mariadb 내장 플러그인이기 때문에 빠른 패치가 가능하고 취약점으로부터 위험성이 적다.