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

D-07(상) 원격에서 DB 서버로의 접속 제한

H.J.World 2021. 7. 21. 10:10
728x90
반응형

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

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


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

■ 취약점 개요

○ 점검개요 : 지정된 IP주소만 DB 서버에 접근 가능하도록 설정되어 있는지 점검

○ 점검목적 : 지정된 IP주소만 DB 서버에 접근 가능하도록 설정되어 있는지 점검하여 비인가자의 DB 서버 접근을 원천적으로 차단

○ 보안위협 : DB 서버 접속 시 IP주소 제한이 적용되지 않은 경우 비인가자가 내외부망 위치에 상관없이 DB 서버에 접근할 수 있는 위험이 존재

○ 점검대상 : OS, Oracle, MySQL, ALTIBASE, TIBERO, PostgreSQL

○ 판단기준

- 양호 : DB서버에 지정된 IP주소에서만 접근 가능하도록 제한한 경우

- 취약 : DB서버에 지정된 IP주소에서만 접근 가능하도록 제한하지 않은 경우

 

■ 점검방법 및 조치방안

 OS

Step 1 특정 IP주소에서만 접속 가능하도록 방화벽 등이 설정되어 있는지 확인
 
시작> 제어판> 보안 센터> windows 방화벽 설정
예외 tab -> 포트추가 -> 1433 -> TCP 추가 -> 범위 변경
예외 tab -> 포트추가 -> 135 -> TCP 추가 -> 범위 변경
예외 tab -> 포트추가 -> 1434 -> UDP 추가 -> 범위 변경

Oracle

Step 1 원격 OS 인증 방식이 불필요한 경우, SYS 계정으로 접속하여 'REMDTE_OS_AUTHEOT^FALSE'로 설정
 
spfile 사용하는 경우 아래와 같이 설정
SQL> ALTER SYSTEM SET REMOTE_OS_AUTHENT=FALSE SCOPE=spfile;
 
pfile 사용하는 경우 init<SID>.ora 파일 안에 아래와 같이 설정
SQL> ALTER SYSTEM SET REMOTE_OS_AUTHENT=FALSE ;
Step 2 OS 원격 인증 방식이 필요한 경우
 
방화벽을 통한 원격 접근 IP주소 제한
NAT(Network Address Translation)를 사용하여 비공인 IP주소 부여 후 외부 접근 제한

○ MySQL

Step 1 mysql.user 테이블과 mysql.db 테이블을 조회하여 host"%"인 필드 삭제하고 접속 IP주소를 지정하여 등록
 
mysql> delete from user where host=‘%’ ;
mysql> delete from db where host=‘%’ ;

 

○ Altibase

ALTIBASE HDB 프러퍼티 파일을 수정하여 접근제어를 적용

Step 1 $ALTIBASE_HOME/conf/altibase.properties 변경
Step 2 IP access control lists 에서 내부 정책에 맞게 수정
 
ALTIBASE HDB 서버가 실행되지 않은 상태에서 할 수 있는 정적인 환경 설정 방법
프로퍼티 파일에서 해당 구성 요소를 특정 값으로 설정한 후 ALTIBASE HDB 서버를 재구동해야 수정된 값이 ALTIBASE HDB 서버에 반영

○ PostgreSQL

Step 1 Data 디렉터리 안에 있는 pg_hba.conf 파일설정을 통해서 설정 가능
TYPE DATABASE USER CIDR-ADDRESS METHOD
----- ------------ -------- ------------------ -----------
host (DB) (사용자) (접속허용IP) md5
Step 2 USER에 접근허용 사용자명CIDR-ADDRESS에 접속을 허용할 IP’ 설정
 
PostgreSQL은 기본 설치 시 외부에서 접속할 수 없음
 

○ Tibero

초기화 파라미터에 설정된 IP 주소에 따라 클라이언트의 네트워크 접속을 허용하거나 차단

$TB_SID tibero 설치 시 입력한 데이터베이스 이름과 동일 / c:/tibero/tibero5/config/데이터베이스.tip

- 조치방법 1. LSNR_INVITED_IP(특정한 IP 주소를 갖는 클라이언트는 허용, 그 외 차단)

Step 1 $TB_SID.tip 파일 안에 다음 예시 내용을 참조하여 입력
 
LSNR_INVITED_IP=192.168.1.1;192.168.2.0/24;192.1.0.0/16
LSNRJNVITEDJP의 최대 길이는 255자이다. 256 이상의 IP 주소를 설정할 경우에는 LSNR_INVITED_IP_FILE을 사용한다.

 

- 조치방법 2. LSNR_INVITED_IP_FILE(특정 파일에 접속을 허용하는 IP 주소 목록을 기재한 후 해당 파일의 절대 경로를 적어주면 그 파일을 읽어서 INVITED_IP를 설정)

Step 1 /home/tibero/invited_jp.txt 파일에 다음 예시 내용을 참조하여 입력
 
192.168.1.1
192.168.2.0/24
192.1.0.0/16
Step 2 $TB_SID.tip 파일에 invited_ip.txt 파일의 전체 경로를 입력
 
LSNR_INVITED_IP_FILE=/home/tibero/invited_ip.txt

 

- 조치방법 3. LSNR_DENIED_IP(특정한 IP 주소를 갖는 클라이언트의 네트워크 접속은 차단, 그 밖의 접속은 허용)

Step 1 $TB_SID.tip 파일 안에 다음 예시 내용을 참조하여 입력
 
LSNR_DENIED_IP=192.168.1.1;192.168.2.0/24;192.1.0.0/16

 

- 조치방법 4. LSNR_DENIED_IP_FILE(특정 파일에 접속을 허용하지 않는 IP 주소 목록을 기재한 후 해당 파일의 절대 경로를 적어주면 그 파일을 읽어서 DENITED_IP를 설정)

Step 1 /home/tibero/denied_ip.txt 파일에 다음 예시 내용을 참조하여 입력
 
192.168.1.1
192.168.2.0/24
192.1.0.0/16
Step 2 $TB_SID.tip 파일에 denied_ip.txt 파일의 전체 경로를 입력
 
LSNR_DENIED_IP_FILE=/home/tibero/denied_ip.txt

 

$TB_SID.tip 파일에 LSNR_INVITED_IPLSNR_DENIED_IP가 모두 설정되어 있는 경우 LSNR_DENIED_IP의 설정은 무시되며 LSNR_INVITED_IP만 적용된다. , LSNR_INVITED_IP에 설정된 IP 주소의 클라이언트를 제외하고는 모든 접속이 차단된다.

$TB_SID.tip 파일에 LSNR_INVITED_IPLSNR_DENIED_IP가 모두 설정되지 않은 경우 모든
클라이언트의 네트워크 접속이 허용된다.

루프백 주소(loopback address, 127.0.0.1)에서 접속하는 경우 LSNR_INVITED_IP 또는 LSNR_DENED_IP의 설정과는 무관하게 항상 허용된다.

Tibero 서버를 운영하는 중에 서버를 다시 기동하지 않고 LSNR_INVITED_IP 또는 LSNR_DENIED_IP의 설정을 변경하려는 경우 우선 $TB_SID.tip 파일에 LSNR_INVITED_IP 또는 LSNR_DENIED_IP의 설정을 변경한 후 파일을 저장하고 다음의 명령을 실행한다.
alter system listener parameter reload;
위의 명령을 실행하면 $TB_SID.tip 파일에서 LSNR_INVITED_IP 또는 LSNR_DENIED_IP의 내용을 다시 읽어 변경된 내용을 실시간으로 적용한다.

 

■ 조치 시 영향

허용되지 않은 IP에서 접속 제한

 

728x90
반응형