데이터베이스 보안
태그 :
- 개념
- 데이터베이스 보안(Database Security) 정의 - 저장된 데이터에 대한 인증, 기밀성, 무결성, 가용성을 유지하기 위한 관리적, 물리적, 기술적 활동 - 허가 받지 않은 접근이 무단으로 데이터베이스를 사용하거나 변경/파괴/유출하는 행위로부터 보호하기 위한 행위로 기술적 보안관리 기법/시스템/프로세스
- 정보자산의 기밀성ㆍ무결성ㆍ가용성 확보 전략, Database보안 개요
가. 데이터베이스 보안(Database Security) 정의
- 저장된 데이터에 대한 인증, 기밀성, 무결성, 가용성을 유지하기 위한 관리적, 물리적, 기술적 활동
- 허가 받지 않은 접근이 무단으로 데이터베이스를 사용하거나 변경/파괴/유출하는 행위로부터 보호하기 위한 행위로 기술적 보안관리 기법/시스템/프로세스
나. 데이터베이스 보안의 필요성
| 구분 | 설명 | 
| 기업 정보의 가치 중요성 증대 | 초경쟁 기업경영환경에서 신속한 의사결정, 민첩한 대응을 위한 기업이 보유한 정보에 대한 중요성 증대 | 
| 정보시스템 보안 위협 증가 | 해킹, 웜/바이러스 증가 및 해킹 도구 등 악의적 의도의 기업 정보 노출범위 확대 | 
| 데이터베이스 보안 미비 | 네트워크, 시스템 등에 대한 보안에 치중된 상대적 보안 사각지대 | 
| 실수에 의한 | 비의도적인 행위에 의해 발생하는 정보 침해 | 
다. 데이터베이스 보안의 특성
| 특성 | 설명 | 
| 인증(Authentication) | - 데이터베이스에 접근하는 사용자가 정당한 사용자임을 확인하여 인증절차를 통하지 않고 데이터베이스 접근 불가 | 
| 가용성(Availability) | - 데이터베이스 시스템에 대한 부당한 서비스 거부를 감지하고 예방 | 
| 무결성 (Integrity) | - 타인이 다른 사람의 정보를 임의 또는 불법적으로 변경하지 못하도록 하는 경우 | 
| 기밀성(Confidentiality) | - 데이터베이스 정보의 부적절한 접근 방지, 제지 및 감시 | 
라. 데이터베이스 보안의 필요성
| 구분 | 설명 | 
| 기업 정보의 가치 중요성 증대 | 초경쟁 기업경영환경에서 신속한 의사결정, 민첩한 대응을 위한 기업이 보유한 정보에 대한 중요성 증대 | 
| 정보시스템 보안 위협 증가 | 해킹, 웜/바이러스 증가 및 해킹 도구 등 악의적 의도의 기업 정보 노출범위 확대 | 
| 데이터베이스 보안 미비 | 네트워크, 시스템 등에 대한 보안에 치중된 상대적 보안 사각지대 | 
| 실수에 의한 정보 변경 방지 | 비의도적인 행위에 의해 발생하는 정보 침해 | 
마. 접근제어 관련 데이터베이스에 대한 주요보안 위협
| 구분 | 설명 | |
| 불법 접근 | 비인가자의 DB 접근, 인가자의 인가범위 이외의 데이터 접근 | |
| 기술적 정보 노출 위협 | Aggregation (조합, 집단화) | - 낮은 보안등급의 정보조각을 조회하여 높은 등급의 정보 획득 - 개별 데이터 항목보다 종합정보의 보안등급이 높은 경우 심각한 문제 예) 각 지사의 영업실적-대외비 총 매출실적 산정 | 
| Inference (추론) | - 보안등급이 없는 일반 사용자가 보안으로 분류되지 않은 정보에 정당하게 접근, 기밀정보를 유추하는 행위 | |
라. 데이터베이스 보안의 요구특성
| 요구특성 | 설명 | 
| 인증(Authentication) | - 데이터베이스에 접근하는 사용자가 정당한 사용자임을 확인 - 정당한 인증절차를 통하지 않고 데이터베이스 접근 불가 | 
| 가용성 (Availability) | - 데이터베이스 시스템에 대한 부당한 서비스 거부를 감지하고 예방 - 정당한 사용자가 데이터에 접근하거나 사용하려고 할 때 사용하지 못하도록 하는 경우를 해결 | 
| 무결성 (Integrity) | - 정보의 부적절한 변경을 예방하고 감지하는 특성 - 타인이 다른 사람의 정보를 임의 또는 불법적으로 변경하지 못하도록 하는 경우 | 
| 기밀성(Confidentiality) | - 데이터베이스 정보의 부적절한 접근 방지, 제지 및 감시 - 일부 부서에만 공개되는 정보가 다른 부서에 노출되는 것을 방지 | 
II. 데이터베이스 보안 개념 및 구현 기능
가. 데이터베이스 보안 개념도
| 
 | 
- 보안의 목적 : 권한이 없는 사용자를 제어하여 정보의 불법적인 접근, 고의적인 파괴 및 변경을 방지하고 우발적인 사고로부터 보호하기 위함
나. 데이터베이스 보안 기법
| 구분 | 주요내용 | 
| 접근통제 (AccessControl) | -허가 받지 않는 사용자의 DB 자체에 대한 접근을 방지, 예) 계정&암호, RBAC | 
| 허가 규칙 (Authorization Rules) | -정당한 절차를 통한 DBMS 접근 사용자도, 허가 받지 않은 데이터의 접근을 방지 | 
| 가상 테이블 (Views) | -가상 테이블을 이용하여 전체 DB 중 자신이 허가 받은 사용자 관점만 볼 수 있도록 한정 | 
| 암호화 (Encryption) | -데이터를 암호화하여 형태를 변형, 가독성을 원천적으로 봉쇄하는 방식 | 
다. 데이터베이스 보안 기법 비교

III. 데이터베이스 보안 프로세스 및 관리자 역할
가. 데이터베이스 보안 프로세스
| 프로세스 | 내용 | 적용 | 
| 취약점 평가 | 권한 없는 DB 및 데이터 접근 또는 조작 가능성에 대한 주기적 평가 및 취약점 발굴 | 모의해킹, 보안진단, HW/SW 버그 분석 | 
| 우선순위 선정 | 발굴된 취약점별로 위험도를 평가하여 교정 우선순위 결정 | 위험점수 평가법 | 
| 취약점 교정 | 선정된 우선순위별로 취약점 대응활동 수행 | 패치, DB보안 기법, 컴플라이언스 적용 | 
| 위협 모니터링 | 시스템 침입, SQL 공격을 탐지하고 사용자/SQL 내역을 기록 | DAM, Native Audit, Forensic | 
- DAM(DB Activity Monitoring) : 실시간 DB활동 모니터링
나. 데이터베이스 보안을 위한 관리자의 역할
| 구분 | 내용 | 
| 계정관리 | DB 접근 계정 생성 및 주기적 암호 갱신 | 
| 권한관리 | 계정별 특정 권한 부여 및 취소 | 
| 보안등급 관리 | 계정별, 데이터별 보안등급 지정 | 
| 위험분석 | 취약점 발굴 및 교정 우선순위 결정 | 
| 교정/모니터링 | 취약점 대응활동, 위협 모니터링 수행 | 
IV.접근통제(Access Control)에 대한 이해
가. 접근통제의 정의
- 권한이 있는 사용들에게만 특정 데이터 또는 자원들이 제공되는 것을 보장하기 위한 방법
- 컴퓨터 내의 자원에 대해 사용, 변경, 조회를 가능하게 하거나 제한할 수 있는 수단
나. 접근제어를 위한 구성요소
| 구성요소 | 주요개념 | 사례 | 
| 주체(Subject) | - 데이터베이스를 사용하는 사용자 또는 사용자 그룹 | 사용자, 응용프로그램, 원격컴퓨터 | 
| 객체(Object) | - 보호 대상 데이터베이스 단위 - 보안 단위가 작아지면 세밀한 허용 및 접근제한이 가능하나 보안처리 오버헤드 발생 | DB, Table, Row, Column, View, Trigger 등 | 
| 조치(Action) | - 주체가 객체에 대해 할 수 있는 일 | Read, Write, Delete | 
| 규칙(Access Rule) | - 주체, 객체, 조치에 대한 허가사항 및 제반 명세 | Constraint 설정, Check statement | 
V.데이터베이스 접근제어 유형
가. 임의적 접근제어(DAC, Discretionary Access Control)
| 구분 | 기본 개념 | 
| 정의 | - 주체나 주체가 속한 그룹의 신원에 근거하여 객체에 대한 접근을 제한하는 방법으로 객체의 소유주가 접근 여부를 결정함 | 
| 특징 | - 모든 사용자가 정보에 대해 단일화 되어 있지 않으며 하나의 사용자 정보 단위로 이루어짐 - ID 기반으로 접근통제가 이루어지므로 ID 도용으로 인한 트로이목마 등에 취약 - 주체 지향 보안 구현 방식 | 
| 사례 | - 테이블 생성자가 조회권한을 다른 사람에게 부여 | 
| 방법 | 1) Capability List : 행 중심 표현 형태 - 한 주체에 대한 접근 가능한 객체와 허가 받은 접근 종류의 목록 - 객체가 적은 경우에 적합 예) 사람 A에 대해 [프린터1:PRINT], [파일1:RW] 2) Access Control List(ACL) : 열 중심 표현 형태 - 한 객체에 대해 접근 허가 받은 주체들과 각 주체마다 허가 받은 접근 종류의 목록 - 주체가 적은 경우에 적합 예) 파일 A에 대해 [사용자1:RW], [사용자2:RX] | 
| 종류 | 1) Name-Dependent(명칭 의존적) : 컬럼명 제한 2) Content-Dependent(내용 의존적) : 컬럼값의 범위 3) Context-Dependent(정황 의존적) : 통계 App용 4) History-Dependent(시간 의존적) : 시계열 접근 또는 행위 기준 | 
| 방법 | 
 - 판독 가능한 객체에서 나온 정보는 주체가 기록할 수 있는 다른 객체로의 전달 가능(트로이목마) | 
나. 강제적 접근제어(MAC, Mandatory Access Control)
| 구분 | 기본 개념 | 
| 정의 | - 비밀성을 갖는 객체에 대하여 주체가 갖는 권한에 근거하여 객체에 대한 접근을 제어하는 방법 - 관리자만이 정보자원의 분류를 설정하고 변경함 | 
| 특징 | - 모든 객체는 정보의 비밀성에 근거하여 보안 레벨이 주어지면 허가된 사용자만이 접근할 수 있도록 엄격히 관리 - 객체의 소유자가 변경할 수 없는 한 주체와 한 객체간의 접근통제 관계를 정의 - 시스템 성능 문제와 구현의 어려움 때문에 주로 군사용으로 사용함 - 객체 지향 보안 : 객체관점에서 권한 정의 | 
| 사례 | - 시스템 카탈로그에 대한 수정 작업은 System Admin만 가능함 | 
| 방법 | 
 - 주체는 인가등급이 자원(객체)의 분류등급과 같거나 더 높을 경우에만 읽기가 허용 | 
다. 역할 기반 보안 모델(RABC, Role Based Access Control)
| 구분 | 기본 개념 | 
| 정의 | - 중앙 관리자가 주체와 객체의 상호관계를 통제하며 조직내에서 맡은 역할에 기초하여 자원에 대한 접근허용 여부를 결정함 | 
| 특징 | - 권한을 부여하는 단위가 주체 대신 주체가 수행하는 기능(역할)에 권한이 부여됨 - 사용자는 보호대상정보나 자원에 대한 접근권한을 얻기 위해서는 해당 접근권한이 배정된 역할의 구성원이 되어야 함 - 필요할 경우 특정 사용자에게 새로운 역할을 부여함으로써 슈퍼유저의 권한을 적절히 나누어 줄 수 있도록 하는 방식 - 필요할 일부 권한을 위임하여 역할로 만든 후, 그 역할을 주체에게 주면 주체는 일부 권한을 위임 받을 수 있음 - 권한 부여 및 관리 단위가 사용자(주체)가 아닌 역할(Role) | 
| 사례 | - DBA Role 정의, 특정 사람에게 DBA Role을 부여하고 DBA Role에 필요한 권한 부여 | 
| 장점 | - 권한관리 : 사용자의 권한 지정을 논리적, 독립적으로 할당/회수 가능 - 계층적 역할 분배 : 역할에 계층을 두어 상속 가능 - 최소권한 정책 : 사용자에게 최소한의 권한만 부여 - 임무의 분리 가능 | 
| 방법 | 
 | 
VI. 해킹, 내부 정보 유출 방지를 위한 DB 암호화 솔루션, 도입 시 고려사항
가. 데이터베이스 암호화 솔루션 도입의 필요성
- 날로 지능화되는 해킹, 내부자에 의한 중요 정보 유출로 인한 기업과 개인의 막대한 피해 사례 빈번하게 발생
- 데이터베이스 접근제어 솔루션 중요 정보 보호 한계성
- 정보통신망 이용촉진 및 정보 보호 등에 관한 법률 등 관련 법규 충족
나. 데이터베이스 암호화 기술
1) API방식
- 애플리케이션 레벨에서 암호모듈(API)를 적용하는 애플리케이션 수정 방식
- DB단의 추가 모듈 설치가 불필요하며, DBMS에 종속되지 않음

2) Filter(Plug-In)방식
- DB레벨의 확장성 프로시져 기능을 이용하여 DBMS에 Plug-In 모듈로 동작하는 방식
- 암호화 관련된 보안정책 DB와 암/복호화 처리를 위한 서버엔진을 DBMS 내에 Plug-In 시킴

- DBMS사용자는 암호화 엔진을 통해 데이터를 조회,추가,수정 함
3) 하이브리드방식
- API방식과 Filter방식을 결합하거나, Filter방식에 추가적으로 SQL문에 대한 최적화를 대행해 주는 어플라이언스 제공
- DB서버 부하분산이 가능하고 암/복호화 시 가속기능을 지원

다. 데이터베이스 암호화 기술 비교
| 구분 | API방식 | Filter(Plug-In) 방식 | 하이브리드방식 | 
| 암호화/보안방식 | 별도의 AP개발/통합 | DB내 설치/연동 | 별도의 어플라이언스/DB내 설치 | 
| 서버성능 부하 | Application 서버에 암/복호화, 정책관리, 키관리 부하 발생 | DB서버에 암/복호화, 정책관리, 키관리 부하 발생 | DB와 어플라이언스에서 부하분산 | 
| 시스템 통합 용이성 | Application 개발 통합기간 필요 | Application 변경 불필요 | Application변경 불필요 | 
| 암호화 대상 변경 발생시 | Application 수정 | 간단한 지정으로 가능 | 간단한 지정으로 가능 | 
| 관리 편의성 | Application 변경 및 암호화 필드 변경에 따른 유지보수 필요 | 관리자용 GUI이용, 다수 DB통합관리 가능 편의성 높음 | 관리자용 GUI 이용, 다수 DB통합관리 가능 편의성 높음 | 
라. 데이터베이스 암호화 솔루션 도입 시 고려사항
| 암호화된 컬럼의 색인 검색 | - 암호화된 컬럼의 색인 검색의 지원 - 색인파일에 저장되는 데이터의 암호화 여부 - 암호화 후 색인을 재생성해야 하는 지 여부 | 
| 서비스 무중단 | - 암호화 시 정상적인 데이터베이스 서비스의 가 | 
| 기능 | 데이터베이스 암호화 솔루션을 도입하더라도 DBMS의 기능을 사용하는데 제약이 있는지 여부(파티션 테이블, 트리거 등) | 
| 성능 | 데이터 암호화 솔루션 도입으로 인한 DBMS 성능저하, 컬럼 암복호화에 소요되는 시간 고려 | 
| BMT를 통해 도입 | 암호화, 암호화 컬럼에 대한 권한 관리/접근제어/감사, 로그인 접근제어, 지원성, 성능, 유저관리, 관리도구의 편리성, 로그 및 리포팅 | 
VII. DB보안의 중요성 및 과제
가. DB보안의 중요성
- 최근 개인정보 해킹 및 노출이 사회적 이슈로 부각되고 있으며, 피해규모도 적지 않아 대규모 소송으로 비화되기도 함
- 정보화, 네트워킹화의 진전에 따라 데이터의 부적절한 조작은 심각한 사회/경제적 피해로 연결될 수 있음
나. DB보안의 과제
- 데이터 노출, 훼손으로 인한 사회적 피해를 고려하여 DB보안 예방조치들이 IT Compliance로 강제되어야 함 (예: 개인정보보호법의 DB 암호화)
- SaaS(Storage as a Service) 시장확대 지원으로 데이터 훼손, 장애에 대비한 원격지 데이터 복제를 활성화해야 함
- 악의적인 데이터 훼손을 추적하여 징벌할 수 있도록 정책적으로 DB Forensic 기술을 발전시켜야 함
- 관계형DB, 객체지향형DB, 메인메모리DB, 공간DB 등 각종 DB유형에 적합한 보안성 지원기술 필요
다. 데이터베이스 보안구현시 고려사항
- 데이터베이스 가용성을 보증 위한 데이터의 백업/복구절차 수립/구현
- 승인받지 않은 접근을 방지하기 위한 다양한 단계의 접근 통제 수립
- 승인받은 자만이 데이터베이스에 접근 할 수 있는 통제 수립
- 다수의 사용자가 동시에 자료를 갱신하려고 할때의 우선순위 설정
- 불법침입으로 데이터베이스에 접근하려는 시도의 무력화.
[호모몰픽]
| 구분 | 내용 | |
| 호모 몰픽 
 | 
 | |
| 개념 | - 암호화된 상태의 데이터에 대한 연산을 추가적인 복호화 과정없이 수행할수 있도록 하는 암호화 기법 - 평문공간과 암호문공간 사이에 정의된 연산을 보존(맵핑)하는 암화화 함수 | |
| 장점 | - 클라우드 컴퓨팅을 비롯한 여러 데이터 프라이버시 보호가 요구되는 응용 분야에 널리 사용가능한 기반 기술 | |
| 단점 | - 수십MB에서 많게는 수GB에 이르는 공개키가 요구되는 극단적인 효율성 문제점 내포 | |
| 동작 | - 비트 단위의 AND와 XOR 연산을 복호화 없이 암호문을 통해 수행 | |
| 종류 | Somewhat Homomorphic Encryption | - 몇번의 연산에서만 데이터 값이 보존되는 암호화 방식 - 몇번의 이후 연산에서는 에러값이 증폭되어 원래 데어터를 복호화 할수없음. | 
| Full Homomorphic Encyption | - 부트스크랩핑(bootstrapping) 및 스쿼싱(squashing)을 통한 Somewhat 암호화의 Fully 암호화 연산이 가능함 | |





