Компьютерные советы (сборник статей) - [25]

Шрифт
Интервал

Другой излюбленный объект атаки — файл \WINNT\System32\Drivers\etc\hosts, позволяющий сопоставлять IP-адреса с доменными именами и имеющий приоритет над DNS-сервером. То есть если малварь не хочет, чтобы антивирус обновлялся, то она просто добавляет в hosts-файл одну строчку, перенаправляя запросы к серверу обновлений куда-нибудь еще, например на локальный узел жертвы (которому соответствует адрес 127.0.0.1) или, что еще хуже, на сервер самого создателя малвари, распространяющий вредоносные обновления, которые содержат не только сигнатуры, но и машинный код. И хотя антивирусные базы в большинстве своем защищены цифровыми подписями и другими криптографическими средствами, при большом желании со стороны хакера их можно обойти.

Впрочем, пора уже разобрать несколько эффективных приемов обороны от всего этого безобразия.


Способ 1. Используем «бронежилет»


Малварь нужно бить еще на взлете. Самое простое, что можно только сделать, — это упаковать антивирус/брандмауэр достойным протектором, препятствующим сигнатурному поиску и внедрению в охраняемый процесс постороннего кода. Крутых протекторов сейчас как никогда много, взять хотя бы туже Themid'у (которая в просторечии завется Фемидой). Правда, на официальном сайте (www.oreans.com) лежит только демонстрационная версия…

Чем хороша Фемида? А тем, что перехватывает и блокирует следующие API-функции: NtAllocateVirtualMemory, NtCreateThread, NtQueryVirtualMemory, NtReadVirtualMemory, ZwTerminateProcess, NtWriteVirtualMemory. Префикс Nt означает, что мы имеем дело с NativeAPI-функциями, самыми низкоуровневыми системными функциями, доступными на прикладном уровне, что одним махом срубает до примерно 80 % всей малвари. Конечно, если малварь работает на уровне ядра, то это другое дело, но и в этом случае ей придется изрядно напрячься, поскольку тело упакованного файла зашифровано и расшифровывается динамически по ходу его исполнения, тут же зашифровываясь вновь.

Без функции NtReadVirtualMemory малварь обломается с чтением содержимого защищенного процесса, а значит, не сможет отличить антивирус/брандмауэр от остальных программ. Запрет на создание удаленных потоков NariveAPI-функцией NtCreateThread не позволит внедриться в адресное пространство жертвы, тем более что NtWriteVirtualMemory все равно не работает. Ну и как бедная малварь должна копировать зловредный код?

Аналогичным образом обстоят дела и с другими атаками. Обработанный Фемидой файл практически неуязвим. Зачастую настолько неуязвим, что вообще неработоспособен. Фемида не самый корректный упаковщик, и простейший контроль целостности, выполняемый антивирусом/брандмауэром, тут же показывает, что с файлом что-то не то. Как следствие, антивирус/брандмауэр выдает на экран предупреждающее сообщение или вообще отказывается работать. В такой ситуации нам остается либо взять в лапы hiew и вырезать из антивируса/брандмауэра систему самоконтроля, которая нам только мешает, либо же, поигравшись с настройками протектора, выбрать компромиссный вариант, который и от малвари защищает и ругательств со стороны защиты не вызывает.


Способ 2. Зовем на помощь отладчик


Если примирить защиту с протектором никак не получается, имеет смысл обратиться за помощью к отладчику, например к бесплатно распространяемому OllyDdb. Просто загружаем защищаемую программу в Ольку (или прицепляется к уже запущенному процессу: «File — > Attach») и нажимаем (Run) для нормального продолжения выполнения программы без трассировки.

Что это дает? Во-первых, поскольку отладка в Windows нереентерабельна, то процесс, находящийся под покровительством Ольки, не может отлаживать никто другой, и попытки малвари зацепиться за него ни к чему не приведут. Так же Олька позволяет отслеживать появление новых потоков (как локальных, так и удаленных). Достаточно в меню «Options — > Debugging Options» взвести галочку «Break on new thread» во вкладке Event. Тогда отладчик будет останавливаться всякий раз при создании нового потока. И хотя антивирусы/брандмауэры активно создают свои собственные потоки в целях производственной необходимости (что очень надоедает), все-таки такая защита лучше, чем совсем никакой.

А если еще взвести и галочку «Break on new module» (DLL), то отладчик будет останавливаться при загрузке всякой динамической библиотеки. И хотя опять-таки антивирусы/брандмауэры могут подгружать библиотеки по ходу дела, обычно это происходит в строго определенных ситуациях при совершении пользователем тем или иных действий. Беспричинная загрузка DLL с вероятностью, близкой к единице, свидетельствует об атаке!


Способ 3. Используем биты NX/XD


Наконец, высший пилотаж — защита кодовых секций от внедрения. Работает только на процессорах с поддержкой битов NX/XD (то есть достаточно современных процессорах) и с XP SP2 с задействованным аппаратным DEP для всех приложений (по умолчанию DEP распространяется только на системные компоненты).

В отладчике нажимаем , чтобы увидеть карту адресного пространства. Находим там модуль, имя которого совпадает с именем антивирусного процесса; видим секцию. text (реже CODE), щелкаем правой клавишей мыши, в контекстом меню выбираем пункт «Set Access — > Execute» — и все! С этого момента


Еще от автора Неизвестный Автор
Галчонок

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Сборник рассказов о порке

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Саньтии Веды Перуна

Саньтии Веды Перуна (Книга Мудрости Перуна) одно из древнейших Славяно-Арийских Священных Преданий, сохраненных Жрецами-хранителями Древнерусской Инглиистической церкви Православных Староверов-Инглингов.


Призраки ночи

В книге собраны предания и поверья о призраках ночи — колдунах и ведьмах, оборотнях и вампирах, один вид которых вызывал неподдельный страх, леденивший даже мужественное сердце.


Закат  вечности

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Песнь о Нибелунгах

…«Песнь о Нибелунгах» принадлежит к числу наиболее известных эпических произведений человечества. Она находится в кругу таких творений, как поэмы Гомера и «Песнь о Роланде», «Слово о полку Игореве» и «Божественная комедия» Данте — если оставаться в пределе европейских литератур…В. Г. Адмони.