Computer >> 컴퓨터 >  >> 문제 해결 >> Windows 오류

Dnsmasq 취약점으로부터 Windows PC를 지키는 방법 총정리

2017년 구글의 연구팀은 도메인 이름을 해당 IP 주소로 변환해 연결성을 제공하는 DNS 네임 리졸루션 서비스 소프트웨어인 Dnsmasq에 수많은 취약점이 존재한다는 사실을 밝혀냈습니다. 이 발견으로 온라인상에서 큰 논쟁이 벌어졌고, 패닉이 조성되면서 수많은 사용자가 자신의 시스템을 Dnsmasq 취약점으로부터 보호할 방법을 찾기 시작했습니다.

당시 구글 엔지니어의 정확한 표현은 다음과 같습니다.

2017년 9월 5일 기준 프로젝트 git 서버의 최신 버전에 영향을 미치는 원격 코드 실행 취약점 3건, 정보 유출 취약점 1건, 서비스 거부(DoS) 취약점 3건을 발견했습니다.

다시 말해, 이 엔지니어는 개인 정보 유출 가능성을 경고한 것입니다. 만약 해당 익스플로잇이 실제로 모든 도구를 활용해 악용되었다면, 사용자들은 자신의 정보가 유출되거나 무단으로 접근당하는 피해를 입었을 수 있습니다.

Dnsmasq란 무엇인가?

Dnsmasq는 본질적으로 DNS 포워더(forwarder)입니다. 캐시 및 DHCP 서버 역할을 하며 그 외에도 다양한 기능을 갖추고 있어, 여러 프로젝트에 탑재된 인기 있는 도구입니다. 구글 블로그에 따르면 Dnsmasq는 DNS 및 DHCP와 같은 서버 기능을 제공하며, 네트워크 부팅(network booting)과 라우터 광고(router advertisement)에도 관여합니다. Dnsmasq는 사설 네트워크뿐 아니라 공개 인터넷 네트워크에서도 폭넓게 사용됩니다.

구글 팀은 보안 평가 과정에서 총 일곱 가지 문제를 발견했으며, 이후 각 문제의 영향 범위와 개념 증명(PoC)을 검증하는 작업을 진행했습니다.

Dnsmasq 취약점으로부터 Windows PC를 지키는 방법 총정리

Dnsmasq의 주요 취약점

Dnsmasq에는 여러 취약점이 존재하며, 그중 대표적인 것들을 살펴보겠습니다. CVE-2017-14491은 힙 오버플로우(heap overflow)로 인해 발생하는 취약점으로, DNS 요청을 보낼 때 트리거됩니다. CVE-2017-14492는 DHCP 서버와 관련된 취약점이며, 같은 원인으로 발생하는 CVE-2017-14493도 있습니다. 이 두 가지 모두 메모리 오버플로우 때문에 발생하는데, 전자는 힙 오버플로우, 후자는 스택 오버플로우입니다. 개념 증명에 따르면 두 취약점 모두 IPv6 환경에서 작동합니다.

Dnsmasq 취약점으로부터 Windows PC를 지키는 방법 총정리

CVE-2017-14494는 DHCP 서버의 정보 유출과 관련된 취약점으로, 공격자가 이를 이용하면 ASLR(주소 공간 배치 난수화)을 우회할 수 있습니다. CVE-2017-14495, CVE-2017-14496, CVE-2017-13704는 DNS 서버의 버그에서 비롯된 세 가지 취약점으로, 모두 DoS(서비스 거부)를 유발합니다. 첫 번째는 메모리를 해제하지 않아 발생하고, 두 번째는 과도한 메모리 할당을 유발하며, 세 번째는 대용량 UDP 패킷 수신 시 프로그램이 크래시되는 문제입니다.

개념 증명 코드는 공개되어 있으므로, 자신의 시스템이 이러한 취약점의 영향을 받는지 직접 확인해 볼 수 있습니다. 완화 조치(mitigation)가 존재한다면 이를 검증한 뒤 배포하면 됩니다. 참고로 Shodan의 조사에 따르면 약 120만 대의 장치가 Dnsmasq 취약점의 영향을 받을 가능성이 있는 것으로 나타났습니다. 따라서 자신의 장치를 반드시 점검하는 것이 중요합니다.

컴퓨터를 보호하는 방법

컴퓨터를 Dnsmasq 취약점으로부터 보호하려면 우선 패치를 적용해 이후 보안 문제가 발생하지 않도록 해야 합니다. Dnsmasq를 수동으로 설치하고 싶다면 공식 배포 페이지에서 내려받을 수 있으며, 승인된 최신 버전은 2.78입니다.

안드로이드 기기를 사용 중이라면 보안 업데이트가 이러한 문제를 해결해 줍니다. Dnsmasq 취약점을 예방하려면 기기에 최신 업데이트가 다운로드되어 적용되었는지 반드시 확인하세요.

라우터나 IoT 기기를 사용하는 사용자라면 제조사 웹사이트에 접속해 해당 제품이 취약점의 영향을 받는지 확인해야 합니다. 영향을 받는 제품이라면 제공되는 패치를 확인하고 즉시 적용하는 것이 좋습니다.

또한 신뢰할 수 없는 외부 네트워크의 트래픽을 차단하려면 방화벽 규칙을 활용하세요. 아울러 기기에서 사용하지 않는 서비스나 기능은 비활성화해 두는 것이 언제나 안전한 습관입니다.