DB접근제어의 개요
dbsafer

DATABASE(이하 DB)는 조직의 필요한 정보로써 DATABASE MANAGEMENT SYSTEM(이하 DBMS)라는 DB관리 시스템에 의해

관리되며 인증과정을 거쳐 로그인한 후에 SQL질의어를 통해서만 해당 정보에 정상적으로 접근할 수 있다.

일반적으로 DB는 *DMZ를 거쳐 조직의 가장 내부에 위치해있고, DBMS 자체가 가장 강력한 보안기능을 제공하기 때문에

해킹보다는 DB에 접근 권한을 가진 사용자가 권한을 남용하여 정보를 유출하거나 변조하는것이 제일큰 위협이다.(외부자<내부자)


그래서 정부에서는 각종 규제를 만들어 개인정보 등 중요한 정보들을 관리하는 개인정보처리시스템에 대한 철저한 관리를 요구.


*DMZ*

--------------------------------------------------------------------------------------------------------------------------------------

외부의 위협에 노출을 막고자 하는 내부 서비스(서버나 특정 자원들)을 보호 하기위한 안전지대이다.

예를 들면, 서비스 사용자 -> 서버로 접근 중인 상황에 DMZ 를 사용한다면 물리적인 경로는 서비스 사용자 -> DMZ -> 서버 로

연결이 된다.이렇게 외부에서는 서비스를 하고 있는 서버의 정보를 단편적으로라도 알 수 없게 만들어 악의적인 공격 등에

보호하고자 하는 보안 기법.

 

일반 가정의 네트워크(소규모)에서는 특정 서비스를 외부로 내보내고 있는 상황이 아니므로(주로 컨텐츠를 받는 쪽이므로)

DMZ 설정은 필요없고 VPN 이나 공유기등이 DMZ 기능을 가진 것은 네트워크 장비들이 가지고 있는 기능 중의 하나이므로,

사용하고 안하고는 관리자의 몫입니다. 필요하다면 하고 그렇지 않다면 꺼 놓는 것이 좋습니다.

--------------------------------------------------------------------------------------------------------------------------------------

*제 4조 (접근제어), 제 5조 (접소기록의 위.변조 방지), 제 9조 (개인정보 표시 제한 보호조치)


DB 접근제어는 사용자가 DBMS에 로그인하거나 SQL을 수행하려고 할 때 미리 정의된 보안규칙에 따라 권한 여부를 판단하여

통제하는 솔루션이다. 일반적으로 SQL을 통제할 뿐만 아니라 로깅이 필요한  SQL에 대해서 SQL 수행과 관련된 정보를 저장하는

기술도 제공함.


*DB 보안강화를 할려면 다음과 같이 조취해야함

--------------------------------------------------------------------------------------------------------------------------------------

1) DBMS를 설치한 계정을 엄격하게 관리하고,DB 파일 및 BINATY 파일에 대한 접근은 엄격히 제한해야 한다.

2) 불필요한 기능은 설치하지 않거나 , 설치되었다면 DISABLE 해야한다.

3) 최소한의 권한만을 부여하고, DBMS내에서 작업을 수행하는 내부 사용자나, 자동으로 수행하는 태스크 및 서버의

프로세서들에 대하여 DB에 접근하여 작업할 수 있는 꼭 필요한 권한만을 부여해야 한다.

--------------------------------------------------------------------------------------------------------------------------------------

DBMS에 대해서 기본적으로 제공하는 기능을 이용해서 권한을 설정하는 것이 필요하다. 물론 DB접근제어 솔루션을 통해

접근제한을 관리하지만 해당 솔루션을 우회하여 접근하는 경우가 있으므로 DBMS에서 제공하는 기능을 이용하여 권한 설정을

하는 것이 심층방어의 원칙이다.



*DBMS 자체보안 강화 사례(ORACLE)
------------------------------------------------------------------------------------------------------------------------------

오라클의 권한은 시스템 계열 권한과 객체 계열 권한으로 구분된다. 먼저 시스템 계열의 권한을 조회하는 방법은 다음과 같다.

SQL> select name from sys.system_privilege_map order by name;

객체 관련 조회는 다음과 같다.

SQL> select name from sys.table_privilege_map order by name;

특정 계정에 부여된 권한을 조회하는 방법은 다음과 같다.

SQL> select * from dba_sys_privs where grantee='SCOTT';

오라클 계정에 만든 후에, 기본적으로 CONNET,RESOURCE 룰을 부여하는데

해당 룰에 포함된 권한을 조회하는 방법은 다음과 같다.

SQL> select privilege from dba_sys_[rovs wjere grantee='CONNECT';
SQL> select privilege from dba_sys_[rovs wjere grantee='RESOURCE';

-------------------------------------------------------------------------------------------------------------------------------

*PASSWD의 경우 가능하면 최소 8자리 이상으로 특수문자와 수자 등을 포함하는게 좋다.

오라클10R2에서 생성한 간단한 패스워드의 경우에는 BRUTE FROCE ATACKK(무차별 대입 공격)

의하여 일반적인 노트북으로도 38초만에 간단히 해독이 가능하다.


*구성 방법

접근제어 방법

 특성

 Agent

 서버자체에 접근제어 및 로깅 기능을 포함하는 에이전트 이식

DB에 접근하는 모든 접근루트를 제어할수 있다

 Gateway : IN-LINE

 DB로 접속하는 모든 사용자들을 통제가능

구성시 세션이 잠시 끊기고 장애시 서비스 지연가능성 있음

Gateway : PROXY

하나의 구성으로 H/W추가없이 모든 DB 통제가능

하지만 우회가 가능함

 sniffing

 구성위치는 DB와 S/W사이에 구성하고 우회차단이 가능하다.

네트워크 선로상의 패킷이나 트래픽을 TAP과 미러링방식을 통해 분석,

로깅하는 방법으로 감사에 비중을 두는 보안방식임

TAP구성시에 세션이 잠시 끊기지만 미러링은 끊기지 않는다.

FOD(Fail Over Device)란?

FOD는 IPS, QoS 등과 같은 In-Line 장비와 연동하여 In-Line 장비의 전원, 링크, 어플리케이션 등에 문제가 생겼을 때
자동으로 트래픽을 우회시켜 네트워크의 안정성을 유지시켜주는 장치입니다.