Pull to refresh

Comments 127

Интересная статья, спасибо.

Подскажите, проверяли ли вы обнаружение антивирусами «вредоносного кода» упакованного более серьезными утилитами, например msfencode?

Если да, то насколько изменился процент обнаружения?
Спасибо за спасибо. Рад, что понравилось.
Отвечая на Ваш вопрос — msfencode вроде ж как с 2015 года уже не разрабатывается?
Как показала практика, движки нормально распаковать упырь не смогли, так что думаю, что всё более серьёзное будет детектится просто по сигнатуре упаковщика. Что по сути даст гору фалсов на любой код, упакованный этим упаковщиком (epic).
На самом деле целью статьи было вовсе не расписание поэтапно процедуры полноценного снятия детекта — при запуске всё равно eicar вылезет и сработает резидент. Так что молодые вирусописатели могут успокоиться )))
Целью было показать, что на настоящий момент проблема детектирования упакованного кода так и не решена даже на уровне базовых, опенсорсных упаковщиков.
Я понимаю, что аналитики-специалисты по распаковке кода — самые редкие и ценные в любой антивирусной лаборатории, я понимаю, что распаковка сопряжена с тратой ресурсов системы — но я не понимаю, почему антивирусы обрастают свистоперделками, жрущими эти самые ресурсы, лицензии дорожают — а качество выполнения прямых обязанностей остаётся на уровне, который был 10-15 лет назад.
Вот Вам, кстати, ситуацию из жизни.
Свеженький кейлоггер. Файл абсолютно вредоносен. Вот итог скана на Virustotal:


Как видим, Касперский его не видит :) Ну как не видит…


То есть — опасность есть, но рисков нет :)

Ещё про детекты из реальной жизни с реально хорошо упакованными файлами продолжать? )))
>То есть — опасность есть, но рисков нет :)

Нужно учитывать, что при сигнатурном детектировании ВТ использует вирусные базы, загружаемые с серверов вендора, иногда — с некоторым лагом. То есть, детект уже добавлен в базу, но движок на ВТ еще не успел ее обновить. Отсюда возникают подобные ситуации: на клиентах семпл детектится, на ВТ — еще нет.
Ну так пример выше показал, что на клиенте семпл не вызывает рисков )))
Смешно не отсутствие детекта на ВТ — с кем не бывает, смешна трактовка на Kaspersky Application Advisory.
Я перестал пользоваться касперским, как раз после того, как обнаружил, что он ничего не обнаруживает в явно подозрительных вложениях с xls-файлами, содержащими vba-скрипт. Базы у локального антивируса были наипоследнищие. При этом проверка этого файла через сервис в тот же момент на их сайте успешно обнаруживала вирус. Локальный антивирус начинал детектить эти файлы через 3-10 дней (вирусописатели продолжали слать подобные письма с разными, но однотипными файлами, так что материала для проверки мне хватало).
Тех.поддержка не смогла ни решить эту проблему, ни дать какой-либо вразумительный ответ почему это происходит. После месяца переписки с тех.поддержкой мне надоело, и я выкинул антивирус в корзинку.

Да, все эти файлы через какое-то время начинали обнаруживаться антивирусом. Но вирусописатели к этому моменту уже успевали прислать как минимум пару новых версий. Эта статья прекрасно дополнила мой опыт общения с антивирусами.
Если я правильно помню, детектор кейлоггеров и программ удаленного доступа включается в настройках отдельно. Не знаю правда, почему он по умолчанию выключен…
Неправильно помните. То, что Вы помните — это настройка проактивной защиты. А то, о чём написал я — детект файловой сигнатуры, которая всегда включена.
UFO just landed and posted this here
Ну во-первых — использование кейгенов незаконно.
А во вторых — чистых их становится всё меньше в свете проверок ключей на серверах, а потому они дополняются патчами.
Использование самих кейгенов вполне законно. Не законно использование ключей полученных с помощью кейгенов для получения полнофункционального ПО.

так то кейген, а тут-то кейлоггер

Msfencode не упаковщик, строго говоря. А про upx автор написал.
*нажимает на последний кат*… ой… а о чем я только что читал?
Извините, но меня заставили сделать это в обмен на публикацию )))
Свет с Венеры отразился от верхних слоёв атмосферы и вызвал взрыв болотного газа.
я не очень понял а в чём смысл, virustotal тестирует только сканнер файлов. Неочевидно то что у кого детекта нет дадут запустить файл т.к тот же oas на распаковке скорее всего зарежет eicar. Почему вы считаете что эмулятор антивируса должен догадываться о том какой пароль у содержимого распаковывать самому и детектить eicar? Вполне резонно, что всё это ведет к эвристическуму детекту?
Потому что резидент работает по тому же движку, что и сканер.
И суть не распаковывает содержимое.
Итог я Вам сейчас покажу.
Вот детект страшного вируса — исполняемого файла foobar2000, сжатого NSPack. Пароля там нет.
То есть вирусом является не код, а тот факт, что антивирусный движок не смог этот код распаковать? Вам это не кажется странным?
И я скажу Вам по секрету: эвристики в последних редакциях представляют собой не какие-то мифические угадыватели, а эмуляторы кода. И эмулируя код в моих примерах из статьи пароль очень даже известен )
ну в предложенный ссылки детекты в основном китайских ав. В av comparatives я их имена не видел.
Про эвристики да они в основном на эмуляторе, но вроде акцентируется в основном на системные вызовы и вызов тех или иных системных компонентов. Вот оно и будет эмулироваться с точки зрения их, а никак не искать что это за бинарь не 7za ли, да это же опция password, надо срочно эту область с ним распаковать и просканировать
Да уж. Sophos, F-Prot, Yandex и Vipre — явно китайские антивирусы :)
Простите, но AV Comparatives не является окончательной инстанцией и абсолютной истиной.
К тому же у Вас несколько неполные знания о работе эвристического эмулятора кода.
Очевидно, вы проделали достаточно большую работу — это вызывает уважение. Но с формулировкой выводов я не согласен.

примитивный способ обмануть антивирус
на самом деле таковым не является. В моём понимании «обмануть антивирус» (если навскидку) — это «успешно выполнить вредоносный код на ПК с корректно настроенным и работающим антивирусом, включенными защитными механизмами и актуальными базами». А у вас приведена ситуация «как протащить на ПК пользователя контейнер с вредоносным кодом», ну или «как обмануть файловый сканер антивируса». Пфф, да протащите вы хоть миллион таких файлов — и будут они там лежать до скончания века, пока не запустятся. Вот в момент запуска и начинается самое интересное — а этого в вашей статье нет. ¯\_(ツ)_/¯

Заголовок у статьи хороший, не жёлтый — а вот про выводы я такого, увы, сказать не могу. Если бы вы взяли несколько популярных антивирусов, установили их на стенд и успешно выполнили бы вредоносную нагрузку — тогда вывод про «обманули антивирус» я бы признал. Охотно верю, что при желании и такой эксперимент вам по силам — но это уже, согласитесь, всё-таки заметно более трудоёмкое мероприятие, чем упаковка исполняемого файла в 7z или однократное применение UPX)

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

Как уже говорил неоднократно — статья представляет собой РоС. Для обхода резидента достаточно перевести распаковку в область памяти, для обхода проактивки — ещё несколько штрихов. Но каждый дополнительный «штрих» добавляет специфичности к продукту, объёма работы и т.д. Подобные доклады, равно как и найденные решения — это уже немного не тот масштаб.

Но Ваше мнение принимается.
Нет, не указали))
Очевидно, на этот файл нет отдельной сигнатуры. Вместе с тем, будет ли он заблокирован антивирусом на ПК — совершенно непонятно (вполне может сработать проактивная защита).

А «штрихи» — это и есть самое интересное. Цель-то — это выполнить нагрузку; протащить её — только часть дела, хоть и тоже по-своему непростая.
Но проактивная защита является пользователь-зависимой, не так ли? Как поступит простая домохозяйка, когда у неё появится алерт, что процесс Х желает запустить процесс У?

Вы проверяли?
По-моему, это уже от конкретного антивируса зависит. Скорее всего, часть поведенческих сигнатур отрабатывает и без взаимодействия с пользователем. Особенно явная жесть типа модификации всех подряд исполняемых файлов (пример совершенно абстрактный; какое именно поведение отлавливать — это уже вопрос к разработчикам сигнатур).

Проверял. Домохозяйка = хороший пример, она регулярно сталкивается с таким поведением при установке любой программы или выполнением любого обновления. Поэтому лишний раз такой алерт её напугает.
Мне неизвестно ни одного надёжного полностью автоматического проактивного механизма, который бы нравился пользователям. Либо он напрочь отрежет любую активность, подозревая её во вредоносности — и бедный сисдамин такой организации! — либо защитит постольку поскольку.

Если Вам известен пример обратного — сообщите о таком решении и его настройках.
А по поводу сигнатур: на Sality и Petya она была.
Почему же эта сигнатура сбивалась простым UPX? Почему считанные эвристические эмуляторы проверили выполнение кода с распаковкой по моему сценарию и обнаружили угрозу?

Так скорее всего сигнатуры и были не эвристическими, а файловыми. Файл поменялся — сигнатура сбилась.
Внедрение в сканер эвристики вообще довольно затратная штука: слишком большие расходы времени / ресурсов на проверку. Тоже, кстати, хороший вопрос, какие антивирусы это делают и какие настройки движков применены на VirusTotal.

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

ОК, возьмём проверенный вариант — Petya. Детекты выше были, их было 61 — хороший, надёжный детект.

Накрываем его UPX — старый, известный и опенсорсный упаковщик:

Осталось 47 детектов. Кто с файлового сменился на эвристический — не буду комментировать, разбирайтесь. Кстати, UPX — это уже нормальный пакер, такой пройдёт резидентную защиту, если сканер ничего не обнаружил, это уже не детский сад на пальцах, описанный в моей статье.

Едем дальше — NSPack 3.7 2006 года выпуска:

41 детект.

ASPack 2.28 2011 года:

27 детектов.

Поверьте, я могу поиграть ещё немного и сделать Петю безопасным, как блокнот Windows — но моя цель не показать это и заразить полмира (а чего, амбициозно!), я просто хочу сообщить о проблеме, доступно изложить её детали. Этого я и добивался.
[zanuda mode]Сделать на уровня блокнота windows не сможете — у вас нет цифровой подписи от microsoft
Вы не показали, получится ли полученную нагрузку выполнить на ПК. То что сканнер рапортует что ок, это не значит что ав продукт даст вам что-то запустить, даже если распаковывать в память будете скорее всего будет детект проактивкой. Понятное дело что можно написать vm protection на бинарь который обломает уровень эмуляции hipsа, но это будет совершенно не такой уровень.
[zanuda mode off] А с каких пор на блокноте Windows стоит цифровая подпись?
С учетом того, что для SHA1 подобрали-таки коллизию, можно считать, что на нотепаде цифровой подписи больше нет.
Подобрать к уже существующему хешу файл с таким же хешем и подобрать два произвольных документа с одинаковым хешем — разные вещи. (вот тут разъясняют blog.cloudflare.com/why-its-harder-to-forge-a-sha-1-certificate-than-it-is-to-find-a-sha-1-collision )
Пишут, что second-preimage attack даже на MD5 ещё не найдена.
Статья хоть и 2015 года, но всё ещё соответствует реалиям, SHA1 уже в то время считался не самым стойким алгоритмом хеширования.

Плюс найденные(опубликованные) векторы коллизии в SHA1 известны и нормальные CA не должны выдавать сертификаты в которых замечают подобное, таким образом компенсировать этот риск (ещё там энтропия и непредсказуемость).
(пример github.com/cr-marcstevens/sha1collisiondetection)

Поэтому провести атаку с подменой файла, подписанного SHA1, всё ещё выглядит нереальным. Скорее, более уязвимыми в этом плане являются сами сертификаты, при помощи которых осуществляется подпись, т.е. CA, которая их выдаёт.
Если я правильно понимаю эти каталоги безопасности в виндах, то подписывается сертификатом там не файл, а список хэшей, т.е. для того, чтобы программа считалась подписанной, нужно, чтобы её хэш был в списке, и вероятно, чтобы путь к ней совпадал с указанным в каталоге (я не увидел, хранит ли каталог безопасности путь к файлу, или что-либо ещё). Таким образом, атака подменой исполняемого файла выглядит вполне реализуемой.
Давайте ещё раз.
атака подменой исполняемого файла выглядит вполне реализуемой

В такой ситуации, это то, что называется preimage attack, т.е. у вас есть известный хеш, вам надо создать файл с таким же хешем.
Это для SHA1 пока-что не реализуемо (не нашли такую уязвимость в алгоритме, которая позволит понизить требуемую вычислительную мощность для перебора и уйти от прямого brute-force).

Поэтому само по себе подменить один заданный файл на второй файл с таким же хешем пока не выйдет.

Основная проблема с SHA1 коллизией, в том, что этим алгоритмом хеширования пользуются CA для подписи сертификата (digital signature). Т.е. возможно при определённых условиях получить сертификат с подписью идентичной подписи уже ранее выпущенного сертификата (только подпись, не закрытый ключ) и, например, подписать им код, и ему будут доверять, т.к. поддельный сертификат будет проходить проверку на валидность (это верная цепочка доверия до корневого CA плюс проверка на отзыв), хоть при этом и не будет являться идентичным сертификатом. Одно из этих определённых условий — предсказуемость полного содержимого сертификата (того сообщения, которое будет подвергнуто хешированию самим CA). CA с этим борется путём увеличения энтропии этого сообщения, т.е. делая его непредсказуемым и исключая известные векторы атаки в содержимом запросов. Плюс ужесточая проверку в реальном мире(документы, юрлица, звонки) при получении Code Signing сертификатов.
Такую подмену смогли сделать пока только для MD5.

Поэтому как раз подмена файла на файл с таким же хешем выглядит маловероятно.
На данный момент гораздо более вероятной выглядит угроза компрометации сертификатов. Поэтому CA так торопятся уйти от SHA1 одними из первых.

Это справедливо и для файлов, которые заверены подписью в PE заголовке или отдельно, через catroot.

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

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

Можно протащить через корпоративный почтовый сервер с антивирусным сканером, а у пользователей антивируса может вообще не быть. Да и чего беспокоиться — в письме же стоит пометка что антивирусом проверено. Так что не залежаться:)
у пользователей антивируса может вообще не быть
О_О
Ну это уже клинический случай какой-то совсем спорный подход к обеспечению корпоративной безопасности.
Наблюдал неоднократно.
— мы бедные и никому не интересны
— а докажите нам на цифрах, что ваш продукт гарантированно снизит наши расходы на восстановление потерянной информации
— у нас пользователи умные и ходят только по необходимым по работе ресурсам
Ну если менеджмент считает, что закрывать эти риски нецелесообразно — пожалуйста. Жизнь покажет, правы они или нет. Возможны оба варианта.)
Есть бесплатные для коммерческого использования антивирусы. И я сейчас не о MSE даже.
Вероятность словить заразу у такиз ребят очень высока. Не, ну если у них там везде всё круто, многоуровневая защита периметра, правильные SecPol и прочие SRP, то есть возможность работы без антивируса на станциях. Только вот что делать с флешками? у меня, например нет возможности лочить их, это часть бизнес-процесса
Обычно они запрещаются на уровне отключения портов.
Я знаю как запретить доступ к внешним накопителям, но написал, что лично у нас это, как минимум, очень затруднительно. Мы — медиа, штат — 79 рабочих мест, на 23:42 2018.01.12. Нужен как минимум один живой отдельный человек, которому бы все сотрудники приносили бы устройства для проверки. Это сильно усложняет и задерживает процесс. Пришел клиент с роликом на флешке, а ему — «пррройдемте», а там уже такой же стоит и ждет. Да, весь диск сканировать не надо, достаточно переписать, но это лишнее время. К тому же неизвестно что делать с запароленными архивами. Юзер точно забьет болт, сам скачает, сам распакует. SRP тут выручит, почти в 100% случаев, конечно. Хм, пока писал, тут подумал, так и флешки не при чем, получаются. Один фиг, не запустится ничего. Ну тогда, пожалуй, да. Есть смысл жить без антивирусов при очень хорошей защите периметра. Я даже задумался. Ведь в детектах на клиентах я вижу только срабатывания на сайтах и закачанных из разных источников файлах. Есть повод изменить стратегию АВ-защиты. Ну и пускай лежат себе Пети с ВаннаКраями. Такой интересный будет рассадник заразы, ни разу не запущеной )) Есть вариант, когда юзер обойдет SRP злонамеренно и тогда ничего не спасет контору от утомительного простоя и рекавери данных.
Ещё один вариант: полный возврат системы к исходному состоянию после перезагрузки. Пользователям доступна только сетевая папка, которая не стирается.
Ну и конечно политика ограничения прав.
Опять не наш случай. Возврат системы никак не поможет, когда зараза уже сидит и портит файлы на сетевых ресурсах. Видеоматериалы очень много весят. Многие юзеры обязаны иметь права на запись в соответствующие каталоги с медиа-контентом. Имея несколько десятков ТБ, я имею очень ограниченные ресурсы по их бекапу. Конечно, юзер не может заразить всё, только куда есть доступ 660, но опять же это простой. Я действительно сильно задумался о дополнительных мерах защиты периметра, посмотрим, что это даст.

P.S. вдруг, через полтора года тут будет статья типа «как мы год живем без антивируса», интерейсный кейс я щас себе придумал.
Ну дерзайте, никто лучше Вашу специфику не знает, чем Вы.
Но вот что мне ещё пришло в голову.
Ваши пользователи работают с медиа — софт стоит в одном месте, прав на запись там у пользователей нет, только выполнение.
Запись есть в единой папке, но при отобрать права на запись исполняемых файлов, только медиаконтент.
В итого зараза просто не сможет быть запущенной.
Есть ещё вероятность проникновения извне через уязвимости — но это совсем другая история.
Хорошо, я не слишком люблю ссылаться на свои же статьи, но тут не обойтись — habrahabr.ru/post/269531
Можете просто пробежаться по заголовкам. Всё упомянутое на момент публикования статьи, естественно, реализовано. Сейчас еще кое-что накручено сверху.
Ну так вполне нормальная статья. Всё в принципе известное и очевидное собрано воедино и приправлено реальными примерами.

Я не лезу в Ваш монастырь со своим уставом, просто озвучиваю идеи применительно к Вашей проблеме. Если «папа сам с усами» — ОК, умолкаю.
Я наврал, не будет такой статьи. Сам же упомянул злонамеренный обход SRP и успешно про него забыл в предыдущем комментарии.
Видеоматериалы и прочие чистые данные защищаются довольно легко запретом выполнения.
ПО установлено туда, где юзеры не могут записывать, данные записываются туда, где юзеры не могут ничего выполнить.

Гораздо хуже, когда всякие «торговые площадки» и прочие наколенно-сделанные приблуды для шифрования по ГОСТ располагаются сугубо в профиле пользователя.
Добавлю свои 5 копеек про SRP/AppLocker.
Все знают что SRP/AppLocker можно обойти. Это легко гуглится по «SRP/AppLocker bypass».
В нагрузку к этому Microsoft не считает это настоящими уязвимостями по простой причине — эти продукты не задумывались как средства обеспечения безопасности изначально, и поэтому были разработаны соответствующим образом, и поэтому столько способов их обхода. ( www.securityfocus.com/archive/1/540310 )

Возникает вопрос: а что тогда задумывалось?
Эта штука называется Windows Defender Device Guard/Windows Defender Application Control. ( docs.microsoft.com/en-us/windows/device-security/device-guard/introduction-to-device-guard-virtualization-based-security-and-code-integrity-policies )
Грубо говоря, политика WDDG позволит запретить запуск неподписанного кода на устройствах. Если необходимо запускать приложения, на которых нет цифровой подписи, то подписать их можно самостоятельно.
Так же WDDG добавляет дополнительные уровни изоляции для некоторых критически важных областей системы.

AppLocker только дополняет WDDG. Защита всегда состоит из слоёв, и лучше — когда их больше.

Если WDAC чересчур сложно и ограничиваться только AppLocker'ом, то перед тем как спать спокойно, необходимо заблокировать все методы, которые выдаёт гугл по запросам SRP/AppLocker Bypass и Hardening.
Уйду изучать. Лишний слой гемора защиты — нелишний. Спасибо. Чересчур сложной защиты (для защитника) не бывает, если понимаешь как её обойти.
Байпас изучил. А что мешает выполнить код злостному юзеру из temp без всякой фигни? Смит не знает про командную строку? Тем более, regsvr прокси не обойдет. Чет сложно у вас.
А что мешает выполнить код злостному юзеру из temp без всякой фигни?
При настроенном AppLocker?

Смит не знает про командную строку?
Этот момент тоже не очень понял.

Может мы рассмотрим конкретный сценарий обхода?
При настроенном AppLocker?

Да.
Может мы рассмотрим конкретный сценарий обхода?

Любой юзер по дефолту имеет права на запись в %windir%/temp
Именно для этого и нужно быть в курсе способов обхода. После их изучения, эти способы обхода надо исключить из стандартных правил.

Следующий слой защиты — запретить исполнение скриптов тем или иным образом.
После этого — запретить неподписанные исполняемые файлы/dll.
Наблюдал более интересное поведение.
На клиентских ПК стоят антивирусы (платные, лицензия, все дела), а на серверах — нет. А знаете почему нет, хотя данные на 1 сервере стоят столько же, сколько на всех клиентах вместе взятых? Да потому, что любой из этих ммм программных продуктов, уже в 2018 году, не умеет правильно соразмерять свои возможности по захвату ресурсов и эти самые ресурсы. Антивирус, которому взбрело вдруг что-нибудь проверить, вполне в состоянии парализовать работу 1000 человек на несколько минут (если повезет). Если не повезет, и будут дэдлоки — до нескольких часов. Почему из эдцати ядер надо сожрать все эдцать, несмотря на любые настройки, и начать при этом с первого (нулевого?) ядра, я не понимаю. Я уж не говорю о том, что внеплановая проверка может поставить дисковую подсистему в неудобное положение.
Прямо как 1С. Шел 2018-ый год, а построение отчета наглухо вешает процесс.
На каспере не встречал такого, живут АВ там и там. На FS, естественно не Endpoint. У них же там типа технология «интеллектуальной проверки», если один сканер проверил, другой не трогает.
Опять 1с приплели черт знает зачем.
Затем, что 1С тоже не умеет адекватно пользоваться ресурсами, в результате GUI тупо фризится и все. К сожалению, мне сейчас неудобно предоставить пруфы к моему высказыванию выше, но поверьте на слово — на текущей работе у нас есть 1 маленький сервер с Касперским, на предыдущей работе на сервере стоял DrWeb. И оба продукта вели себя почти одинаково плохо.
[offtopic]1С в режиме тонкого клиента при построении отчета, фризит клиент на 2 секунды, после чего его построение уходит в фон и не фризит клиент. И это уже как бы достаточно давно[/offtopic]
Есть такое дело, а почему? Антивирус он же в общем вещь тупая и делает добрые дела так как он понимает. Если кто-то дергает постоянно базу данных скажем и таймаут (не суть какой, их много) на проверку истек, то файлы начнут перепроверяться. Именно поэтому та же Майкрософт размещает рекомендации, какие файлы и базы данных нужно исключать из проверки. Естественно настроив запреты доступа в эти места, что бы в них не размещали всякие трояны
И антивирусная система защиты — это не только антивирус. Это набор мер, которые вы выбираете на основании рисков. Можно обойтись запретом доступа, изоляцией подсетей и процессов, введением терминального доступа и тд. Это тоже антивирусная защита. Вон скажем Касперские продвигают для банкоматов и встраиваемых систем продукт на основе контроля целостности и периодических проверок — постоянной антивирусной защиты не предполагается.
Я лично не сторонник использования только контроля доступа — при таком подходе свои минусы, но если есть проблемы с производительностью — это один из вариантов
Спасибо, чуть не забыл — именно так проходило заражение Петей на предприятиях Метинвест-холдинга на Украине. Довелось быть свидетелем, кстати )))
Наоборот. Сначала файловый монитор (проверяет до старта), потом поведенческий анализатор (смотрит, что делает после запуска)

Но на самом деле проверок еще больше. Если брать самый общий случай, то:
проверка на доступ к ресурсу на наличие в списке невредоносных — проверка трафика на вирусы — проверка скачанных скриптов на подозрительность/проверка письма на спам и отсечение писем с вложениями — запрет на старт по белому списку/правам запуска — проверка при старте файловым монитором — контроль проактивкой — проверка руткитом

Естественно все это при соответствующей настройке системы. А обойти именно анализ антивирусным ядром на основе информации в антивирусных записях естественно можно
Кстати, а с заголовком-то что?
Сканирование файлов антивирусами рассмотрели — сигнатуры сбиваются упаковкой, эвристики больше дают ложных срабатываний, чем пользы.
Доверие результатам VirusTotal вроде как в статье набросал кучу и в комментариях вторую — нет его, доверия, любой безопасный файл можно обставить как вредоносный и наоборот.

В чём желтизна-то?
Заголовок хороший, мне понравился — я же так и написал)
Только с выводами не согласен.
Я понял, извините, спутал «не» с «но».
Много вопросов и комментариев получилось.
Немного личного опыта: заметил, что с завидной регулярностью ВирусТотал ругается программы отечесвенной разработкой, причём среди списка баз фигурируют только иностранные, а отечественный отмалчиваются. К чему бы это?
Правильно ли я понял Ваш ломаный русский: Вы утверждаете, что ВирусТотал ругается на отечественные программы, при чём в этом случае ругаются зарубежные антивирусы, а отечественные отмалчиваются?

Если я правильно понял, то эта информация неверная.
Зачем минусите? Вот пруфы:
(Как видно, Symantec и McAffee ругаются, а Dr. Web и Kaspersky молчат…)
P. S. Прога реально используется отделом «К», если надо кого-то обвинить в установке ворованного ПО







Вообще, на сколько я вижу, все, кто нашли, сделали это эвристикой. Если учесть, что прога Российская и за пределами РФ к использованию не предназначена, то зарубежные антивирусы могут понятия не иметь о том что это такое и есть ли там вредоносный код или нет. Я не утверждаю, что там ничего нет, но и с уверенностью говорить, что там что-то есть, тоже нельзя. Это может быть банальное ложное срабатывание, которое никто за рубежом не удосужился исправить. И это, кстати, вполне нормальная ситуация. Они ложные срабатывания и на родном софте не всегда успевают исправлять. Так, например, бинарник игры Scarlet Blade упакован Themida и на него ругается целый ворох зарубежных антивирусов просто из-за одного этого факта, хотя вредоносной деятельности за игрой вроде как не замечено.
Скинул пруфы (см. выше)
Вообще это весьма вероятная ситуация для местного софта, который по какой-то причине раздражает эвристику. И не важно есть там что-то или нет. Локальные антивирусы скорее всего будут в курсе данной софтины, проверят и сделают исключение, убедившись что там нечего ловить. Зарубежные же и через несколько месяцев могут понятия не иметь, что это такое и кому оно надо. В ловушки оно к ним не приходит, пользователи не жалуются, а делать исключения в эвристике и так полно для кого, чтоб ещё и этим заниматься. и это касается не только местного софта в РФ, а практически любой страны.
У сканеров нет другой возможности детектить вирусы, кроме как по сигнатурам. Открою страшную тайну — практически все системы анализа трафика или дискового содержимого делают это по сигнатурам. И SIEM'ы многие на сигнатурах работают.

Поэтому обеспечение безопасности — это комплексный процесс. От обучения пользователей не кликать на посторонние ссылки в левых письмах, до антивирусов, песочниц, DPI и SIEM.

Всем известно, что детект по сигнатурам полон недостатков, но пока никому ничего лучше придумать не удалось. Если у вас есть какие-то идеи, которые позволят выкинуть сигнатурный анализ на свалку истории — так поделитесь :-)
Когда-то давно — ещё до того, как Invincea приобрела Sandboxie, существовал аддон Buster Sandbox Analyzer.
Аддон позволял выполнять исследование исполняемых и не только файлов с среде песочницы с выводом логов активности.
То есть файл реально выполнялся, однако изменения не вносились в систему, однако все API-вызовы журналировались, равно как и другая активность.
Понятно, что в случае, если анализируемый файл проявлял сетевую активность, то подобный анализ усложнялся, также понятно, что в случае защиты от выполнения в тестовой среде тоже всё было непросто, но тем не менее анализ получался довольно интересный, более того — имелись некоторые идеи по его автоматизации.
Я об этом даже писал когда-то давно.
К сожалению, проект умер вместе с изменениями в самой Sandboxie. Однако, как мне помнится, сейчас во многих решениях есть песочницы — в чём проблема сделать в них аналогичный обнюхиватель?

Идея не нова, что касается революционных решений — извините, а с каких пор идеи генерирует пользователь, платящий за лицензии, а не разработчик, получающий зарплату? ;)
Вам не кажется, что это несколько не логично? Вы предъявляете претензии к СКАНЕРАМ, а в качестве альтернативы сигнатурному анализу рекомендуете песочницы. Но песочницы — это уже другая технология из комплекса мер противодействия угрозам ИБ. И свои минусы у неё тоже есть — например, большое время обработки файла по сравнению со сканером по сигнатурам.

Песочницы, разумеется, есть уже если не во всех, то в большинстве современных антивирусов: safe.cnews.ru/news/top/kasperskij_obzavelsya_pesochnitsej

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

Идея не нова, что касается революционных решений — извините, а с каких пор идеи генерирует пользователь, платящий за лицензии, а не разработчик, получающий зарплату? ;)

Ну так если идея действительно окажется революционной, то вы можете неплохо поправить материальное благосостояние :-)
Всё предельно логично.

1. Сигнатуры должны быть верными и действительно отвечать реальным угрозам, а не «угрозам без риска» (см. выше). Кстати, сигнатуры добавляют тоже отнюдь не быстро.
2. Эвристическому анализатору, который, как показал эксперимент, одинаково сообщает как о ложный угрозах, так и молчит о настоящих, вполне можно заменить «обнюхивателем» — да, он будет медленным, но согласитесь — в распоряжении пользователя не так часто бывают неизвестные исполняемые файлы. Не путайте ту ситуацию с песочницами, что существует, с моим предложение — насколько мне известно, песочницы в текущий момент не выполняют анализ вредоносности, а просто изолируют среду выполнения.
3. Интернет-угрозы и жабаскрипты вполне можно отключать проактивкой и аддонами к браузерам.

По поводу «материального благосостояния» — ну уж если бы я чувствовал, что выдаю нагора нечто революционное — уж точно не кричал бы об этом всем и каждому ;) Я не претендую на гениальность, просто имею своё мнение, пытаюсь его донести и отстоять.
Уточню, что с сигнатурами все не так просто. Файлов на анализ в день приходит до миллиона и более. Поэтому вручную их просто нереально обработать. В связи с этим обработка потока и добавление сигнатур автоматизировано. И делается это быстро. Но оборотная сторона — возможны ложняки, хотя конечно все и тестируется на стендах.
Простите, но Вы немного кривите душой.
Я ещё ни разу не слышал про то, как убирают «ложняки» пиратской Themida и ASProtect. При этом:
  1. Посыл про «борьбу с пиратством» звучит смешно — это не задача антивируса.
  2. Посыл «пусть сам автор программы обратится к нам» выглядит странно — проблема у меня с антивирусом, а не у автора программы.
  3. Посыл «в настоящий момент все наши ресурсы заняты более важными делами» выглядит непрофессионально — кому я тогда плачу за лицензию?

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

2. Лично наблюдаю в тестинге исправления ложняков. В том числе не по тикетам, а с форумов. Если есть претеннии — просьба привести номера тикетов. Если вас необоснованно и грубо послали — разберемся
3. Вас точно послали именно с такой формулировкой?
Претензии связаны с работой по ложным срабатываниям.
На форумах уже давно не общаюсь, более того — практически не пользуюсь антивирусами. Потому что задолбали HackTools и not-a-virus.
Указанные претензии описал так сказать из прошлого.
Последний п.3 — это заявление одной именитой лаборатории в эпоху эпидемии TDL3. Тогда все очень были озабочены детектированием буткита, у каждого был свой подход и всем было плевать на фалсы Black.a.
К сожалению, проект умер вместе с изменениями в самой Sandboxie. Однако, как мне помнится, сейчас во многих решениях есть песочницы — в чём проблема сделать в них аналогичный обнюхиватель?

Допустим, у нас есть вредоносная программа класса «троян-дроппер». При запуске, отрисовывает фейковое лицензионное соглашение, с которым надо согласиться установкой галочки, и нажать «Далее», после чего троян скачивает и устанавливает полезную софтину + бекдор (например преднастроенный легитимный radmin) и прописывает последнего в автозагрузку.
Расскажите мне,
1) сколько времени займёт у антивируса анализ в песочнице,
2) что с результатом анализа;
3) ну и нафиг оно надо?
1. Думаю, от силы минуту.
2. Да легко спалится — по сетевым соединениям, по автозагрузке без спроса и т.д.
3. Вам — не знаю. А пользователь не установит бекдор. Это плохо и не воспадает с Вашими желаниями?

У меня тоже вопросы:
1. Как часто Ваши пользователи устанавливают новые файлы без цифровых подписей?
2. Какие Вам видятся альтернативы предложенной мной проверке?
1. Анализ в песочнице каждого запускаемого файла в целую миниту — пользователь деинсталлирует ваш софт спустя десять минут тормозов при запуске игрушки.
2. То есть ваш софт не даст работать любимой игрушке юзера, скачивающей карты и игровые скрипты? Ваш софт обречён.
3. Пользователь не сможет установить и какой-нибудь репак майнкрафта и выбросит фтопку ваш продукт.

По вашим вопросам — 1. Каждый день, можно сказать, открывают, например пдф загружающие шрифты или отправляющие заполненные формы.
2. Ничего нового — сигнатурный анализ. Именно он спасает от вашего сокрытия путём создания архива: при распаковке архива сигнатура будет обнаружена, и этого достаточно. Для upx и всего такого — аналогичное обнаружение, но уже не на диске, а в памяти приложений (т.е. сработает после запуска, при распакове в памяти). Это быстро и эффективно, именно так и работает большинство продвинутых антивирусов.
Секунду. То есть любимая игрушка пользователя (а в Вашем описании — любимая пиратская игрушка пользователя) загружает исполняемый файл каждый раз перед запуском?
Я повторюсь: сканировать по предложенному мной механизму нужно только недоверенные файлы и один раз. Если файл — чистый, то нет смысла сканировать его каждый раз перед запуском. Многие антивирусы так же поступают даже с имеющейся защитой, некоторые ставят метки в ADS, некоторые — ведут свою базу.

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

Вы не знаете, что он чистый. Предыдущая проверка сказала вам, что он чисты на основе записей и правил. Но через пять минут прошло обновление и пришли записи в базу с детектом. Вспоминаем случае распространения зараженных флешек
В описанном мной выше механизме не участвуют базы. Там больше поведенческий анализ.
Перед новым годом как раз собирал информацию по поведенческому анализу файлов. Увы не панацея. Пропуски тоже возможны
Можно ознакомиться с результатами?
Не принимайте лично, но в комментах мне уже многое рассказали, но когда дело дошло до фактов — молчок.
В поведенческом анализаторе основная проблема — его настройки. Если логи разбираются вручную вероятность детекта очень высока, а фалсов — низка, но мы говорим про автоматическую работу для рядового пользователя — а потому настройки весьма важны.
Я пробовал для себя облачные анализаторы типа Вирустоталовского и для интереса засылал вредоносные файлы. Как правило файлы определяются как опасные. Но не всегда.

По настройкам все грустно. По опыту простые пользователи не настраивают свой антивирус на строгую защиту. Наоборот отключают скажем проверку на внедрение эксплойтов или контроль целостности систем
При чём здесь облачные анализаторы? Я говорил хоть слово про облака?
Идея та же самая, разница в подробности вывода информации. Анализируется сам файл и его поведение путем запуска в изолированной среде

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

Ещё раз: я не пишу, что это — панацея, но пишу, что эффективность данного подхода куда выше, чем существующая ситуация с эвристикой.
Не буду спорить. Хороший пример — Wannaa Cry. Доктор Веб поймал его эвристикой. Касперский — облачным детектом. То есть и существующие механизмы позволяют ловить неизвестные угрозы. Почему не внедряются новые механизмы? Сложный вопрос.

Причин много (не на работе портянку писать), но вот скажем еще одна в копилку. Сейчас одна из проблемищ — скрипты. Загружается их при загрузке каждого сайта вагон. Что с ними делать? Каждого в песочницу? Так у многих явного вредоносного поведения нет. Ну добавляют скажем пару окошек с запросами или блок с текстом или за запускают некое вычислительное действие

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

И чтобы понять меня. Я ни в коем случае не против идей песочниц или проактивки. Я просто добавляю аргументов на другую сторону, так как все сложно. Если бы та же песочница или проактивка могла заменить антивирус — думаете антивирусные компании не забили бы гвозди в сигнатурные методы? Их также не устраивают тормоза и потребление ресурсов.
Сигнатуры раздувают базы, потребляют ресурсы, их нужно периодически перетряхивать…
Тоже не вся правда :)
Если антивирусные компании так заботятся о потребляемых ресурсах — к чему добавлять «защиту банковских операций», зачем мне родительский контроль и к чему вешать тонны телеметрии и прочие навороты? Последний дистрибутив KIS потребляет 875 Мб на диске и требует наличия .NET — Вы считаете это нормой для антивируса? Я — нет, хотя ЛК — первое, что пришло на ум, у других ситуация не лучше.
— как вы отмечали — ни один из модулей защиты не дает 100% обнаружения. Поэтому один из путей увеличения эффективности — дописывание модулей
— Пользователи ведутся на громко-модные слова. Вы не представляете как было сложно продавать в эпоху модности облаков. «Мы будем использовать только облачный антивирус!». «Вы понимаете, что тем самым вы подписываетесь на… риски?» Тишина в ответ.
Поэтому если компания хочет продавать — увы и ах маркетинговые слова желательны. Даже просто потому, что рассказать математику анализа зашифрованных файлов — сложно и непонятно

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

Да, продукт нужно продавать, но это не тема данной статьи.

Спасибо за интересные дебаты.
Погуглите: Buster Sandbox Analyzer. Можете ещё — ZeroWine, хотя это уже совсем не как компонент антивируса, слишком громоздко, да и забросили проект давно. Ну и для полного просветления: REMnux, SIFT Workstation.

Есть ещё очень интересные работы: тут и тут. Погуглите ещё OmniUnpack (от авторов Lorenzo Martignoni, Mihai Christodorescu и Somesh Jha).

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

И еще проблема. Песочница косячит. Лично видел опасные файлы пропущенные с вердиктом чистых
Проблем много
1. Вредоносные файлы научились распознавать запуск в песочнице
2. Песочницы имеют уязвимости
3. Вредоносные программы стали делать задержки на запуск вредоносного функционала
4. Вредоносные программы стали подгружать вредоносный функционал после установки
В общем не панацея. И самая большая проблема — так называемые простые пользователи, которые не хотят ждать и запускают все по ссылкам.
Минутку. Когда я последний раз занимался этой темой, а это был 1995 год, уже тогда, как минимум, эвристический анализатор dr.web проводил анализ файлов с эмуляцией их исполнения. Я это могу гарантировать.
Очень сомневаюсь, что с тех пор, это решили выпилить из сканера, уже хотя бы потому, что уже тогда, сканирование по сигнатурам, для большинства вирусов, было бессмысленным.
Не берусь отвечать за dr.web и других вендоров, но могу предположить, что выполнение и анализ работы в песочнице, вероятно ведет к сверхчрезмерным накладным расходам. Конечно, может быть и стоит добавить пункт «paranoid» в настройках эвристики «low-middle-hard»
Я не понимаю, про какие накладные расходы речь. Компания пришлёт счёт за сканирование?
Если речь о машинных ресурсах — они сейчас более чем достаточны.
К тому же речь о проверке эмулятором единичного файла перед запуском, который пользователь подозревает, а не сканирование всего и вся. Да и будем откровенны: после запуска одного файла в случае, если заражение стало активным — дальше на такой системе в активном состоянии полностью удалить серьёзное заражение крайне затруднительно.
Я привел свои догадки, почему фулл эвристику не применяют в реальной среде текущие вендоры. Не более чем. И да, естественно я имею ввиду не сканирование вирустоталом, а работу в реальной среде.
Тестирование показало, что как ни крути, но есть возможность выхода вредоносной программы за пределы защищенной среды
Я это тоже слышал, но мне тут рассказывают про накладные расходы — видимо системы здорово ослабли с тех пор :)
Но если эмулятор есть — то почему снялся детект моим абсолютно простым способом упаковки? Уж эмулятор должен был код «запустить» и обнаружить, что в результате распаковывается вредоносный файл.
Эмуляция исполнения в антивирусах делается не в полном объёме, это не прямое выполнение — было бы слишком затратно. Там упрощённый анализатор по типу дизассемблера.
Это не песочница, хотя название звучит похоже. Это часть антивирусных баз, пошагово эмулирующая исполнение инструкции за инструкцией. Нужно против изменяющих свое тело вредоносных программ, чтобы собрать его в ходе проверки и потом определить уже по известным признакам
Появилась в базах вместе с появлением полиморфных вирусов
познавательно, но механизмы обфускации выглядят немного сложнее а кот например касперский на андройде больше напоминает антивирус Попова
Безусловно они выглядят сложнее.
Но я не хотел грузить техническими деталями.
А потому показал «на пальцах».
К сожалению, «на пальцах» тоже оказалось действенным.
Для последней же версии файл уменьшился, суть не изменилась, а вот детектов прибавилось

Интересная статья, всё сформулировано очень доходчиво. Порадовала Avira, оставшись последней из наиболее известных вендоров по результатам проверок, указанных в данном случае.
Помнится, что-то подобное было у покойного Касперски в «Компьютерные вирусы и защита от них», там тоже использовался UPX, ASPack и ЕМНИП WinRAR.
UFO just landed and posted this here
С интересом прочитал статью. Автору — благодарность. Я не специалист по информационной безопасности, больше сисадмин — эникейщик. И тем не менее было понятно и интересно. Мало того, уважаемый автор смог меня удивить. Оказалось, что белорусский антивирус VBA32 реально неплох в части выявления описанных угроз. Ранее приходилось сталкиваться с этим отечественным (для меня) продуктом, было это уже достаточно давно, но на фоне разработок Касперского, DrWEba и прочих norton internet security как-то не воспринимал этот антивирус всерьёз. Не сочтите за рекламу, но заставляет задуматься.
Зря Вы так — VBA32 всегда был не плох. Это было понятно ещё в эпоху появлений TDL2/TDL3 и их подхода к выявлению этой угрозы.
Не берусь говорить за VBA32, не знаю что он из себя представляет, но тот же каспер стал комбайном, в нем тебе и управление доступом к устройствам и проверка на уязвимости и деплой апдейтов на ОС и софт, и админка, и отчеты и, фактически, инвентаризация. Хорошо это или плохо — каждый решит сам, но я считаю, что лично мне стало удобнее. Это комплекс по обеспечению мер безопасности, хоть и использую далеко не все.
Я считаю, что плохо.
По факту это «подсадка» на одного производителя.
Вы сами используете не весь функционал, так зачем за него платить и тратить системные ресурсы?
К тому же песочница хороша у Sandboxie, проактивка + файервол — у Comodo (имхо) — чего я всё должен брать у ЛК? От них я хочу качественный антивирус, а вот с этим как раз затык.
Пакуете свой код вируса во что-то полезное (кряк, бот для ммо, взломанная версия программы), что-то, что явно написано не для хороших целей. Пишете где-то мелким шрифтом что скорее всего сработает антивирус и его, возможно, нужно отключить, запустить от имени администратора… ну и какое-то человеческое объяснение, почему ругается на упаковщик. профит. ибо эти программы скорее всего будут работать на взломанных виндах с отключенным брандмаузером и обновлений, без антивирусника и под учеткой админа.
тот же meltdown/spectre — очень много людей не парятся, говоря, что на компьютере не хранят ничего ценного, терять производительность не хотят и потому не обновляются.
Этой схеме десяток лет
Антивири Endpoint и Cylance дают ложные срабатывания, видать используют примитивный алгоритм, если софтина написана асме, чистом С++(только API) и имеет функции записи чтения файлов этого достаточно что объявить их вредоносами. Я проверял на своих программах.

А как получить доступ ко всем файлам которые проверяет virustotal? Ведь эти файлы остаются у virustotal навсегда. Я вот боюсь проверять свою утилиту потому, что боюсь, что владельцы virustotal будут ей пользоваться бесплатно, да еще и распространять ее будут. Они ведь стопудово кому-то продают доступ к проверяемым файлам, ну к примеру тем же спец службам, кроме того у них ведь есть точный адрес откуда файл был загружен. И сами вечерком наверное ковыряются, смотрят, что интересного к ним загрузили, такая вот увлекательная файловая помойка. О, Господи как же страшно жить, никому нельзя доверять!!!

Sign up to leave a comment.

Articles