자격증/정보처리기사

📌 [정보처리기사] 데이터베이스 보안/암호화/접근통제

Dexter_- 2024. 2. 15. 17:01
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
반응형