개요
DB 보안 점검 방법에 대한 가이드입니다.
계정 관리
계정의 목록화(비인가자의 접근 차단을 위한 사용자 계정 관리)
점검 방법
조치 방법
데이터베이스 사용자 출력 결과에서 불필요한 계정이 있다면 DBA 또는 어플리케이션 담담자 확인 후 제거합니다.
취약한 패스워드 사용 (기본 계정 및 패스워드 변경)
점검 방법
ALTIBASE HDB 설치 시 생성되는 사용자의 디폴트 패스워드는 아래와 같습니다.
USER | PASSWORD |
---|---|
SYS | MANAGER |
ALTITEST | ALTITEST |
데이터베이스에 접속하여 디폴트 패스워드 사용 여부를 확인합니다.
조치 방법
디폴트 패스워드로 접속이 가능하다면 어플리케이션 과의 연관성 확인 후 해당 사용자의 패스워드를 변경합니다.
권한 관리
DBA 권한 관리(System Privilege 권한 제한)
데이터베이스 사용자가 가진 권한을 확인하여 불필요한 시스템 권한을 가지고 있다면 삭제합니다.
단, ROLE 기능은 ALTIBASE HDB 6.5.1 버전부터 지원합니다.
점검 방법
조치 방법
WITH GRANT OPTION 사용
WITH GRANT OPTION은 객체 접근 권한을 부여 받은 사용자가 해당 권한을 다른 사용자에게 부여할 수 있으므로 객체 접근 권한을 DBA 관리 없이 남용할 수 있습니다.
점검 방법
조치 방법
환경 파일 점검
il, is, server 파일 접근 권한 설정
password를 포함하고 있다.
점검 방법
조치 방법
파일 권한 설정을 700 으로 설정한다.
altibase.properties 파일 접근 권한 설정
Altibase 중요 파일 중 하나인 altibase.properties 파일을 악의적인 의도로 변경하면 데이터베이스 장애가 발생할 수 있습니다.
점검 방법
조치 방법
altibase.properties 파일 권한 설정을 600 또는 640 으로 설정한다.
Log Anchor, Logfile, Datafile 접근 권한 설정
ALTIBASE HDB 데이터베이스 운용에 중요 파일인 하나인 Log Anchor, Logfile, Datafile 파일을 악의적인 의도로 변경하면 데이터베이스 장애가 발생할 수 있습니다.
점검 방법
조치 방법
logs, dbs 디렉토리 권한 설정을 700 또는 750 으로 한다.
Log Anchor, Logfile, Datafile 파일 권한 설정을 600 또는 640 으로 설정한다.
iSQL 명령 쉘 히스토리 검사
iSQL을 사용하여 데이터베이스에 접속 할 때 계정 및 패스워드를 함께 입력하면 쉘 히스토리 파일에 기록이 남기 때문에 패스워드가 유출될 수 있습니다.
점검 방법
조치 방법
iSQL 접속 시 쉘 프롬프트에 사용자와 패스워드를 입력하지 않습니다.
쉘 히스토리 파일 보호를 위하여 접근 권한을 600으로 설정합니다.
DBMS 보안 설정
Public Synonym 사용
점검 방법
조치 방법
PUBLIC SYNONYM 은 DB 사용자에게 편의성을 제공하기 위해 데이터베이스 생성 시 생성되는 것으로, dual 테이블 조회 같은 일반적인 쿼리를 사용하거나 print, println 처럼 프로시저 내에서 많이 사용하고 있어 삭제를 권고하지는 않습니다.
하지만 불가피하게 삭제해야 할 경우 아래와 같이 DROP 구문을 사용하면 됩니다.
어플리케이션에서 PUBLIC SYNONYM 의 사용 여부를 확인 후 drop 하시기 바랍니다.
로그인 실패 횟수에 따른 잠금시간 등 계정 잠금 정책 설정
적용 버전
- ALTIBASE HDB 4.3.9.211 부터
- ALTIBASE HDB 5.3.3.89 부터
- ALTIBASE HDB 5.5.1.5.1 부터
- ALTIBASE HDB 6.1.1.2.1 부터
- ALTIBASE HDB 6.3.1
점검 방법
조치 방법
패스워드 복잡도 설정
적용 버전
- ALTIBASE HDB 4.3.9.211 부터
- ALTIBASE HDB 5.3.3.89 부터
- ALTIBASE HDB 5.5.1.5.1 부터
- ALTIBASE HDB 6.1.1.2.1 부터
- ALTIBASE HDB 6.3.1
점검 방법
조치 방법
데이터베이스 사용자 패스워드 복잡도 설정을 위해 콜백 함수를 생성하고 CREATE USER 또는 ALTER USER 수행 시 LIMIT 절에 PASSWORD_VERIFY_FUNCTION 옵션을 사용합니다.
패스워드의 주기적인 변경
적용 버전
- ALTIBASE HDB 4.3.9.211
- ALTIBASE HDB 5.3.3.89
- ALTIBASE HDB 5.5.1.5.1
- ALTIBASE HDB 6.1.1.2.1
- ALTIBASE HDB 6.3.1
점검 방법
조치 방법아래 명령어로 PASSWORD_LIFE_TIME 프로퍼티를 확인하여 값이 0 이라면 패스워드의 만료일이 설정되어 있지 않음을 의미합니다.
$ALTIBASE_HOME/conf/altibase.properties 에서 PASSWORD_LIFE_TIME 과 PASSWORD_GRACE_TIME 프로퍼티 추가 후 ALTIBASE HDB 서버를 재시작 합니다.
이 프로퍼티 설정 후 데이터베이스 사용자를 생성하면 이 값을 기준으로 패스워드 만료일 및 유예기간이 설정됩니다.
ALTIBASE HDB 서비스 포트 기본값 변경
ALTIBASE HDB 서버의 서비스 포트 기본값은 20300 입니다.
점검 방법
조치 방법
$ALTIBASE_HOME/conf/altibase.properties 에서 PORT_NO 의 값을 변경 후 알티베이스 서버 프로세스를 재시작
세션 IDLE_TIMEOUT 설정
IDLE_TIMEOUT 은 세션 별로 설정 변경이 가능하여 접속 시 ALTIBASE HDB 서버 프로퍼티의 영향을 받더라도 세션에서 변경할 수 있습니다.
점검 방법
조치 방법
- 알티베이스 서버 프로세스 재시작 시에도 변경 값을 반영하려면 $ALTIBASE_HOME/conf/altibase.properties 에서 IDLE_TIMEOUT 프로퍼티의 값을 변경해야 합니다.
기본적인 감사(사용자 문장, 권한, 객체 등) 설정
Audiiting 기능은 ALTIBASE HDB 6.3.1 버전부터 제공합니다.
점검 방법
- 각 필드에 대한 설명은 General Reference 메뉴얼의 데이터 딕셔너리 부분을 참고.
조치 방법
Administrator's Manual 과 SQL Reference 에서 AUDIT 부분을 참고하여 설정하세요.
매뉴얼 다운로드 페이지 : http://support.altibase.com/kr/manual
원격에서 DB 서버로의 접속 제한
이 기능은 ALTIBASE HDB 5 부터 제공합니다.
점검 및 조치 방법
$ALTIBASE_HOME/conf/altibase.properties 에서 ACCESS_LIST 프로퍼티 확인.
설정이 안되어 있다면 altibase.properties 파일에서 설정 변경 후 재구동 해야 합니다.
General Reference 매뉴얼에서 ACCESS_LIST 프로퍼티 설명을 참고합니다.
SYSDBA 로그인 제한 설정
ALTIBASE HDB 는 SYSDBA 에 대해 로그인 제한이 없고, 원격 접근만 제어할 수 있습니다.
이 기능은 ALTIBASE HDB 5 버전부터 제공합니다.
점검 방법
조치 방법
- 알티베이스 서버 프로세스 재시작 시에도 변경 값을 반영하려면 $ALTIBASE_HOME/conf/altibase.properties 에서 REMOTE_SYSDBA_ENABLE 프로퍼티의 값을 변경해야 합니다.
보안 패치
보안 패치 적용
Altibase 보안 패치는 고객지원서비스포털 에서 확인할 수 있습니다.
- 보안관련 버그를 포함한 주요한 버그가 반영된 경우에 고객지원서비스포털에 신규 패치를 업로드 합니다.