D-18~19
📡 DB 접근 통제·네트워크 암호화
데이터베이스 보안
위험도: 상💡 쉽게 말하면
회사 왕래 문서를 봉투 없이 복도에서 그냥 돌리는 것입니다. 평문 통신은 지나가는 누구나 읽을 수 있죠. 게다가 출입문이 임대건물 전 입주자에게 열려 있으면(전 IP 허용) 아무나 왕래를 들춰봅니다.
회사 왕래 문서를 봉투 없이 복도에서 그냥 돌리는 것입니다. 평문 통신은 지나가는 누구나 읽을 수 있죠. 게다가 출입문이 임대건물 전 입주자에게 열려 있으면(전 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
→ 허용 호스트만 + 통신 암호화 (양호)
🔧 조치 방법
sqlnet.ora에TCP.VALIDNODE_CHECKING=YES와 허용 노드 목록을 설정합니다.SQLNET.ENCRYPTION_SERVER=REQUIRED등 네이티브 암호화·무결성을 강제합니다.- 방화벽 정책과 함께 이중으로 WAS·관리망만 접속을 허용합니다.
✅ 점검 체크리스트
- 접속 가능 호스트가 제한되어 있는가
- 통신 구간이 암호화되어 있는가
점검기준: 데이터베이스 > 접근 통제·네트워크 암호화