정보보호학과 데이터베이스보안 수업에서 접근제어에 대해서 처음 접했고 컴퓨터공학과 데이터베이스 수업의 프로젝트에서 관리자와 회원 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 등)
공부할게 태산이다
'Information Security' 카테고리의 다른 글
[DB보안] 빅데이터의 정의와 속성에 따른 처리 과정 및 보안 이슈 (0) | 2024.06.10 |
---|---|
[DB보안] 접근제어 모델(정책) 유형 4가지 (2) : 역할기반, 속성기반 접근제어 (0) | 2024.06.03 |
[DB보안] 접근제어 모델(정책) 유형 4가지 (1) : 임의적, 강제적 접근제어 (0) | 2024.06.03 |
[DB보안] 데이터베이스 암호화 설계, 구축, 운영 및 MySQL DBMS 암호화 (0) | 2024.05.28 |
[DB보안] 암호화의 개념, 종류, 데이터베이스 암호화 방식 (0) | 2024.05.28 |