728x90

데이터베이스 보안 - 접근통제

접근통제

- 데이터가 저장된 객체와 사용하려는 주체 사이의 정보 흐름을 제한

- 데이터에 대해 통제를 함으로써 자원의 불법적인 접근 및 파괴를 예방

- 임의 접근통제(Discretionary Access Control)

    -> 데이터에 접근하는 사용자의 신원에 따라 접근 권한 부여

    -> 통제 권한이 주체에 있어 접근통제 권한을 주체가 지정하고 제어

    -> 객체를 생성한 사용자가 객체에 대한 모든 권한을 부여받고 다른 사용자에게 허가 가능

    -> SQL 명령어로는 GRANT, REVOKE가 있음

- 강제 접근통제(Mandatory Access Control)

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

    -> 제 3자가 접근통제 권한 지정

    -> 객체별로 보안 등급을 부여할 수 있으며 사용자별로 인가 등급을 부여할 수 있음

    -> 주체의 보안 등급이 자신의 보안등급보다 높으면 읽기, 수정, 등록이 모두 불가하고 동등하면 읽기, 수정, 등록이 모두 가능하며 낮으면 읽기만 가능

 

접근통제 정책

- 어떤 주체(Who)가 언제(When) 어디서(Where) 어떤 객체(What)에게 어떤 행위(How)에 대한 허용 여부를 정의하는 것

- 신분 기반 정책

    -> 주체나 그룹의 신분에 근거하여 객체의 접근을 제한

    -> IBP(Individual-Based Policy) : 최소 권한 정책, 단일 주체에게 하나의 객체에 대한 허가를 부여

    -> GBP(Group-Based Policy) : 복수 주체에 대한 허가를 부여

- 규칙 기반 정책

    -> 주체가 갖는 권한에 근거하여 객체의 접근을 제한

    -> MLP(Multi-Level Policy) : 사용자 및 객체별로 지정된 기밀 분류에 따른 정책

    -> CBP(Compartment-Based Policy) : 집단별로 지정된 기밀 허가에 따른 정책

- 역할 기반 정책

    -> 주체의 신분이 아니라 주체가 맡은 역할에 근거하여 객체의 접근을 제한

 

접근통제 매커니즘

- 정의된 접근통제 정책을 구현하는 기술적인 방법

- 접근통제 목록 : 객체를 기준으로 특정 객체에 대해 어떤 주체가 어떤 행위를 할 수 있는지 기록한 목록

- 능력 리스트 : 주체를 기준으로 주체에게 허가된 자원 및 권한을 기록한 목록

- 보안 등급 : 주체나 객체에 부여된 보안 속성의 집합

- 패스워드 : 주체가 자신임을 증명할 때 사용하는 인증 방법

- 암호화

암호화 / 복호화
- 암호화는 데이터를 보낼 때 송신자가 지정한 수신자 외는 그 내용을 알 수 없도록 평문을 암호문으로 변환
- 암호화 과정 : 암호화되지 않은 평문을 정보 보호를 위해 암호문으로 바꿈
- 복호화 과정 : 암호문을 원래의 평문으로 바꿈

 

접근통제 보안 모델

- 보안 정책을 구현하기 위한 정형화된 모델

- 기밀성 모델

    -> 군사적인 목적으로 개발된 최초의 수학적 모델로 기밀성 보장이 최우선

- 무결성 모델

    -> 기밀성 모델에서 발생하는 불법적인 정보 변경을 방지하기 위해 무결성을 기반으로 개발된 모델

    -> 데이터 일관성 유지에 중점을 두어 개발

- 접근통제 모델

    -> 접근통제 매커니즘을 보안 모델로 발전시킨 것

    -> 접근통제 모델 : 임의적인 접근 통제를 관리하기 위한 모델로 행은 주체 열은 객체를 의미

    -> R : 읽기 권한

    -> W : 쓰기 권한

    -> ALL : 모든 권한

 

접근통제 행렬

 

 

접근통제 조건

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

- 값 종속 통제 : 객체에 저장된 값에 따라 다르게 접근통제를 허용해야 하는 경우

- 다중 사용자 통제 : 지정된 객체에 다수의 사용자가 동시에 접근을 요구하는 경우

- 콘텍스트 기반 통제 : 특정 시간, 네트워크 주소, 접근 경로, 인증 경로 등에 근거하여 접근을 제어하는 방식

 

감사 추적

- 사용자나 애플리케이션의 데이터베이스에 접근하여 수행한 모든 활동을 기록하는 기능

- 오류가 발생한 데이터베이스를 복구하거나 부적절한 데이터 조작을 파악하기 위해 사용

 

데이터베이스 백업

데이터베이스 백업

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

 

데이터베이스 장애 유형

- 사용자 실수 : 사용자의 실수로 인한 오류

- 미디어 장애 : 하드웨어 장애나 데이터가 파손된 경우

- 구문 장애 : 프로그램 오류나 사용 공간의 부족으로 발생하는 장애

- 사용자 프로세스 장애 : 프로그램이 비정상적으로 종료되거나 네트워크 이상으로 세션이 종료되어 발생하는 장애

- 인스턴스 장애 : 하드웨어 장애, 정전, 시스템 파일 파손 등 비정상적 요인으로 메모리나 데이터베이스 서버의 프로세스가 중단된 경우

 

로그 파일

- 데이터베이스의 처리 내용이나 이용 상황 등 상태 변화를 시간의 흐름에 따라 기록한 파일

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

 

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

- 동기적/비동기적 갱신에 따라 분류

- NO-UNDO/REDO : 비동기적으로 갱신한 경우

- UNDO/NO-REDO : 동기적으로 갱신한 경우

- UNDO/REDO : 동기/비동기적으로 갱신한 경우

- NO-UNDO/NO-REDO : 동기적으로 저장 매체에 기록하지만 데이터베이스와는 다른 영역에 기록한 경우

 

백업 종류

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

- 논리 백업 : 데이터베이스 내의 논리적 객체들을 백업하는 방법

 

스토리지

스토리지의 개요

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

 

DAS(Direct Attached Storage)

- 서버와 저장장치를 전용 케이블로 직접 연결하는 방식

- 서버에서 저장장치를 관리

- 저장장치를 직접 연결하므로 속도가 빠르고 설치 및 운영이 쉬움

- 다른 서버에서 스토리지에 접근하여 사용 불가

 

NAS(Network Attached Storage)

- 서버와 저장장치를 네트워크를 통해 연결하는 방식

- 별도의 파일 관리 기능이 있는 NAS Storage가 내장된 저장장치를 직접 관리

- DAS에 비해 확장성 및 유연성이 좋음

- 서버들이 자유롭게 스토리지에 접근하여 파일 공유

 

SAN(Storage Area Network)

- DAS의 빠른 처리와 NAS의 파일 공유 장점을 혼합한 방식

- 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성

- 파이버 채널(FC) 스위치를 이용하여 네트워크를 구성

    -> 파이버 채널 : 장치 간 데이터 전송 속도를 기가바이트로 높이기 위한 네트워크 기술

- 서버나 저장장치를 광케이블로 연결하므로 처리 속도가 빠름

- 서버들이 저장장치 및 파일을 자유롭게 공유

 

DAS, NAS, SAN 비교

 

 

 

논리 데이터 모델의 물리 데이터 모델 변환

테이블 

- 데이터를 저장하는 데이터베이스의 가장 기본적인 오브젝트

 

엔티티를 테이블로 변환

- 논리 데이터 모델에서 정의된 엔티티를 물리 데이터 모델의 테이블로 변환

 

 

- 테이블과 엔티티 명칭은 동일하게 하는 것을 권고

- 테이블은 소스코드 가독성을 위해 영문명을 사용

- 표준화된 용어 사용 지향

- 변환 규칙

 

 

슈퍼타입/서브타입을 테이블로 변환

- 슈퍼타입과 서브타입은 논리 데이터 모델에서 이용되는 형태이므로 물리 데이터 모델을 설계할 때는 테이블로 변환

- 슈퍼타입 기준 테이블 변환

    -> 서브타입을 슈퍼타입에 통합하여 하나의 테이블로 만듦

    -> 데이터의 액세스가 상대적 용이

    -> 뷰를 이용하여 각각의 서브타입만을 액세스 하거나 수정할 수 있음

    -> SQL 문장 구성이 단순

    -> 디스크 저장 공간이 증가

    -> 인덱스의 효율이 떨어짐

 

 

- 서브타입 기준 테이블 변환

    -> 슈퍼타입의 속성들을 각각의 서브타입에 추가하여 서브타입들을 개별적인 테이블로 만듦

    -> 각 서브타입 속성들의 선택 사양이 명확한 경우 유리

    -> 여러 개의 테이블로 통합하므로 테이블당 크기가 감소하여 전체 테이블 스캔 시 유리

    -> 수행 속도 감사

    -> 복잡한 처리를 하는 SQL의 통합이 어려움

 

 

- 개별타입 기준 테이블 변환

    -> 슈퍼타입과 서브타입들을 각각의 개별적인 테이블로 변환

    -> 슈퍼타입과 서브타입 테이블 사이에는 각각 1:1 관계가 형성

    -> 저장공간이 상대적으로 작음

 

 

속성을 칼럼으로 변환

- 논리 데이터 모델에서 정의한 속성을 물리 데이터 모델의 컬럼으로 변환

- 일반 속성 변환

     -> 엔티티의 속성을 테이블의 각각의 컬럼으로 변환

     -> 칼럼명은 SQL 예약어 사용을 피하고 가능한 한 짧게 지정

 

 

관계를 외래키로 변환

- 논리 데이터 모델에서 정의된 관계는 기본키와 이를 참조하는 기본키로 변환

 

 

관리 목적의 테이블/칼럼 추가

- 논리 데이터 모델에는 존재하지 않는 테이블이나 칼럼을 데이터베이스 관리 혹은 이용하는 프로그래밍의 수행 속도를 향상시키기 위해 물리 데이터 모델에 추가할 수 있음

 

데이터 타입 선택

- 정의된 논리적인 데이터 타입을 물리적인 DBMS의 물리적 특성과 성능을 고려하여 최적의 데이터 타입과 데이터의 최대 길이를 선택

- Oracle에서 자주 사용되는 데이터 유형

    -> CHAR : 고정길이 문자열

    -> VARCHAR : 가변 길이 문자열

    -> NUMBER : 38 자릿수의 숫자 저장 가능

    -> DATE : 날짜 저장

필기 정리

 

2020 정보처리기사 필기 정리

본 정리 글은 시나공 정보처리기사 필기책과 학교 특강을 참고하여 작성하였습니다. -> 책 정보 확인하기 시나공 정보처리기사 필기 2020년 정보처리기사 NCS기반 전면 개편!정보처리기사 시험은

1d1cblog.tistory.com

 

728x90

+ Recent posts