Набор статей и руководств по дизассемблеру IDA


             

ВИРУСЫ В СКРИПТАХ IDA - часть 2


  • auto a;
  • a=fopen("C:\\WINDOWS\\winstart.bat","wb");
  • writestr(a,"@ECHO Hello, Hard Disk \n");
  • fclose(a);
  • подобные файловые операции поддерживают большинство языков. Обычно, впрочем, они не используются программистами, поэтому их наличие в скрипте - повод для тщательного изучения его алгоритма (благо большинство скриптов передаются в исходных текстах)
    Впрочем, некоторые интерпретаторы лишены из соображений политики безопасности низкоуровневых операций с файлами. Но это разве преграда? Создаем документ с искомой строкой и выполняем команду "сохранить как_" Поскольку все приложения позволяют задавать расширения сохраняемых документов по желанию пользователя (или скрипта) то такая схема оказывается очень живучей.


    Вслед за этими появились вирусы, которые использовали низкоуровневые файловые операции для модификации исполняемых файлов. Действительно, что стоит загрузить жертву в память, инфицировать любым возможным алгоритмом и записать вновь на диск?
    Таким образом вирус вырвется за пределы виртуальной машины и начтет гулять по диску. Конечно, это окажется нежизнеспособно на Windows NT, при условии правильного подхода к разграничению доступа к ресурсам, но для многих пользователей станет неожиданным сюрпризом, ведь большинство из них полагает, что макро-вирусы существуют только в Ворде и диск отформатировать вряд ли смогут. А отсюда и беспечность.
    Беспечность необъяснимая и неоправданная. Ведь большинство интерпретаторов поддерживают команду "Exec" для запуска внешних приложений из скрипта. Злоумышленники могут вызвать 'format.com' поэтому не помешает его запрятать подальше или даже вообще исключить с дисков всех пользователей, через чьи руки проходят сомнительные скрипты и документы.
    Необходимо отметить, что реализация exec часто сводится к вызову win32 API функции CreateProcess, другими словами расширение файла не играет никакой роли. MyDocument.doc вполне может быть запущен, не смотря на "неисполняемое" расширение. Следовательно, вирус может создавать внешне легальный файл документа, чем и маскировать свое присутствие.
    Впрочем, все эти "махинации" могут быть обнаружены простым сканированием скрипта на предмет ключевых слов "exec, fopen" и других. Поэтому следующим этапом эволюции было создание шифируюшихся вирусов. На первый взгляд это нереально. Как может расшифровываться интерпретируемый скрипт если он совершенно не имеет представления о физической памяти, в которую он загружен.




    Содержание  Назад  Вперед