학교수업/데이터베이스

데이터베이스 보안 - 5주차. 데이터베이스 보안 개요

정보보호학과 새내기 2025. 4. 19. 21:26

(세종대학교) 데이터베이스 보안 - 수업 정리 내용

5.1. 정보보호 개념

  • 보안 : 아래 3요소를 보장하는 것
    • 기밀성 (Confidentiality)
    • 무결성 (Integrity)
    • 가용성 (Availability)

5.1.1. 보안 공격 유형

  • Interruption (서비스 거부)

    • 공격자가 Dos(Denial of Service) 공격 등을 통해 사용자의 서비스를 막음
    • 가용성에 대한 공격
      • 가용성 : 사용자가 서비스를 사용할 수 있어야하는 성질
  • Interception (메시지 갈취)

    • 공격자가 사용자의 메시지를 갈취하여 확인
    • 기밀성에 대한 공격
      • 기밀성 : 갈취한 메시지 내용이 어떤 뜻인지 모르게 해야하는 성질
  • 신분 위장

    • 공격자가 사용자처럼 신분위장하여 메시지를 보냄
      • 인증에 대한 공격
        • 메시지 발송인을 확인해야함
  • Modification (수정)

    • 공격자가 메시지를 수정함
      • 무결성 훼손
        • 전달되는 메시지가 중간에 변경되면 안되는 성질
  • 기타 주요 공격

    • 부인 공격
      • 메시지 수신 여부 또는 송신 여부를 부인
  • 아까 3요소 (기밀성, 무결성, 가용성)에 추가로 인증과 부인 방지까지…

5.1.2. 정보보호란?

  • 다양한 보안 공격으로부터 정보의 수집, 가공, 저장, 검색, 송신, 수신 중에서 정보의 훼손, 변조, 유출 등을 방지하기 위한 관리적, 기술적 수단 또는 그러한 수단으로 이루어지는 행위

  • = 다양한 보안 공격으로부터 정보에 대한 기밀성, 가용성, 무결성, 인증, 부인 방지 등을 제공하기 용이한 관리적, 기술적 수단 또는 그러한 수단으로 이루어지는 모든 행위

  • 정보보호 기술의 적용

    • 송신자, 수신자에서는 기밀성 제공을 위한 암호화 기술이 필요
    • 예제
      • 무결성 보안 기술 예제 : 메시지 변경 여부 확인을 위해 Hash, MAC 등의 보안 기술 적용
        • 안전한 데이터 송수신을 위해 복합적으로 보안 기술 적용

5.2. 데이터베이스 보안 개요

  • 데이터 베이스 보안
    • 데이터베이스의 기밀성, 무결성 및 가용성을 설정하고 유지하도록 설계된 다양한 툴 또는 통제 기능 및 수단
  • 분류
    • 데이터베이스 보안
      • 물리적 환경에 대한 보안 : 자연 재해 등
      • 권한 관리를 통한 보안
        • 객체 권한
        • 역할(권한 바구니)
      • 운영 관리를 통한 보안
        • 무결성 제공 기술/ 데이터 암호화/ 보안정책 관리
  • 보호 대상
    • 데이터베이스의 데이터 → 데이터 암호화
    • 데이터베이스 관리시스템(DBMS) → 접근 통제 & 권한부여
    • 연관된 애플리케이션
    • 물리적 데이터베이스 서버/ 가상 데이터베이스 서버와 기본 하드웨어
    • 데이터베이스에 액세스하는 데 사용되는 컴퓨팅/네트워크 인프라

5.2.1. 데이터베이스 보안 위협

  • 개요

    • 정보보안 기술, 시스템 환경, 다양한 보안 위협 및 공격 등 모든 측면이 포함된 복잡하고 어려운 작업
    • 잘 알려진 보안 위협(취약점) 및 공격 등에 대해 인지, 사전에 대비하는 것이 중요
  • 데이터베이스 소프트웨어 구성 오류/취약점 악용

    • 공격자 : 다수의 소프트웨어 구성 오류, SW 취약점 공략
    • 시스템 설정, sw 개발 시 DBA(DB 관리자) 또는 SW 개발자의 역량 중요
    • 취약점 해결을 위한 정기적인 보안 패치 발행
      • 시기적절한 패치를 적용하지 못하면 보안에 더욱 취약 → 최근 오라클 털렸다네요 (쓴 날짜 25.04.15)
  • SQL / NoSQL 인젝션 공격

    • 데이터베이스 특화 위협
      • 가장 흔한 웹 해킹 공격 유형, 발생 시 큰 영향 발생
    • 웹 애플리케이션 사용자 입력값에 필터링이 제대로 적용돼 있지 않을 때 발생
      • 조작된 SQL 질의문 삽입 → 웹서버 DB 정보 열람, 정보 유출 및 조작, 관리자 인증 우회 가능
  • 서비스 거부 공격

    • Denial of Service(DoS) 공격 또는 Distributed DoS(Ddos) 공격
    • 서버가 처리할 수 있는 능력 이상의 것을 요구하여 다른 서비스 정지 또는 시스템을 다운 시키는 것으로 네트워크 기능 마비가 목적
  • 백업에 대한 공격

    • 데이터베이스 백업은 장애 발생 이전 상태로 데이터를 복구할 수 있는 중요한 수단
      • 현재 운용중인 데이터베이스와 마찬가지로 엄격한 보호 필요
        • 이행하지 못할 시 백업에 대한 공격에 취약
    • 약화 요소
      • 데이터 볼륨 증가
        • 데이터 캡쳐, 저장 및 처리는 지속적, 기하급수적으로 증가
        • 효율적이고 보다 세밀한 데이터베이스 저장 및 접근제어 방법 필요
          • ex) 데이터 중요도에 따른 분류 및 접근제어, 암호화 적용
      • 복잡해지는 네트워크 환경
        • 기업이 멀티클라우드 또는 하이브리드 클라우드 아키텍처로 이동하여 DB보안 솔루션의 선택, 배치 및 관리 수행 까다로움
      • 사이버 보안 스킬 부족
        • DB, DBMS 관리하는 고급 사이버 보안 전문가 양성 필요
  • 내부자 위협

    • 조직의 임직원이 회사나 정보 통신 시스템에 보안상 위협을 가하는 행위
      • 바이러스나 해킹 공격과 같은 외부 위협이 아닌 인가된 내부 사용자에 대한 위협
      • 인가된 사용자들은 쉽게 비밀 자료에 접근 가능
      • 데이터베이스 액세스 권한을 지닌자
        1. 공격을 가하려는 악의적인 내부자
        2. 데이터베이스를 공격에 취약하게 만드는 오류를 저지르는 데이터베이스 보안에 대한 지식/경험이 부족하거나 태만한 내부자
        3. 데이터베이스 자체에 대한 액세스 권한을 얻기 위해 새롭게 취임하거나, 피싱 등의 방식을 통해 신임 정보를 얻는 외부자
  • 데이터 유출 위협

    • 비암호화 데이터는 네트워크 도청, 파일백업, 정당한 사용자 및 비인가 사용자에 의한 데이터베이스 검색을 통한 데이터 유출 가능
    • 안정성이 확인되지 않은 암호 알고리즘/모듈을 사용하는 경우 악의적인 사용자에 의해 암호문 해독 가능
  • 기타 보안 위협

    • 사람의 실수
      • 매우 흔하고 치명적
      • 데이터베이스 보안 공격의 거의 절반
      • 취약한 암호, 암호 공유 및 무지한 사용자 행동
    • 멀웨어
      • 취약점을 악용하거나 기타 방식으로 데이터베이스에 손상을 유발하기 위해 특별히 고안된 소프트웨어

5.2.2. 정보보안 vs. 데이터베이스 보안

  • 목적
    • 정보보안
      • 정보에 대한 기밀성, 무결성, 가용성 등을 유지하는 것
      • 네트워크 보안, 서버 보안, 어플리케이션 보안, 데이터베이스 보안
    • 데이터베이스 보안
      • 데이터베이스 및 데이터베이스 내에 저장된 데이터 보호에 특화
      • 데이터베이스에 저장된 데이터를 공개/노출, 변조/파괴/훼손,재해/재난 등의 위협으로부터 보호하여 기밀성, 무결성, 가용성 등을 확보하는 것

5.3. 데이터베이스 공격 사례

5.3.1. 국내외 데이터베이스 유출 사례

  • 2017년 A 숙박업체의 개인정보 유출
  • 규모가 큰 쇼핑 정보공유 B 사이트
    • sql injection
  • 2014년 야후

5.3.2. 사례에서 얻을 수 있는 내용

  • 해킹 후 파급력
    • 기업 → 신뢰도 하락
    • 개인 → 추가 피해 발생 (피싱 등)
  • 보안 담당자 역할
    • 보안 강화 및 주의
    • 모의 해킹 후 취약점 미리 조치
  • 일반 사용자
    • 아이디, pw 관리 잘 하기

5.4. 데이터베이스 보안 요구사항

  • 데이터베이스, 관련 시스템(DBMS, 응용 프로그램)의 환경 및 데이터베이스 서비스 목적/형태 등에 따라 매우 다양

  • 데이터베이스 특화

  • 접근제어 & 인증

    • 밀접한 관련
    • 데이터베이스 시스템 보안의 기본 : 접근 제어
      • 보안을 위해 ID 검증(인증) 및 작업(권한) 관리
    • 운영체제 사용자 인증과 별개로 엄격한 인증 요구
    • 부적절한 접근으로부터 데이터를 보호하기 위해 승인된 사용자에게만 적절한 접근 권한 부여 (Authorization)
      • 권한 부여 범위는 보안정책에 따라 결정
    • DBMS가 모든 사용자의 접근 요청 검사
  • 데이터 보호

    • 기밀자료, 민감한 정보 유출 대비
      • 데이터 유출 등의 보안 사고 발생 시 데이터 암호화를 통해 대비
        • 데이터 암호화
          • 중요 테이블 전체 또는 민감정보 포함 컬럼에 대한 암호화
          • 안전하고 권고되는 암호화 알고리즘 및 암호화 모듈 사용
          • 암호화 키에 대한 안전한 관리와 운영 중요
  • 추론 방지

    • 추론 : 기존 데이터를 통해 다른 데이터 값을 알 수 있는 것
    • 데이터베이스 내 데이터는 의미적으로 상호 연관되어 데이터에 직접 접근하지 않아도 이미 가용한 데이터의 값을 이용한 추론을 통해 다른 데이터의 값을 알 수 있음
    • 일반적 데이터로부터 민감/비밀정보를 획득하는 추론 불가능하게 만들기

→ 위 3가지 (접근제어&인증, 데이터 보호, 추론 방지)는 기밀성 및 비밀성 보장 관련

  • 데이터베이스 무결성 보장

    • 운영적 무결성 보장
      • 트랜잭션의 병행처리 동안에 데이터베이스 내의 데이터에 대한 논리적인 일관성 보장
      • Locking 기법 등과 같은 병행 수행 제어 기법 등 사용
    • 의미적 무결성 보장
      • 데이터에 대한 허용값을 통제함으로써 변경 데이터의 논리적 일관성 보장
      • 무결성 제약조건으로 표현 : constraint - check 구문으로 테이블 생성 시 정의
  • 감사 및 모니터링

    • 데이터베이스에 대한 모든 활동에 대한 감사기록 생성
      • 네트워크 통해 발생하는 작업
      • 네트워크 모니터링을 우회하는 작업
      • 데이터베에스 내에서 실행된 모든 작업
    • 감사 기능은 네트워크가 암호화 된 상태에서도 작동해야함
    • 데이터, 클라이언트, 작업 세부 정보 및 SQL 문 등에 대한 정보를 포함한 감사 제공
  • 기타 요구사항

    • 백업 보안
      • 백업, 사본, 이미지 등을 데이터베이스와 동일하게 보안 통제
    • 애플리케이션 / 웹 서버 보안
      • 공격 대상 채널이 될 수 있으므로 지속적인 보안 관리 대상
    • 데이터베이스 소프트웨어 보안
      • 최신 버전 사용, 취약점 관련 패치 즉시 적용
    • 물리적 보안
      • 서버가 안전하고 냉난방이 구비된 환경인지 확인
    • 네트워크 보안
      • 데이터 전송은 안전한 전송채널로 통신
  • 데이터베이스 보안 전담인력 부족

    • 제한적 지식 보유

      • 데이터베이스 관리자는 보안에 대한 지식 부족

      • 보안 전문가는 데이터베이스에 대한 지식 부족

        → 둘을 융합한 전담 인력 필요

  • 보안 ↔ 접근성, 성능, 가용성
    • trade-off
    • 결국 보안이 후순위 되는 문제
    • 연관 관계 파악하여 보안 요구 사항 분석 및 DB 설계 및 구현 필요

5.5. 데이터베이스 보안 기술

5.5.1. 데이터베이스 접근 제어

  • 개요

    • 데이터에 허가 받지 않은 접근과 이용을 막기 위한 것
    • 접근 제어 모델
      • 임의적 접근제어, 강제적 접근제어, 역할기반 접근제어, 속성기반 접근제어
  • 임의적 접근 제어 (Discretionary Access Control, DAC)

    • 접근을 요청하는 사용자의 신분 및 접근 규칙 기반하는 접근제어
      • 신분기반접근제어
    • 객체 소유자가 객체 보안 레벨 결정 및 객체 접근제어 설정
    • 대표적 접근제어 모델
      • 접근제어행렬 : 가상화 모델
      • 권한목록
      • 접근제어목록
    • 객체 소유자가 SQL문 (grant, revoke)을 통하여 다른 사용자에게 객체에 대한 특정 권한 부여 및 삭제 가능
  • 강제적 접근 제어 (Mandatory Access Control, MAC)

    • 시스템에 있는 주체와 객체의 보안 분류 등급에 의해 높은 보안 수준을 요구하는 객체는 낮은 보안 수준을 가진 주체가 접근 불가능하게 제어
    • 규칙기반 접근 제어
    • ex) 온라인 카페 등급
    • 중앙 집권적인 관리로 보안성 높은 편
      • 군사 관련, 방화벽 등 강력한 보안이 필요한 곳에서 사용
    • 대표적 모델
      • Bell Lapadula 모델
      • Biba 모델
  • 역할기반 접근 제어 (Role-Based Access Control, RBAC)

    • 객체에 대한 주체의 접근 권한을 주체 신분이나 이미 정해진 규칙에 의해 판단하지 않고, 주체가 소속된 조직 내 역할에 따라 결정

    • 일반적으로 대규모 엔터프라이즈 환경에서 사용

    • DBA는 SQL문 (Create role 문)을 통해 Role 생성 및 특정 사용자에게 객체에 대한 권한 부여 및 회수 가능

  • 속성기반 접근 제어 (Attribute Based Access Control, ABAC)

    • DAC 모델, MAC 모델, RBAC 모델
      • 고정된 자원에 대한 접근 제어 모델로 동적 환경에 부적합
    • 주체와 객체 속성에 대한 조건에 따라 동적으로 분석하여 접근 권한 부여
    • 속성 유형
      • 사용자
      • 객체
      • 환경
    • ex) 학생은 자신이 수강 신청한 과목의 시간에만 해당 실습강의실에서 컴퓨터를 사용할 수 있다.
  • 기타 접근제어

    • SQL 기반 접근 통제
      • grant, revoke 문을 통해 다른 사용자에게 권한 부여 및 회수
      • 객체 소유자
        • 객체 권한 부여 및 회수
      • DBA
        • 시스템 권한 부여 및 회수
    • View 기반 접근 통제
      • view
        • 하나 이상의 테이블로부터 유도되어 만들어진 가상 테이블
        • 사용자 그룹별로 뷰를 생성하여 해당 뷰에만 접근 가능하도록 통제
          • 원본 테이블에 접근 불가 (특정 열과 행만 보는 느낌)
  • 접근제어 모델 선택

    • 목적에 따라
      • 사용자 식별
      • 보호객체 정의
      • 객체 간 관계와 특징
      • 세밀한 접근 제어 지원
    • 요구사항 분석
      • 최적의 접근제어 정책/모델 결정

5.5.2. 데이터베이스 암호화

  • 데이터 보호 → 데이터 및 데이터베이스 암호화

    • 민감 데이터 유출 대비
    • 데이터 중요도 및 민감도 따라 범위 설정
  • 기밀성, 무결성, 인증 등 활용

  • 암호화 방식

    • 응용프로그램 자체 암호화
    • DB 서버 암호화
    • DBMS 자체 암호화
    • DBMS 암호화 기능 호출
    • 운영체제 암호화 등
  • 암호화 종류 및 특징

  • 암호화/복호화 동작

  • 안전한 암호 알고리즘 종류