D-18~19

📡 DB 접근 통제·네트워크 암호화

데이터베이스 보안

위험도: 상
💡 쉽게 말하면
회사 왕래 문서를 봉투 없이 복도에서 그냥 돌리는 것입니다. 평문 통신은 지나가는 누구나 읽을 수 있죠. 게다가 출입문이 임대건물 전 입주자에게 열려 있으면(전 IP 허용) 아무나 왕래를 들춰봅니다.

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

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

현재: 취약한 설정 — 공격이 통할까요?
# 공격자가 내부망에서 평문 DB 트래픽을 스니핑해 계정과 데이터를 가로챈다 # [공격 실행] 버튼을 누르면 시작합니다.

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

✗ 취약한 설정
-- sqlnet 접근 제한·암호화 확인 SQL> cat $ORACLE_HOME/network/admin/sqlnet.ora (TCP.VALIDNODE_CHECKING 항목 없음 — 전 IP 허용) (암호화 설정 없음 — 평문 통신) → 스니핑·외부 접속 노출 (취약)
✓ 안전한 설정
-- 허용 호스트·암호화 설정 SQL> TCP.VALIDNODE_CHECKING=YES / TCP.INVITED_NODES=(app10, was20) SQLNET.ENCRYPTION_SERVER=REQUIRED / SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED → 허용 호스트만 + 통신 암호화 (양호)

🔧 조치 방법

  1. sqlnet.ora에 TCP.VALIDNODE_CHECKING=YES와 허용 노드 목록을 설정합니다.
  2. SQLNET.ENCRYPTION_SERVER=REQUIRED 등 네이티브 암호화·무결성을 강제합니다.
  3. 방화벽 정책과 함께 이중으로 WAS·관리망만 접속을 허용합니다.

✅ 점검 체크리스트

  • 접속 가능 호스트가 제한되어 있는가
  • 통신 구간이 암호화되어 있는가
점검기준: 데이터베이스 > 접근 통제·네트워크 암호화