Антивірус як загроза



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

Але, як і будь-які складні програми, антивіруси схильні вразливостей. При цьому процеси антивірусних продуктів, як правило, є надійними і виконуються в привілейованому режимі, з високими правами доступу. Це робить антивіруси цікавою мішенню для зловмисників, оскільки їх експлуатація може призвести до компрометації всієї системи.

В останні роки спостерігається зростання інтересу до вразливостей захисного ПЗ взагалі і антивірусів зокрема. Про це говорить зростання числа експлойтів, опублікованих на pws-db і подібних ресурсах. На графіку показано вище кількість знайдених вразливостей у відомих антивірусних продуктах за кожен рік протягом останніх 15 років.

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

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

Складно робити точні прогнози про те, як далі буде розвиватися ця тенденція, але деякі припущення можна зробити на підставі експлойтів, опублікованих у першому кварталі 2016 року. Їх короткі описи представлені нижче.

Атаки з використанням вразливих антивірусів

F
11 січня 2016 року дослідник Tavis Ormandy з команди Google Security Research виявив критично небезпечну уразливість антивіруса avast pro, що приводить до віддаленого виконання коду.

При установці антивірусу за замовчуванням встановлюється компонент 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 березня критично небезпечна уразливість виявлена в антивірусі Avast. Очікується, що антивірус повинен вміти гарантовано обробляти 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.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.