데이터베이스 보안
태그 :
- 개념
- 데이터베이스 보안(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 암호화 연산이 가능함 |