💾 데이터베이스 보안과 암호화 완벽 정리
DB보안(Database Security) 과 DB암호화 기술의 전반적인 내용을 학습합니다. DB 접근통제, 권한관리, DBMS 보안설정, 백업 관리, 암호화 구현 방법 등 실제 보안 환경에서의 설정 예시를 중심으로 정리했습니다.
1️⃣ DB 보안의 개요
데이터베이스 보안이란, 비인가된 변경, 파괴, 노출 및 비일관성으로부터 DB를 보호하는 모든 기술과 절차를 말합니다.
주요 보호 목표
- 부적절한 접근 방지: 인가된 사용자만 접근 허용
- 무결성 유지: 오류, 바이러스 등으로부터 데이터 손상 방지
- 추론 방지: 데이터로부터 개인 정보 유추 차단
- 감사 기능: 접근 기록(Audit Log) 생성
- 정보 노출 방지: 시스템 프로그램 간 부적절한 정보 전송 차단
- 엄격한 사용자 인증: 정당한 사용자만 접근 허용
- 다단계 보호: 등급별 접근 제한으로 기밀성 강화
2️⃣ DB 보안의 필요성과 배경
정보화 사회의 발전으로 데이터 유출 경로가 다양해지고, 내부자 유출의 비율이 높아졌습니다.
산업기밀 유출의 90%가 내부자 소행으로 밝혀졌으며, 발생 건수는 적지만 피해 규모는 막대합니다.
DB보안은 단순한 기술적 보호가 아닌, 기업 신뢰와 브랜드 이미지 보호를 위한 필수 요소입니다.
3️⃣ DB 보안의 목적
| 보안 목표 | 설명 |
|---|---|
| 기밀성 (Confidentiality) | 부적절한 정보 유출 방지 |
| 무결성 (Integrity) | 데이터의 변조 방지 및 탐지 |
| 가용성 (Availability) | 서비스 거부 방지 및 정상 접근 보장 |
| 인증 (Authentication) | 정당한 사용자만 DB 접근 허용 |
✅ DB 보안의 3요소: 인증 / 접근통제 / 감사
4️⃣ 접근통제(Access Control)
접근통제는 **사용자 또는 응용 프로그램(주체)**가 테이블, 뷰, 행, 열 등 객체에 접근할 수 있는 권한을 정의·제한하는 기술입니다.
구성 요소
- 주체(Subject): 사용자 또는 응용 프로그램
- 객체(Object): DB 내의 테이블, 컬럼, 뷰 등
- 조치(Action): 읽기, 쓰기, 삭제, 수정 등
- 제약(Constraint): 접근에 대한 정책적 제한
5️⃣ 접근통제의 종류
| 종류 | 정의 | 특징 | 적용 방식 |
|---|---|---|---|
| DAC (임의적 접근제어) | 객체 소유자가 접근 여부 결정 | ID 기반 통제, 트로이목마에 취약 | ACL, Capability List 기반 |
| MAC (강제적 접근제어) | 관리자가 보안등급 기반 접근 제어 | 비밀성 유지, 상하위 등급 전파 | 등급별 접근: Unclassified → Top Secret |
| RBAC (역할기반 접근제어) | 중앙관리자가 역할 단위로 권한 부여 | 사용자-역할-권한 관계로 효율적 관리 | 조직별 역할(Role) 기반 |
RBAC은 현대 DB보안의 표준 모델로, 사용자 권한을 직무(role) 단위로 부여하여 관리 복잡도를 낮춥니다 oai_citation:3‡[교안]인터넷보안_05.pdf.
6️⃣ DB 권한 관리
DBMS는 사용자별로 접근 권한을 설정하며, 권한 오남용을 방지하기 위해 권한 부여(GRANT) 및 회수(REVOKE) 절차를 거칩니다.
🔹 MySQL 권한 관리 예시
-- 사용자 등록
mysql> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
-- 권한 부여
mysql> GRANT SELECT, INSERT, UPDATE ON DBname.* TO 'username'@'localhost';
-- 권한 회수
mysql> REVOKE UPDATE ON DBname.* FROM 'username'@'localhost';기본적으로 모든 권한은 'N'으로 설정되며 필요 시 'Y'로 변경합니다
7️⃣ SYSDBA 로그인 제한 (Oracle 예시)
- 문제: DBA 그룹에 속한 사용자는 패스워드 없이 SYSDBA 접근 가능
- 위험: 비인가자가 그룹에 포함될 경우 DB 삭제·변조 가능
- 조치 방법:
sqlnet.authentication_services = (none)
$> sqlplus /nolog
SQL> connect sys/<패스워드> as sysdba설정 후 반드시 인증 과정을 거쳐야 접속이 가능합니다
8️⃣ DBMS 보안 설정
| 보안 항목 | 설명 | 조치 방법 |
|---|---|---|
| 백업관리 | DBMS 유지보수 및 업그레이드 시 전체 Full 백업 수행 | 정기 백업 정책 수립 및 검증 서버 제외 |
| 샘플 DB 제거 | 초기 설치 시 포함된 TEST DB 제거 | 운영 환경정보 노출 방지 |
| 원격접속 제한 | 허용되지 않은 IP에서의 접속 차단 | 방화벽, IPS 설정을 통한 네트워크 통제 |
9️⃣ DB 암호화 방식
암호화는 데이터의 기밀성을 보장하며, **저장형(Static)**과 전송형(Transit) 암호화로 구분됩니다.
암호화 구현 방식 비교
| 구분 | DB연동 방식 | 응용프로그램 연동 방식 |
|---|---|---|
| 설명 | DB 서버단에서 암호화/복호화 수행 | 응용프로그램 소스코드에서 암호화 수행 |
| 장점 | 기존 시스템 수정 최소화 | 신규 시스템 구축 시 효율적 |
| 단점 | DB 부하 증가 가능 | 소스 수정 시 유지보수 어려움 |
🔟 DB 보안 운영 및 법적 준수
보안의 궁극적 목적은 법적 기준을 충족하는 시스템 안정성 확보입니다. DB 보안 정책은 다음과 같은 원칙을 따라야 합니다.
- 개인정보보호법 등 관련 법률 준수
- 접근권한 최소화 (최소권한 원칙)
- 정기적인 취약점 점검 및 로그 감사
- 내부자 보안 교육 및 사고 대응 체계 구축
“보안은 기술이 아니라 책임의 문화다.”
🧭 정리
- DB 보안의 3대 목표는 기밀성 / 무결성 / 가용성
- 접근통제는 DAC, MAC, RBAC 세 가지 방식으로 분류
- 권한관리 및 로그인 제한, 백업, 원격접속 제한은 필수
- 암호화는 DB단 / 응용단에 따라 구현 방식이 다름
- 모든 보안활동의 기반은 법적 준수와 관리체계 수립