테크엔카

DNS Cache Poisoning Attack 본문

IT보안

DNS Cache Poisoning Attack

텍엔카 2024. 12. 11. 13:06
728x90

1. 개요
DNS Cache Poisoning은 DNS 서버 또는 클라이언트의 DNS 캐시에 잘못된 정보를 삽입하여, 사용자가 악성 웹사이트로 접속도록 만드는 공격 기법으로, 공격자는 DNS 쿼리 응답을 위조하거나, DNS 서버의 취약점을 이용해 악성 IP 주소를 캐시에 저장한다


2. 공격 원리
   DNS Cache Poisoning은 DNS의 설계적 허점을 악용
   1) DNS 동작 기본 원리
      ① 사용자가 사이트(예: http://www.sample.com) 에 접근하려고 하면, 브라우저가 DNS서버에 질의 한다
      ② DNS 서버가 요청을 처리하며, 이를 상위 DNS 서버로 전달
      ③ 최종적으로 도메인에 대응하는 IP 주소를 반환

      ④ 해당 웹사이트에 접속

   2) 공격 과정
      ① DNS 응답 위조: 공격자가 DNS 서버로 잘못된 IP 주소를 포함한 응답을 대량으로 보냄

          - DNS 서버가 이를 신뢰하고 캐시에 저장하면 중독 발생
      ② 사용자가 DNS에 해당 사이트에 대한 질의

      ③ 다른 사용자가 해당 도메인에 접근하면, DNS 캐시에 저장된 악성 IP 주소 반환
      ④ 사용자는 공격자가 설정한 악성 웹사이트로 접속됨
      ⑤ 사용자 공격 (악성 웹사이트에서 피싱, 악성코드 배포, 정보 탈취 등 수행)

3. 대응 방법

   1) 최신 DNS 소프트웨어로 업그레이드 : 오래된 소프트웨어 보안 취약점 존재

   2) DNSSEC(DNS Security Extensions) 활성화 : DNS 응답에 디지털 서명을 추가하여 응답의 무결성을 검증
   3) 포트 랜덤화 : DNS 쿼리 출발지 포트를 랜덤하게 변경
       - 공격자가 DNS 응답 위조시 랜덤 포트 번호와 쿼리 ID를 모두 알아야 하므로 공격 난이도가 높아짐

   4) DNS 쿼리 ID 강화 : 쿼리 ID를 랜덤화하여 예측이 불가능하게 설정 (최신 소프트웨어는 기본 활성화 됨)

   5) 캐시 유효 기간 최소화 : TTL 값을 짧게 설정하여 악성 정보가 오래 유지되지 않도록 제한
   6) 권한 있는 서버만 신뢰 : 캐시서버는 권한 있는 DNS 서버의 응답만 수락

 

728x90