Неочевидные способы защиты от malware

Тема в разделе "Борьба с типовыми зловредами", создана пользователем Dragokas, 4 окт 2016.

  1. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.307
    В спорах и обсуждениях того, как защитить свой компьютер от зловредов сломано немало копий и на эту тему можно найти множество книг и статей, причем бОльшая часть из них просто дублируют друг друга, рассказывая одно и тоже разными словами. Тому, кто интересуется информационной безопасностью крайне сложно в таких обсуждениях и статьях встретить о защите что-то новое, чего раньше он не знал или просто не задумывался над этим… но, насколько это ни самонадеянно звучит, я все-таки постараюсь пробудить у вас хоть капельку интереса к этой избитой теме и расскажу именно о неочевидных способах защиты, опустив старческое брюзжание о том, что нужно вовремя обновлять плагины к браузерам, не переходить по левым ссылкам и т.д

    В этой небольшой заметке о некоторых интересных особенностях функционирования зловредов я призываю вас отказаться от антивируса и от других способов самозащиты — обновлений, настройки программ и внимательности при переходе по ссылкам и запуске приложений… к слову «призываю» добавляем частицу «НЕ» и все будет на своих местах.

    Данную статью стоит рассматривать лишь как необычный обзор общих действий в поведении малвари, против которой мы можем создать защиту, которую стоит рассматривать больше как «о, прикольно, зловред не работает!» и как некую найденную изюминку в вирусных исследованиях.

    Начать стоит с того, что самой не очевидной защитой является использование учетной записи пользователя, а не администратора, но т.к на такую жертву способны лишь единицы, а большинство с админскими правами, то и возвращаться к этой неприятной теме больше не будем, но иметь это ввиду все же стоит, вдруг когда-нибудь, да пригодится.

    [оффтоп] у меня прям язык чешется прокричать, что плагин java нужно отключать, а включать его только при необходимости, что просмотр pdf в браузере особо не нужен, потому файлы лучше сохранять на хард, а потом смотреть их через какой-то левый, никому не интересный pdf-просмотрщик, что на ХР автозапуск с флешек можно отключить, внеся пару строк в реестра, что ..., но все эти полуочевидные методы защиты известны из без меня, потому прошу всех меня простить: тех, кто ожидал полного разбора защиты ПК за то, что его не будет, а тех кто ожидал только нового — за то, что вспомнил про эту классику. [/оффтоп]

    Я тучка, тучка, тучка, а вовсе не медведь

    Достаточно многие малвари (хотя скорее их создатели) догадываются о существовании антивирусов, вирусных аналитиков, автоматических систем анализа и о прочей инфраструктуре «корпорации добра» и всячески стараются усложнить им жизнь и продлить жизнь своим поделкам, путем различных технических приемов по усложнению анализа зловреда и наложения на него детекта. Простейшим примером этого может служить криптовка/паковка, которая убивает сразу небольшой табун зайцев:
    — если зловред задетектился, то перепаковал его и снова в шоколаде
    — дизассемблеры/статические анализатор становятся бесполезными (нужен ручной разбор с отладчиком)
    — не каждый эмулятор антивируса раскрутит даже простенький криптор
    Пример самый, что ни на есть банальный, призванный показать в какую сторону мыслят хакеры (по правильному их нужно называть преступниками, но такая уж откуда-то традиция пошла подменять понятия...). А мысль следующая (от лица малвари): если я чувствую, что меня исследуют, то зловредствовать не буду, дабы не поняли как я работаю или вообще не поняли мою злую сущность. Свою «подопытность» она определяет так:

    1. Обнаружение запуска под онлайн сервисами анализа поведения (Anubis, ThreatExpert, ...)
    Производится путем проверки имени компьютера, пользователя, нахождения в адресном пространстве определенных dll-библиотек, ключу
    операционной системы.
    2. Обнаружение виртуальной машины (VMWare, SandBox)
    Путем поиска определенных процессов, ключей реестра, железа, выявление различий с обычной системой разными ассемблерными трюками.
    3. Детект отладчика
    Проверка определенных байтов в окружении, поиск окна, процесса, драйвера.
    4. Обнаружение утилит активного/пассивного мониторинга (RegMon, FileMon, RegShot)
    Обычно это реализовано поиском окна по заголовку.

    Суть данной антивирусной защиты до безобразия простая — дать малвари понять, что ее исследуют и она сама откажется от своих дурных намерений. Переходя от теории к практике (в разумных пределах) сказать можно следующее (по аналогичным пунктам):
    1. Имя юзера и компьютера — sandbox.
    2. Процесс в системе: vmware.exe, VMwareTray.exe. Раздел HKLM\SYSTEM\ControlSet001\Services\vmware. Файл vmnet.sys в drivers.
    3. Многие детектят драйвер SoftIce — достаточно его запустить, он кинет драйвер и все (да-да, его до сих пор ищут!). Окно с классом «OllyDBG».
    4. Окна с заголовком «File Monitor — Sysinternals: www.sysinternals.com», «Registry Monitor — Sysinternals: www.sysinternals.com».
    По сути все это просто сделать (если захотеть): при установке системы задать определенные имена, создать пару ключей/файлов, написать тулзу, которая будет держать невидимыми несколько окон с определенными именами, а саму тулзу назвать vmware.exe.

    ВКонтакте отключен за неоплату хостинга

    Вот вам смешно, а нечто подобное на своих экранах могут наблюдать многие наши соотечественники. Огромную популярность имеют троянцы класса Qhost, задача которых тупо отредактировать файл hosts и самоудалиться, таким образом, адресам сайтов популярных социальных сетей (вконтакте, одноклассники) присваивается левый IP-адрес… и человек потеряет свой логин/пароль, да еще и смс отправит…
    Несмотря на технологическую простоту создания, данные троянцы приносят большой профит создателям — минимум усилий и в краткосрочном периоде куча вконтакте акков и денег. hosts-файл редактируется или напрямую (открытие->запись) или посредством командных интерпретаторов (создание и запуск bat/vbs) — все очень просто: по некоему фиксированному пути (C:\WINDOWS\system32\drivers\etc\hosts) лежит файл в конец которого нужно дописать несколько строк — это же второй урок программирования на любом языке после hello world'a! А вот тут-то и есть небольшая хитрость защиты, дело в том, что путь к папке etc указан в реестре и если поменять путь на другую папку (туда положить все файлы из предыдущей, а из etc потереть), то троянец будет несколько удивлен…

    Вот этот ключик:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\\DataBasePath
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\\DataBasePath (и по другим 00Х ключам соответственно).

    Об уровне интеллекта и национальности авторов некоторых троянцев такого класса можно выдвинуть предположение даже без заглядывания в код:

    [​IMG]

    Батники имеют примерно (упрощенно — убрана обфускация, оставлена лишь переменная TANGLE для наглядного понимания как обфусируются bat-файлы ) следующее содержание:
    Консоль видишь? Нет? А она есть…

    При эксплуатации уязвимости шелл-код очень часто выполняет разные действия, манипулируя cmd.exe, благо запустить его просто (система даже путь сама к нему найдет) и букв в нем мало и в системе он есть, а это для шеллкода очень важно, особенно в свете последних технологий перемены адресов всего что только можно в адресном пространстве.
    Потому наша главная задача это подложить хакерам и тут эдакую толстую, подозрительно хрюкающую свинью: можно подменить системный cmd.exe (включая его копии в dllcache, i386, $NtServicePackUninstall$) нашей заглушкой, которая при вызове будет сохранять в буфер переданные параметры и выдавать алерт «продолжать, али нет» и при согласии на то будет с теми же параметрами запускать уже нормальный cmd (предварительно положенный рядом в переименованном виде).
    Современная малварь очень многие критичные действия в системе делает посредством запуска cmd.exe с километровой длинны параметрами (например внесение изменений в тот же hosts).

    Заглушку можно усложнить добавив ей возможность считывать из конфига на какие процессы не выдавать алерт о запуске, а сразу передавать параметры к новому cmd.
    Данная мысль стала оформляться, расти и крепнуть при наблюдении постоянного сближения зловредов и cmd.exe — они прям стали лучшими друзьями и даже больше — он для них является прям Тарасом Бульбой: сам порождает, сам и убивает — при срабатывании эксплоита именно он зачастую запускает загруженную малварь и метод самоудаления тоже реализован через bat-файл, да и во время своей работы вредонос время от времени нагружает командный интерпретатор работой.
    Отдельно хочется отметить существование бестелесных звлоредов, у которых и худенького exe-файла в системе нет, а все выполняет java — эксплоит ей указывает, что нужно делать и она послушно исполняет. Вот пример из жизни (данные действия производит процесс java.exe):

    Для самого себя в исследовательских целях была написана такая утилита, если нужен исходный код или сама тулза, то можно со мной связаться и без проблем его дам, мне не жалко.
    В данном пункте стоит отметить еще одну немаловажную деталь, накладывающую жесткие ограничения на использование данного способа защиты на реальной системе: если вы лицензионный пользователь антивируса «Иммунитет», то от нашего левого cmd.exe будет очень много запросов на запуск батников.

    Линуксы направо, виндусы налево

    Известно, что большинство зловредов приходят к нам на компьютер через окно в интернет — через браузер и его плагины, потому поставив защиту на этом этапе (Файл — Работать автономно… шутка) мы отсечем львиную долю угроз. Для этого вкратце рассмотрим принцип работы эксплоит-пака:
    1. Из User Agent'a извлекается информация о браузере и его версии, операционной системе и языке
    2. В зависимости от результатов первого пункта (см.ниже) происходит определение какие плагины вообще есть и эксплуатация их уязвимости, либо, если ничего подходящего среди имеющихся эксплоитов нет, не происходит ничего плохого

    Разумеется, что есть и исключения, когда независимо ни от чего в код страницы засовываются сразу все эксплоиты (авось хоть что-то сработает), но большинство эксплоит-паков ведут статистику, учет по странам, имеют красивый интерфейс и прочие плюшки и настройки. Посему философия защиты такова: нужно изменить User Agent и указать там то, против чего точно нет в запасе эксплоитов, например Линукс. В идеале, конечно, было бы вообще заменить UserAgent на линуксовский браузер какой-нибудь полностью, но это в теории может повлечь небольшие перекосы страниц на каких-нибудь сайтах, хотя я такого не замечал.
    Все популярные связки (та же Blackhole exploit kit) моментом отправят вас общаться с гуглом, даже без попытки опробовать на вашем браузере эксплоит.

    Вместо вывода

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

    Источник
     
    Kиpилл и Candellmans нравится это.

Поделиться этой страницей