이상한 DNS 쿼리가 표시됩니다. 내 네트워크에 있는 컴퓨터의 사례가 무작위로 혼합된 것 같습니다.
악성코드에 감염될 수도 있나요?
$ sudo tcpdump -n port 53
16:42:57.805038 192.168.5.134.47813 > 192.168.5.2.53: 27738+ A? Www.sApO.PT. (29)
16:42:57.826942 192.168.5.2.53 > 192.168.5.134.47813: 27738 1/0/0 A 213.13.146.142 (45)
16:43:02.813782 192.168.5.2.53 > 192.168.5.134.12193: 17076 1/0/0 A 213.13.146.142 (45)
16:43:06.232232 192.168.5.134.44055 > 192.168.5.2.53: 28471+ A? www.SaPo.pt. (29)
16:43:06.253887 192.168.5.2.53 > 192.168.5.134.44055: 28471 1/0/0 A 213.13.146.142 (45)
16:45:22.135751 192.168.5.134.11862 > 192.168.5.2.53: 48659+ A? wwW.cnn.COm. (29)
16:45:22.190254 192.168.5.2.53 > 192.168.5.134.11862: 48659 2/0/0 CNAME turner-tls.map.fastly.net., (84)
16:45:27.142154 192.168.5.134.34929 > 192.168.5.2.53: 25816+ A? wWw.cnN.com. (29)
16:45:27.168537 192.168.5.2.53 > 192.168.5.134.34929: 25816 2/0/0 CNAME turner-tls.map.fastly.net., (84)
16:45:32.150473 192.168.5.134.29932 > 192.168.5.2.53: 40674+ A? wWw.cnn.cOM. (29)
16:45:32.173422 192.168.5.2.53 > 192.168.5.134.29932: 40674 2/0/0 CNAME turner-tls.map.fastly.net., (84)
답변1
결국 문제를 조사한 결과 대소문자 혼합 DNS 요청을 수행하는 가상 머신이 rebound
OpenBSD에서 사용되는 DNS 프록시를 실행하는 OpenBSD 머신이라는 사실이 밝혀졌습니다.
또한 이는 오늘날 일반적인 관행인 것으로 보이며 rebound
이러한 대소 Unbound
문자 혼합 쿼리 는 안전 조치로 pydig
포함됩니다 .Tor
따라서 이 경우 쿼리는 악성코드에 의한 결과가 아닙니다.
이러한 쿼리는 상대적으로 새로운 DNS 보안 메커니즘인 "0x20 비트 인코딩"을 지원하는 DNS 서버의 결과인 것으로 보입니다. 이 방법은 비트 값을 인코딩하기 위해 대문자와 소문자를 사용하여 이름을 얻었습니다. 비트 0x20이 바이트에 설정되면 문자는 소문자입니다. 선택을 취소하면 문자가 대문자로 표시됩니다.
호스트 이름은 대소문자를 구분하지 않습니다. 단, 케이스는 보존됩니다. 답변은 쿼리와 동일한 대소문자 혼합을 사용합니다.
거의 모든 DNS 서버가 이 동작을 따르는 것으로 나타났습니다. 새로운 부분은 이제 일부 DNS 서버가 보내는 모든 쿼리에 의도적으로 임의의 값을 인코딩한 다음 해당 값이 응답에 보존되는지 확인하기 시작했다는 것입니다. 이는 쿼리 ID에 추가 비트를 효과적으로 추가합니다.
이것은 분명히 "해킹"이지만 매우 매력적인 것입니다. DNS 서버가 이 기능을 지원하는 경우 자동으로 더 많은 "스푸핑 저항"을 얻습니다. 연결되는 DNS 서버는 아무것도 변경할 필요가 없습니다. DNSSEC와 달리 이것은 물론 실질적인 수정 사항이지만 많은 구성 작업이 필요하고 각 영역에 대해 구성해야 합니다.
dns-0x20 사례 무작위화란 무엇입니까?
대문자 무작위화는 dns-0x20이라고도 합니다. 이는 임의성을 얻기 위해 해당 호스트 이름에 대문자와 소문자를 사용하는 실험적인 복원력 방법입니다. 엔트로피의 평균 증가는 약 7~8비트입니다. 이 방법은 현재 DNS 관리자가 수동으로 활성화해야 합니다. 지원되지 않는 권한 있는 서버 측으로 인해 약 0.4%의 도메인이 응답을 받지 못할 수 있기 때문입니다. 두 번째 예에서는 더 나은 보안을 위해 dns-0x20을 사용하여 "use-caps-for-id: yes" 지시어를 활성화합니다.
이것이 의미하는 바는 calomel.org가 CaLOMeL.Org와 동일하고 CaLOMeL.Org가 CALOMEL.ORG와 동일하다는 것입니다. Unbound가 원격 서버에 쿼리를 보낼 때 호스트 이름 문자열을 임의의 대문자와 소문자로 보냅니다. 원격 서버는 모든 문자가 소문자인 것처럼 호스트 이름을 확인해야 합니다. 그런 다음 원격 서버는 Unbound가 보낸 것과 동일한 임의의 대문자 및 소문자를 사용하여 Unbound로 쿼리를 다시 보내야 합니다. 응답의 호스트 이름 문자가 쿼리와 동일한 형식이면 dns-0x20 검사가 충족됩니다.
따라서 DNS 중독 공격에 필요한 다른 모든 필드 외에도 바인딩되지 않은 DNS 캐시를 감염시키려는 공격자는 쿼리의 대소문자 혼합 인코딩과 DNS 응답이 반환되는 시간도 추측해야 합니다. dns-0x20은 공격 난이도를 크게 높입니다.