게임 개발자를 향해

데이터베이스 보안 본문

정보처리기사/2. 데이터 입출력 구현

데이터베이스 보안

뿌단이 2022. 9. 15. 22:58

1. 데이터베이스 보안

  • 데이터베이스 보안이란 데이터베이스의 일부 또는 전체에 대해서 권한이 없는 사용자가 액세스하는 것을 금지하기 위해 사용되는 기술이다.
  • 보안을 위한 데이터 단위테이블 전체로부터 특정 테이블의 특정 행에 있는 데이터 값에 이르기까지 다양하다.

 

2. 암호화

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

 

암호화(Encryption) 과정 : 암호화되지 않은 평문을 암호문으로 바꾸는 과정

복호화(Decryption) 과정 : 암호문을 원래의 평문으로 바꾸는 과정

 

 

<암호화 기법>

  • 개인키 암호방식(Private Key Enceyption)
  • 공개키 암호방식(Public Key Encryption)

<여기서 Tip!>

보낼 데이터를 암호화를 하고, 데이터를 받을 때 암호화된 평문 복호화 하는 것이다.개인키와 공개키 암호방식은 나중 챕터에서 다룹니다.

 

 

3. 접근통제

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

 

<접근통제 3요소>

  • 접근통제 정책
  • 접근통제 매커니즘
  • 접근통제 보안모델

<접근통제 기술>

*객체: 테이블, 컬럼 등과 같은 DB 개체들

*주체: 객체를 사용하는 사용자들

정책 특징
임의 접근통제
(DAC; Discretionnary Access Control)
- 데이터에서 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식
- 데이터 소유자가 접근통제 권한을 지정하고 제어함
- 객체를 생성한 사용자가 생성된 객체에 대한 모든 권한을 부여받고, 부여된 권한을 다른 사용자에게 허가할 수 있음
강제 접근통제
(MAC; Mandatory Access Control)
- 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식
- 시스템이 접근 통제 권한을 지정함
- 데이터베이스 객체별로 보안 등급을 부여할 수 있음
- 사용자별로 인가 등급을 부여할 수 있음
역할기반 접근통제
(RBAC; Role Based Access Control)
- 사용자의 역할에 따라 접근 권한을 부여하는 방식
- 중앙관리자가 접근
통제 권한을 지정함
- 임의 접근통제와 강제 접근통제의 단점을 보완하였음
- 다중 프로그래밍 환경에 최적화된 방식

 

 

 

<여기서 Tip!>

위 3개의 통제 아래와 같이 정리할 수 있다.

 

<DAC>

신원에 따라 접근 권한을 부여함.

데이터 소유자가 접근통제 권한을 지정함.

 

<MAC>

주체와 객체의 등급을 비교하여 접근 권한을 부여함.

시스템이 접근 통제 권한을 지정함.

 

<RBAC>

역할에 따라 접근 권한을 부여함.

중앙 관리자가 접근 통제 권한을 지정함.

 

아래는 위에 언급된 접근통제 3요소인 정책, 매커니즘, 보안모델 설명한다.

 

 

 

4. 접근통제 정책

 접근통제 정책은 어떤 주체가(Who) 언제(When) 어디서(Where) 어떤 객체(What)에게 어떤 행위(How)에 대한 허용여부를 정의하는 것이다.

 

<접근통제 정책의 종류>

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

 

<여기서 Tip!>

신분 기반 정책 : 주체의 신분에 근거하여 객체의 접근을 제한하는 방법 (IBP, GBP)규칙 기반 정책 : 주체가 갖는 권한에 근거하여 객체의 접근을 제한하는 방법 (MLP, CBP)역할 기반 정책 : 주체가 맡은 역할에 근거하여 객체의 접근을 제한하는 방법

 

 

5. 접근통제 매커니즘

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

 

6. 접근통제 보안 모델

 접근통제 보안 모델은 보안 정책을구현하기 위한 정형화된 모델이다.

 

<접근통제 보안 모델의 종류>

종류 특징
기밀성 모델 - 군사적인 목적으로 개발된 최초의 수학적 모델
- 기밀성 보장이 최우선임
- 군대 시스템 등 특수 환경에서 주로 사용됨
무결성 모델 - 기밀성 모델에서 발생하는 불법적인 정보 변경을 방지하기 위해 무결성을 기반으로 개발된 모델
접근통제 모델 - 접근통제 메커니즘을 보안 모델로 발전시킨 것
- 대표적으로 접근통제 행렬(Access Control Matrix)이 있음
접근통제 행렬 : 임의적인 접근통제를 관리하기 위한 보안 모델로, 행은 주체, 열은 객체 즉, 행과 열로 주체와 객체의 권한 유형을 나타냄

 

<여기서 Tip!>

위를 한번에 정리해보겠다.

 

데이터베이스 보안과 관련된 개념은 2가지이다.

 

   - 암호화

   - 접근통제

 

암호화개념은 암호화와 복호화가 무엇인지만 알고있으면 된다.

이 챕터에서 중요한 개념은 접근 통제이다.

접근통제 기술은 3가지가 있다.

 

   <DAC>

   신원에 따라 접근 권한을 부여함.

   데이터 소유자가 접근통제 권한을 지정함.

   <MAC>

   주체와 객체의 등급을 비교하여 접근 권한을 부여함.

   시스템이 접근 통제 권한을 지정함.

   <RBAC>

   역할에 따라 접근 권한을 부여함.

   중앙 관리자가 접근 통제 권한을 지정함.

 

그리고 접근통제에는 3가지 요소가 있다.

 

   - 접근통제 정책

   - 접근통제 매커니즘

   - 접근통제 보안 모델

 

- 접근통제 정책 : 본인들이 사용할 DB에 보안정책을 결정해야한다.

 

   - 신분 기반 정책 : 주체의 신분에 근거하여 객체의 접근을 제한하는 방법 (IBP, GBP)

   - 규칙 기반 정책 : 주체가 갖는 권한에 근거하여 객체의 접근을 제한하는 방법 (MLP, CBP)

   - 역할 기반 정책 : 주체가 맡은 역할에 근거하여 객체의 접근을 제한하는 방법

 

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

 

- 접근통제 보안 모델 : 접근통제 정책을 구현하기 위한 정형화된 모델이다.

 

   - 기밀성 모델 : 군사적인 목적으로 개발된 수학적 모델로 군대 시스템 등 기밀성이 보장되어야 하는 특수 환경에서 사용됨.

   - 무결성 모델 : 위 기밀성 모델에서 불법적인 정보변경을 막기 위해 무결성을 기반으로 개발된 모델임.

   - 접근통제 모델 : 접근통제 매커니즘을 보안모델로 만든 것이며, 대표적으로 접근통제 행렬이 있음.

        ㄴ 접근통제 행렬 : 행 열로 주체와 객체의 권한유형을 나타낸 보안모델

 

 

 

 

 

7. 접근통제 조건

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

 

<통제 종류>

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

 

8. 감사 추적

  • 감사 추적은 사용자나 애플리케이션이 데이터베이스에 접근하여 수행한 모든 활동을 기록하는 기능이다.
  • 감사 추적은 오류가 발생한 데이터베이스를  복구하거나 부적절한 데이터 조작을 파악하기 위해 사용된다.

 

 

 

읽어주셔서 감사합니다!

정처기 화이팅!

 

 

'정보처리기사 > 2. 데이터 입출력 구현' 카테고리의 다른 글

스토리지  (0) 2022.09.16
데이터베이스 백업  (1) 2022.09.16
데이터베이스 이중화/서버 클러스터링  (1) 2022.09.15
분산 데이터베이스 설계  (0) 2022.09.13
파티션(Patition)  (0) 2022.09.13