D-06
👑 DBA/SYSDBA 권한 최소화
데이터베이스 보안
위험도: 상💡 쉽게 말하면
회사에서 아르바이트생에게 마스터키를 주면, 그 사람은 사장실 금고까지 다 열 수 있습니다. 응용프로그램용 계정에 DBA(최고관리자) 권한을 주는 것이 바로 그런 상황입니다. 권한은 꼭 필요한 만큼만 줘야 사고와 내부자 위협을 막습니다.
회사에서 아르바이트생에게 마스터키를 주면, 그 사람은 사장실 금고까지 다 열 수 있습니다. 응용프로그램용 계정에 DBA(최고관리자) 권한을 주는 것이 바로 그런 상황입니다. 권한은 꼭 필요한 만큼만 줘야 사고와 내부자 위협을 막습니다.
🎯 직접 해보기 — 공격을 실행해 보세요
아래에서 시스템 상태를 취약 또는 안전(조치 적용)으로 바꾼 뒤 공격 실행을 눌러, 같은 공격이 어떻게 다르게 끝나는지 직접 확인하세요.
# 공격자가 탈취한 응용 계정의 DBA 권한으로 전체 DB를 장악한다
# [공격 실행] 버튼을 누르면 시작합니다.
📋 설정 비교 (왜 막혔나?)
✗ 취약한 설정
-- DBA 권한 보유자 확인
SQL>
SELECT grantee FROM dba_role_privs WHERE granted_role='DBA';
APPUSER / BATCH / DEV1 ...
→ 응용/개발 계정에 DBA 부여 (취약)
✓ 안전한 설정
-- 불필요 DBA 회수
SQL>
REVOKE DBA FROM APPUSER;
Revoke succeeded.
→ 관리자 권한 최소화 (양호)
🔧 조치 방법
- 응용/개발 계정에서 불필요한
DBA권한을 회수합니다. - 업무에 필요한 최소 권한만 Role로 부여합니다(최소 권한 원칙).
- SYSDBA 접속 가능 계정을 주기적으로 점검합니다.
✅ 점검 체크리스트
- DBA 권한이 관리자 계정에만 부여됨
- 응용/개발 계정에 과도 권한이 없는가
점검기준: 데이터베이스 > 관리자 권한 최소화