안녕하세요 Thinking Man 입니다.
이번 글에서는 UNIX 시스템에서 SYSLOG에 Audit 데이터를 기록하는 방법에 대해 알아보도록 하겠습니다.
이번 글을 읽을 경우 syslog audit의 장점과 기록되는 형식 및 syslog audit 설정 방안에 대해서 알 수 있습니다.
이 글은 Oracle 11gR2 공식 문서를 참고하여 작성하였습니다.
표준 감사를 통한 활동 감사
UNIX Syslog Audit 추적 사용
UNIX 시스템에서는 사용자의 활동을 감사하고 감사 데이터들을 syslog 파일에 저장할 수 있습니다.
이 글에서는 다음 내용을 다루고자 합니다.
– Syslog Audit Trail에 관한 정보
– Syslog Audit Trail에 저장된 데이터의 형식
– Syslog Audit Trail이 보여지는 형식
– Unix Syslog Audit 설정 구성
Unix Syslog Audit 설정 구성
Unix 시스템에서는 Syslog Audit Trail을 사용하여 Syslog 기능의 중앙 집중식 감사를 구성할 수 있습니다. Syslog는 시스템 로그 메시지를 관리하는 UNIX 기반 시스템의 표준 프로토콜입니다. 어플리케이션은 syslog() 함수를 호출하여 정보를 syslog 데몬에 기록하고 데몬은 그 정보를 어디에 기록할지 결정합니다. syslog 사용 할 때 주의해야 할 점은 메시지가 syslog 데몬 프로세스로 전송된다는 점입니다. syslog 데몬 프로세스는 syslog 파일에 커밋된 쓰기에 대한 답신을 Oracle에 리턴하지 않습니다.
Oracle 프로세스와 같은 어플리케이션은 syslog() 함수를 사용하여 syslog 데몬에 정보를 기록하므로 Oracle에 권한이 있는 사용자도 syslog 메시지가 기록되는 파일 시스템에 대한 권한이 없습니다. 그렇기 때문에 syslog 감사를 사용하여 저장된 감사 레코드는 운영 체제 감사를 사용하여 저장된 감사 레코드보다 더 안전합니다. 추가적으로 syslog 감사의 보안을 위해서 Oracle 프로세스와 권한을 가진 사용자 모두 시스템에 대한 루트 액세스 권한을 가져서는 안됩니다.
주의: Syslog 감사를 활성화하기 전에 syslog를 관리하고 운영하는 방법에 대한 이해가 반드시 필요합니다. syslog에 대한 자세한 정보는 다음 참조 자료를 참조하세요. ● AUDIT_SYSLOG_LEVEL 초기화 매개변수에 대한 정보는 Oracle 데이터베이스 참조 문서를 참조하십시오. ● facility.priority 설정 및 해당 디렉터리 경로에 대한 자세한 정보는 syslogd 유틸리티의 UNIX man 페이지를 참조하세요.
Syslog Audit Trail에 저장된 데이터의 형식
운영 체제 감사 레코드와 유사하게 Oracle에서는 syslog 레코드를 인코딩하여 더 높은 보안을 제공합니다. Oracle Audit Vault를 설치한 경우 Syslog Collector를 사용하여 syslog 감사 레코드를 중앙 집중식 Oracle Audit Vault 서버로 추출하고 전송할 수 있습니다.
Syslog Audit Trail이 보여지는 형식
아래 예제 9-5는 syslog 감사 레코드가 어떤 형식으로 기록되는지 보여줍니다. (이 예제에서 보여지는 형식은 가독성을 높이기 위해 줄바꿈을 해놓은 상태입니다. 실제로 모든 텍스트가 한 줄에 기록됩니다.)
Oracle의 다른 감사 데이터와 마찬가지로 대괄호는 감사 데이터 값의 길이를 나타냅니다.
syslog 감사 레코드의 경우 LENGTH:를 포함한 텍스트가 Oracle 데이터베이스 감사 레코드입니다.
앞에 추가된 텍스트(날짜 및 Oracle Audit [10085] 행)는 syslog 유틸리티에 의해 추가됩니다.
예제 9-5) SYS 사용자의 syslog 감사 레코드
May 14 23:40:15 shobeen Oracle Audit[10085]: LENGTH : '171' ACTION :[18] 'select * from aud$' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[7] 'laurelh' CLIENT TERMINAL:[6] 'pts/12' STATUS:[1] '0' DBID:[9] '562317007'
Unix Syslog Audit 설정 구성
Syslog 감사를 활성화하려면 아래의 절차대로 수행해야 합니다.
1. AUDIT_TRAIL 초기화 매개변수에 OS로 설정하십시오. 초기화 매개변수에 대해 상세히 알고 싶다면 “여기” 를 참고하세요.
예)
ALTER SYSTEM SET AUDIT_TRAIL=OS SCOPE=SPFILE;
2. AUDIT_SYSLOG_LEVEL 매개변수를 Oracle 초기화 파라미터 파일인 initsid.ora에 추가하십시오.
AUDIT_SYSLOG_LEVEL 매개변수를 AUDIT_SYSLOG_LEVEL=facility.priority 형식으로 지정하십시오.
- facility: 메시지를 기록하는 운영 체제의 일부를 설명합니다. 허용되는 값은 user, local0-local7, syslog, daemon, kern, mail, auth, lpr, news, uucp 및 cron입니다.
local0-local7 값은 syslog 메시지를 카테고리로 분류할 수 있게 하는 미리 정의된 태그이며, 이러한 카테고리는 syslog 유틸리티가 액세스할 수 있는 로그 파일 또는 기타 대상일 수 있습니다. 이러한 태그 유형에 대한 자세한 정보는 syslog 유틸리티 MAN 페이지를 참조하십시오. - priority: 메시지의 심각도를 정의합니다. 허용되는 값은 notice, info, debug, warning, err, crit, alert 및 emerg입니다.
syslog 데몬은 AUDIT_SYSLOG_LEVEL 매개변수의 facility 인수에 할당된 값을 syslog.conf 파일과 비교하여 정보를 기록할 위치를 결정합니다.
예를 들어 다음 명령문은 facility를 local1로 지정하고 우선 순위 수준을 warning으로 지정합니다:
AUDIT_SYSLOG_LEVEL=local1.warning
AUDIT_SYSLOG_LEVEL에 대한 자세한 정보는 여기를 참조하십시오.
3. syslog 구성 파일인 /etc/syslog.conf를 포함하는 컴퓨터에 슈퍼유저(루트) 권한으로 로그인하십시오.
4. syslog 구성 파일 syslog.conf에 감사 파일 대상을 추가하십시오.
예를 들어, AUDIT_SYSLOG_LEVEL을 local1.warning로 설정했다고 가정하면 다음과 같이 입력하십시오:
local1.warning /var/log/audit.log
이 설정은 모든 경고 메시지를 /var/log/audit.log 파일에 기록합니다.
5. syslog 를 다시 시작하십시오.
$/etc/rc.d/init.d/syslog restart
이제 모든 감사 레코드는 syslog 데몬을 통해 /var/log/audit.log 파일에 캡처됩니다.
6. 데이터베이스 인스턴스를 재시작하십시오.
CONNECT SYS / AS SYSOPER Enter password: password SHUTDOWN IMMEDIATE STARTUP
추가로 읽어봐야 할 글
> Oracle 보안 관리 Audit 4편 (OS Audit Trail 2)
> Oracle 보안 관리 Audit 3편 (OS Audit Trail 1)
> Oracle 보안 관리 Audit 2편 (표준감사를 통한 활동 감사)
> Oracle 보안 관리 Audit 1편 (감사란 ?)
1 thought on “Oracle 보안 관리 Audit 5편 (UNIX SYSLOG Audit)”
Comments are closed.