본문 바로가기
Information Security

[DB보안] 데이터베이스 접근제어 설계 및 구축

by rla124 2024. 6. 3.

정보보호학과 데이터베이스보안 수업에서 접근제어에 대해서 처음 접했고 컴퓨터공학과 데이터베이스 수업의 프로젝트에서 관리자와 회원 ROLE에 따라 역할 기반 접근 제어를 내가 설계하게 되면서 보다 데이터베이스보안 수업 내용이 이전보다 더 피부로 와닿을 수 있었다. 

 

1. 접근제어(Acess Control) 개념

분야별 정의

정보시스템 허가된 사용자만! 자원에 접근할 수 있도록 제한 by 정보 보안 정책 
통신망 전송 매체에 대한 접근 제어 by 통신 장비
애플리케이션이 단말의 기능/자원 접근 허락/거절 by 단말 기기 
데이터베이스 DBMS 관리 시스템에 의해 관리
인증(로그인) 거친 이후 SQL을 통해서 정보 접근 가능
DMZ 거친 이후 조직의 가장 내부에 위치 가능
DBMS 자체가 강력한 보안 기능을 제공
DB 접근 권한을 가진 사용자가 이를 남용하여 정보를 유출/변조하는 것이 가장 위험

 

2. 접근제어 수행 요소 : 주체, 객체, 접근 권한

주체(Subject) : 객체에 접근할 수 있는 모든 대상

모든 사용자, 시스템, 응용 프로그램의 프로세스 등

주체 등급 분류
소유자 자원의 생성자, 시스템의 관리자 등
그룹 특정 그룹에 속한 사용자, 그룹에 부여된 접근 권한 동일
전체 owner, guest (최소한의 접근 권한 부여) 

 

객체(Object) : 주체가 접근/사용하고자 하는 대상

데이터베이스, 서버, 컴퓨터, 파일, 응용 프로그램 등

 

접근 권한(Access rights == Privilege == Authority) : 특정 주체가 특정 객체를 접근하는 방법 지정

Create 주체가 자원(객체) 생성
Write 주체가 자원에 대한 수정(추가 및 삭제)
Read 주체가 자원에 대한 정보를 읽고 복사까지 가능
Delete 주체가 자원 삭제 가능
Execute 주체가 자원 실행 가능

 

 

3. 접근제어 절차 : 식별 → 인증 → 인가

식별(identification)

- 시스템에게 주체의 식별자를 확인하는 과정

- 각 시스템 사용자들은 시스템이 식별 가능한 유일한 식별자 id를 가짐

(ex. 노트북 고유 모델 번호)

 

인증(authentication)

사용자에 대한 인증 주체의 능력, 자격 검증
메세지에 대한 인증 변조 여부 확인

 

지식 기반 패스워드, PIN
소유 기반 스마트 카드, 토큰
생체 기반 지문, 홍채

 

인가(authorization)

- 주체가 객체에 대한 사용 권한을 부여 받는 것

- 송수신자가 정당한 권한을 가지고 있는지 확인

- 사용자가 어떤 행위 action을 수행할 권한을 판별 

(ex. 온라인 카페에서 회원 등급에 따라 특정 게시판 글을 읽을 수는 있지만 쓸 수는 없는 경우)

 


 

<데이터베이스 접근제어 설계>

접근제어 규칙이 잘못 설정될 경우 악의적인 사용자가 중요한 정보들을 수정, 열람, 탈취할 수 있기 때문에 정확한 접근제어 규칙 설계가 필요 

 

1. 접근제어 규칙 정의(요소)

정보 식별 

- 정보의 종류에 따라 다르게 접근제어를 설정

(ex. 주민번호, 카드번호, 계좌번호 등은 법률 의거 암호화하여 관리해야 함)

 

- 법적 규제 대상 정보 이외에 조직의 성격에 따라 분류하여 관리 

- 조직에서 총괄적으로 수립한 보안정책에 따라 접근제어 할 정보를 정의 

 

사용자 식별

- 관리 대상 정보에 접근할 수 있는 사용자를 파악 

- 사용자의 IP, MAC 주소를 사용하여 식별

 

접근 시간

- 정보에 접근할 수 있는 시간 통제

- 민감한 정보는 업무 시간에만 접속 가능하도록 설정 (그 외 접근 시 차단 및 경보 발령) 

 

 

2. 접근제어 규칙 종류 및 설정

 

 

명칭부

- 규칙의 명칭 정의 (컨벤션)

- 규칙을 개인 단위로 관리할 경우 규칙 명에 개개인 식별 가능하도록 id, ip 추가

(ex. USER1 DBS 접근 규칙)

 

조건부

- 규칙이 적용되는 조건 설정

- 다양한 요소factor의 결합으로 구성 

 

제어부

- 조건부에서 설정한 조건으로 사용자가 접속하는 경우 어떻게 제어할지 정의

로그인 통제 규칙 DBMS에 로그인하는 과정을 통제 (접속 허용 여부)
ID/Password, IP, 단말기, 프로토콜 등 Multi-Factor 조합
ex. 접속자의 접속 시간대 속성 이용하여 일반적인 업무 시간 이외에 중요 계정 접속 통제

 

SQL 수행 통제 규칙 DB 사용자가 SQL 수행시 사용자의 SQL 수행 권한을 확인하여 실행 허용 여부를 결정
ex. 개발 환경 : 조회, 수정, 추가, 삭제 권한 필요
ex. 운영 환경 : 조회 권한 필요

 

로깅 통제 규칙
(보안 관점에서 무의마한 sql은 저장되지 않도록!)
저장되는 SQL 정보를 설정하는 규칙
불필요한 SQL을 저장하지 않도록 설정
ex. 보안적으로 의미 없는 sql
ex. 하드디스크 용량을 많이 차지하는 sql (감사 등 수행 시 많은 시간 소요) 

 

경보 통제 규칙 DB 접근 제어 과정에서 보안정책 위반 사건 발생 시 보안 관리자에게 통지하여 즉각적인 대응을 할 수 있도록 하는 규칙
경보를 설정해야 하는 이벤트
ex. 반복적인 인증 실패, 접근이 금지된 테이블 및 칼럼 접근 시도, 허용되지 않은 종류의 sql 수행 시도, 대량의 데이터 조회 

 


 

<데이터베이스 접근제어 구축>

데이터베이스 접근제어 설계(접근제어 규칙, 접근제어 규칙의 종류 및 설정) → 데이터베이스 접근제어 구축

 

1. 우회 접근 방지

- 접근 제어 서버를 경유하지 않고 DB에 다이렉트로 접근한다면 접근제어 규칙 설정이 무의미하므로 우회 접근에 대한 차단이 필요 

- 접근 제어 결과에 대해 모두 기록될 수 있도록 로깅 설정 필요 => 책임추적성(accountability) 

(문제 발생 시 육하원칙에 따라 사후조치에 도움이 되기 위함)

 

프록시 게이트웨이

접근제어 서버 구축하는 것
DB 접속 시 프록시 서버를 경유하도록 장제하여 접근제어 수행
사용자가 임의로 제거하거나 프록시 접속이 아닌 직접 접속으로 프로그램 변경 시 통제 불가능
다양한 차단 방법을 통해 우회 접근 차단 필요 

 

에이전트 설치에 의한 차단 

DB 서버에 직접 에이전트를 설치하는 에이전트 방식
DB 접근제어 솔루션이 설치된 경우 콘솔 등을 통해 DB에 직접 접근하더라도 차단 가능

 

 

서버 보안에 의한 차단 

OS의 보안기능 강화 솔루션
운영체제 커널에 프로그램을 설치하여 특정 API 호출 시 권한을 점검하고 권한이 있는 경우에만 실행
DB 리스너가 대기하고 있는 포트에 접속 요청 패킷을 보내 접속 시도
DB 접근제어 서버를 통해 접근 요청 시에만 DB 접근이 가능하도록 하는 방식
인가된 신원은 직접 DB 접근 가능하므로 인가 신원 관리가 중요

 

스니핑 방식에 의한 차단 

DB 서버에 영향을 미치지 않고 패킷을 복사하는 방식
로그인 권한이 없거나 권한 없는 SQL 수행 시 해당 세션이 종료되도록 
프록시 게이트웨이 서버 경유하지 않고 DBMS에 접근한 세션에 대해 차단 수행

 

기타 차단 방법

네트워크 장비 (방화벽 등)
DBMS 자체 기능 (로그인 트리거) 
DB 서버로 직접 접근할 수 있는 경로(접근제어를 우회하는 경로)를 최대한 제어

 

2. 환경 보안

접근제어 서버 관리 

- 우회 접근 차단하더라도 접근제어 서버가 안전하게 관리되지 않으면 접근제어 무의미

- DB 접근제어와 관련하여 설치되는 솔루션과 서버는 DBMS와 동일한 수준에서 관리되어야 함

 

DB 접근제어 관리자 계정 관리 

- 수행하는 관리 버무이에 따라서 적절한 관리 권한이 부여되도록 보안 정책 설정

 

포트 관리

- 기능 제공과 관련된 필요한 포트만 개방

 

OS 취약점 관리 

- 접근제어 솔루션이 설치된 OS의 장기적인 취약점 점검 수행

- 취약점 발견 시 보안 패치를 통해 취약점 제거 

 

 

3. 보안 적용 시험

- 접근제어 솔루션이 제기능을 하는지 점검 

- 개발/테스트 DB 구축 환경에서 진행 

- 시험 결과는 시험 결과서로 관리 

 

시험 대상 항목 
로그인 제어 모니터링
SQL 통제  보안 정책 관리 
로깅(감사) 보고서
경보 장애 대응
SQL 마스킹  로그 관리 

 

- 보안 적용 시험 수행 → 조직이 DB 접근제어를 위해 필요하다고 생각하는 모든 기능 점검

ㄱ) 기능 시험 : 필요한 기능이 적절히 동작하는지 확인

ㄴ) 그 외의 시험 : 완전성 및 성능 시험(패킷 손실, Long SQL 등)

 


공부할게 태산이다