감사 / 로깅 활성화
Oracle
-- Unified Auditing (12c+):
CREATE AUDIT POLICY table_audit
ACTIONS SELECT, INSERT, UPDATE, DELETE ON hr.employees;
AUDIT POLICY table_audit;
-- Monitoring: SELECT * FROM unified_audit_trail ORDER BY event_timestamp DESC;Unified Auditing에서는 정책을 생성하고 AUDIT로 활성화한다. 기록은 unified_audit_trail 뷰에 저장된다.
PostgreSQL
-- pgaudit extension (recommended; first shared_preload_libraries = 'pgaudit' + restart + CREATE EXTENSION pgaudit):
ALTER SYSTEM SET pgaudit.log = 'write, ddl';
SELECT pg_reload_conf();
-- Simple built-in method:
ALTER SYSTEM SET log_statement = 'ddl';
SELECT pg_reload_conf();pgaudit는 상세한 감사 로깅을 제공한다. 서버 전체에 적용하려면 ALTER SYSTEM으로 설정한다(세션 수준 SET은 해당 세션만 감사). 확장 없이는 log_statement('ddl','mod','all')로 기본 로깅을 활성화한다. 로그 양에 주의한다.
MySQL
-- Enterprise/MariaDB audit plugin:
INSTALL PLUGIN audit_log SONAME 'audit_log.so';
SET GLOBAL audit_log_policy = 'ALL';
-- Simple alternative (all queries):
SET GLOBAL general_log = 'ON';audit_log 플러그인(Enterprise, MariaDB는 server_audit)이 상세한 감사 기록을 남긴다. general_log는 모든 쿼리를 기록하지만 성능이 저하된다.
SQL Server
USE master;
CREATE SERVER AUDIT Audit_A TO FILE (FILEPATH = 'C:\\audit\\');
ALTER SERVER AUDIT Audit_A WITH (STATE = ON);
USE mydb;
CREATE DATABASE AUDIT SPECIFICATION db_spec
FOR SERVER AUDIT Audit_A
ADD (SELECT, INSERT, UPDATE, DELETE ON SCHEMA::dbo BY public)
WITH (STATE = ON);먼저 SERVER AUDIT 대상(파일/이벤트 로그)을 생성하고 활성화한 뒤, 서버 또는 데이터베이스 AUDIT SPECIFICATION으로 추적할 이벤트를 정의한다.
MongoDB
# MongoDB Enterprise / Atlas only. Configuration (mongod.conf):
# auditLog:
# destination: file
# format: JSON
# path: /var/log/mongodb/audit.json
# filter: '{ atype: { $in: ["authCheck","createCollection","dropCollection"] } }'
# mongod --auditDestination file --auditPath /var/log/mongodb/audit.json감사는 Enterprise와 Atlas에서만 제공되며, mongod 구성의 auditLog 섹션으로 활성화한다. Community 에디션에는 없다.
Redis
ACL LOG
# Shows rejected authentication/command/key access attempts.
# To reset: ACL LOG RESET
# For general command auditing: an external proxy or MONITOR (with care).ACL LOG는 보안 이벤트(인증 실패, 권한 없는 명령/키)를 자동으로 기록한다. 전체 명령 감사는 기본 제공되지 않는다.
Elasticsearch
# elasticsearch.yml (on all nodes, restart required):
xpack.security.audit.enabled: true
# Optional event filter:
xpack.security.audit.logfile.events.include: [ "authentication_failed", "access_denied" ]감사 로깅은 xpack.security.audit.enabled로 활성화한다. elasticsearch.yml에서 설정하며 노드 재시작이 필요하다(동적 설정 아님). 상용 라이선스가 필요하다.