DNS 터널링 방지

DNS 터널링 방지

저는 최근에 DNS 터널링 공격을 시연하는 침투 테스트 웹 세미나를 보았습니다. 웨비나의 질문 답변 섹션에서 누군가 그러한 터널링을 방지할 수 있는 방법을 물었습니다. 내부 DNS 서버가 외부 주소를 확인하는 것을 허용하지 않고 프록시를 통해 이러한 모든 외부 확인을 실행하라는 조언이 있었습니다. 이것이 터널링을 방지하는 이유를 누군가 설명할 수 있습니까? 클라이언트가 숨겨진 페이로드를 사용하여 조작된 DNS 패킷을 프록시로 보내는 무언가를 실행 중인 경우 해당 패킷은 결국 관련 DNS 서버에 도달하여 프록시를 통해 클라이언트로 반환되지 않습니까?

답변1

짧은 대답: 애플리케이션 인식 프록시는 프로토콜 지능적인 방식으로 패킷의 내용을 분석할 수 있으며 통과하는 재조립된 패킷의 페이로드가 해당 프로토콜의 데이터 구조를 준수하는지 여부를 확인할 수 있습니다. 따라서 프록시는 DNS 세그먼트에서 HTTP 데이터(예:)를 터널링하려고 시도하는 경우 이를 인식합니다.

답변2

프록시가 할 수 있는 또 다른 작업(또는 터널링이 걱정되고 프록시가 필요하지 않고 괜찮은 라우터만 있으면 할 수 있는 작업)은 단순히 포트 53의 트래픽 양을 크게 제한하는 것입니다. 이는 완전히 그렇지는 않습니다. 터널링을 방지하지만 그 유용성이 크게 감소합니다. (예를 들어 120초 간격으로 100kbit의 데이터를 허용합니다. 이는 초당 최대 처리량이 100바이트 미만이므로 이 연결에서는 엄청나게 많은 데이터를 얻을 수 없습니다.)

관련 정보