☕ Java 코드 에디터
취약한 코드
// [취약] 역DNS 이름으로 인가 결정 → DNS 스푸핑으로 우회 가능
String host = request.getRemoteHost(); // 역DNS 조회 결과
if (host.endsWith(".trusted.com")) {
grantAdmin();
}
💡 수정 가이드 (KISA 기준)
1. 신뢰 기반 변경
DNS 대신 인증된 자격증명.
// 호스트명 대신 서명된 토큰/상호TLS로 신원 검증
if (auth.verifyToken(request.getHeader("Authorization"))
&& auth.hasRole("ADMIN")) {
grantAdmin();
}
📊 분석 결과 및 설명
🎯 목표
보안 결정을 위조 가능한 역DNS가 아닌 인증/암호 검증에 기반해야 합니다.
⚠️ 현재 취약점
Reverse DNS Trust
DNS 스푸핑으로 호스트명 기반 인가가 우회됩니다.