(세종대학교) 데이터베이스 보안 - 수업 정리 내용
5.1. 정보보호 개념
- 보안 : 아래 3요소를 보장하는 것
- 기밀성 (Confidentiality)
- 무결성 (Integrity)
- 가용성 (Availability)
5.1.1. 보안 공격 유형
Interruption (서비스 거부)
- 공격자가 Dos(Denial of Service) 공격 등을 통해 사용자의 서비스를 막음
- 가용성에 대한 공격
- 가용성 : 사용자가 서비스를 사용할 수 있어야하는 성질
Interception (메시지 갈취)
- 공격자가 사용자의 메시지를 갈취하여 확인
- 기밀성에 대한 공격
- 기밀성 : 갈취한 메시지 내용이 어떤 뜻인지 모르게 해야하는 성질
신분 위장
- 공격자가 사용자처럼 신분위장하여 메시지를 보냄
- 인증에 대한 공격
- 메시지 발송인을 확인해야함
- 인증에 대한 공격
- 공격자가 사용자처럼 신분위장하여 메시지를 보냄
Modification (수정)
- 공격자가 메시지를 수정함
- 무결성 훼손
- 전달되는 메시지가 중간에 변경되면 안되는 성질
- 무결성 훼손
- 공격자가 메시지를 수정함
기타 주요 공격
- 부인 공격
- 메시지 수신 여부 또는 송신 여부를 부인
- 부인 공격
아까 3요소 (기밀성, 무결성, 가용성)에 추가로 인증과 부인 방지까지…
5.1.2. 정보보호란?
다양한 보안 공격으로부터 정보의 수집, 가공, 저장, 검색, 송신, 수신 중에서 정보의 훼손, 변조, 유출 등을 방지하기 위한 관리적, 기술적 수단 또는 그러한 수단으로 이루어지는 행위
= 다양한 보안 공격으로부터 정보에 대한 기밀성, 가용성, 무결성, 인증, 부인 방지 등을 제공하기 용이한 관리적, 기술적 수단 또는 그러한 수단으로 이루어지는 모든 행위
정보보호 기술의 적용
- 송신자, 수신자에서는 기밀성 제공을 위한 암호화 기술이 필요
- 예제
- 무결성 보안 기술 예제 : 메시지 변경 여부 확인을 위해 Hash, MAC 등의 보안 기술 적용
- 안전한 데이터 송수신을 위해 복합적으로 보안 기술 적용
- 무결성 보안 기술 예제 : 메시지 변경 여부 확인을 위해 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 관리하는 고급 사이버 보안 전문가 양성 필요
- 데이터 볼륨 증가
- 데이터베이스 백업은 장애 발생 이전 상태로 데이터를 복구할 수 있는 중요한 수단
내부자 위협
- 조직의 임직원이 회사나 정보 통신 시스템에 보안상 위협을 가하는 행위
- 바이러스나 해킹 공격과 같은 외부 위협이 아닌 인가된 내부 사용자에 대한 위협
- 인가된 사용자들은 쉽게 비밀 자료에 접근 가능
- 데이터베이스 액세스 권한을 지닌자
- 공격을 가하려는 악의적인 내부자
- 데이터베이스를 공격에 취약하게 만드는 오류를 저지르는 데이터베이스 보안에 대한 지식/경험이 부족하거나 태만한 내부자
- 데이터베이스 자체에 대한 액세스 권한을 얻기 위해 새롭게 취임하거나, 피싱 등의 방식을 통해 신임 정보를 얻는 외부자
- 조직의 임직원이 회사나 정보 통신 시스템에 보안상 위협을 가하는 행위
데이터 유출 위협
- 비암호화 데이터는 네트워크 도청, 파일백업, 정당한 사용자 및 비인가 사용자에 의한 데이터베이스 검색을 통한 데이터 유출 가능
- 안정성이 확인되지 않은 암호 알고리즘/모듈을 사용하는 경우 악의적인 사용자에 의해 암호문 해독 가능
기타 보안 위협
- 사람의 실수
- 매우 흔하고 치명적
- 데이터베이스 보안 공격의 거의 절반
- 취약한 암호, 암호 공유 및 무지한 사용자 행동
- 멀웨어
- 취약점을 악용하거나 기타 방식으로 데이터베이스에 손상을 유발하기 위해 특별히 고안된 소프트웨어
- 사람의 실수
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) 학생은 자신이 수강 신청한 과목의 시간에만 해당 실습강의실에서 컴퓨터를 사용할 수 있다.
- DAC 모델, MAC 모델, RBAC 모델
기타 접근제어
- SQL 기반 접근 통제
- grant, revoke 문을 통해 다른 사용자에게 권한 부여 및 회수
- 객체 소유자
- 객체 권한 부여 및 회수
- DBA
- 시스템 권한 부여 및 회수
- View 기반 접근 통제
- view
- 하나 이상의 테이블로부터 유도되어 만들어진 가상 테이블
- 사용자 그룹별로 뷰를 생성하여 해당 뷰에만 접근 가능하도록 통제
- 원본 테이블에 접근 불가 (특정 열과 행만 보는 느낌)
- view
- SQL 기반 접근 통제
접근제어 모델 선택
- 목적에 따라
- 사용자 식별
- 보호객체 정의
- 객체 간 관계와 특징
- 세밀한 접근 제어 지원
- 요구사항 분석
- 최적의 접근제어 정책/모델 결정
- 목적에 따라
5.5.2. 데이터베이스 암호화
데이터 보호 → 데이터 및 데이터베이스 암호화
- 민감 데이터 유출 대비
- 데이터 중요도 및 민감도 따라 범위 설정
기밀성, 무결성, 인증 등 활용
암호화 방식
- 응용프로그램 자체 암호화
- DB 서버 암호화
- DBMS 자체 암호화
- DBMS 암호화 기능 호출
- 운영체제 암호화 등
암호화 종류 및 특징
암호화/복호화 동작
안전한 암호 알고리즘 종류
'학교수업 > 데이터베이스' 카테고리의 다른 글
데이터베이스 보안 - 7주차. 데이터베이스 시스템 보안 (2) | 2025.04.19 |
---|---|
데이터베이스 보안 - 6주차. 데이터베이스 관리 시스템 (DBMS) 보안 (0) | 2025.04.19 |
데이터베이스 보안 - 4주차. 구조화 질의어 (SQL) (3) | 2025.04.12 |
데이터베이스 보안 - 3주차. 관계형 데이터베이스 (RDB) (0) | 2025.04.12 |
데이터베이스 보안 - 2주차. 데이터베이스 관리 시스템 (DBMS) (2) | 2025.04.12 |