Cloud antivirus (”Облачный” антивирус)




Антивирусная индустрия давно уже пытается бороться с проблемой числа новых вирусов, растущего в геометрической прогрессии. Всего 20 лет назад, в 1990 году, было известно не более 500 вирусов. В 1992 году их было уже до 2300. В 1994 - до 7500. В 1996 - больше 10000. В 1998 - 20000, а в 2000 году их было уже больше 50000. 2 года назад, в 2008 году, число вирусов превысило 1 миллион! Сейчас их уже несколько миллионов.
Любому технически подкованному человеку, глядя на эти цифры и прогрессию, становится понятно, что битва для “классических” антивирусов проиграна - в какой-то момент число вирусов станет просто слишком большим и станет невозможно хранить их сигнатуры в памяти. Например, даже если сигнатура одного вируса занимает всего 20 байт, то 3 млн вирусов - это уже 60 мегабайт. А через пару лет их будет 10млн - уже 200 мегабайт. А через 5 лет - гигабайт? Только для антивируса? Слишком много.
А еще надо учесть, что антивирусные базы приходят каждый день несколько раз из интернета - разве кто-то захочет скачивать каждый день десятки и сотни мегабайт новых антивирусных баз? Слишком много.
А ведь сигнатуры надо не просто хранить, но еще и сканировать их для каждого нового файла и находить - вирус это или нет. Сканировать базу из 5-10млн. вирусов на не очень мощной машине? Слишком долго и будет съедать слишком много CPU.


Так что, битва проиграна?
Конечно же нет.



Сначала появились всяческие проактивные защиты, поведенческие анализаторы и песочницы (фактически скрытые виртуальные машины, в которых запускался файл и проверялось, что он делал), системы предотвращения вторжений (HIPS) и другое.
Но проблема всех этих методов была в том, что они не давали хорошего процента обнаружения вирусов. В основном они защищали от какого-то процента Zero-hour вирусов (новые вирусы, которые только-только появились и еще не добавлены в базу сигнатур), но основная защита все равно возлагалась на базу с сигнатурами вирусов - надежнее этого нет ничего.
В итоге антивирусы становились все сложнее и сложнее и содержат сейчас в себе множество фич - базы сигнатур, HIPS-ы, песочницы и т.п. Все это, естественно, плохо сказывается на производительности компьютера. А пользователи жуть как не любят тормоза…
К тому же даже вся эта комплексная защита не дает возможности защищаться от вирусов мгновенно - если ты ловишь Zero-hour вирус, то с достаточно большой вероятностью он тебя заразит, т.к. его еще может не быть в базе сигнатур, а HIPS-ами и т.п. вирусы далеко не всегда ловятся.


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


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



Клиентская часть устанавливается на компьютеры пользователей, когда они устанавливают антивирус. Она очень маленькая и не имеет никаких баз сигнатур вирусов или HIPS, или чего угодно. Задача клиентской части - посылать хэш неизвестных файлов на сервер и получать от сервера ответ - вирус это или нет. Если не вирус - все ок. Если вирус, то сервер также пришлет инструкции по удалению этого вируса (скрипт). Клиент просто запустит этот скрипт и все вычистится. Это если вирус уже установлен. Если же это заново скачанный и еще не запущенный файл, то он просто удалится или заблокируется. Понятно, что такой клиент будет очень небольшим и высокопроизводительным.



Вся сложность на стороне сервера. Именно сервер хранит все базы сигнатур вирусов. Сервер принимает от клиентов хэши файлов, ищет их в базе сигнатур вирусов и высылает ответ - вирус или нет. В случае, когда клиент присылает новый файл - именно сервер его анализирует, прогоняет через все HIPS-ы, продвинутые анализаторы и т.п. и в случае, если это вирус - мгновенно добавляет его в базу сигнатур. В итоге второй клиент, приславший точно такой же файл, сразу получит ответ, что это вирус. Для сложных файлов, которые не пойманы автоматически, существуют лаборатории анализа вирусов - они берут такие файлы, анализируют их “вручную” и решают - вирус или нет. Если вирус - добавляют в базу, и уже через секунду все клиенты знают, что это вирус. Клиенту не надо никаких баз для этого обновлять.


Плюсы “облачного” антивируса:
- Очень “легкий” клиент. Никакого оверхеда на компьютер пользователя. К тому же меньше кода - меньше багов.
- Не нужно скачивать несколько раз в день антивирусные базы на компьютер каждого пользователя.
- Очень быстрая защита - менее минуты в среднем между обнаружением нового вируса и добавлением его в базу.


Минусы “облачного” антивируса:
- Нужен постоянный доступ в интернет. Без интернета шанс обнаружения нового вируса у чисто “облачного” антивируса равен нулю.
- Медленный интернет с большими пингами тоже может создать некоторые замедления. По крайней мере вначале, пока все системные файлы не будут проанализированы.
- В некоторых компаниях может быть запрещена отсылка файлов в интернет. Например, если вы разрабатываете что-то и билдите exe файлы, то вы можете не захотеть их постоянно отсылать на проверку.


Плюсы безусловно побеждают минусы, по крайней мере для домашних юзеров. И в то же время нельзя сказать, что все вдруг кинутся и будут ставить только “облачные” антивирусы.
Нет - и старые антивирусы и “облачные” будут жить еще много лет бок о бок.
А что будет через 5 лет в этой индустрии предсказать не может никто - слишком быстро всё меняется…


Похожие статьи:
Новый червь Downadup
Поддельные антивирусы
Сделай свой интернет безопасным
Страшилки: зачем нужен антивирус?

21 комментариев к Cloud antivirus (”Облачный” антивирус)

  • Anonymous

    > Задача клиентской части - посылать хэш неизвестных файлов на сервер и получать от сервера ответ - вирус это или нет.
    Просто по хэшу вирус не запалишь.

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

    И вообще, ничто не мешает комбинировать оба подхода, вот.

    • Обновлять - это не бегать за ответом для каждого файла.

      • Облачный антивирус тоже для каждого не будет бегать.
        Во-первых, если уже, например, для cmd.exe один раз узнал, что это не вирус - второй раз не будет запрос слать.
        Во-вторых, посылать для каждого файла запрос - не оптимально. Запросы можно батчить и посылать сразу сотню или тысячу.
        Надо срочно посылать даже единичный файл только если ты прямо сейчас что-то незнакомое новоскачанное запускаешь - перед тем как разрешить запуск нужно убедиться, что это не вирус.

    • >>Просто по хэшу вирус не запалишь.

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

  • Max Semenik

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

  • uni

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

    Тогда md5 будет всегда разный и этот способ будет не эффективен.

    Но, думаю умные люди придумают что можно передавать так чтобы и не весь файл и однозначно идентифицировать.

    Хотя если файл маленький, то можно и весь.

  • uni

    UPD: Запоздало прочитал комментарии. Теперь понял. То есть работать по принципу белых списков — отправили хэш, если известно что файл чист, то не паримся, если не найден - то отправляем уже весь файл.

    Но тут проблема — гонять личные картинки, личные документы и т.п. Не все захотят. Хотя, как знать)

    • А гонять картинки никто не будет - это же не исполняемые файлы и заразиться через них невозможно.

      • nobody

        >это же не исполняемые файлы и заразиться через них невозможно

        В IE помнится такой баг был - при открытии .png файла происходило переполнение буфера и выполнение кода из открываемого .png файла.

  • Николай

    “В некоторых компаниях может быть запрещена отсылка файлов в интернет. Например, если вы разрабатываете что-то и билдите exe файлы, то вы можете не захотеть их постоянно отсылать на проверку.”

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

    • Кликать на “разрешить” для каждого новосбилженного файла - замучаешься кликать. Но идея правильная - можно в антивирусе выбрать папку, в которой не надо проверять файлы. Опасно, т.к. можно вирус там упустить, но пользователь сам должен думать - пользоваться этой фичей или нет.

  • centur

    А потом производители антивирусов договорятся с самыми суровыми копирастами и ваш “защитник” начнет операцию по принуждению к копирастии.
    Я бы сильно задумался об полезности такого антивируса.Есть опасность атаки на сервера вендора (центрально-управляемая система - можно потратить сильно больше ресурсов на атаку). Если получить контроль над подобной системой - можно легко запросить у миллионов хомячков их самые любимые куки и пароли, в особо клинических случаях - документы. Даже трояна ставить не надо - антивирус сам попросит и пользователь сам пришлет файл. Также возникает раздолье для сценариев типа подмены ответа\скрипта удаления через man-in-the-middle и удаление самого антивируса\важного файла скриптом.

    В общем - слишком много “Если” для здравомыслящих людей ( хомячки-то понятно - это себе поставят, и также будут тусоваться в ботнетах). Я бы вряд ли доверил какой-либо системе, управляемой извне в режиме онлайн, такой обширный контроль над своими компьютерами. Обновления - да, постоянный контроль - нет.

    Хмм, что-то мне это напоминает оруэлловский 1984… Я не параноик, но всякие попытки блокировать кряки или неугодные утилиты\патчи антивирусами уже видел. Следующий шаг - вы добровольно ставите себе функциональный аналог трояна и оформляете подписку на “ненанесение вам ущерба” ?

    • Это не “здравомыслящий” человек, а параноик :)
      Вот сейчас - вы пользуетесь Windows? А вы знаете, что такое Windows Error Reporting и как он работает? Знаете, что я могу любой файл с вашего компа через него запросить, включая куки? И что, кто-нибудь от этого пострадал? Наличие возможности еще не значит, что она будет использована.

      • centur

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

        • Не только крешдампы. Вместе с дампом отправляется вся информация, которую запросил девелопер. Например, я, как девелопер упавшего приложения, могу запросить файл icq_history.log, где весь лог ICQ хранится (для примера). И этот файл мне вышлется :) Другое дело, что естественно никому из нормальных девелоперов это не надо и возможные осложнения намного превышают возможную прибыль от получения частной информации.

        • Xor

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

  • Vlad

    Смешная идея…
    1. Zero-hour на то и зеро, что неизвестен еще антивирусам. Значит, хеш смотреть бесполезно.
    2. Вирусы клепаются конструкторами, 10 штук в день. Посмотрите количество модификаций любого популярного вируса. Значит, хеш смотреть бесполезно.
    3. Ну и, как уже упоминали, морфинг сейчас - стандартная функция зловреда. Значит, хеш смотреть бесполезно.
    Итого, идея с хешем будет ловить дай бог 5-10% вирусов, самых безобидных. Остается гонять все файло через антивирусник. От такого любой датацентр ляжет, кроме гугловского :) Не говоря о безопасности.
    Так что, защита должна строиться на архитектуре системы, а не на сигнатурах. Как пример - с уменьшением количества ХР вокруг меня замечаю уменьшение заражений авторанами.

    • 1-3: всё так и именно поэтому сейчас проблема у классических антивирусов - обновление баз вирусов раз в час уже недостаточно. Нужно реагировать быстрее. Реагировать на вирус уже через минуту - достаточно сейчас, так как морфинг все же тоже умеют антивирусы определять.

      >>Так что, защита должна строиться на архитектуре системы, а не на сигнатурах.

      Безусловно.

  • boobleccie

    Размер базы в памяти - не проблема. 60Мб даже для нетбуков - фигня.
    Скорость - в любом случае быстрее передачи файлов для анализа.
    Безопасность - я не параноик, но передавать файлы на анализ не дам, особенно .docx файлы, которые могут содержать очень чуствительную для бизнеса информацию, равно как и суровые макровирусы.
    Кстати, современые эвристики очень неплохи - можно выкинуть ту половину сигнатур, которые успешно ловятся эвристиками.

    И еще - изолированные окружения. Даже сейчас довольно часто программный продукт поставляется внутри virtual appliance, кругом пропихивают chroot, всякие изоляции, seamless-интеграция виртуальных окружений с основной системой.
    Думаю довести механизм изоляции любого ПО от другого ПО и данных до хорошего состояния - дело пары лет.

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

    А облачные антивирусы сделать нормально слишком трудоемко. Кстати, а если вирус блокирует доступ в сеть? Отключает сеть?

  • amdma

    Я называю это не ”Облачный” антивирус а “Туманный антивирус”. Очередной маркетинговый ход производители антивирусов. Или “спасение утопающих - дело самих утопающих”. У меня стоит Комодо, ругался не несколько файлов - 100% надёжных (с дистрибутива RADStudio) я их отослал месяц назад на проверку. Комода по прежнему их признает “неизвестными + подозрительными”. Складывается впечатление, что ни кто их никогда проверять и не будет.
    Да и вообще определение вирусов по сигнатурам это “позапрошлый век”. Не тем путем идут товарщи. Проактивная защита + файервол. Я например сразу настроил файрвол Комоды правильным образом - выкинул из его базы все “надёжные” компании (их там около 200) Запретил доступ в сеть ВСЕМ процессам абсолютно, кроме оперы и svhost.exe (без него комп вообще не подключается к сети :) Вообще этот файер один из лучших, отрубает честно, даже свой собственный сервис “КомодоАпдейта” не пускает в сеть если правильно настроить. И всё - никакие “Затумманные антивирусы” не нужны. Изредка запускаю “RootkitRevealer”. И после установки какой либо проги сразу проверяю что там в авто-запуске, если она что либо вставила - беспощадно удаляю ручками.

Ответить

 

 

 

Вы можете использовать эти HTML тэги

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>