sitelink1  
sitelink2  
extra_vars5  
extra_vars6  

 

개인정보보호를 위한 DB 보안(1)
OEM(Oracle Enterprise Manager)를 이용한 오라클 계정 관리

최근 공공기관의 홈페이지 및 기업 내부의 비도적적 직원에 의한 대량의 개인정보유출 사고가 발생하고 있다. 이러한 정보유출 사고는 개인의 전화번호 및 주민등록번호와 같은 것이어서 사회적으로 큰 문제로 인식되고 있으며 이를 위해 국회에서는 현재 개인정보보호를 위한 법률이 심의중인 상태이다. 해당 법률에는 개인의 중요한 정보를 저장하기 위한 데이터베이스시스템(개인정보보호시스템)에 대해 다음과 같은 관리적/기술적 보호조치를 실행하도록 요구하고 있다.

① 개인정보관리계획의 수립?시행
② 접근통제 및 접근통제 기록보관
③ 접속기록의 위?변조 방지를 위한 로깅 및 백업
④ 보안시스템으로 보호
⑤ 개인정보의 암호화
⑥ 백신소프트웨어 설치
⑦ 출력 및 복사의 제한

앞서 언급한 개인정보유출사고의 원인으로 기업 및 공공기관의 개인정보시스템에 대한 내부 접근통제 소홀을 꼽을 수 있다. 여기서는 개인정보보호시스템인 데이터베이스의 접근통제를 설정하기 위해 오라클의 GUI(Graphical User Interface) 관리 툴인 OEM(Oracle Enterprise Manager)을 이용하여 데이터베이스의 계정관리를 통한 접근통제를 강화하는 방법을 알아보자.

1. 디폴트 사용자의 계정관리

Oracle 설치 시에는 디폴트로 생성되는 계정들이 존재한다. 이러한 계정들은 DB시스템 사용 시에 불필요하므로 디폴트로 생성된 모든 계정을 확인하고 불필요한 계정은 모두 확인하여 잠그고(Lock) 기간만료(Expire) 해야 한다.
Oracle 9i의 경우 디폴트 설치 시 DBCA(Database Configuration Assistant) 툴이 함께 설치되어 몇몇 계정을 제외한 모든 사용자 계정은 잠기고(Lock) 기간만료(Expire)한 상태로 설치되게 된다. 사용자 정의 설치 시 DBCA가 설치되지 않을 경우 모든 디폴트 사용자 계정은 활성화(OPEN) 상태로 설치되게 된다. 이럴 경우 불필요한 사용자 계정은 반드시 모두 잠그고(Lock) 기간만료(Expire) 시켜야 한다.
Oracle 9i R2 버전의 경우 다음과 같은 계정들이 디폴트로 활성화되어 설치되며 이외의 계정들은 모두 잠김(Lock) 상태로 설치된다.



OEM(Oracle Enterprise Manager)을 이용하여 설치된 계정정보를 확인하고 불필요한 계정을 삭제하기 위해서는 다음과 같은 방법을 이용한다.

① OEM의 [보안] -> [사용자] 탭을 선택하여 불필요하게 OPEN된 계정이 존재하는지 확인한다.




② 불필요한 계정이 존재할 경우 해당 계정에서 마우스 오른쪽 버튼을 이용하여 [세부 정보 보기/편집]을 선택하여 사용자 정보창을 연후 [지금암호완료] 와 상태의 [잠김]을 선택하여 해당 계정을 잠그고(Lock) 패스워드의 사용기간을 만료(Expire)시켜 해당 계정을 사용하지 못하게 한다.



③ 사용자의 계정 변경 및 삭제는 DBA 권한이 포함된 관리자계정으로 하여야 하며 사용자 계정이 불필요할 경우 계정을 선택하여 제거할 수도 있다.

2. 디폴트 계정의 패스워드 변경

Oracle 설치 시 생성된 디폴트 계정들은 패스워드가 사전에 정의되어 있어 패스워드를 변경하지 않으며 공개된 ID/Password를 통하여 임의의 사용자 접근이 가능하다. 따라서 디폴트 계정의 패스워드를 변경하여 내/외부에서 불필요한 접근으로 인한 보안문제 발생을 예방한다.
Oracle 9i 설치 시 활성화되어 있는 디폴트 사용자 계정은 SYS, SYSTEM, DBSNMP, SCOTT 이며 이에 대한 디폴트 패스워드는 다음과 같다. 이외에도 디폴트 계정 중 잠겨있는(Lock) 계정의 경우 활성화 시에(unlock) 패스워드가 사용자 계정과 같은 디폴트 패스워드로 설정되어 있으므로 반드시 새로운 패스워드로 변경하여 사용하여야 한다.



설치 시 DBCA(Database Configuration Assistant)가 같이 설치될 경우 SYS, SYSTEM 계정은 설치 마지막 단계에서 패스워드를 설정하도록 요구하고 있으며 새로운 패스워드를 입력하여야만 사용이 가능하다. Oracle 10g의 경우 설치 시 SCOTT 계정은 TIGER라는 디폴트 패스워드로 설치되지 않으며 SCOTT 및 DBSNMP 계정은 계정잠금(Lock) 및 패스워드 만료(Expire) 상태로 설치되도록 새로운 패스워드 정책이 설정되어 있다.
디폴트 계정 중 잠겨있는(Lock) 계정의 경우 활성화 시(Unlock) 패스워드가 사용자 계정과 같은 디폴트 패스워드이므로 OEM(Oracle Enterprise Manager)을 이용하여 잠겨있는(Lock)계정의 패스워드를 변경하기 위해서는 다음과 같은 방법을 이용한다.

① [보안] -> [사용자] -> [세부정보보기/편집] 탭을 선택하여 새로운 패스워드를 입력할 수 있다.



3. 패스워드 정책(Profile) 설정

패스워드는 최소길이가 설정되어 있지 않거나 복잡성을 만족하지 않게 설정되어 있을 경우 취약한 패스워드를 사용으로 인해 악의적인 사용자가 패스워드를 쉽게 유추하여 접근할 수 있으므로 패스워드 정책을 설정하여 패스워드의 관리가 이루어져야 한다.
Oracle에서는 사용되는 패스워드의 만료 시간 설정, 로그인 실패 시 계정 잠금, 패스워드의 최소 길이 설정 등의 정책을 적용할 수 있다.
패스워드 정책은 Oracle의 프로파일(Profile) 통해서 이루어지며 Oracle 설치 시 기본으로 Default 프로파일이 모든 계정에 대하여 설정되어 있다. Default 프로파일에는 패스워드 정책에 대한 제한이 없는 상태가 기본 설정이므로 설정변경을 통해 패스워드 정책을 적용하여야 한다. 또한 프로파일을 추가로 생성하여 사용자 계정별로 패스워드 정책을 다르게 적용할 수 도 있다
OEM(Oracle Enterprise Manager)을 이용하여 설정된 프로파일을 확인하고 설정하기 위해서는 다음과 같은 방법을 이용한다.

① OEM에서 [보안] -> [프로파일] -> [세부정보보기/편집] 을 연다.



② 다음과 같은 파라미터별 설명을 참조하고 권장값으로 패스워드의 정책을 설정한다.


** Oracle에서는 암호 복합성을 적용하기 위해 기본으로 VERIFY_FUNCTION 이라는 함수를 지원하며 이 함수는 oracle_home/rdbms/admin/utlpwdmg.sql 스크립트를 사용하여 함수를 생성하여야 한다.
지금까지 오라클의 계정관리를 통한 보안강화 방안을 살펴보았으며 다음 호에서는 네트워크상에서 데이터베이스 시스템을 보호하기 위한 "Parameter 설정을 통한 오라클 보안"에 대해 알아보도록 하겠다.