
나는 kaminsky DNS 버그에 대해 읽고 그것이 어떻게 작동하는지 더 잘 이해하려고 노력했습니다. 나는 그 요지를 알고 있다고 생각하지만 Dan은 방화벽 뒤에 있는 DNS 서버를 표적으로 삼는 데 사용되는 bailiwicks에 대해 언급했습니다.
누군가 bailiwick이 무엇인지 설명하고 kaminsky 버그를 악용하기 위해 방화벽 뒤에 있는 서버를 대상으로 하는 데 어떻게 사용되는지 예를 들어줄 수 있습니까?
답변1
전문 분야
리눅스 저널기사저것에티야르게시된 글에는 베일리윅이 무엇인지, DNS와 어떤 관련이 있는지에 대한 꽤 좋은 설명이 있습니다. 기본적으로 위임 DNS 서버를 찾는 데 도움이 되도록 추가 레코드가 DNS 응답에 추가됩니다. 기사의 예를 인용하려면:
$ dig @ns1.example.com www.example.com
;; ANSWER SECTION:
www.example.com. 120 IN A 192.168.1.10
;; AUTHORITY SECTION:
example.com. 86400 IN NS ns1.example.com.
example.com. 86400 IN NS ns2.example.com.
;; ADDITIONAL SECTION:
ns1.example.com. 604800 IN A 192.168.2.20
ns2.example.com. 604800 IN A 192.168.3.30
공격
공격에 대한 자세한 내용은 Dan의 문서에 있습니다.슬라이드(슬라이드 24/25 참조). 방화벽 뒤의 서버를 공격하려면:
- 공격자가 제어하는 도메인(예: '
1.badguy.com
')의 하위 도메인에 대한 조회가 트리거됩니다. - 공격 서버는 감염시키려는 도메인(예: '
debian.org
')에 대한 CNAME 레코드로 응답합니다. 이로 인해 대상에서 'debian.org
'에 대한 DNS 쿼리가 발생합니다. - 공격 서버는 CNAME 참조를 보내자마자 추가 응답(예: '
security.debian.org
'가 ''의 IP 주소를 가리키는badguy.com
)을 포함하는 스푸핑된 DNS 응답의 스트리밍을 시작합니다. - 응답의 트랜잭션 ID가 올바르게 추측되면 방화벽 뒤의 서버는 이제 '
security.debian.org
'가 악의적인 사람의 주소로 확인된다고 생각합니다.
방화벽 뒤의 서버가 IP 주소, 내부 클라이언트 요청, 서버 로그의 IP 주소 확인 등을 조회하도록 하는 방법은 많습니다.보츠마이어이 공격에서 방화벽은 거의 관련이 없다고 언급했습니다.
답변2
Mark Johnson이 언급한 것처럼 DNS 서버의 베일리윅은 해당 서버가 권한을 부여받은 도메인 집합입니다. 한때 재귀적 이름 서버는 권위 있는 이름 서버로부터 베일리윅 외부 데이터를 수락했습니다. 따라서 foo.example에 대한 권한이 있는 이름 서버는 www.bar.example의 IP 주소를 나타내는 그의 답변에 추가 데이터를 추가할 수 있으며 그는 믿었습니다. 이것이 기초가 되었다.카슈푸레프 공격. 오랫동안 네임 서버는 다음과 같이 지시에 따라 더 이상 베일리윅 외부 데이터를 믿지 않습니다.RFC 2181, 섹션 5.4.1.
카민스키 공격은~ 아니다베일리윅 외부 데이터를 사용하므로 최신 네임서버에서도 작동합니다. 그만큼 리눅스 저널Luke Quinane이 언급한 기사는 이를 매우 잘 설명합니다(그러나 특히 방화벽에 관한 Luke Quinane의 나머지 게시물은 의심스럽습니다.)
방화벽과 관련하여 이는 대부분 관련이 없는 문제입니다. 네임 서버가 쿼리에 대한 응답을 받으려면 도달할 수 있어야 하므로 방화벽이 있든 없든 상관없습니다. Kaminsky 공격에는 DNS 채널 하나만 필요합니다.
Kaminsky 공격은 클라이언트 시스템이 사용할 이름 서버에 있기 때문에 이러한 시스템이 방화벽에 의해 보호되는지 여부는 중요하지 않습니다. (방화벽이 마법의 장치가 아니며 모든 것을 보호하지 못하는 이유를 보여주는 좋은 예입니다.)