정보보안기사

[정보보안기사] SECTION 35 데이터베이스 보안

tnvori 2026. 2. 21. 02:00

을지로의 뗴르세로 코스테스. 사진 3시 방향의 꿀대구가 인상적

오늘 기출 풀어봤는데, 아슬아슬하게 합격할 만한 듯. 개념은 다 봤으니 앞으로 문제 양치기할 예정

 

  1. 데이터베이스 기본 개념
    1. 데이터베이스 정의
      • 통합된 데이터
        • 똑같은 데이터가 중복되지 않음
        • 효율성을 위해 일부 데이터 중복 허용
      • 저장된 데이터
      • 운영 데이터
      • 공용 데이터 — 한 조직에서 여러 응용프로그램이 공동으로 소유, 유지 가능한 데이터
    2. 키의 유형
      • 후보키
        • 유일성과 최소성을 만족하는 키
        • <학번>, <이름, 학과>
      • 슈퍼키
        • 유일성을 만족하는 키
        • <이름, 학과, 학년>
      • 기본키 — 후보키 중 하나를 선정하여 사용하는 것
      • 대체키 — 후보키 중 기본키로 선정되고 남은 나머지 키
      • 외래키 — 어느 한 릴레이션 속성의 집합이 다른 릴레이션에서 기본키로 이용되는 키
    3. 무결성의 종류
      • 키 무결성 — 한 릴레이션에 같은 키값을 가진 튜플이 있어서는 안 됨
      • 개체 무결성
        • 기본키에 속해있는 전체 또는 일부 애트리뷰트가 널 값을 가질 수 없다는 제약 조건
        • 키값의 전부 또는 일부가 널이 된다면 튜플을 유일하게 식별할 수 없게 되어 기본키의 정의를 위반함
        • 참조 무결성
          • 외래키는 널이거나 참조 릴레이션에 있는 기본키와 같아야 함
          • 외래키가 널 — 아직 참조할 튜플을 정하지 못함
          • 릴레이션은 참조할 수 없는 외래키값을 가질 수 없음
    4. 트랜잭션
      1. 정의
        • 하나의 논리적 기능을 수행하기 위한 작업 단위
        • 한꺼번에 모두 수행되어야 할 일련의 데이터베이스 연산
        • 병행 제어 및 회복 작업의 논리적 단위(LUW, Logical Unit of Work)
      2. 트랜잭션의 ACID 성질
        • 원자성(Atomicity) — 트랜잭션 내의 모든 연산은 반드시 한꺼번에 완료돼야 하며, 그렇지 못한 경우 한꺼번에 취소돼야 함
        • 일관성(Consistency) — 트랜잭션이 성공적으로 완료되면 일관성 있는 데이터 상태로 변환함. 프로그램 실행 중 일관성 위반은 상관없음
        • 격리성(Isolation) — 트랜잭션이 실행 중에 있는 연산 중간 결과는 다른 트랜잭션이 접근 못함
        • 영속성(Durability) — 트랜잭션이 성공적으로 완료되면, 그 결과는 영속적임. 시스템은 완료된 결과의 영속성을 보장해야 함
  2. 데이터베이스 보안 요구사항
    1. 데이터베이스 보안
    2. 보안 위협
      1. 데이터베이스 보안 위협
        • 개요
          • 정보의 부적절한 유출, 부적절한 데이터 처리와 수정으로 야기되는 데이터 무결성 손상
          • 서비스 거부 공격
        • 주요 위협
          • 애그리게이션(Aggregation, 집성)
            • 민감하지 않은 정보를 수집, 조합하여 민감한 정보 생성
            • 낮은 보안 등급의 정보 조각을 조합하여 높은 등급의 정보를 알아냄
            • 집성 대응책으로 제안된 것이 거의 없음
          • 추론
            • 일반적인 데이터로부터 비밀 정보를 획득할 수 있는 가능성
            • 통계적인 데이터 값으로부터 개별적인 데이터 항목에 대한 정보를 추적하지 못하도록 해야 함(통제하기 가장 어려운 위협)
            • 추론 대응책
              • 다중 사례화(Polyinstantiation) — 두 버전의 동일 객체를 생성하여 낮은 주체가 실제 정보를 알지 못하게 하며, 보안 수준을 갖지 않은 엔티티에게 거짓 정보 제공
              • Partition, Cell suppression, Noise, Perturbation
    3. 보안 요구사항
      • 부적절한 접근 방지
      • 추론 방지
      • 무결성 보장
      • 운영적 무결성 보장 — 트랜잭션의 병행 처리 동안 데이터에 대한 논리적 일관성을 보장해야 함
      • 의미적 무결성 보장 — 데이터에 대한 허용값을 통제함으로써 변경 데이터의 논리적 일관성을 보장해야 함
      • 감사 기능
      • 사용자 인증 — OS보다 엄격하게
      • 기밀성 보장
  3. 데이터베이스 보안 통제
    1. 데이터베이스 보안 제어
      1. 개요
        • 흐름 제어, 추론 제어, 접근 제어에 대한 보안 측정을 통해
        • 암호 기법을 첨가하여 비밀성 보장
      2. 흐름 제어
        • X의 값을 읽어 Y에 기록할 때 X와 Y 간 정보 흐름 발생
        • 보다 낮은 보호 수준의 객체로 이동하는 것을 검사하여 접근 가능한 객체 간의 정보 흐름 조정
      3. 추론 제어
        • Y=f(X)에서 X를 사용하여 Y를 얻을 수 있음
        • 간접적인 데이터 노출로부터 데이터 보호
        • 추론 채널
          • Y를 유도하기 위해 X를 찾는 채널
          • 간접 접근, 상관 데이터, 미싱 데이터
        • 방법
          • 비밀 정보 은폐
          • 모든 사용자에 대한 정보를 유지하며 사용자가 갖고 있는 데이터를 고려하여 질의 허용 여부를 결정하는 사용자의 데이터 지식 추적
          • 사용자에게 부정확한/일관성 없는 질의 결과 제공
      4. 접근 제어 — 데이터베이스의 객체는 상호 관련되어 있어 사용자는 하나의 데이터 요소를 읽고 다른 데이터의 내용을 결정할 수 있음
    2. DBMS 보안 통제
      1. SQL 기반 접근 통제(GRANT/REVOKE 접근 통제)
      2. 뷰 기반 접근 통제
          • 실제로 존재하지 않고, 조작 요구 시마다 기본 테이블의 데이터를 이용하여 내용 생성
          • 실행 시간에만 구체화되는 특수한 테이블
          • 논리적 독립성 제공
      3. DBMS 보안 점검 사항
        • 기본적인 보안 취약점 점검
          • 디폴트 계정 패스워드 변경
          • DB 패스워드 규칙 강화
          • DBA 권한 제한 — 일반 계정이 DBA 권한을 갖지 않도록 주의
          • 보안 패치 적용
        • 추가적인 보안 취약점 점검
          • 사용하지 않는 계정 삭제
          • 개발자 IP 접근 제한
          • 제품별 취약점 제거
          • 데이터 암호화
    3. 데이터베이스 보안
      1. 데이터베이스 보안과 다중 수준 보안
        • 세분화 정도의 관점에서 다중 수준 보안을 관계형 데이터베이스에 적용하는 방법
          • 전체 데이터베이스
          • 개별 테이블(관계)
          • 개별 열(속성)
          • 개별 행(튜플)
          • 개별 요소
        • 분류의 세분화 정도 — 접근 제어 시행 방법에 영향, 추론 제어
      2. DB 암호화 방법
        • 개요
          • 컬럼 암호화 — Plug-In, API, Hybrid
          • 블록 암호화 방식 — TDE, 파일 암호화 방식
        • Plug-In 방식
          • 암복호화 모듈이 DB 서버에 설치되고 DBMS에서 플러그인으로 연결된 암복호화 모듈을 호출하는 방식
          • 응용프로그램의 수정이 거의 필요하지 않아 구현 용이
          • 기존 DB 스키마와 대응하는 뷰를 생성하고 암호화할 테이블을 추가하는 작업 필요
          • 모듈 호출 시 추가적인 부하로 성능 저하 가능
        • API 방식
          • 암복호화 모듈이 API 라이브러리 형태로 각 애플리케이션 서버에 설치되고 응용프로그램에서 암복호화 모듈을 호출하는 방식
          • 애플리케이션에 부하 발생
          • 구축 시 응용프로그램 수정 필요
          • 애플리케이션 서버와 DB 서버 간의 통신에서 암호화된 정보의 전송 보장
          • 기존 애플리케이션에 대한 전면적인 수정이 가능한 경우 효과적
        • Hybrid 방식
          • 플러그인 방식의 배치 업무의 성능 저하를 보완하기 위해 AIP 방식 이용
          • SQL은 API 방식을 이용하여 성능을 보장하도록 하고, 나머지 대부분은 DB 내 Plug-In 방식을 이용하여 애플리케이션 수정을 최소화하도록 암복호화 모듈을 DB 서버와 애플리케이션 서버에 설치
        • TDE(Transparent Data Encryption) 방식
          • DBMS에 내장돼 있는 암호화 기능 이용
          • DBMS 커널 수준에서 처리되므로 기존 응용프로그램의 수정이나 DB 스키마 변경이 거의 필요하지 않고 DBMS 엔진에 최적화된 성능 제공 가능
        • 파일 암호화 방식(운영체제 암호화 방식)
          • OS상에서 확인 가능한 개체인 파일을 암호화하는 방식
          • 파일에 대해 직접적으로 암호화를 수행하여 DB의 데이터 파일뿐만 아니라 로그 파일, 이미지 파일, 음성/영상 등의 비정형 데이터에 대한 암호화 적용 가능
  4. DMBS 보안 관리
    1. MS-SQL
      1. 개요
        • 응용프로그램을 통해 운영체제의 파일이나 명령을 실행시킬 수 있는 것 — MS-SQL, xp-cmdshell
        • xp_cmdshell
          • 데이터베이스를 통해 운영체제의 명령을 실행하고, 파일 등에 접근할 수 있도록 MS-SQL에서 지원하는 확장 저장 프로시저
          • MS-SQL 관리자 계정(sa)에 의해 실행되는데, 계정이 취약한 경우 데이터베이스에 대한 권한뿐만 아니라 운영체제에 대한 접근 권한 노출 가능
        • 저장 프로시저
          • 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
          • 일반적인 쿼리 문장을 사용하는 것보다 성능상의 이점
      2. 인증
        • 윈도우 인증 모드
          • SQL Server 기본 인증 모드
          • DB 인증 절차를 윈도우 사용자 인증 방법 사용
          • 윈도우 사용자 또는 그룹에 따라 SQL 서버에 대한 액세스 부여
          • 데이터베이스 관리자가 사용자에게 접근 권한 부여 가능
          • 윈도우 인증 로그인 추적 시 SID 값 사용
        • 혼합 인증 모드
          • Windows 인증과 SQL 서버 인증 혼용
          • SQL 서버로 인증된 사용자의 사용자 이름과 암호쌍은 SQL 서버 내에 유지
          • 표준 윈도우 로그인을 사용할 수 없는 경우 이용
      3. 고정 데이터베이스 역할
        • db_owner — 모든 유지 관리 및 구성 작업 수행
        • db_accessadmin — 윈도우 사용자, 그룹 및 SQL tjqj fhrmdlsdp eogks dortptm rnjsgks cnrk, wprj
        • db_datareader — 모든 사용자 테이블의 모든 데이터 읽기 가능
        • db_datawriter — 추가, 삭제, 변경
        • db_ddladmin — DDL 명령 실행 가능
        • db_securityadmin — 역할 구성원 자격을 수정하고 사용 권한 관리
        • db_backupoperator — 데이터베이스 백업 수행
        • db_denydatareader
        • db_denydatawriter