본문 바로가기
공부/KISA

DNS lookup에 의존한 보안결정 - KISA 소프트웨어 개발 보안 가이드

by Skogkatt의 개인 블로그 2020. 7. 22.
반응형

https://www.kisa.or.kr/public/laws/laws3.jsp

 

기술안내서 가이드 < 관련법령·기술안내서 < 자료실 : 한국인터넷진흥원

기술안내서 가이드 한국인터넷진흥원 기술안내서 가이드 입니다. 게시판 목록 보기 기술안내서 가이드 표 대분류 소분류 기술안내서 가이드 대상 수준 인터넷 진흥 및 이용 활성화 인터넷 진흥

www.kisa.or.kr

구현 단계 시큐어코딩 가이드 - API 오용 - DNS lookup에 의존한 보안 결정

가. 개요

  • 공격자가 DNS 엔트리를 속일 수 있으므로 도메인명에 의존에서 보안 결정(인증 및 접근 통제 등)을 하지 않아야 한다. 만약, 로컬 DNS 서버의 캐시가 공격자에 의해 오염된 상황이라면, 사용자와 특정 서버 간의 네트워크 트래픽이 공격자를 경유하도록 할 수도 있다. 또한, 공격자가 마치 동일 도메인에 속한 서버인 것처럼 위장할 수도 있다.

나. 보안대책

  • 보안 결정에서 도메인명을 이용한 DNS lookup을 하지 않도록 한다.

다. 코드 예제

JAVA
더보기

다음의 예제는 도메인명을 통해 해당 요청을 신뢰할 수 있는지를 검사한다. 그러나 공격자는 DNS 캐시 등을 조작해서 쉽게 이러한 보안 설정을 우회할 수 있다.

그러므로, 다음의 예제와 같이 DNS lookup에 의한 호스트 이름 비교를 하지 않고, IP 주소를 직접 비교하도록 수정한다.

 

C#
더보기

다음의 예제는 도메인명을 통해 해당 요청을 신뢰할 수 있는지를 검사한다. 그러나 공격자는 DNS 캐쉬 등을 조작해서 쉽게 이러한 보안 설정을 우회할 수 있다.

IP주소를 직접 비교하도록 한다.

 

C
더보기

아래 C 코드는 요청의 신뢰성을 호스트의 이름으로 판별하고 있다. 공격자는 DNS 캐쉬 를 조작하여 보안 정책을 우회할 수 있다.

다음의 C 코드는 IP 주소를 직접 비교하여 DNS 캐쉬 조작에 대해 안전하다.


참고자료

반응형

댓글