Индустрия разработки ВПО
Но прежде, чем я начну из отдельных технологических кирпичиков строить защитную стену, давайте вспомним, что из себя представляет современное вредоносное ПО. Это очень важно, так как позволить не вестись на маркетинговые заявления производителей про 100%-е обнаружение неизвестных вирусов, а осознавать, что могут, а что нет современные вредоносы и, соответственно, как им противостоять.
Да, есть старые вирусы, которые хорошо детектируются стандартными и широко распространенными на рынке антивирусами. Их, наверное, около 80% в общем числе плохих программ. Их часто можно увидеть в различных роликах на корпоративных каналах YouTube или именно их хеши часто фигурируют в различных презентациях и материалах. Потом, введя такие хеши на VirusTotal, можно удостовериться, что продукт такой-то ловит эту заразу и значит он вполне достоит того, чтобы за него заплатить. Или не стоит?
А давайте попробуем посмотреть на это с точки зрения создателя… создателя вредоносного кода. Он, а точнее целая группа квалифицированных программистов и архитекторов, стоящих за всеми современными “НеПетями”, в качестве исходных данных имеют следующую картину:
- они знают, что вредоносное ПО будут искать с помощью различных средств защиты информации
- они знают, что для анализа неизвестного вредоносного кода может использоваться песочница
- они знают, что 99% компаний-жертв используют широко распространенное покупное ПО для защиты.
Какие выводы можно сделать из этих трех очевидных тезисов, которые знает любой безопасник, почему-то не применяющий их для того, что встать на сторону Зла и не подумать “как хакер”, который будет пытаться обойти все традиционные системы защиты? Я сходу сделал бы выводы следующие:
- Вредоносный код должен быть уникальным и не должен повторяться
- Вредоносный код должен использовать несколько векторов распространения
- Вредоносный код должен быть модульным
- Вредоносный код должен обходить методы его детектирования и анализа.
Именно поэтому индустрия создания вредоносного ПО является развитой, имеющей неплохие бюджеты, копирующей лучшие практики разработки ПО (да-да, agile у разработчиков вирусов тоже есть). Но самое главное, у разработчиков вредоносов есть высокая заинтересованность, чтобы их творения были имели высокий коэффециент заражения и низкий коэффициент обнаружения. Вот только один, достаточно старый, начала 2016-го года, пример, показывающий, что антивирусы не способны в массе своей детектировать даже простейшие вредоносные программы.
Типовым подходом для защиты от вредоносного ПО, которое часто по старинке все еще зовут вирусами, что и создает чувство несерьезности проблемы, является применение пары антивирус и межсетевой экран. Однако, как мы увидели выше, современный вредоносный код гораздо сложнее. Каналов заражения можно выделить несколько — e-mail, Web, Wi-Fi, флешки, обновление ПО, лэптопы подрядчиков, личные мобильные устройства руководства и др. При этом создаваемый вредонос может использовать как уже известные старые уязвимости, так и еще неизвестные дыры (0-Day). При этом в основу вредоносного кода могут быть положены как фрагменты уже кем-то использованных вирусов, так и с нуля написанный код, в том числе и с применением различных техник обхода средств защиты на разных уровнях.
Чем плох антивирус с МСЭ?
У вас может быть даже два или три разных антивируса (как это, например, рекомендуется или требуется в нормативных документах Банка России), но это не сильно помогает. Даже если они и используют разные антивирусные движки (а могут и нет :-), то все равно они базируются на уже много лет назад давшем сбой методе — сравнения с сигнатурами атак, то есть обнаружении чего-то известного. Хотя по статистике многих ИБ-игроков сегодня преимущественно встречаются неизвестные ранее вредоносные программы, уникальные для большинства заказчиков. Это значит, что большинство антивирусных продуктов неспособны бороться с тем, что они не видят и не знают.
Недавно коллега прислал мне файл с просьбой проверить его в нашей песочнице
Да вы и сами наверное помните историю с WannaCry, когда многие антивирусные вендоры, кичающиеся победой в тестах “100%-е обнаружение неизвестных вирусов”, на следующие дни (и не все в тот же вечер пятницы) после начала эпидемии стали рассылать рекомендации о том, что надо сделать, чтобы побороть эту заразу. Помните? Странная ситуация получается. Информация об используемой WannaCry уязвимости известна уже месяц, но вредоносный код ее еще не использовал, и поэтому в антивирусных базах никаких сигнатур просто нет. Поэтому большинство традиционных средств борьбы с вредоносным кодом работают пост-фактум, борясь с чем-то известным. Когда речь шла о массовых эпидемиях, ётот подход работал, но в условиях преимущественно уникальных вредоносов он стал давать сбой.
Хорошо, а МСЭ разве не помогает нам отсекать соединения с C&C-серверами? В теории да. На практике же мы сталкиваемся с двумя сложностями. Во-первых, по статистике Cisco около 92% вредоносных программ используют DNS-протокол, который мало кто из обычных межсетевых экранов умеет фильтровать (тут нужны уже NGFW с инспекцией DNS, например,
А если добавить защитные Web и E-mail шлюзы?
Что надо сделать, чтобы повысить защищенность компании от вредоносных программ? Помимо регулярной установки патчей, резервного копирования и ограничения использования прав локальных администраторов пользователями, давайте вспомним про возможные вектора заражения. По статистике львиная доля всех заражений осуществляется через два основных канала — Web и e-mail. Значит и на защиту этих каналов должны встать соответствующие решения по защите, которые будут фильтровать трафик на предмет вредоносных вложений. У Cisco это
Но перекрытие двух основных каналов попадания вредоносного кода внуть организации не снимает проблемы антивирусов, которые ловят только известное. Есть ли технология, позволяющая анализировать файлы, не взирая на наличие или отсутствие по ним цифровых отпечатков (сигнатур)? Да, называется она песочница (sandbox) и позволяет она проводить статический и динамический анализ файла на предмет выполнения им каких-либо несанкционированных действий — доступ к реестру, копирование файлов, взаимодействие с C&C-серверами, инкапсуляцию в разрешенный трафик и т.п. Та же песочница Cisco Threat Grid может анализировать свыше 700 различных параметров и факторов поведения файлов с целью определения их вредоносности. Именно с песочницей связываются средства защиты, которые обладают встроенными антивирусными движками, но не могут обнаруживать неизвестные вирусы. Интеграция с песочницей дает такую возможность. В случае с архитектурой безопасности Cisco с песочницей Threat Grid связаны все решения по безопасности — Cisco E-mail Security Appliance, Web Security Appliance, Cisco Firepower NGFW/NGIPS, Cisco ASA with FirePOWER Services, Cisco AMP for Endpoints, Cisco Umbrella и др.
Как защитить мобильных пользователей?
Допустим периметр сети мы защитили, но что делать с мобильными пользователями? Вокруг них мы не можем возвести защитные стены из МСЭ, IPS, контентных шлюзов и песочниц. MDM-решения не сильно помогают нам бороться с вредоносным кодом, так как у них иное предназначение. Мобильный антивирус? У него та же проблема, что и ранее описанная. Да и не для всех мобильных платформ есть средства защиты от вредоносов (например, для iPhone). Как тогда бороться? Опять надо встать на сторону злоумышленника и посмотреть, как он создет свои творения. Как правило, они не работают автономно, а используют клиент-серверную архитектуру, подразумевающую коммуникации с сервером управления и чаще всего для этого используется протокол DNS. Если мы сможем его инспектировать, то мы решим большую часть проблем с вредоносным кодом на мобильных платформах. В этом случае мы просто заменяем адреса DNS-серверов от Google или Яндекс на адреса специализированного сервиса (например,
Давайте посмотрим в сторону NTA и EDR
Вернемся опять к истории с WannaCry. Генеральный директор одной из крупных промышленных компаний в пятницу вечером подхватил WannaCry на свой домашний компьютер. Не долго думая, в субботу утром он привез зараженный лэптоп на работу, подключил его к корпоративной сети, попутно вызвав своих айтишников “разобраться”. Пока те ехали на работу, WannaCry стал распространяться по внутренней сети, не взирая на достаточно неплохую защиту периметра. А ведь есть еще подброшенные с неизвестным вирусом флешки, взлом Wi-Fi, ноутбуки подрядчиков и т.п. Что делать в этой ситуации? Ответ один — мониторить внутреннюю инфраструктуру с помощью технологий NTA и EDR. Это аббревиатуры, означающие два класса средств защиты, — анализ сетевого трафика (Network Traffic Analysis) и обнаружение и реагирование на оконечных устройствах (Endpoint Detection and Response).
Анализ сетевого трафика (например, с помощью
Стоящий на периметре межсетевой экран имеет свою аналогию и во внутренней сети — это система контроля сетевого доступа (например,
Разумеется, все описанные выше технологии должны работать не по отдельности и не в автономном режиме, а в тесном сотрудничестве между собой, обмениваясь сигналами тревоги, политиками безопасности, командами, а также индикаторами компрометации. Кстати, по поводу индикаторов (IoC). Их тоже надо регулярно получать из внешних источников (у Cisco роль такого источника выполняет подразделение
Возвращаемся к замкнутой программной среде и изоляции от внешнего мира
Описанная выше стратегия является оптимальной для защиты от 98% вредоносного кода. Можем ли мы увеличить это значение, приблизившись к заветной сотне? На самом деле можно, но только надо понимать, что в этом случае мы вынуждены будем существенно ухудшить эксплуатационные характеристики своей сети и снизить удобство работы для пользователей. Достигается это за счет отказа от парадигмы черных списков и переход к правилу “разрешено только то, что известно”. Разрешенные приложения, IP-адреса, пользователи и т.п. Как мы понимаем, такой подход имеет существенные ограничения в реальной жизни, но зато он позволяет существенно ограничить работу вредоносного кода. Дополнительный уровень защиты достигается за счет технологий изоляции, виртуализации, удаленных браузеров, TPM, контроля целостности ОС, удаленной верификации, электронной подписи e-mail.
В качестве резюме
Я описал несколько стратегий защиты от вредоносного кода — от минималисткой до максимальной. Значит ли этой, что мы можем полностью предотвратить заражение нашей внутренней сети и мобильных пользователей? Увы. 100%-й защиты гарантировать не может никто и ничто. Но задача этой заметки была в другом — показать, что до сих пор еще существующая точка зрения, что один только антивирус может спасти от современных вредоносных программ, уже давно “протухла” и проблему решить может только комплексный подход и отталкиваться в нем нужно от use case, о которых мы уже
Дополнительная информация: