자격증/정보처리기사 📌 [정보처리기사] 데이터베이스 보안/암호화/접근통제
  • 728x90
    반응형

     

    물리 데이터베이스 설계


     

     

     

    데이터베이스 보안의 개요

    📌 데이터 베이스 보안이란 데이버베이스의 일부분 또는 전체에 대하여 권한이 없는 사용자가 액세스하는 것을 금지하기 위해 사용되는 기술이다.

     

    • 보안을 위한 데이터 단위는 테이블 전체로부터 특정 테이블의 특정한 행과 열 위치에 있는 특정한 데이터 값에 이르기까지 다양한다.
    • 데이터베이스 사용자들은 일반적으로 서로 다른 객체에 대하여 다른 접근 권리 또는 권한을 갖게 된다.

     

     

    암호화(Encryption)

    📌 암호화는 데이터를 보낼 때 송신자가 지정한 수신자 이외에는 그 내용을 알 수 없도록 평문을 암호문으로 변환하는 것이다.

     

    • 암호화(Encryption) 과정 : 암호화되지 않은 평문을 정보 보호를 위해 암호문으로 바꾸는 과정
    • 복호화(Decryption) 과정 : 암호문을 원래의 평문으로 바꾸는 과정
    • 암호화 기법에는 개인키 암호 방식과 공개키 암호 방식이 있다.

     

    💡 무결성(Integrity)과 보안(Security)
    - 무결성은 권한이 있는 사용자로부터 데이터베이스를 보호하는 것이고, 보안은 권한이 없는 사용자로부터 데이터베이스를 보호하는 것이다.
    - 보안은 데이터베이스 사용자들이 데이터베이스를 사용하고자 할 때 언제든지 사용할 수 있도록 보장하는 것이고, 무결성은 정확하게 사용할 수 있도록 보장하는 것이다.

     

     

     

    개인키 암호 방식(Private Key Encryption) = 비밀키 암호 방식

    📌 비밀키 암호화 기법은 동일한 키로 데이터를 암호화하고 복호화 한다.

     

    • 비밀키 암호화 기법은 대칭 암호 방식 또는 단일키 암호화 기법이라고도 한다.
    • 비밀키는 제3자에게는 노출시키지 않고 데이터베이스 사용 권한이 있는 사용자만 나누어 가진다.
    • 종류 : 전위 기법, 대체 기법, 대수 기법, 합성 기법(DES, LUCIFER)

     

     

    공개키 암호 방식(Public Key Encryption)

    📌 공개키 암호화 기법은 서로 다른 키로 데이터를 암호화하고 복호화 한다.

     

    • 데이터를 암호화할 때 사용하는 키(공개키, Public Key)는 데이터베이스 사용자에게 공개하고, 복호화 할 때의 키(비밀키, Secret Key)는 관리자가 비밀리에 관리하는 방법이다.
    • 공개키 암호화 기법은 비대칭 암호 방식이라고도 하며, 대표적으로 RSA(Rivest Shamir Adleman)가 있다.

     

    💡 DES(Data Encryption Standard) 기법 : DES 기법은 개인키 암호 방식의 대표적인 알고리즘으로 64Bit의 평문 블록을 56Bit의 16개 키를 이용하여 16회의 암호 계산 단계를 거쳐 64Bit 의 암호문을 얻습니다.
    💡 루시퍼(Lucifer0는 민간에서 개발한 최초의 블록 암호들에 붙은 이름으로, 19870년대 IBM 소속의 호르스트 파이스텔 등에 의해 제작되었다.
    💡 RSA 암호는 공개키 암호 시스템의 하나로, 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘으로 알려져 있다. RSA가 갖는 전자서명 기능은 인증을 요구하는 전자 상거래 등에 RSA의 광범위한 활용을 가능하게 하였다.

     

     


     

     

    접근 통제

    📌 접근 통제는 데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보 흐름을 제한하는 것이다.

     

    • 접근 통제는 데이터에 대해 다음과 같은 통제를 함으로써 자원의 불법적인 접근 및 파괴를 예방한다.
      • 비인가된 사용자의 접근 감시
      • 접근 요구자의 사용자 식별
      • 접근 요구의 정당성 확인 및 기록
      • 보안 정책에 근거한 접근의 승인 및 거부 등
    • 접근 통제 기술에는 임의 접근통제(DAC), 강제 접근통제(MAC), 역할기반 접근 통제(RBAC)가 있다.
    임의 접근 통제
    (DAC; Discretionary Access Control)
    - 임의 접근통제는 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식이다.
    - 데이터 소유자가 접근 통제 권한을 지정하고 제어한다.
    - 객체를 생성한 사용자가 생성된 객체에 대한 모든 권한을 부여 받고, 부여된 권한을 다른 사용자에게 허가할 수도 있다.
    - 임의 접근 통제에 사용되는 SQL 명령어에는 GRANT와 REVOKE가 있다.
    강제 접근통제
    (MAC; Mandatory Access Control)
    - 강제 접근 통제는 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식이다.
    - 시스템이 접근 통제 권한을 지정한다.
    - 데이터베이스 객체별로 보안 등급을 부여할 수 있고, 사용자 별로 인가 등급을 부여할 수 있다.
    - 주체는 자신보다 보안 등급이 높은 객체에 대해 읽기, 수정, 등록이 모두 불가능하고, 보안 등급이 같은 객체에 대해서는 읽기, 수정, 등록이 가능하고, 보안 등급이 낮은 객체는 읽기가 가능하다.
    역할기반 접근통제
    (RBAC; Role Based Access Control)
    - 역할 기반 접근 통제는 사용자의 역할에 따라 접근 권한을 부여하는 방식이다.
    - 중앙관리자가 접근 통제 권한을 지정한다.
    - 임의 접근 통제와 강제 접근 통제의 단점을 보완하였으며, 다중 프로그래밍 환경에 최적화된 방식이다.
    - 중앙관리자가 역할마다 권한을 부여하면, 책임과 자질에 따라 역할을 할당 받은 사용자들은 역할에 해당하는 권한을 사용할 수 있다.

     

     

    💡 객체 : 테이블, 컬럼 등과 같은 데이터베이스 개체들을 의미한다.
    💡 주체 : 일반적으로 객체를 사용하기 위해 접근을 시도하는 사용자를 의미한다.
    💡 GRANT : 객체에 대한 권한을 부여하는 명령이다.
    예) GRANT RESOURCE TO KORA; : 사용자가 ID가 KORA인 사람에게 데이터베이스 및 테이블을 생성할 수 있는 권한을 부여한다.
    💡 REVOKE : 객체에 부여된 권한을 취소하는 명령이다.
    예) REVOKE UPDATE ON 고객 FROM JULIA; : 사용자 ID가 JULIA인 사람에게 부여한 권한 중 갱신(UPDATE)권한을 취소한다.

     

     

     

    강제 접근 통제(MAC)의 보안모델

    벨 라파듈라 모델
    (Bell-LaPadula Model)
    - 군대의 보안 레벨처럼 정보의 기밀성에 따라 상하 관계가 구분된 정보를 보호하기 위해 사용한다.
    - 보안 취급자의 등급을 기준으로 읽기 권한과 쓰기 권한이 제한된다.
    - 자신의 보안 레벨 이상의 문서를 작성할 수 있고, 자신의 보안 레벨 이하의 문서를 읽을 수 있다.
    예) 보안 레벨이 2급인 보안 취급자의 읽기 권한과 쓰기 권한
    - 2, 3급 비밀 문서를 조회할 수 있다.
    - 1, 2급 비밀 문서를 작성할 수 있다.
    비바 무결성 모델
    (Biba Integrity Model)
    - 벨 라파듈라 모델을 보완한 수학적 모델로, 무결성을 보장하는 최초의 모델이다.
    - 비인가자에 의한 데이터 변형을 방지한다.
    클락-윌슨 무결성 모델
    (Clark-Wilson Integrity Model)
    무결성 중심의 상업용 모델로 사용자가 직접 객체에 접근할 수 없고 프로그램에 의해 접근이 가능한 보안 모델이다.
    만리장성 모델
    (Chinese Wall Model)
    서로 이해 충돌 관계에 있는 객체 간의 정보 접근으 통제하는 모델이다.

     

    • 접근 통제의 3요소는 접근 통제 정책, 접근 통제 매커니즘, 접근 통제 보안모델이다.

     

     

    접근 통제 정책

    📌 접근 통제 정책은 어떤 주체가(Who)가 언제(When), 어디서(Where), 어떤 객체(What)에게, 어떤 행위(How)에 대한 허용 여부를 정의하는 것으로, 신분 기반 정책, 규칙 기반 정책, 역할 기반 정책이 있다.

     

    신분 기반 정책 - 주체나 그룹의 신분에 근거하여 객체의 제한하는 방법으로, IBP와 GBP가 있다.
    - IBP(Individual-Based Policy) : 최소 권한 정책으로, 단일 주체에게 하나의 객체에 대한 허가를 부여한다.
    - GBP(Group-Based Policy) : 복수 주체에 하나의 객체에 대한 허가를 부여한다.
    규칙 기반 정책 - 주체가 갖는 권한에 근거하여 객체의 접근을 제한하는 방법으로, MLP와 CBP가 있다.
    - MLP(Multi-Level Policy) : 사용자 및 객체별로 지정된 기밀 분류에 따른 정책
    - CBP(Compartment-Based Policy) : 집단별로 지정된 기밀 허가에 따른 정책
    역할 기반 정책 GBP의 변형된 정책으로, 주체의 신분이 아니라 주체가 맡은 역할에 근거하여 객체의 접근을 제한하는 방법이다.
    예) 인사 담당자, DBA 등

     

     

     

    접근 통제 매커니즘

    📌 접근 통제 매커니즘은 정의된 접근 통제 정책을 구현하는 기술적인 방법으로, 접근 통제 목록, 능력 리스트, 보안 등급, 패스워드, 암호화 등이 있다.

     

    • 접근 통제 목록(Access Control List) : 객체를 기준으로 특정 객체에 대해 어떤 주체가 어떤 행위를 할 수 있는지를 기록한 목록이다.
    • 능력 리스트(Capability List) : 주체를 기준으로 주체에게 허가된 자원 및 권한을 기록한 목록이다.
    • 보안 등급(Security Level) : 주체나 객체 등에 부여된 보안 속성의 집합으로, 이 등급을 기반으로 접근 승인 여부가 결정된다.
    • 패스워드 : 주체가 자신임을 증명할 때 사용하는 인증 방법이다.
    • 암호화 : 데이터를 보낼 때 지정된 수신자 이외에는 내용을 알 수 없도록 평문을 암호문으로 변환하는 것으로, 무단 도용을 방지하기 위해 주로 사용된다.

     

     

    접근 통제 보안 모델

    📌 접근 통제 보안 모델은 보안 정책을 구현하기 위한 정형화된 모델로, 기밀성 모델, 무결성 모델, 접근 통제 모델이 있다.

     

    • 기밀성 모델
      • 기밀성 모델은 군사적인 목적으로 개발된 최초의 수학적 모델로, 기밀성 보장이 최우선인 모델이다.
        • 기밀성 모델은 군대 시스템 등 특수 환경에서 주로 사용된다.
        • 제약 조건
          • 단순 보안 규칙 : 주체는 자신보다 높은 등급의 객체를 읽을 수 없다.
          • ★(스타)- 보안 규칙 : 주체는 자신보다 낮은 등급의 객체에 정보를 쓸 수 없다.
          • 강한 ★(스타) 보안 규칙 : 주체는 자신과 등급이 다른 객체를 읽거나 쓸 수 없다.

     

    Level 단순 보안 규칙 ★(스타)-보안 규칙 강한 ★(스타) 보안 규칙
    읽기 권한 쓰기 권한 읽기/쓰기 권한
    높은 등급 통제 가능 통제
    같은 등급 가능 가능 가능
    낮은 등급 가능 통제 통제

     

    💡 기밀성(Confidentiality) : 기밀성은 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용되는 것으로 정보가 전송 중에 노출되더라도 데이터를 읽을 수 없는 것을 의미한다.
    💡 ★(스타)-보안 규칙 : ★스타-보안 규칙은 높은 등급의 주체가 자신이 접근 가능한 정보를 낮은 등급으로 복사하여 유출하는 행위를 방지하기 위한 것으로 정보의 기밀성 보호를 위한 제약이다.

     

    • 무결성 모델
      • 무결성 모델은 기밀성 모델에서 발생하는 불법적인 정보 변경을 방지하기 위해 무결성을 기반으로 개발된 모델이다.
        • 무결성 모델은 데이터의 일관성 유지에 중점을 두어 개발되었다.
        • 무결성 모델은 기밀성 모델과 동일하게 주체 및 객체의 보안 등급을 기반으로 한다.
        • 제약 조건
          • 단순무결성 규칙 : 주체는 자신보다 낮은 등급의 객체를 읽을 수 없다.
          • ★(스타)-무결성 규칙 : 주체는 자신보다 높은 등급의 객체에 정보를 쓸 수 없다.

     

    Level 단순 무결성 규칙 ★(스타)-무결성 규칙
    읽기 권한 쓰기 권한
    높은 등급 가능 통제
    같은 등급 가능  가능
    낮은 등급 통제 가능

     

    • 접근 통제 모델
      • 접근통제 모델은 접근 통제 매커니즘을 보안 모델로 발전시킨 것으로, 대표적으로 접근 통제 행렬(Access Control Matrix)이 있다.
      • 접근 통제 행렬(Access Control Matrix)
        • 임의적인 접근 통제를 관리하기 위한 보안 모델로, 행은 주체, 열은 객체 즉, 행과 열로 주체와 객체의 권한 유형을 나타낸다.
          • 행 : 주체로서 객체에 접근을 시도하는 사용자이다.
          • 열 : 객체로서 접근 통제가 이뤄지는 테이블, 컬럼, 뷰 등과 같은 데이터베이스의 개체이다.
          • 규칙 : 주체가 객체에 대하여 수행하는 입력, 수정, 삭제, 등의 데이터베이스에 대한 조작이다.

     

    이름 사원 부서 상품 판매현황 거래업체
    사쿠라 ALL ALL R R R
    김채원 R/W R/W R R R
    허윤진 R R R R/W R/W
    카즈하 R R R/W    

     

     

     

    접근 통제 조건

    📌 접근 통제 조건은 접근통제 매커니즘의 취약점을 보완하기 위해 접근통제 정책에 부가하여 적용할 수 있는 조건이다.

     

    • 값 종속 통제(Value-Dependent Control) : 일반적으로는 객체에 저장된 값에 상관없이 접근통제를 동일하게 허용하지만 객체에 저장된 값에 따라 다르게 접근 통제를 허용해야 하는 경우에 사용한다.
      • 예) 납입한 금액에 따라 보안 등급이 설정되고, 보안 등급에 따라 접근 여부가 결정되는 경우
    • 다중 사용자 통제(Multi-User Control) : 지정된 객체에 다수의 사용자가 동시에 접근을 요구하는 경우에 사용된다.
      • 예) 여러 명으로 구성된 한 팀에서 다수결에 따라 접근 여부가 결정되는 경우
    • 컨텍스트 기반 통제(Context-Based Control) : 특정 시간, 네트워크 주소, 접근 경로, 인증 수준 등에 근거하여 접근을 제어하는 방법으로, 다른 보안 정책과 결합하여 보안 시스템의 취약점을 보완할 때 사용된다.
      • 예) 근무시간, 즉 월요일~금요일 9:00~18:00 사이에만 접근 가능

     

     

    감사 추적

    📌 감사 추적은 사용자나 애플리케이션이 데이터베이스에 접근하여 수행한 모든 활동을 기록하는 기능이다.

     

    • 감사 추적은 오류가 발생한 데이터베이스를 복구하거나 부적절한 데이터 조작을 파악하기 위해 사용된다.
    • 감사 추적 시 실행한 프로그램, 사용자, 날짜 및 시간, 접근한 데이터의 이전 값 및 이후 값 등이 저장된다.

     

     

     

    728x90
    반응형
상단으로