Изпълнение на DOOM чрез DNS: Техническо доказателство за концепция
В иновативна демонстрация на злоупотреба с протокол, изследовател в областта на сигурността успешно съхрани и изпълни класическата видеоигра DOOM изцяло в системата за имена на домейни (DNS). Чрез използване на TXT записи – обикновено използвани за удостоверяване на електронна поща или произволни текстови данни – проектът превръща глобалната DNS инфраструктура в механизъм за доставка на игра без файлове, която може да бъде напълно играна.
Как работи
DNS TXT записите са текстови полета, прикачени към имена на домейни, които могат да съдържат приблизително 2000 знака. Въпреки че първоначално са предназначени за цели на проверка, те не разполагат със строга валидация, което позволява на потребителите да съхраняват произволни данни. Изследователят използва тази възможност, за да кодира в Base64 цялата игра и нейните ресурси (конкретно C# версия, известна като „managed-doom“) и да раздели данните в приблизително 1966 TXT записа, хоствани на един домейн на Cloudflare.
За да играе играта, потребителят изпълнява скрипт на PowerShell с 250 реда. Този скрипт извлича данните от домейна, декодира ги и ги сглобява директно в произволната памет (RAM) на компютъра. Чрез зареждане на .NET асемблитата чрез рефлексия, играта стартира, без да записва нито един файл на твърдия диск, което ефективно създава метод за изпълнение „без файлове“.
Технически предизвикателства и модификации
Прехвърлянето на играта, за да работи изцяло от паметта, изисква значителни модификации на програмния код. Изследователят използва помощта на изкуствен интелект, за да адаптира „managed-doom“ двигателя, като премахва зависимостите от нативни пътища към файлове и библиотеки за работа с прозорци, които обикновено биха изисквали взаимодействие с диска. За да се намали обемът на данните и да се минимизира броят на необходимите DNS заявки, звукът е премахнат от компилираната версия. Крайният компресиран пакет изисква приблизително 15 минути, за да бъде качен на DNS сървъра, но се зарежда на клиентската страна за приблизително 10 до 20 секунди.
Последици за сигурността
Въпреки че проектът служи като техническа любопитност и постижение в областта на „проблемното програмиране“, той подчертава потенциалните рискове за сигурността. DNS е широко разпространен протокол, който често се разрешава да преминава през защитните стени без строга проверка. Злонамерените участници в миналото са използвали TXT записи, за да скрият злонамерен код, и това доказателство за концепцията демонстрира теоретичния горен лимит на такива техники – съхраняване на цели изпълними програми в самата DNS инфраструктура.
Пълният изходен код на проекта е достъпен публично в GitHub.

Коментари
Остави коментар