DNS를 악성코드 호스팅에 사용해야 할까요, 아니면 Wu-Tang 테마의 마드립스를 호스팅하는 데 사용하는 것이 더 좋을까요?

저주(curse)의 재미있는 점은 전파한다는 것입니다. 이와 관련하여 해커들이 도메인 이름 시스템(DNS)을 이용해 악성 코드를 배포하는 방식에서 영감을 받은 마이클 "B'ad Samurai" 버너(Michael "B'ad Samurai" Bunner)는 DNS Mad Libs를 제작했습니다. 이 프로젝트는 인기 단어 게임의 분산형 버전을 제공하기 위해 최근 발견된 DNS 악성 코드 배포 해킹과 동일한 기술을 사용합니다.
버너는 프로젝트의 README에 "이 프로젝트는 DNS TXT 레코드를 활용하여 데이터를 저장하고 검색하는 것에 대한 기존 연구에서 영감을 받았습니다. 이 기술은 악성 코드 배포나 명령 및 제어(command & control) 등 다양한 목적에 사용될 수 있습니다"라고 밝혔습니다. 그는 이어 "일반적으로 악성 페이로드를 DNS 레코드에 삽입하고, 이 레코드를 감염된 시스템이 해석할 수 있도록 하는 방식이 사용됩니다. 저희의 경우, 신뢰할 수 있는 서비스의 공용 API 엔드포인트를 통해 HTTPS를 활용하여 데이터를 검색함으로써, 데이터의 실제 출처를 은폐했습니다"라고 덧붙였습니다.
DNS 기반 악성 코드에 대한 제 보고서는 이 시스템에 대한 더 [형용사]한 설명을 담고 있습니다. 핵심 내용은 도메인 이름("tomshardware.com")을 IP 주소(199.232.194.114)로 변환하여 웹 브라우징을 보다 편리하게 만드는 것입니다. 하지만 이 설명은 DNS의 중요한 측면, 즉 레코드에 대한 시간 만료 시간(time-to-live, TTL) 설정 기능을 간과했습니다.
지속적인 악성 코드 웜인 CanisterWorm은 명확한 이유 없이 시간대(time zone)를 이용해 이란의 장치를 식별하고 파괴합니다.
도메인 이름이 특정 IP 주소와 영구적으로 연결되는 경우는 드뭅니다. 때로는 웹사이트 운영자의 결정(예: 다른 호스팅 업체로 전환)에 의해 변경되기도 하고, 때로는 단순히 상위 인터넷 서비스 제공업체(upstream internet service provider)의 변덕에 따라 달라지는 동적 IP 주소와 연결되기도 합니다. 따라서 DNS는 이 두 가지 상황을 모두 처리할 수 있어야 합니다.
여기서 TTL의 역할이 중요해집니다. 이 설정은 DNS 제공자에게 레코드가 업데이트되었는지 여부를 얼마나 자주 확인해야 하는지를 효과적으로 알려줍니다. 주기적으로 변경될 것으로 예상되는 레코드에는 짧은 TTL이 부여되며, 변화가 덜 예상되는 레코드에는 긴 TTL이 설정됩니다. (이러한 기대치와 실제 상황이 맞지 않을 때, 문제가 발생할 수 있습니다.)
DNS Mad Libs는 이전의 악성 코드 임베딩 예시처럼, DNS 레코드에 긴 TTL을 설정하는 기능을 활용하여 시스템 설계자가 예상했던 것보다 더 많은 정보를 저장합니다. 이 방식을 통해 새로운 마드-립을 구현하기 위해 전용 서버가 필요하지 않으며, 단지 게임 인터페이스가 요구하는 방식으로 설정된 도메인의 일련의 DNS 레코드만 있으면 됩니다.
이것은 결국 다음을 보여줍니다. 충분히 [형용사]한 기술이라면, 특히 [명사]가 개입할 경우 정말로 [형용사]할 수 있다는 것을 말입니다.
최신 뉴스, 분석 및 리뷰를 피드에서 받아보려면 Google News에서 Tom's Hardware를 팔로우하세요. 팔로우 버튼을 클릭하는 것을 잊지 마세요.