Oracle 취약점 가이드
1. 최소 설치 진행
오라클 데이터베이스를 처음 설치 할 때, 꼭 필요한 요소만 설치하여야 한다. 무엇이 꼭 필요한 요소인지 확실치 않다면, 일반적인 구성으로 설치한다.
2. 디폴트 사용자 아이디 확인 및 패스워드변경
오라클 데이터베이스를 설치하면 다수의 디폴트 사용자 아이디가 생긴다. 이때 오라클의 사용자 관리도구 (DBCA : Database Client Administration Tool)가 이러한 디폴트 사용자 아이디를 자동으로 잠그고 기간만료 시키는데 예외가 되는 사용자 아이디들이 있다.
상기 디폴트 사용자 아이디들을 잠그고 기간 만료하지 않은 디폴트 사용자 계정 (SYS, SYSTEM, SCOTT, DBSNMP, OUTLN, 그리고 3개의 JSERV 사용자 계정)들의 패스워드를 변경시켜야 한다.
3. “데이터 목록 (Data Dictionary)” 보호
“데이터 목록(Data Dictionary)”를 보호하기 위해서는 “파라미터 파일(Parameter File)”인 init<sid>.ora 의 내용을 OS가 제공하는 에디터를 이용하여 아래와 같이 수정하면 된다.
이를 통해 적절한 권한을 가진 사용자(즉, DBA 권한으로 접속을 생성한 사용자)만이 “데이터 목록” 상의 ‘ANY’ 시스템 권한(‘ANY’ system privilege)를 사용할 수 있다.
만일 이러한 설정을 위처럼 하지 않는다면, ‘DROP ANY TABLE’ 시스템 권한을 가진 사용자는 누구라고 “데이터목록”의 내용을 악의적으로 DROP 할 수 있게 된다.
4. 권한(privilege)의 부여(GRANT) 관련 확인
A. 사용자들에게 필요한 최소권한 (least privilege)만을 부여(GRANT)하여야 한다.
B. PUBLIC 사용자 그룹에서 불필요한 권한을 회수(REVOKE)하여야 한다.
PUBLIC은 오라클 데이터베이스의 모든 사용자에게 디폴트 룰로 적용된다. 따라서 모든 사용자는 PUBLIC에 권한 부여된 것은 어떤 일이든 할 수 있다. 이런 경우 사용자가 교묘하게 선택된 PL/SQL 패키지를 실행시켜 본래 자신에게 권한 부여된 권한 범위를 넘어서는 작업을 할 수도 있을 것이다.
C. 또한 PL/SQL 보다 강력한 아래와 같은 패키지들도 오용될 소지가 있으므로 주의하여야 한다.
D. ‘run-time facilities’에 제약된 퍼미션을 주어야 한다. (Restrict permission on run-timefacilities)
5. 강력한 인증정책을 수립하여 운영하여야 한다.
A. 클라이언트에 대한 철저한 인증이 필요하다.
오라클 9i는 원격 인증 기능을 제공한다. 만일 해당기능이 활성화되면, 원격의 클라이언트들이 오라클 데이터베이스에 접속 할 수 있도록 한다 즉, 데이터베이스는 적절하게 인증된 모든 클라이언트들을 신뢰한다. 주의하라. 일반적으로 PC의 경우에는 적절한 인증여부를 보장할 수 없다. 따라서 원격 인증 기능을 사용하면 보안이 대단히 취약해진다.
원격 인증기능을 비활성화하도록 설정한다면 데이터베이스에 접속하려는 클라이언트들은 server-based인증을 해야 하므로 보안이 강화된다
원격 인증을 제한하여 클라이언트의 인증을 데이터베이스 서버가 행하도록 하려면 오라클 “파라미터 파일” 인 init<sid>.ora의 내용을 OS가 제공하는 에디터를 이용하여 아래와 같이 수정하면 된다.
B. 데이터베이스 서버가 있는 시스템의 사용자 수를 제한하여야 한다.
오라클 데이터베이스가 운영되고 있는 시스템의 사용자수를 OS 차원에서 제한하고, 불필요한 계정은 삭제하여야 한다.
6. 네트워크를 통한 접근 제한
A. 방화벽을 구축 / 운영
다른 중요한 서비스와 마찬가지로 데이터베이스 서버는 방화벽 뒤에 설치하여야 한다. 오라클 네트워킹 기반인 Oracle Net Service (Net8 and SQL*Net으로 많이 알려져 있다.)는 다양한 종류의 방화벽을 지원한다.
B. 원격에서의 오라클 리스너 설정변경 제한
아래와 같은 형식으로 listener.ora(오라클 리스너 설정화일 : Oraclel listener Control file)내의 파라미터를 설정하면, 원격에서 오라클 리스너 설정을 함부로 바꿀 수 없게 된다.
C. 접속을 허용할 네트워크 IP 주소 대역 지정
데이터 베이스서버가 특정한 IP 주소대역으로부터의 클라이언트 접속을 제어하려면 “Oracle Net valid node checking” 기능을 이용하면 된다. 이 기능을 사용하려면 protocol.ora(Oracle Net configuration file) 내의 파라미터를 아래와 같이 설정하여야 한다.
D. 네트워크 트래픽 암호화 설정
가능하다면 ‘Oracle Advanced Security’를 사용하여, 네트워크 트래픽을 암호화하라. (Oracle Advanced Security는 오라클 데이터베이스 엔터프라이즈 에디션에서만 제공됨)
E. 데이터 베이스 서버의 OS 보안 강화
불필요한 서비스를 제거하고, 사용하지 않는 포트를 차단한다.
F. 주요 보안 패치의 적용
오라클 데이터베이스가 운영되고 있는 OS와 데이터베이스 대한 모든 중요한 패치를 정기적으로 실시하여야 한다.
'시스템/웹/포렌식 보안 > 시스템 해킹/보안' 카테고리의 다른 글
My-SQL 보안설정 가이드 (0) | 2013.09.30 |
---|---|
커널기반 루트킷 탐지 가이드 (0) | 2013.09.18 |
악성코드 및 취약점 정보 제공 Site (0) | 2013.09.18 |
솔라리스 시스템 보안설정 (0) | 2013.09.13 |
LINUX 계정 관리 보안 가이드 (0) | 2013.09.09 |