본문 바로가기
정보처리기사

[정보처리기사] - 데이터베이스 보안

by Laplace 2024. 7. 15.

데이터베이스 보안

- 데이터베이스 보안이란 데이터베이스의 권한이 없는 사용자가 액세스하는 것을 금지하기 위해 사용되는 기술이다.

 

암호화 (Encryption)

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

 

암호화 과정 : 평문을 암호문으로 바꾸는 과정

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

 

암호화 기법

- 개인키 암호 방식

- 공개키 암호 방식

 

접근통제

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

 

접근통제 3요소

- 접근통제 정책

- 접근통제 매커니즘

- 접근통제 보안모델

 

접근통제 기술

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

 

 

접근통제 정책

- 접근통제 정책은 어떤 주체가 언제, 어디서, 어떤 객체에게, 어떤 행위에 대한 허용 여부를 정의하는 것이다.

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

 

 

접근통제 매커니즘

- 접근통제 매커니즘은 정의된 접근통제 정책을 구현하는 기술적인 방법이다.

- 접근통제 매커니즘에는 접근통제 목록, 능력 리스트, 보안 등급, 패스워드, 암호화 등이 있다.

 

접근통제 보안 모델

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

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

 

 

데이터베이스 백업

- 데이터베이스 백업은 전산 장비의 장애에 대비하여 DB에 저장된 데이터를 복구하고 보호하기 위한 작업이다.

- 치명적인 데이터 손실을 막기 위해 데이터베이스는 정기적으로 백업해야 한다.

 

로그 파일

- 로그 파일은 DB의 처리 내용, 이용 상황 등 상태 변화를 시간의 흐름에 따라 전부 기록한 파일이다.

- 데이터베이스의 복구를 위해 필요한 가장 기본적인 자료

- 로그 파일을 기반으로 DB를 과거 상태로 복귀(UNDO) 시키거나 현재 상태로 재생(REDO) 시켜 DB의 상태를 일관성 있게 유지

- 로그 파일은 트랜잭션 시작 시점, Rollback 시점, 데이터 입력, 수정 삭제 시점 등에서 기록된다.

 

복귀(UNDO) - 로그에 보관한 정보를 이용하여 가장 최근에 변경된 내용부터 거슬러 올라가면서 트랜잭션 작업을 취소하여 원래로 복구

재생(REDO) - 덤프와 로그를 이용하여 가장 최근의 정상적인 데이터베이스로 회복 시킨 후 트랜잭션을 재실행 시킴

 

데이터베이스 복구 알고리즘

NO-UNDO / REDO - 데이터베이스 버퍼의 내용을 비동기적으로 갱신한 경우의 복구 알고리즘
- NO-UNDO : 트랜잭션 완료 전에는 변경 내용이 DB에 기록되지 않으므로 취소할 필요가 없음
- REDO : 트랜잭션 완료 후 DB 버퍼에는 기록되어 있고, 저장매체에는 기록되지 않았으므로 트랜잭션 내용을 다시 실행해야함
UNDO / NO-REDO - 데이터베이스 버퍼의 내용을 동기적으로 갱신한 경우의 복구 알고리즘
- UNDO : 트랜잭션 완료 전에 시스템이 파손되었다면 변경된 내용을 취소함
- NO-REDO : 트랜잭션 완료 전에 DB 버퍼 내용을 이미 저장 매체에 기록했으므로 트랜잭션 내용을 다시 실행할 필요가 없음
UNDO / REDO - 데이터베이스 버퍼의 내용을 동기 / 비동기적으로 갱신한 경우의 복구 알고리즘
- DB 기록 전에 트랜잭션이 완료될 수 있으므로 완료된 트랜잭션이 데이터베이스에 기록되지 못했다면 다시 실행해야 함
NO-UNDO / NO-REDO - 데이터베이스 버퍼의 내용을 동기적으로 저장 매체에 기록하지만 데이터베이스와는 다른 영역에 기록한 경우의 복구 알고리즘
- NO-UNDO : 변경 내용은 데이터베이스와 다른 영역에 기록되어 있으므로 취소할 필요 없음 
- NO-REDO : 다른 영역에 이미 기록되어 있으므로 트랜잭션을 다시 실행할 필요가 없음

 

 

백업 종류

- 백업 종류는 복구 수준에 따라 운영체제를 이용하는 물리 백업과 DBMS 유틸리티를 이용하는 논리 백업이 있다.

 

물리 백업

- 데이터베이스 파일을 백업하는 방법

- 백업 속도가 빠르고 작업이 단순하지만 문제 발생 시 원인 파악 및 문제 해결이 어렵다.

 

논리 백업

- DB 내의 논리적 객체들을 백업하는 방법

- 복원 시 데이터 손상을 막고 문제 발생 시 원인 파악 및 해결이 수월하지만 백업/복원 시 시간이 많이 소요된다.