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

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

В последние годы наблюдается рост интереса к уязвимостям защитного ПО вообще и антивирусов в частности. Об этом говорит рост числа эксплойтов, опубликованных на exploit-db и подобных ресурсах. На графике выше показано количество найденных уязвимостей в известных антивирусных продуктах за каждый год в течение последних 15 лет.

В начале нулевых годов материалы об уязвимостях в средствах антивирусной защиты появлялись крайне редко, а за прошедший год было опубликовано больше полусотни эксплойтов, большая часть которых основана на критически опасных уязвимостях антивирусов и связана с обходом аутентификации, повышением привилегий и удаленным выполнением кода. В частности, в 2015 году найдены уязвимости в продуктах ESET, Avast, BitDefender, Symantec, Kaspersky Lab, FireEye, Malwarebytes.

Помимо независимых исследователей, с 2014 года к поиску уязвимостей в средствах защиты подключилась команда Google Project Zero. Они нашли значительную часть опубликованных за прошедший год уязвимостей в антивирусах. Закономерно, что правительственные организации тоже проявляют интерес к данной теме: мы уже рассказывали об исследованиях российских антивирусов, которые проводятся западными спецслужбами.

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

Атаки с использованием уязвимых антивирусов


TrendMicro

11 января 2016 года исследователь Tavis Ormandy из команды Google Security Research обнаружил критически опасную уязвимость антивируса TrendMicro, приводящую к удаленному выполнению кода.

При установке антивируса по умолчанию устанавливается компонент Password Manager, который прописывается установщиком в автозагрузку. Этот модуль написан на JavaScript с использованием node.js. Он открывает множество RPC-портов для обработки API-запросов по HTTP. Уязвимость была найдена в API-функции openUrlInDefaultBrowser, которая вызывает ShellExecute() без проверки передаваемых аргументов, тем самым допуская выполнение произвольного кода.

x = new XMLHttpRequest()
x.open("GET", "https://localhost:49155/api/
	openUrlInDefaultBrowser?url=c:/windows/system32/calc.exe true);
try { x.send(); } catch (e) {};

Патч выпустили через неделю после обращения.

exploit-db.com/exploits/39218

McAfee Application Control

12 января специалисты из австрийской компании SEC Consult опубликовали отчет об успешном обходе защиты McAfee Application Control. Это приложение запрещает запуск приложений, не определенных в белом списке, и предназначено прежде всего для защиты критически важных инфраструктур. Рассматривалась версия 6.1.3.353 под Windows. Были найдены способы запуска неавторизованных приложений в обход защиты, методы запуска произвольного кода, методы обхода программного DEP, реализованного в McAfee Application Control, обхода UAC при включенной защите продукта McAfee, обход защиты от записи в белый список. В довершение были найдены уязвимости драйвера swin1.sys, приводящие к сбою системы.

exploit-db.com/docs/39228.pdf

QuickHeal

19 февраля исследователь Fitzl Csaba написал proof-of-concept, эксплуатирующий уязвимость в популярном индийском антивирусе QuickHeal 16.00. Драйвер webssx.sys оказался подвержен CVE-2015-8285, эксплуатация которой приводит к повышению привилегий либо вызывает BSOD. Драйвер создается без флага FILE\_DEVICE\_SECURE\_OPEN, что позволяет любому пользователю взаимодействовать с этим драйвером в обход ACL. Исследователь нашел IOCTL-код и нужный размер передаваемого драйверу буфера, приводящие к вызову уязвимой функции. Из-за недостаточной проверки получаемых данных из входного буфера возникало целочисленное переполнение аргумента, передаваемого функции memcpy.

exploit-db.com/exploits/39475

Comodo

29 февраля хакер Greg Linares нашел уязвимость в модуле GeekBuddy антивируса Comodo, приводящую к локальному повышению привилегий. Модуль GeekBuddy при выполнении запускает несколько процессов, один из которых пытается подгрузить библиотеку shfolder.dll. Поскольку вместо абсолютного пути в файле, запускаемом GeekBuddy, жестко задано только имя библиотеки — возможна подмена dll. Если поместить вредоносную shfolder.dll в C:\ProgramData\Comodo\lps4\temp\ и запустить обновление клиента или дождаться, пока оно запустится автоматически, пользователь может повысить привилегии до уровня SYSTEM и полностью компрометировать систему.

exploit-db.com/exploits/39508

Avast

4 марта Google Security Research продолжила публиковать уязвимости антивируса Avast. На этот раз была закрыта ошибка, связанная с повреждением памяти при парсинге цифровых сертификатов. Tavis Ormandy создал исполняемый PE-файл, при сканировании которого Avast «падал» с ошибкой. По словам исследователя, ошибка связана с повреждением памяти при парсинге цифровой подписи файла.

exploit-db.com/exploits/39530

McAfee VirusScan

7 марта Maurizio Agazzini опубликовал материал об очередной уязвимости в продуктах McAfee. Исследователь написал эксплойт, позволяющий обходить ограничения безопасности антивируса McAfee VirusScan Enterprise 8.8. Используя найденную уязвимость, пользователь с правами локального администратора мог в обход ограничений безопасности отключить антивирус — не зная его пароля.
Уязвимость была исправлена патчем от 25 февраля, хотя первые обращения автора эксплойта в McAfee датируются осенью 2014 года.

exploit-db.com/exploits/39531

Avira

16 марта критически опасная уязвимость обнаружена в антивирусе Avira. Ожидается, что антивирус должен уметь гарантированно обрабатывать PE-файлы. Тем не менее при тестировании антивируса Avira в режиме сканирования PE-файлов была обнаружена уязвимость типа heap underflow. Ошибка воспроизводилась при парсинге заголовков таблицы секций. Если заголовок секции имел слишком большой RVA, Avira сохраняла вычисленное смещение в буфер на куче и записывала в него данные, контролируемые атакующим (данные из section->PointerToRawData в исходном файле). Уязвимость приводила к RCE с привилегиями NT\_AUTHORITY\SYSTEM. Патч выпущен 18 марта.
exploit-db.com/exploits/39600

И снова Comodo

19 марта опубликован отчет о критически опасной уязвимости в антивирусе Comodo. Этот продукт включает в себя x86-эмулятор, используемый для автоматической распаковки и мониторинга обфусцированных исполняемых файлов. Предполагается, что эмулятор исполняет вредоносный код безопасно в течение небольшого промежутка времени, тем самым давая сэмплу распаковаться или выявить какой-нибудь интересный для детектирования поведенческий признак.

Помимо проблем, связанных с повреждением памяти, при работе эмулятора было обнаружено, что аргументы некоторых опасных эмулируемых API-вызовов передаются в реальные API-функции во время сканирования. Несколько оберток просто извлекают аргументы из эмулируемого адресного пространства и передают их напрямую в системные вызовы, при этом выполняясь с привилегиями NT\_AUTHORITY\SYSTEM. Результаты вызовов затем возвращаются в эмулятор и выполнение кода продолжается.

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

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

exploit-db.com/exploits/39599

14 марта 2016 обнаружена критически опасная ошибка в антивирусном движке Comodo. Исполнение произвольного кода было возможно при распаковке антивирусом вредоносных файлов, защищенных протектором PackMan. Packman — малоизвестный паковщик с открытым исходным кодом, Comodo распаковывает его в ходе сканирования.

При обработке файлов, сжатых этим паковщиком с определенными опциями, параметры сжатия считываются напрямую из входного файла без валидации. При помощи фаззинга было выявлено, что в функции CAEPACKManUnpack::DoUnpack\_With\_NormalPack можно передать указатель pksDeCodeBuffer.ptr по произвольному адресу, что позволяет атакующему освободить функцией free() произвольный адрес. Уязвимость позволяет злоумышленнику выполнять код с привилегиями NT\_AUTHORITY\SYSTEM. Патч вышел 22 марта.

exploit-db.com/exploits/39601

Что делать


Несмотря на уязвимости антивирусов, совсем отказаться от них затруднительно. В тех случаях, когда требуется анализировать большие объемы файлов, антивирусные движки справляются с работой быстрее альтернативных решений (например, «песочниц»). Это достигается за счет развитого статического анализа.

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

— Точность и оперативность обнаружения повышаются при помощи сканирования несколькими антивирусными движками различных производителей. Такую возможность дают некоторые онлайновые сервисы (например, Virustotal.com) – однако в этом случае требуется загружать свои файлы на сторонний ресурс, то есть возникает риск утечки конфиденциальных данных к «третьим лицам». Логично было бы организовать такое сканирование на локальном сервере, без лишних обращений к сторонним приложениям.

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

— Даже обнаружив вредоносное ПО, антивирус не может выявить все объекты, которые подверглись зловредному воздействию в прошлом, до обнаружения. Поэтому желательно, чтобы защитная система давала возможность ретроспективного анализа.

Эти и другие технологии мы применяем сейчас в разработке системы PT MultiScanner.
Поделиться с друзьями
-->

Комментарии (54)


  1. Amareis
    12.05.2016 20:47
    +16

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


    1. ganjar
      12.05.2016 21:16
      +1

      Зачем использовать контрацептивы? все равно, рано или поздно, детей рожать.


      1. invite_ciel
        12.05.2016 21:41

        Контрацептивами стоит считать, вероятно, адекватно настроенный файрвол и noexec в /home и /tmp (или что там аналогичного последнему у Windows есть? SRP?).


        1. ganjar
          12.05.2016 21:52
          +3

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


          1. Pazzik
            13.05.2016 10:58

            Не ловил и не видел чтобы ловили вирусы уже много лет. Зато стабильно раз в месяц проезжаю по бабушкам, дедушкам и вычищаю рекламу в браузерах, которая там через ярлык пролезла, через плагины к браузеру, через установленные программы даже. Никак антивирус их не спасет, и я не могу на словах обьяснить им как этого избежать. Единственное что их спасет это Ubuntu или Android. Последний наверно идеальный вариант для бабушек, нереально словить какую нибудь ерунду и нереально что то сломать. Хотя некоторые уникумы и в андроиде зачем то антивирус ставят. Что там без рута можно поймать я не понимаю.


    1. omican
      13.05.2016 10:56

      Я вот ловлю себя на мысли в последнее время — не отказаться ли от АВПО вовсе. Дает ли оно дополнительную защиту, если под админской учеткой (Win7, однако обновления не устанавливаются вовсе) сидит только грамотный человек, а остальные — под «обычным доступом»? Основное опасение — отсутствие обновлений. Может быть, если вручную ставить обновления безопасности, то и АВПО не нужен?


    1. andkln
      13.05.2016 11:49

      В зависимости от того, что вы понимаете под правилами IT-гигиены. Предположим, вы не используете антивирус и посещаете свой привычный любимый сайт — например, посвящённый котикам. Вот только сегодня этот сайт взломали и на нём разместили код, подключащий связку эксплойтов. Один из них подошёл и на ваш компьютер загружен вирус. Помогут ли ваши правила предотвратить подобный сценарий? Если да — расскажите о них, пожалуйста.

      Думаю, будет полезно составить коллективные правила «IT-гигиены», актуальные моменту.


      1. Amareis
        13.05.2016 13:27

        Использование последних версий браузеров, например, сводит вероятность описанного вами сценария к приемлимо низкому уровню. А вообще, я удваиваю предложение Pazzik выше — если уж хочется свести вероятность к бесконечно малой, стоит поставить какой-нибудь ubuntu-based дистр, минт, например. Лично я пользуюсь оным из дома; это поможет предотвратить подобный сценарий?

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


      1. ESP
        14.05.2016 01:19

        Браузер в песочнице


      1. Saffron
        14.05.2016 01:32

        Используйте firejail. Или что-нибудь ещё более основательное. Ну и очевидно — не используйте флеш, адоб ридер и прочий бесполезный обвес


  1. Klukonin
    12.05.2016 21:08

    Существуют ситуациии, когда админы саботируют процесс работы АВПО и отключают его у топов. Страшно людям что лишнее окошко у господ выползет и придется подрываться в срочном порядке, а потом еще и объяснять. А то как топы любят открывать вложения от leno4ka@cbr.ru.se с файлом «ваш_договор_на_рекламу.doc.exe» — это отдельная тема.

    Спасает только централизованность и жесткий контроль, да и то не всегда.


  1. mayorovp
    12.05.2016 21:49

    А еще антивирус может оказаться причиной DoS. К примеру, удаление MSE и отключение Windows Defender позволило мне снова запустить на компьютере Скайрим, которому уже два года не хватало ресурсов для работы. Также исчезли лаги на Ютубе.

    Такой вот вопрос — что лучше? Быстрый и дырявый игровой компьютер или безопасная пишущая машинка? :)


    1. DrSavinkov
      13.05.2016 11:49

      Каждому по потребностям.


  1. xmoonlight
    13.05.2016 01:00

    «В частности, в 2015 году найдены уязвимости в продуктах ESET, Avast, BitDefender, Symantec, Kaspersky Lab, FireEye, Malwarebytes.»
    А в 2016 все они единомоментно стали неуязвимыми?!


    1. ptsecurity
      13.05.2016 11:42

      Они выпустили патчи для данных уязвимостей. Но это конечно не значит, что они стали неуязвимыми.

      Просто в продолжение статьи мы брали наиболее яркие примеры 2016 года, а не все найденные в этом году уязвимости антивирусов (их конечно больше).


  1. pansa
    13.05.2016 01:33
    +3

    > Эти и другие технологии мы применяем сейчас в разработке системы PT MultiScanner.
    По-моему, вся статья ради этой строчки =)
    Но, господа, при всём уважении, идеи заюзать несколько антивирусов сразу и их реализации были еще… ну лет 5 назад точно. Так что ничего нового и толку мало. Хотя, желаю удачи.

    Давайте только пройдемся по основным пунктам:

    >— Точность и оперативность обнаружения повышаются при помощи сканирования несколькими антивирусными движками…
    Здесь кратно повышается только вероятность ложноположительного срабатывания. Это очевидно. Следовательно, _точность_ не увеличивается, увы. А в некоторых случаях точность снизится. Например, очень хорошоший вендор А… нет, пусть вендор К =) — самый первый добавил детект по какому-то сэмплу. А все остальные — нет. Ваша система же должна выдать булевый вердикт — грубо, или вирус или нет. Если детектит 1 из 15 — это что? Если вы будете признавать такие решения, как «вирус» — огребете кучу False positive, в противном случае — будут False negative.
    И найти баланс не получится.

    Оперативность тоже с натяжкой. Антивирусные вендоры перманентно обмениваются сэмплами. Конечно, это не означает, что детект появляется одновременно у всех, но всё равно, бОльшая часть начинает детектится относительно быстро (сутки).

    > Риски безопасности можно снизить, если исследовать подозрительные файлы в изолированной безопасной среде
    О каком риске вы говорите? Риск, что анализ сэмпла антивирусом приведет к заражению?! Такое можно практически исключить, не бывало такого.
    А вот создать хорошую виртуальную среду, эмулировать пользовательскую ОС, вот это задача та еще. Современные дропперы ведь шибко умные стали — они и виртуальные среды очень хорошо видят, и на uptime системы посмотрят, и на установленное ПО, на кэши браузера, последят за мышкой, за расположением иконок, за наличием файликов в папочках, и еще куча всего. И не дропнется тело, если будет подозрение, что запускаете его под выделенной виртуалочкой. Поддержка таких песочниц — весьма трудоемкое занятие. Запускать их под каждый анализируемый сэмпл — нереально. Разворачивать их в инфраструктуре клиента — нереально, а значит файлы нужно будет отправлять вам. Нереально =)

    >… желательно, чтобы защитная система давала возможность ретроспективного анализа.
    Это вообще не понял. Ни тут ни на сайте ничего толком не написано, кроме маркетинговского булшита. Можете нормальным техническим языком сказать — обо что это?


    1. ptsecurity
      13.05.2016 11:17

      >идеи заюзать несколько антивирусов сразу и их реализации были еще…
      >ну лет 5 назад точно. Так что ничего нового и толку мало. Хотя, желаю удачи.

      Колесо тоже изобрели давно, однако же автомобильные компании как-то умудряются делать востребованный продукт.

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

      >Здесь кратно повышается только вероятность ложноположительного срабатывания.

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

      >Антивирусные вендоры перманентно обмениваются сэмплами.
      >Конечно, это не означает, что детект появляется одновременно у всех,
      >но всё равно, бОльшая часть начинает детектится относительно быстро (сутки).

      Это как раз не так. Средняя по индустрии задержка появления сигнатуры в базе антивируса относительно времени появления угрозы составляет недели две. А некоторые вирусы могут ГОДАМИ жить необнаруживаемыми. Если есть доступ к VirusTotal, там это очень ясно видно бывает. Сами вендоры прекрасно осведомлены об этой проблеме и выстраивают целые облачные технологии для улучшения оперативности реагирования на угрозы.

      >Риск, что анализ сэмпла антивирусом приведет к заражению?!
      >Такое можно практически исключить, не бывало такого.

      Если внимательно почитать статью, там как раз рассматривался такой сценарий с Comodo, когда эмуляция некоторого зловреда была реализована так, что часть инструкций выполнялась прямыми вызовами API-функций операционки (да еще и с привилегиями системы).

      >А вот создать хорошую виртуальную среду, эмулировать пользовательскую ОС, вот это задача та еще.
      >Поддержка таких песочниц — весьма трудоемкое занятие.

      Да, именно такие песочницы у нас есть. Динамический анализ – это одна из технологий, которая используется в PT Multiscanner (не сочтите за рекламу).

      >>… желательно, чтобы защитная система давала возможность ретроспективного анализа.
      >Это вообще не понял.

      Это как раз просто. Если есть задержка между появлением угрозы и ее детектированием антивирусным движком, и движок не хранит файлы, которые через него проходят, то возможен сценарий, когда на периметре установлено антивирусное средство, но в нем ещё нет записи о зловреде, и зловред проникает за периметр.

      Чтобы обнаружить заражение нужно, чтобы (а) антивирусное средство обновилось и (б) зловред еще раз попытался проникнуть через периметр — или был отловлен уже на рабочей станции. Если (б) не происходит, то зловред может жить внутри годами, несмотря на то, что его уже все детектят (очень частый сценарий для APT-атак).

      Ретроспективный анализ работает так: все проверяемые файлы сохраняются, и при изменении баз антивирусных движков в фоне перепроверяются. Если вердикт меняется – админу приходит оповещение и можно начинать разбираться с последствиями. Да, заражение уже может произойти, но время реакции на него сокращается существенно.


      1. pansa
        14.05.2016 01:24

        > Колесо тоже изобрели давно, однако же автомобильные компании как-то умудряются делать востребованный продукт.
        Освежители для туалета тоже изобрели давно и с тех пор ничего кроме «улучшенной кнопки для распыления» добавить не могут.
        Это я к тому, что аналогии — штука удобная, их можно подобрать под любую точку зрения. Поэтому это плохое средство подтверждения правоты.

        > хотя в системе с несколькими ядрами чисто математически вероятность ложных срабатываний уменьшается

        Верно. Но вероятность перемножается, если вы конечный вердикт вычисляете, как логическое И вердиктов всех АВ.
        Вы хотите сказать, что вердикт вашей системы вычисляет именно так?

        > Средняя по индустрии задержка появления сигнатуры в базе антивируса относительно времени появления угрозы составляет недели две.
        Знаете, вот это обсуждать абсолютно бессмысленно. В среднем по больнице, основная масса тушок детектируется в пределах нескольких дней. Спорить не буду, я эти показатели могу наблюдать. Но навязывать свое мнение вам тоже не буду.

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

        > Динамический анализ – это одна из технологий, которая используется в PT Multiscanner (не сочтите за рекламу).

        Сочту за рекламу, но тут это нормально — это же ваш блог, он для того и есть =)
        Динамический анализ — вы про что конкретно? Я вам в другом комменте уже писал, что нормальный ав движок выполняет код зловреда в эмуляторе. Поведенческий анализ, всякие эвристики, это уже тоже вчерашний день, у всех серьезных вендоров оно есть.
        Запуск под полноценной виртуализацией — это инструмент либо для тщательного анализа единичных экземляров, либо инструмент вирусной лаборатории для анализа потока — но это нужны фермы серверов. Это не решение для «обычного» пользователя — это сложный, дорогой «прибор», который требует постоянной подстройки, доработок и, самое главное — умения анализировать полученные результаты.
        Хотя мы на одной стороне баррикад, поэтому желаю вам удачи! А вдруг и правда.

        > Ретроспективный анализ работает так:
        Понятно, рескан. Ну… хуже не будет, но толку не много, imho. Самый главный аргумент — пока тушку никто не запускает — особой угрозы она не представляет. А если запустят/начнут передавать по сети/итп, то её по-любому перехватит антивирусный монитор и проверит еще раз.


  1. michael_vostrikov
    13.05.2016 06:51

    … Этот продукт включает в себя x86-эмулятор, используемый для автоматической распаковки и мониторинга обфусцированных исполняемых файлов
    … Риски безопасности можно снизить, если исследовать подозрительные файлы в изолированной безопасной среде.

    Интересует вопрос. Были ли какие-то попытки объединить антивирусный движок с полноценной виртуальной машиной? Вряд ли производительность будет сильно ниже, чем со встроенным эмулятором. Зато можно не пробрасывать API в реальную систему, а также анализировать и сеть, и каждую инструкцию под текущим IP. Для постоянного мониторинга вряд ли подойдет, но для проверки по требованию было бы нормально.


    1. SamsonovAnton
      13.05.2016 10:05

      В гипервизорах — сюрприз! — тоже бывают уязвимости, позволяющие гостю вырваться из окружения.


    1. ptsecurity
      13.05.2016 11:26

      Да, такой динамический анализ (запуск реального зловреда на виртуальной машине) – это одна из технологий, которую мы используем.

      Хотя производительность анализа на виртуальной машине существенно ниже быстрой сигнатурной проверки антивирусом, поскольку анализируется реальное поведение зловреда или последствия клика на ссылку «click me!» или открытие документа «вам оставил по наследству $1млн. нигерийский магнат.pdf».


      1. michael_vostrikov
        13.05.2016 18:31

        Ну да, я и имел в виду эвристическую проверку, а не сигнатурную.


      1. pansa
        14.05.2016 00:43

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


  1. teecat
    13.05.2016 08:32

    Качество детекта не увеличится. Проблема систем на основе антивирусных баз (а только об этом пишут в статье) — пропуск неизвестных базам вирусов. Поскольку вирусы проверяют на необнаружение перед выпуском на всех популярных решениях — хоть сотню поставь движков — толку не будет
    И второе. Удаленная проверка — это проверка уже найденных файлов. То есть нужны драйвера перехвата всего подозрительного. Такие драйвера — важнейшая часть антивируса — никто не должен скрыться от недремлющего ока. Совершенно непонятно откуда они возьмутся в этом проекте


    1. ptsecurity
      13.05.2016 11:34

      По поводу проверки на необнаружение – постоянно сталкиваемся с анекдотическими случаями, когда дотошные разработчики зловредов обкатывают свои поделия на VirusTotal – до их полного необнаружения… и к полной радости антивирусных вендоров, которым прямо в руки отдают зловреда ещё до распространения :)

      > нужны драйвера перехвата всего подозрительного.
      >Совершенно непонятно откуда они возьмутся в этом проекте

      Эта технология уже работает, и даже не на уровне драйверов, а на уровне «до загрузки операционной системы». На PHDays будет отдельный доклад на эту тему – приходите :)


      1. teecat
        13.05.2016 12:29

        Ну если вирмейкерам лениво поставить несколько продуктов… Наивный народ пошел

        До загрузки — это на уровне БИОС? А во время работы? Нету пока публичных материалов?


      1. pansa
        14.05.2016 00:51

        На VT файлы проверяются просто АВ сканерами. Современные АВ это несколько больше, чем просто сканирование «мертвой тушки» на диске.
        Я уже молчу про то, как они обновляют модули, базы и настраивают сканеры…
        Поэтому к результатам VT нужно относится соответственно — это примерно «вилами по воде бабушка надвое сказала».

        По поводу «отдают прямо в руки». Есть небольшая проблема. Прямо в руки с VT сейчас льется до 300тыс сэмплов в сутки, да? Т.е несколько сэмплов в секунду — 24x7x365. Даже банальный и самый поверхностный анализ этого потока — это ресурсы. Да, по различным признакам можно найти родственные тушки, но это совсем не вот такая вот халява, типа, ха-ха-ха, эти дурни прислали нам свой сэмлп. Не всё так просто, увы.


  1. wymaroo
    13.05.2016 08:32

    Давно интересует вопрос. Вылеченные антивирусы или запуск кейгенов для антивирусов, насколько они безопасные?


    1. Unixfusion
      13.05.2016 10:57

      А зачем пользоваться крякнутыми антивирусами? Можно взять тот же free или retail (типа того же SEP) антивирусы. А так — только разбирать каждый кряк и смотреть что там напихали.


  1. Sergey6661313
    13.05.2016 09:12

    Нужно просто чтобы для каждой программы (кроме системных) было бы не доступна запись вне своих папок и всё. Никакие антивирусы тогда не понадобятся.


    1. soniq
      13.05.2016 12:12
      +1

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


      1. Sergey6661313
        13.05.2016 15:39

        нужно хотя бы начать. Понимаете 90% софта не являются системными в принципе. Они все как либо открывают фаил, и выполняют над ним какие либо операции. Нужно просто сделать так что результат их работы можно было бы увидеть только в ихних папках.
        Графика, Интернет, Офисные приложения, Мультимедиа, игры — все это точно не системное.
        А теперь представ те: вы скачали игрушку и она пытается что-то куда то писать… Зачем? Вы бы установили на андройд какой нибудь энгри бёрдс если бы оно просило рут доступ. И я бы не стал. И пользователи не станут. В этом и смысл.
        А насчёт решать пользователю: Пользователь должен мочь давать программе только 2 разрешения: возможность писать внутрь своей папки, и возможность писать например на внешнее устройство.
        А вот что системное а что нет должен решать администратор.


        1. mayorovp
          13.05.2016 16:15

          И пользователи не станут.

          Эксперимент с UAC под видной показал: еще как станут.


          1. Sergey6661313
            13.05.2016 17:41

            Правильно потому что всплывающие окна это зло. UAC не от чего не защищает. Он просто пишет что программа хочет что-то сделать и не пишет что именно.

            Был у меня 1 телефон. Ну так вот я пытался скачать для него карты
            москвы. И приложение которое якобы их устанавливает с начало попросило
            меня 5 раз нажать на определённое место на экране. На шестой раз
            выскочило окно (аналог auc для телефона) о том что я собираюсь
            отправить кому то смс. Но я уже по инерции нажал на эту кнопку.

            Программе нужно чтобы пользователь именно разрешал те или иные
            действия в свойствах этой программы. (как chmod в linux).

            Сейчас 90 % программ пишут что хотят и куда хотят. А если архитектура
            самой ОС по умолчанию не будет давать делать программам такое то и у
            пользователя сформируется мнение, что для хорошей программы это и не
            нужно. И тогда возможность писать программе куда ей вздумается будет
            изначально восприниматься с подозрением.


        1. michael_vostrikov
          13.05.2016 18:37

          Ну и в чем проблема вирусу запуститься из домашней папки пользователя, или из временной папки браузера? А потом зашифровать все в тех папках, куда есть запись.


          1. Sergey6661313
            13.05.2016 18:42

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


            1. michael_vostrikov
              13.05.2016 19:30
              +1

              А, не так понял фразу «внутрь своей папки». Думал, имеется в виду папка пользователя.
              Ну ок, есть программа Word. Пользователь сохраняет абсолютно все файлы в папку Word\Documents (оставим в стороне вопрос, как быть с несколькими пользователями). Ему по почте пришел документ «Срочно отредактировать!.docx», содержащий вредоносный код. Пользователь его скачивает (в какую папку, кстати?), открывает, и вирус получает доступ на запись ко всем документам в папке Word/Documents.


              1. Sergey6661313
                13.05.2016 20:55

                если вирус будет запущен из папки Word/Documents то он (вирус) получит право на запись в Word/Documents/вирус/Documents


                1. michael_vostrikov
                  13.05.2016 21:36

                  Вирус содержится в документе и встраивается в процесс ворда, используя его уязвимости. Естественно, если бы каждый вирус был отдельным исполняемым файлом, все было бы гораздо проще.


                  1. Sergey6661313
                    13.05.2016 22:31

                    разве его для этого не нужно запустить? ладно допустим например ваш вирус это встроенный макрос на удаление всего что видит ворд. ну тогда он действительно выпилит всё что найдёт в папке Word/Documents. Но ведь очевидно же что не стоит держать в этой папке действительно важные документы, если встроенные макросы этой программы вообще такое позволяют. Разница в том что и пострадают только эти фаилы. Во всех остальных операционных системах страдает целый home, а иногда и больше.
                    + если программа служит только для чтения/изменения конкретных типов фаилов то имеет смысл реализовать на уровене ОС примерно такое поведение:
                    пользователь пытается открыть фаил с помощью word
                    ворд его открывает читает показывает пользователю.
                    пользователь нажимает сохранить и ворд сохраняет в свою documents а система следит за изменениями в этой папке.
                    И когда ворд буде закрыт и в документс будет 1 изменёный фаил система просто сама автоматически перенесёт его под именем «старое_имя_новый» в ту папку от куда была попытка открыть старый фаил с помощью word.
                    При такой схеме word никогда не выпилит ваши фаилы.


          1. Sergey6661313
            13.05.2016 19:54
            -1

            наверное я не так выражаюсь… Как это вижу я: установка программ будет выглядеть как в mac: пользователь будет видеть иконку программы и просто переносить её куда захочет. Но на самом деле это будет не просто программа а целая папка. Только в отличии от mac писать эта программа сможет только именно в эту папку. Сохранение же фаилов будет происходить только внутри этой папки и если пользователь захочет он сможет её открыть и делать с фаилами что хочет.
            Например вы скачали во временную папку браузера новый вирус. И запустили его: максимум что он сделает это засрёт место в нутри папки браузер/tmp/вирус/спец_папка_для_сохраняемых_фаилов

            При чём само понятие программа должно прийти именно к «папка\программа» прямо на уровне ОС. Тогда копирование исполняемого фаила в домашнию директорию не будет давать ровным счётом ничего. Потому что исполняемой будет не фаил как таковой а именно папка внутри которой прописан запуск определённых команд из бинарника.


            1. mrsantak
              13.05.2016 22:35

              В таком случае, если мне понадобится отредактировать документ на флешке, то мне понадобится:
              1)Скопировать документ в папку с word.
              2)Открыть, отредактировать и сохранить его word'ом.
              3)Скопировать назад на флешку.
              Как-то неудобно получается.

              Так же непонятно что делать с файлами, с которыми работают сразу несколько программ. Например к исходникам должны иметь доступ IDE, компилятор, git, билд система, простой текстовый редактор, статический анализатор, etc. В какую папку мне копировать исходники?


              1. Sergey6661313
                13.05.2016 23:32

                Я не говорил о запрете чтения фаилов. Именно о запрете писать прямо в них же, если этот фаил не находится в папке программы.
                Те действия что вы расписали: это всё должна делать ОС. Как я описал во второй части моего комментария от https://habrahabr.ru/company/pt/blog/283448/#comment_8894320
                (со слов «примерно такое поведение: „)
                Да и вообще вопрос удобства менее важен чем вопрос защиты данных.
                Я знаю как минимум 6 домохозяек которые предпочли бы(точнее ожидают от ОС) именно такое поведение. Они всерьёз каждый раз после нажатия на сохранить спрашивают “куда же оно сохранилось то?». И когда объясняешь им что оно сохранилось заместо старого они негодуют: «а как же мне теперь открыть тот который был?».
                Конечно есть кнопка «сохранить как», но для них это ещё большее «напряжение ума».


                1. mrsantak
                  13.05.2016 23:57

                  Ну хорошо, пункт 1 выпадает из процесса редактирования документа на флешке. Допустим.

                  Но что насчёт совместной работы нескольких программ над одним набором файлов (пример с IDE, компилятором и т.д.)?
                  Вообще для программ свойственно работать над общим набором файлов.

                  Что касается вопроса баланса удобства и защиты данных, то я не был бы так категоричен. Да, есть системы, в которых защита данных — это невероятно важный параметр. Вот только это не Компьютеры рядовых пользователей. Для обычного человека вопрос удобства невероятно важен. Иначе не было бы паролей 123, не было бы менеджеров паролей, у всех бы в браузере был бы отключён js и т.д.


                  1. Sergey6661313
                    14.05.2016 00:38

                    я имел в виду не те данные которые важно «засекретить» а о обычных фаилах. И тут мы как раз и возвращаемся к теме антивирусов. Большинство вирусов умудряются загадить исполняемые фаилы на компьютере. А антивирусы их успешно удаляют. И что происходит с нашей любимой игрушкой/программой? правильно, она не запустится потому что исполняемый фаил просто будет уничтожен.

                    Насчёт совместной работы над одним набором фаилов: Яж говорю прочитать фаил сможет любая программа. Я наверное вас не правильно понимаю. а как вы сейчас работаете? Вы можете открыть и редактировать один и тот же фаил в разных редакторах одновременно? я нет.
                    Задумался…
                    Слушайте: если у вас на простом ПК запросто получается манипулировать 5 разными программами то почему вы считаете что тоже самое не получится в моей схеме?.. ide читает фаилы из git, сохраняет некоторые результаты у себя в паке запускает build тот с таким же успехом читает фаилы из папки ide собирает а гит в свою очередь может читать фаилы из build или из ide. Никакой магии тут нет. Скорее всего придётся просто прописать пути во всех этих программах (Но сейчас этим все эти инструменты и так страдают).


                    1. soniq
                      14.05.2016 00:54

                      Вашу идею уже реализовали в chroot, да и вообще весь unix-way примерно про это. Винда же пошла другим путем, но ведь туда бы ей и дорога. Гори она в аду, эта глупая небезопасная винда!


                      Каждый может сам выбрать свой яд.


                      1. Sergey6661313
                        14.05.2016 12:48

                        Я говорю о поведении ОС по умолчанию. При чём для любого пользователя(я просто читал где то что чрут можно только от рута запускать). Да и вообще Linux в этом плане как раз именно что идёт против моего-way. Например установка программ. В большинстве дистрибутивов линукс установка программ требует root. И вся программа мягко размазывается по системным bin, lib, и другим папкам. Таким образом пользователя изначально как бы настраивают на работу от имени админа. В винде именно из-за похожей ситуации все и выключают uac. Но самое смешно что на самом деле это никого не защищяет потому что даже если люди будут устанавливать только portable версии программ их всё равно ничто не оберегает от вирусов в них.
                        Тоесть получается что о системе разработчики подумали, а о пользователе нет. Что в свою очередь подталкивает пользователя получить побольше прав в системе. Что в свою очередь открывает ещё больше дыр.
                        А потом бац и неудоляемый винлокер и все фаилы зашифрованы.


                    1. mrsantak
                      14.05.2016 12:59
                      +2

                      Ну вот прям одновременно конечно не меняю один файл несколькими программами — ОС не даст. А вот с интервалом в несколько секунд модифицировать файл двумя разными программами — постоянный кейс (git+IDE).

                      У меня есть выкачанный проект на java.
                      К директории должен иметь доступ на запись гит (он обновляет проект из репозитория, а значит создает/изменяет файлы).
                      Должна иметь доступ на запись IDE (ну тут все очевидно).
                      Должен иметь на доступ текстовой редактор (у меня в проекте есть данные для тестов в огромных json/xml файлах, их редактировать в IDE — это боль, страдание, full gc и out of memmory).
                      Еще в проект могут быть какие-нибудь картинки, которые тоже нужно иногда редактировать.
                      Зачастую есть еще всякие вспомогательные тулы (типа генераторов кода) которым тоже неплохо бы иметь доступ на запись в директорию проекта.
                      Ну и уже молчу про всякие компиляторы, билд системы, статические анализаторы и т.д. Они конечно могут писать каждый в свою директорию, но это неудобно как-то.

                      Зато безопасно, да. Мифический вирус не удалит мне мой проект и мне не придется тратить 5 минут на то чтобы выкачать его из гит по новой.

                      Не, где-то такие ОС наверное нужны, но я бы предпочел остаться на унылых и небезопасных винде и линуксе.


              1. soniq
                14.05.2016 00:14

                Я, кажется, начинаю понимать, о чем Sergey6661313 говорит.

                В ОС должен быть системный «проводник», который имеет доступ ко всем файлам, и может, так сказать, мапить файлы в программы. Чувствуете легкий аромат чистых функций? Вот! А добавить в это зелье монады, и можно совершенно безопасно… Ну, что-то можно же будет с этим сделать?

                Например, доказать пару теорем о сходимости контроля версий…


  1. Dmitry_4
    13.05.2016 10:57
    +2

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


  1. gleb_ignatieff
    13.05.2016 11:43

    Windows Defender неуязвим! :D


    1. TargetSan
      13.05.2016 12:38

      Как Неуловимый Джо :)


      1. ZSH_Fan
        15.05.2016 21:58
        -1

        Не важно, у меня был случай когда знакомая попросила «почистить» компьютер, на тот момент у меня была свободная лицензия на KAVfW 6. При попытке его установить, процесс инсталятора «убивался» самим вирусом, хорошо со мной был флеш диск на котором каким-то чудом завалялся предшественник defender-а, он «встал» на удивление без проблем и мигом нашёл зловред. Но бывали случаи когда сам подхватывал заразу, объясняя что «вот эта програмка» со значком как у папки в WinXP на самом деле вирус и только запуская его, осознавал что же сделал со своей системой, благо в любой момент мог из образа восстановить систему со всем необходимым софтом/настройками и избранным в браузере.


  1. PavelMSTU
    14.05.2016 15:31

    Вот так выглядит образцовая статья для Хабра!
    UPDATE: За то что PDF'ки не пожидили, а поделились ими — спасибище!