D-13

📖 데이터 딕셔너리 접근 제한

데이터베이스 보안

위험도: 상
💡 쉽게 말하면
도서관에 모든 회원의 비밀 명부가 있는데, 평범한 열람증만 있어도 그 명부를 펼쳐볼 수 있다면 큰일입니다. O7_DICTIONARY_ACCESSIBILITY=TRUE는 "ANY" 권한만 있으면 SYS의 비밀 사전(딕셔너리)을 들여다보게 합니다. 이 문을 닫아두어야 합니다.

🎯 직접 해보기 — 공격을 실행해 보세요

아래에서 시스템 상태를 취약 또는 안전(조치 적용)으로 바꾼 뒤 공격 실행을 눌러, 같은 공격이 어떻게 다르게 끝나는지 직접 확인하세요.

현재: 취약한 설정 — 공격이 통할까요?
# 공격자가 ANY 권한으로 SYS.USER$의 비밀번호 해시를 덤프한다 # [공격 실행] 버튼을 누르면 시작합니다.

📋 설정 비교 (왜 막혔나?)

✗ 취약한 설정
-- 파라미터 확인 SQL> SHOW PARAMETER O7_DICTIONARY_ACCESSIBILITY O7_DICTIONARY_ACCESSIBILITY boolean TRUE → 딕셔너리 접근으로 권한상승 (취약)
✓ 안전한 설정
-- FALSE 설정 SQL> ALTER SYSTEM SET O7_DICTIONARY_ACCESSIBILITY=FALSE SCOPE=SPFILE; System altered. → 딕셔너리 보호 (양호)

🔧 조치 방법

  1. O7_DICTIONARY_ACCESSIBILITY=FALSE로 설정 후 재기동합니다.
  2. SELECT ANY TABLE 등 ANY 권한 보유 계정을 점검합니다.

✅ 점검 체크리스트

  • O7_DICTIONARY_ACCESSIBILITY가 FALSE인가
  • ANY 권한 보유 계정이 최소화됨
점검기준: 데이터베이스 > 데이터 딕셔너리 접근 제한