데이터베이스 보안

반응형
  • 데이터베이스 보안의 개념
    • 데이터베이스 보안의 정의
      • 조직의 데이터베이스 내의 데이터를 불법적인 폭로, 변경 또는 파괴하는 행위로부터 데이터베이스를 보호하는 것
      • 조직의 데이터베이스에 대해 권한이 없는 사용자가 무단으로 사용하거나 변경 또는 파괴하는 행위로부터 보호하는 것
    • 데이터베이스 보안의 요구 사항
      • 데이터베이스 사용자를 유일하게 식별하는 사용자 인증
      • 부장한 접근으로부터 보호 및 정당한 사용자의 데이터베이스 접근 지원
      • 기밀 데이터의 관리 및 보호, 비기밀 데이터에서 기밀 정보를 얻어내는 집계 및 추론 방지
      • 집계(Aggregation)
        • 낮은 보안 등급의 정보 조각을 조합하여 높은 등급의 정보를 알아냄
        • 개별 데이터 항목보다 종합 데이터의 보안 등급이 높은 경우 심각한 문제를 야기
      • 추론(Inference)
        • 비인가자인 일반 사용자가 보안으로 분류되지 않은 정보에 정당하게 접근하여 기밀정보를 유추하는 행위
        • 데이터 분할 또는 단위별로 중요 데이터 은폐, 추론 교란(무관한 데이터 포함), 기술적으로는 다중사례화(Polyinstantiation)를 통해 방지
          • 다중 사례화[Polyinstantiation] - 인가 등급에 따라 보안과 무결성 법칙을 만족하는 다중 튜플을 생성하는 것
      • 모든 접근에 대한 기록을 유지하여 시스템을 감사
      • 데이터베이스 가용성 유지
    • 데이터베이스 보안 기술 목표
      • 정보 보호 : 정보의 불법적인 노출을 방지
      • 정보 인증: 고의적으로 정보를 수정하거나 허위 정보를 저장 시키려는 것을 방지
      • 사용자 인증 : 패스워드나 음성, 지문 등을 대조하여 데이터베이스를 이용하는 사람의 신원을 확인
    • 데이터베이스 보안 관리 방안
구분 주요 기능
접근 제어
(Access Control)
  • 사용자가 데이터베이스에 직접적인 경로를 통해서 접근할 때 이를 제어하는 기술
  • 허가 받지 않은 사용자로부터 데이터베이스에 대한 접근을 방지(계정 및 암호를 사용)
정보 흐름 제어
(Information Flow Control)
  • 사용자가 접근할 수 있는 데이터들 사이에서 정보의 분배나 흐름이 발생할 때, 데이터 사이에서 권한이 부여되지 않은 부당한 데이터 전달을 제어하는 기술
추론제어
(Inference Control)
  • 데이터에 대한 직접적인 접근으로 정보를 얻기보다는 간접적인 수단(추론 채널, 통계 추론 등)으로 정보에 부당하게 접근하지 못하도록 제어하는 기술
암호화
(Encryption)
  • 데이터를 암호화하여 데이터에 접근하더라도 알 수 없도록 형태를 변형시키는 기술
  • 보안 구현을 위한 주요 구성 요소
구성요소 주요 개념
주체(Subject)
  • 데이터 베이스를 사용하는 사용자 또는 사용자 그룹(사용자,응용 프로그램, 원격 컴퓨터 등)
객체(Object)
  • 보호 대상이 되는 데이터베이스 단위(데이터베이스, 테이블, 행, 열, 뷰, 트랜잭션, 프로그램 등)
  • 보안 단위가 작아지면 세밀한 허용 및 접근 제한이 가능하나, 보안 처리의 오버헤드가 커지고 처리 속도와 비용이 증가
행위(Action)
  • 주체가 객체에 대해 수행할 수 있는 활동(Read, Write, Delete 등)
권한 제약
(Authorization Constraint)
  • 주체, 객체, 행위에 대한 허가 사항 및 제반 명세

   

  • 데이터베이스 보안 모델의 유형
    • 임의적 보안 모델
구분 내용
정의
  • 주체나 주체에 속해 있는 그룹의 신원에 근거하여 객체에 대한 접근을 제한하는 방법으로써, 객체의 소유자가 접근 여부를 결정
특징
  • 모든 사용자가 정보에 대해 단일화되어 있지 않고, 하나의 사용자 정보 단위로 이루어짐
  • ID 기반으로 접근 제어가 이루어지므로 ID 도용으로 인한 트로이 목마 등에 취약
방법
  • 행 중심 표현 형태(Capability list : CL)
    • 각 주체에 대해 접근 가능한 객체와 허가 받은 접근 종류의 목록을 고나리
    • 객체가 적은 경우에 적합
  • 열 중심 표현 형태(Access Control List : ACL)
    • 각 객체에 대해 접근을 허가 받은 주체들과 해당 주체가 허가 받은 접근 종류의 목록을 관리
    • 사용자가 적은 경우에 적합
  • 강제적 보안 모델
구분 내용
정의
  • 보안이 필요한 객체에 대하여 주체가 갖는 권한에 근거하여 객체에 대한 접근을 제어하는 방법
  • 관리자만이 정보 자원의 분류를 설정하고 변경함
주요 내용
  • 모든 객체는 정보의 보안 정보에 근거하여 보안 레벨이 주어지며, 허가된 사용자 만이 접근할 수 있도록 엄격히 관리
  • 시스템 성능 문제와 구현의 어려움 때문에, 주로 군사용으로 사용
  • 사용자에는 인가 등급(Clearance Level)을 부여하고, 자원에는 보안 등급(Classification Level)을 부여
  • 사용자가 자원에 접근하는 규칙이 설정되는데, 이것은 보안 정책에 의해 통제됨
  • 일반적으로 Bell-LaPadula 모델이 많이 사용됨
    • 주체(사용자, 프로그램 등), 객체(테이블, 뷰, 튜플, 필드 등), 주체의 인가 등급, 그리고 객체의 보안 등급으로 표현
    • 주체 S가 객체 O를 판독하는 것은 Level(S) >= Level(O)인 경우에만 가능
    • 주체 S가 객체 O를 판독하는 것은 Level(S) <= Level(O)인 경우에만 가능
방법   
  • 역할(Role) 기반 보안 모델
구분 내용
정의
  • 관리자가 주체와 객체의 상호관계를 통제하며, 조직 내에서 맡은 역할에 기초하여 자원에 대한 접근 허용 여부를 결정
  • 관리자는 사용자에게 역할을 할당한 후 그 역할에 대한 접근 권한(Authorization)을 부여
  • ERP(Oracle, SAP 등) 패키지 등에 적용되고 있음
주요 내용
  • 권한을 부여하는 단위가 사용자 대신 사용자가 수행하는 역할에 권한이 부여, 즉, 필요한 이부 권한을 부여하여 역할로 만든 후, 그 역할을 사용자에게 주면 사용자는 그 일부 권한을 위임 받을 수 있음
  • 사용자가 보호 대상 자원에 대한 접근 권한을 얻기 위해서는 해당 접근 권한이 배정된 역할의 구성원이 되어야 함
  • 필요할 경우 특정 사용자에게 새로운 역할을 부여함으로써, DBA의 권한을 적절히 나누어 줄 수 있음
  • 역할 생성 및 부여 예
    • CREATE ROLE customer; : 역할을 생성
    • GRANT SELECT ON account TO customer; : 역할에 권한을 부여
    • GRANT customer TO kim; : 역할을 사용자에 부여
특징
  • 권한 부여 및 관리 단위가 사용자가 아닌 역할
  • 정보 접근 권한을 사용자 대신 역할에 부여하고, 사용자를 역할에 배정함
    • 사용자와 권한으로 구성되는 상업 환경에 적합한 보안 모델
    • 많은 사용자로 구성된 시스템에 대한 효율적 권한 관리가 가능
  • 모델 구성 요소의 변경을 통해 다양한 보안정책을 지원할 수 있으므로, 정책 기반의 보안 관리에 적합
  • 역할 간의 계층구조를 통해 하위 역할에 배정된 권한 이상의 역할을 보유할 수 있도록 하는 권한 상속을 지원
    • 권한 상속 특성을 이용하여 계층 구조를 가진 역할들에 대한 권한 부여를 효과적으로 실행이 가능
  • 관리자가 관리 기능을 통해 모델 구성 요소의 구성 정보를 변경
    • 다양한 보안 특성에 대한 모델링이 가능하며,구성 요소 관리를 통한 보안 통제가 가능
장점
  • 권한 관리 : 사용자의 권한 지정을 논리적이고 독립적으로 할당 및 회수 가능
  • 계층적 역할 분배 : 역할에 계층을 두어 상속 가능
  • 최소 권한 정책 : 사용자에게 최소한의 권한만 부여 가능
  • 임무의 분리 기능
방법   

   

  • 데이터베이스 보안 구현 방법
    • 암호화 기법
      • 평문의 데이터를 암호문으로 변경하는 암호화 과정과 암호문을 다시 평문으로 바꾸는 복호화 과정이 필요
      • 장점 : 네트워크의 취약점을 이용한 공격 또는 내부자에 의한 데이터 유출 시에 데이터를 활용하지 못하도록 방지
      • 단점 : 적용 가능한 DBMS 종류가 한정적이고, 시스템에 부하가 발생하고, 시스템 구축시 실패 위험이 높음
      • 암호화 알고리즘 : 개인키 암호화 알고리즘, 공개키 암호화 알고리즘 등
      • 개인키 암호화(Private Key Encryption) 방식
        • 동일한 키로 데이터를 암호화 하고 복호화 함
        • 데이터베이스 사용자는 평문의 정보 M을 암호화 알고리즘 E와 암호키(Encryption Key) K를 이용하여 암호문 C로 바꾸어 저장 시켜 놓고, 또한 사용자가 그 데이터베이스에 접근하기 위해 복호화 알고리즘 D와 암호키 K를 이용하여 다시 평문의 정보 M으로 바꾸어 이용하는 방법
        • 대칭 암호화 방식 또는 단일키 암호화 방식이라고 하며, 대표적으로 DES(Data Encryption Standard)와 AES(Advanced Encryption Standard) 기법이 있음
        • 장점 : 암호화/복호화 속도가 빠르며, 알고리즘이 단순하고, 파일의 크기가 공개키 암호 방식보다 작음
        • 단점 : 사용자의 증가에 따라 관리해야 할 키의 수가 상대적으로 많아짐
      • 공개키 암호화(Public Key Encryption) 방식
        • 서로 다른 키를 사용해 데이터를 암호화하고 복호화 함
        • 데이터를 암호화할 때 사용하는 공개키(Public Key)는 제3자인 데이터베이스 사용자들에게 공개하고, 복호화 할때 사용하는 개인키(Private Key)는 데이터베이스 사용권한이 있는 각 사용자가 비밀리에 관리하는 방법
        • 비대칭 암호 방식이라고도 하며, 대표적으로 RSA(Rivest Shamir Adleman) 기법이 있음
        • 장점 : 키의 분배가 용이하고, 관리해야 할 키의 개수가 적음
        • 단점 : 암호화/복호화 속도가 느리며, 알고리즘이 복잡하고, 개인키 암호 방식보다 파일의 크기가 큼
    • 권한 부여 기법
      • 권한 부여를 위한 GRANT, 권한 철회를 위한 REVOK 구문을 활용
      • 권한은 시스템 관리 차원에서 데이터베이스 자체에 대한 접근 권한(시스템 권한)과 사용자마다의 객체 조작에 관한 접근 권한(객체 권한)으로 분류
    • 뷰사용
      • 일반 사용자에게 보여주지 않아야 하는 데이터 값은 그 열을 제외한 뷰를 생성하여 데이터에 대한 접근을 막는 방법
      • 뷰에 권한을 명시하고 뷰를 제공함으로써 간접적인 보안 관리 지원이 가능
    • 보안 데이터베이스 구축 : 다중사례화(Polyinstantiation)
      • 다중사례화 : 인가 등급에 따라 보안과 무결성 법칙을 만족하는 다중 튜플을 생성
      • 추론으로 인한 정보 유출을 막기 위한 데이터베이스 보안 기술
      • 하나의 데이터 객체(기본키)에 대하여 보안 등급별로 다른 데이터를 가질 수 있도록 허용하는 기술
    • 프로그램 이용 제약
      • 특정 객체에 대한 특정 조치 시 사용자 프로그램 호출
      • 제약 준수를 위한 논리는 프로그램에서 제공
      • 장점 : DBMS의 기능보조, 취약점 보완
      • 단점 : 사용자 루틴의 작성, 테스트 필요, 시스템에 부하 발생
반응형

'밥벌이 > 데이터베이스' 카테고리의 다른 글

동시성(병행) 제어  (0) 2011.03.01
데이터 무결성  (0) 2011.02.20
질의(Query) 처리의 개요  (0) 2011.01.31
셀렉션(Selection) 연산  (0) 2011.01.31
정렬(Sorting)  (0) 2011.01.31