DuquDuqu — компьютерный червь, впервые официально упомянутый в отчёте отчет антивирусной фирмы Symantec от 18 октября 2011 года. Первый зараженный кодом Duqu файл прислали на сканирование в VirusTotal 1 сентября 2011 года, а 9 сентября того же года поступил второй файл с большим сходством главного модуля Duqu со Stuxnet. Дальнейшие исследования Symantec, «Лаборатории Касперского» и других компаний показали «фамильное сходство» кода червей Duqu и Stuxnet[1][2][3]. Червь получил имя Duqu из-за префикса «~DQ», который использовался во всех именах файлов, создаваемых им[4]. Symantec считает, что создатели Duqu или создали Stuxnet, или имели доступ к исходному коду последнего, и их целью был сбор информации для следующей версии Stuxnet[5]. Лаборатория криптографии и системной безопасности Будапештского университета технологии и экономики в Венгрии выпустила 60-страничный доклад, в котором анализировался данный червь[6]. В ходе проведённого расследования удалось выяснить, что распространение данной вредоносной программы происходило через электронную почту, а атаки с применением программы велись по меньшей мере с декабря 2010-го[3]. Заражение системы происходит посредством свежей уязвимости в ядре Windows, допускающей выполнение вредоносного кода и определяемой как CVE-2011-3402[7]. После заражения системы и установления связи с сервером происходила загрузка и установка дополнительного модуля, предназначенного для сбора сведений о системе, поиска файлов, снятия скриншотов, перехвата паролей и ряда других функций[8]. Язык программированияНемалая часть Duqu — объектно-ориентированный фреймворк, написанный на неизвестном языке[9]. Вирусные лаборатории перепробовали даже такие экзотические языки, как Lua, Google Go и AngelScript, но потерпели неудачу, и им пришлось попросить помощи у сообщества. В конце концов разгадка нашлась: это оказался чистый Си, скомпилированный Microsoft Visual C++ с необычными настройками оптимизации[10]. Код был написан с применением объектно-ориентированного подхода, но на языке Си, а не Си++. Предполагается, что выбор языка Си был сделан автором-программистом старой закалки, который переходил с ассемблеров на Си, и которому Си++ не понравился. Применение Си в сочетании с ОО-подходом встречается в коммерческих программных проектах (например, движок Doom), но несвойственно для вредоносных программ и выделяет Duqu как необычную разработку[10]. Особенности и структура DuquОдной из первых обнаруженных особенностей Duqu стало использование подлинной цифровой подписи, украденной у тайваньской компании. Эта подпись подтверждала легитимность драйвера, используемого червем, что позволяло ему обходить защиту большинства антивирусных программ. На момент обнаружения программы ни один из 43 протестированных антивирусов не классифицировал файл как вредоносный. Подобный подход ранее применялся и в Stuxnet, что указывает на схожесть стратегий, направленных на обеспечение скрытности[3]. Модульная структура Duqu построен как модульная система, включающая как минимум три компонента, выполняющих различные задачи: Файл-установщик. Этот компонент отвечает за доставку основного модуля в систему-жертву. Примечательно, что на момент проведения исследований, несмотря на многочисленные заражения, сам файл-установщик не был найден, что затрудняет понимание методов внедрения. Главный модуль. Структурно состоит из следующих компонентов:
Главный модуль имел уникальную на момент обнаружения особенность: он загружал все свои компоненты в оперативную память, минимизируя активность на диске. Это делало его практически невидимым для большинства антивирусных систем того времени. Шпионская программа. Отдельный модуль для сбора данных, известный как «инфостилер». Он работает независимо от других компонентов, собирая сведения о системе, пароли, снимки экрана и другие конфиденциальные данные. Модуль сохраняет собранную информацию во временных файлах с префиксом ~DQ[3]. Технологии скрытности Duqu использует драйвер уровня ядра для расшифровки своих компонентов и их внедрения в системные процессы. Это позволяет ему избегать обращений к жесткому диску, которые обычно детектируются антивирусами. Более того, первый обнаруженный образец Duqu был настроен на самоуничтожение через 36 дней работы, однако последующие версии имели изменяемый таймер, который мог быть настроен на более короткий или длинный срок[3]. Сходство со Stuxnet Хотя Duqu и Stuxnet имеют общую базу в коде, их цели существенно различаются. Если Stuxnet был нацелен на разрушение промышленных объектов, Duqu служит скорее платформой для разведки и предварительной подготовки атак. Он действует выборочно, заражая небольшое количество стратегически важных систем. При этом его модульная структура позволяет адаптироваться под конкретные цели, изменяя длину файлов, их имена и контрольные суммы вредоносных компонентов. Проникновение в систему Основной модуль Duqu попадает в систему через файл-установщик (дроппер), представляющий собой файл формата Microsoft Word с эксплоитом уязвимости драйвера win32k.sys, отвечающего за механизм рендеринга TTF шрифтов. При успешной инсталляции сохраняются три файла (драйвер, основной модуль и его файл данных конфигурации), при этом последние два файла хранятся на диске в зашифрованном виде. Для автозапуска Duqu создаётся служба, использующая файл драйвера, который расшифровывает основной модуль на лету при помощи сохранённых в реестре ключей[3][11][12]. См. такжеПримечания
Ссылки |