취약점 진단 가이드/DBMS 취약점 진단 가이드

D-22(상) 데이터베이스의 접근, 변경, 삭제 등의 감사기록이 기관의 감사기록 정책에 적합하도록 설정

H.J.World 2021. 8. 4. 17:50
728x90
반응형

※ 해당 가이드는 2021년 기준입니다.

주요정보통신기반시설 관리기관은 -정보통신기반 보호법- 제9조에 따라, 주요정보통신기반시설로 신규 지정된 후 6개월이내, 그리고 매년 취약점 분석/평가를 실시하여야 한다. 취약점 분석/평가는 453개의 관리적/물리적/기술적 점검항목에 대한 주요정보통신기반시설의 취약여부를 점검하여, 악성코드 유포, 해킹 등 사이버 위협 대응을 위한 종합적 개선과정이다.


주요정보통신기반시설 취약점 네트워크 장비 점검 항목

■ 취약점 개요

○ 점검개요 : 감사기록 정책 설정이 기관 정책에 적합하게 설정되어 있는지 점검

○ 점검목적 : 데이터, 로그, 응용프로그램에 대한 감사 기록 정책을 수립하고 적용하여 데이터베이스에 문제 발생 시 원활하게 대응

○ 보안위협 : 감사기록 정책이 설정되어 있지 않을 경우, 데이터베이스에 문제 발생 시 원인을 규명할 수 있는 자료가 존재하지 않아 이에 대한 대처 및 개선방안 수립이 어려움

○ 점검대상 : Oracle, MSSQL, ALTIBASE, TIBERO, PostgreSQL

○ 판단기준

- 양호 : DBMS의 감사 로그 저장 정책이 수립되어 있으며, 정책 설정이 적용되어 있는 경우

- 취약 : DBMS에 대한 감사 로그 저장을 하지 않거나 정책 설정이 적용되어 있지 않은 경우

 

■ 점검방법 및 조치방안

Oracle

Step 1 데이터베이스 감사 기록 정책 및 백업 정책 수립
Step 2 * DBMS에 대한 기본적인 감사를 설정함
* 아래와 같은 명령어를 통해 로그인 실패, 권한, 객체 등에 대한 감사 설정
SQL> connect sys as sysdba
Enter password: ******
Connected.
SQL> alter system set audit_trail=DB scope=spfile ;
System altered.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup ;
ORACLE instance started.
SQL> audit session whenever not successful ;
Audit succeeded.

○ MSSQL

Step 1 데이터베이스 감사 기록 정책 및 백업 정책 수립
 
MSSQL 2000
DB 접근에 대한 보안 감사를 할 수 있도록 보안 감사 설정
[SQL SERVER]> [등록정보]> [보안]> [감사수준]에서 '모두' 선택


 
MSSQL 2005
[MSSQL2005]> [오른쪽 마우스 클릭]> [속성]> [보안탭]> [로그인 감사] 옵션>
'실패한 로그인과 성공한 로그인 모두' 선택


 
MSSQL 2008 / 2012
[시스템 이름]> [오른쪽 마우스 클릭]> [속성]> [보안탭]> [로그인 감사] 옵션>
'실패한 로그인과 성공한 로그인 모두' 선택

○ Altibase

 -  Altibase HDB 서버 내에서 실행되고 있는 특정 구문 또는 모든 구문을 실시간으로 추적하고, 로그를 남기는 것을 감사(Audit)라고 하며, SYS 사용자만이 이 구문을 사용해서 감사 조건을 설정 가능

Step 1 AUDIT 구문으로 감사 정책을 설정
Step 2 정책 설정 후 감사 조건 적용
 
ALTER SYSTEM STOP AUDIT;
ALTER SYSTEM START AUDIT;
ALTER SYSTEM RELOAD AUDIT;

○ Tibero

감사 기능은 감사의 대상에 따라 두 종류로 구분

- >스키마 객체에 대한 감사
지정된 스키마 객체에 수행되는 모든 동작 기록 가능

- >시스템 특권에 대한 감사
지정된 스키마 특권을 사용하는 모든 동작 기록 가능

감사를 설정하거나 해제하려면 다음 명령을 사용
audit(감사 설정)/noaudit(감사 해제)

- 감사 설정

Step 1 스키마 객체에 대한 감사
 
다른 사용자가 소유한 스키마의 객체 또는 디렉터리 객체를 감사하기 위해서는 AUDIT ANY 시스템 특권 부여 필요
 
감사 설정 예시
AUDIT delete ON t BY SESSION WHENEVER SUCCESSFUL;
(테이블에 수행되는 모든 delete 문이 성공하는 경우에만 감사 기록을 남김)
Step 2 시스템 특권에 대한 감사
 
시스템 특권을 감사하기 위해서는 AUDIT SYSTEM 시스템 특권 부여 필요
 
감사 설정 예시
AUDIT create table BY Tibero;
(Tibero라는 사용자가 테이블을 생성하려고 할 때 그것이 성공하든 실패하든 관계없이 감사 기록을 남김)

- 감사 해제

Step 1 스키마 객체에 대한 감사 해제
 
다른 사용자가 소유한 스키마의 객체 또는 디렉터리 객체의 감사를 해제하기 위해서는 AUDIT ANY 시스템 특권 부여 필요
 
감사 해제 예시
NOAUDIT delete ON t BY SESSION WHENEVER SUCCESSFUL;
(테이블에 수행되는 모든 delete 문에 대해 더 이상 감사 기록을 남기지 않음)
Step 2 시스템 특권에 대한 감사 해제
 
시스템 특권의 감사를 해제하기 위해서는 AUDIT SYSTEM 시스템 특권 부여 필요
 
감사 해제 예시
NOAUDIT create table BY Tibero;
(Tibero라는 사용자가 테이블을 생성할 때 더 이상 감사 기록을 남기지 않음)

- SYS 사용자 감사 설정 방법

Step 1 $TB_SID.tip 파일을 아래 내용처럼 입력 또는 수정
 
SYS 사용자 감사 설정 예시
AUDIT_SYS_OPERATIONS=Y
AUDIT_FILE_DEST=/home/Tibero/audit/audit_trail.log
AUDIT_FILE_SIZE=10M
 
SYS 사용자의 명령을 감사하도록 설정하면 수행한 모든 동작이 OS 파일에 기록되며 보안상의 이유로 데이터베이스에는 기록되지 않음

○ PostgreSQL

Step 1 Log 감사 설정 여부 확인방법(쿼리문)
 
postgres=# show logging_collector;
logging_collector
-------------------
on (1 row)
Step 2 postgresql.conf 파일 내 logging_collectoron으로설정
 
logging_collector = on

 

■ 조치 시 영향

일반적으로 무관

 

728x90
반응형