반응형
https://www.kisa.or.kr/public/laws/laws3.jsp
구현 단계 시큐어코딩 가이드 - API 오용 - DNS lookup에 의존한 보안 결정
가. 개요
- 공격자가 DNS 엔트리를 속일 수 있으므로 도메인명에 의존에서 보안 결정(인증 및 접근 통제 등)을 하지 않아야 한다. 만약, 로컬 DNS 서버의 캐시가 공격자에 의해 오염된 상황이라면, 사용자와 특정 서버 간의 네트워크 트래픽이 공격자를 경유하도록 할 수도 있다. 또한, 공격자가 마치 동일 도메인에 속한 서버인 것처럼 위장할 수도 있다.
나. 보안대책
- 보안 결정에서 도메인명을 이용한 DNS lookup을 하지 않도록 한다.
다. 코드 예제
JAVA
더보기
다음의 예제는 도메인명을 통해 해당 요청을 신뢰할 수 있는지를 검사한다. 그러나 공격자는 DNS 캐시 등을 조작해서 쉽게 이러한 보안 설정을 우회할 수 있다.
그러므로, 다음의 예제와 같이 DNS lookup에 의한 호스트 이름 비교를 하지 않고, IP 주소를 직접 비교하도록 수정한다.
C#
더보기
다음의 예제는 도메인명을 통해 해당 요청을 신뢰할 수 있는지를 검사한다. 그러나 공격자는 DNS 캐쉬 등을 조작해서 쉽게 이러한 보안 설정을 우회할 수 있다.
IP주소를 직접 비교하도록 한다.
C
더보기
아래 C 코드는 요청의 신뢰성을 호스트의 이름으로 판별하고 있다. 공격자는 DNS 캐쉬 를 조작하여 보안 정책을 우회할 수 있다.
다음의 C 코드는 IP 주소를 직접 비교하여 DNS 캐쉬 조작에 대해 안전하다.
참고자료
- CWE-247 Reliance on DNS Lookups in a Security Decision, MITRE,
http://cwe.mitre.org/data/definitions/247.html
반응형
'공부 > KISA' 카테고리의 다른 글
root 계정 원격 접속 제한 - KISA 주요정보통신기반시설 기술적 취약점 분석ㆍ평가 방법상세가이드 (0) | 2020.07.24 |
---|---|
취약한 API 사용 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.22 |
Private 배열에 Public 데이터 할당 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.22 |
Public 메소드부터 반환된 Private 배열 - KISA 소프트웨어 개발 보안 가이드 (1) | 2020.07.22 |
시스템 데이터 정보노출 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.22 |
댓글