DOOM을 실행할 수 있을까? 2,000개의 DNS 레코드로 만든 게임 엔진 – blog.rice.is
DNS의 TXT 레코드를 활용한 파일 저장 및 실행 프로젝트로, DNS가 본래 도메인 이름을 IP로 변환하는 용도임에도 불구하고, 검증이 없는 TXT 레코드에 임의의 데이터를 저장할 수 있음을 이용하였습니다.
Base64 인코딩된 파일 조각을 다수의 TXT 레코드에 분산 저장하고, 이를 PowerShell 스크립트가 DNS 쿼리를 통해 메모리 내에서 재조립하여 실행하는 방식을 구현하였습니다.
특히, C#으로 작성된 DOOM 게임 엔진을 메모리 스트림 형태로 불러와 디스크에 파일을 쓰지 않고 실행하는 데 성공했으며, 약 2,000개의 TXT 레코드와 250줄 분량의 스크립트로 완성되었습니다.
이 프로젝트는 DNS가 설계 목적과 다르게 글로벌 분산 서버리스 키-값 저장소로 악용 가능함을 보여주며, 보안 및 포렌식 관점에서 탐지가 어려운 새로운 공격 벡터를 시사합니다.
전체 소스코드는 GitHub에 공개되어 있어, 개발자와 보안 연구자에게 실용적 참고 자료로 활용될 수 있습니다.