관리 메뉴

나구리의 개발공부기록

2장 - 물리 데이터베이스 설계 | 섹션15. 데이터베이스 보안(암호화), 섹션16. 데이터베이스 보안(접근통제), 섹션17. 데이터베이스 백업, 섹션18. 스토리지 본문

2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 3강 - 데이터베이스 구축

2장 - 물리 데이터베이스 설계 | 섹션15. 데이터베이스 보안(암호화), 섹션16. 데이터베이스 보안(접근통제), 섹션17. 데이터베이스 백업, 섹션18. 스토리지

소소한나구리 2024. 5. 5. 20:06

2024년도 시나공 필기 책 내용 정리


섹션15. 데이터베이스 보안(암호화)

 

1. 데이터베이스 보안의 개요

 

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

2. 암호화(Encryption)

 

  • 데이터를 보낼 때 송신자가 지정한 수신자 이외에는 그 내용을 알 수 없도록 평문을 암호문으로 변환하는 것
  • 암호화(Encryption)과정: 암호화되지 않은 평문을 정보 보호를 위해 암호문으로 바꾸는 과정
  • 복호화(Decryption)과정: 암호문을 원래의 평문으로 바꾸는 과정
  • 암호화 기법에는 개인키 암호 방식과 공개키 암호 방식이 있음

3. 개인키 암호 방식(Private Key encryption) = 비밀키 암호 방식

 

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

*DES(Data Encryption Standard) 기법: 개인키 암호화 방식의 대표적인 알고리즘으로 64Bit의 평문 블록을 56Bit의 16개 키를 이용하여 16회의 암호 계산 단계를 거쳐 64비트의 암호문을 얻음


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

 

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

섹션16. 데이터베이스 보안(접근통제)

 

1.접근 통제

 

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

 

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

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

2. 접근통제 정책

 

  • 어떤 주체가 언제 어디서 어떤 객체에게 어떤 행위에 대한 허용 여부를 정의하는 것
신분 기반 정책 주체나 그룹의 신분에 근거하여 객체의 접근을 제한하는 방법

IBP(Individual-Based Policy): 최소 권한 정책으로 단일 주체에게 하나의 객체에 대한 허가를 부여
GBP(Group-Based Policy): 복수 주체에 하나의 객체에 대한 허가를 부여
규칙 기반 정책 주체가 갖는 권한에 근거하여 객체의 접근을 제한하는 방법

MLP(Multi-Level Policy): 사용자 및 객체별로 지정된 기밀 분류에 따른 정책
CBP(Compartment-Based Policy): 집단별로 지정된 기밀 허가에 다른 정책
역할 기반 정책 GBP의 변형된 정책으로, 주체의 신분이 아니라 주체가 맡은 역할에 근거하여 객체의 접근을 제한

3. 접근통제 매커니즘

 

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

4. 접근통제 보안 모델

 

  • 보안 정책을 구현하기 위한 정형화된 모델
  • 기밀성(Confidentiality, 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용되는 것, 정보가 전송 중에 노출 되더라도 데이터를 읽을 수 없는 것을 의미) 모델

    • 군사적인 목적으로 개발된 최초의 수학적 모델로, 기밀성 보장이 최우선인 모델이며 군대 시스템 등 특수 환경에서 주로 사용됨
    • 제약 조건

      • 단순 보안 규칙: 주체는 자신보다 높은 등급의 객체를 읽을 수 없음
      • ★(스타)-보안 규칙: 주체는 자신보다 낮은 등급의 객체에 정보를 쓸 수 없음
      • 강한 ★(스타)-보안 규칙: 주체는 자신과 등급이 다른 객체를 읽거나 쓸 수 없음
  • 무결성(시스템 내의 정보는 인가된 사용자만 수정할 수 있는 것, 정보가 전송 중에 수정되지 않고 전달 되는 것을 보장) 모델

    • 기밀성 모델에서 발생하는 불법적인 정보 변경을 방지하기 위해 무결성을 기반으로 개발된 모델
    • 데이터의 일관성 유지에 중점을 두어 개발 됨
    • 기밀성 모델과 동일하게 주체 및 객체의 보안 등급을 기반으로 함
    • 제약 조건

      • 단순 무결성 규칙: 주체는 자신보다 낮은 등급의 객체를 읽을 수 없음
      • ★(스타)-무결성 규칙: 주체는 자신보다 낮은 등급의 객체에 정보를 쓸 수 없음
  • 접근통제 모델
    • 접근통제 매커니즘을 보안 모델로 발전시킨것으로 대표적으로 접근통제 행렬(Access control Matrix)이 있음
    • 접근통제 행렬

      • 임의적인 접근통제를 관리하기 위한 보안 모델
      • 행: 주체로서 객체에 접근을 시도하는 사용자
      • 열: 객체로서 접근통제가 이뤄지는 테이블, 컬럼, 뷰 등과 같은 데이터베이스의 개체
      • 규칙: 주체가 객체에 대하여 수행하는 입력, 수정, 삭제 등의 데이터베이스에 대한 조작

5. 접근 통제 조건

 

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

6. 감사 추적

 

  • 사용자나 애플리케이션이 데이터베이스에 접근하여 수행한 모든 활동을 기록하는 기능
  • 오류가 발생한 데이터베이스를 복구하거나 부적절한 데이터 조작을 파악하기 위해 사용됨
  • 감사 추적 시 실행한 프로그램, 사용자, 날짜 및 시간, 접근한 데이터의 이전 값 및 이후 값등이 저장됨

섹션17. 데이터베이스 백업

 

1. 데이터베이스 백업

 

  • 전산 장비의 장애에 대비하여 데이터베이스에 저장된 데이터를 보호하고 복구하기 위한 작업으로 치명적인 데이터 손식을 막기 위해서는 데이터베이스를 정기적으로 백업해야 함
  • DBMS는 데이터베이스 파괴 및 실행 중단이 발생하면 이를 복구할 수 있는 기능을 제공

2. 데이터베이스 장애 유형

 

  • 사용자 실수: 사용자의 실수로 인해 테이블이 삭제되거나 잘못된 트랜잭션이 처리된 경우
  • 미디어 장애: CPU, 메모리, 디스크 등 하드웨어 장애나 데이터가 파손된 경우
  • 구문 장애: 프로그램 오류나 사용 공간의 부족으로 인해 발생하는 장애
  • 사용자 프로세스 장애: 프로그램이 비정상적으로 종료되거나 네트워크 이상으로 세션이 종료되어 발생하는 오류
  • 인스턴스 장애: 하드웨어 장애, 정전, 시스템 파일 파손 등 비정상적 요인으로 인해 메모리나 데이터베이스의 서버의 프로세스가 중단된 경우

3. 로그 파일

 

  • 데이터베이스의 처리 내용이나 이용 상황 등 상태 변화를 시간의 흐름에 따라 모두 기록한 파일로 데이터베이스의 복구를 위해 필요한 가장 기본적인 자료
  • 로그 파일을 기반으로 데이터베이스를 과거 상태로 복귀(UNDO)시키거나 현재 상태로 재생(REDO)시켜 데이터베이스 상태를 일관성 있게 유지할 수 있음
  • 트랜잭션 시작 시점, Rollback 시점, 데이터 입력, 수정 삭제 시점 등에서 기록됨
  • 로그 파일 내용: 트랜잭션이 작업한 모든 내용, 트랜잭션 식별, 트랜잭션 레코드, 데이터 식별자, 갱신 이전 값(Before Image), 갱신 이후 값(After Image)등

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

 

  • 동기적 갱신(Synchronous I/O): 트랜잭션이 완료되기 전에 데이터베이스 버퍼 내용을 동시적으로 저장 매체에 기록하는 것
  • 비동기적 갱신(Asynchronous I/O): 트랜잭션이 완료된 내용을 일정 주기나 작업량에 따라 시간 차이를 두고 저장매체에 기록하는 것
NO-UNDO
/ REDO
데이터베이스 버퍼의 내용을 비동기적으로 갱신한 경우의 복구 알고리즘

NO-UNDO: 트랜잭션 완료 전에는 변경 내용이 데이터베이스에 기록되지 않으므로 취소할 필요가 없음
REDO: 트랜잭션 완료 후 데이터베이스 버퍼에는 기록되어 있고, 저장매체에는 기록되지 않았으므로 트랜잭션 내용을 다시 실행해야 함
UNDO
/ NO- REDO
데이터베이스 버퍼의 내용을 동기적으로 갱신한 경우의 복구 알고리즘

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

NO-UNDO: 변경 내용은 데이터베이스와 다른 영역에 기록되어 있으므로 취소할 필요가 없음
NO-REDO: 다른 영역에 이미 기록되어 있으므로 트랜잭션을 다시 실행할 필요가 없음

5. 백업 종류

 

  • 복구수준에 따라서 운영체제를 이용하는 물리 백업과 DBMS 유틸리티를 이용하는 논리 백업으로 나뉨
  • 물리 백업: 데이터베이스 파일을 백업하는 방법으로 백업속도가 빠르고 작업이 단순하지만 문제 발생 시 원인 파악 및 문제 해결이 어려움
  • 논리 백업: DB내의 논리적 객체들을 백업하는 방법으로 복원 시 데이터 손상을 막고 문제 발생 시 원인 파악 및 해결이 수월하지만 백업/복원 시 시간이 많이 소요됨
구분 설명 복구 수준
물리 백업 로그 파일 백업 실시 완전 복구
로그 파일 백업 없음 백업 시점까지 복구
논리 백업 DBMS 유틸리티

섹션18. 스토리지

 

1. 스토리지(Storage)의 개요

 

  • 단일 디스크로 처리할 수 없는 대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술
  • DAS, NAS, SAN이 있음

2. DAS(Direct Attached Storage)

 

  • 서버와 저장장치를 전용 케이블로 직접 연결하는 방식으로 일반 가정에서 컴퓨터에 외장하드를 연결하는 것이 여기에 해당됨
  • 서버에서 저장장치를 관리
  • 저장장치를 직접 연결하므로 속도가 빠르고 설치 및 운영이 쉬움
  • 초기 구축 비용 및 유지보수 비용이 저렴
  • 직접 연결 방식이므로 다른 서버에서 접근할 수 없고 파일을 공유 할 수 없음
  • 확장성 및 유연성이 상대적으로 떨어짐
  • 저장 데이터가 적고 공유가 필요 없는 환경에 적합함

3. NAS(Network Attached storage)

 

  • 서버와 저장장치를 네트워크를 통해 연결하는 방식
  • 별도의 파일 관리 기능이 있는 NAS Storage가 내장된 저장장치를 직접 관리
  • Ethernet 스위치를 통해 다른 서버에서도 스토리지에 접근할 수 있어 파일 공유가 가능하고, 장소에 구애받지 않고 저장장치에 쉽게 접근할 수 있음
  • DAS에 비해 확장성 및 유연성이 우수함
  • 접속 증가 시 성능이 저하될 수 있음

4. SAN(Storage Area Network)

 

  • DAS의 빠른 처리와 NAS의 파일 공유를 장점을 혼합한 방식으로 서버와 저장 장치를 연결하는 전용 네트워크를 별도로 구성하는 방식
  • 광 채널(FC) 스위치를 이용하여 네트워크를 구성하며 서버나 저장장치를 광케이블로 연결하므로 처리 속도가 빠름
  • 저장장치를 공유함으로써 여러 개의 저장장치나 백업 장비를 단일화 시킬 수 있음
  • 확장성, 유연성, 가용성이 뛰어남
  • 높은 트랜잭션 처리에 효과적이나 기존 시스템의 경우 장비의 업그레이드가 필요하고 초기 설치 시에는 별도의 네트워크를 구축해야 하므로 비용이 많이 듦