Ложные срабатывания и борьба с ними
Проверка какого-либо объекта (файла или веб-ресурса) программой для обеспечения интернет-безопасности по сути сводится к принятию бинарного решения — опасен или безвреден? Антивирусный движок выдвигает гипотезу о том, что данный объект вредоносен, и проверяет, так это или нет. Поскольку, увы, идеальных антивирусов не существует, иногда возможны ошибки, делящиеся на два типа. Ошибки первого рода – когда безопасный объект признается опасным, ошибки второго рода – признание вредоносного объекта безопасным. По терминологии, унаследованной от математической статистики, ошибки первого рода принято называть ложноположительными (False Positive).
Компании, разрабатывающие системы безопасности, по-разному относятся к ложным срабатываниям. Некоторые считают задачу борьбы с заражением более приоритетной. «Лаборатория Касперского» придерживается жесткой позиции в этой области: предотвращение ложных срабатываний не менее важно, чем борьба с вредоносным ПО. Рассмотрим методы борьбы с ложными срабатываниями на примере нашей компании.
Негативный позитив
Для пользователя ложное срабатывание защиты означает недоступность нужного веб-ресурса или невозможность использовать безопасную программу. Вне зависимости от важности конкретного файла или сайта, ошибочное детектирование – всегда неприятность, которая может привести к нарушению бизнес-процессов.
Если ошибочно признается опасной программа, только что написанная пользователем, ее автор пожалуется в антивирусную компанию, аналитики признают ошибку и исправят ее при следующем обновлении баз. Обычно на это уходит несколько часов, если, конечно, программа и в самом деле не делает ничего, выходящего за рамки дозволенного легитимным приложениям.
Совершенно другая ситуация — если в качестве вредоносного будет признан компонент операционной системы. Это может привести к более тяжелым последствиям, вплоть до системного сбоя. А в случае если ложное срабатывание такого масштаба произойдет у крупной компании, неизбежны простои, и, как следствие, упущенная выгода. Поэтому мы считаем, что компании, разрабатывающие системы безопасности, должны очень внимательно относиться к такого рода ошибкам и стараться их минимизировать.
Причины ложных срабатываний
Прежде всего, следует разобраться, в чем же причины таких ошибок. Их может быть несколько.
Возможной причиной ложного срабатывания может стать человеческий фактор – антивирусный аналитик не застрахован от ошибки. Впрочем, в современных реалиях такие случаи крайне редки, поскольку сейчас практически все угрозы (99%) детектируются автоматически.
Ложное срабатывание может произойти, когда разработчики легитимных приложений применяют средства обфускации (запутывания кода) и упаковки (сжатия исполняемых файлов). Эти методы часто применяются злоумышленниками для затруднения анализа вредоносных программ, поэтому системы безопасности могут заподозрить такое приложение во вредоносности.
Ложное срабатывание может стать следствием использования обобщающей сигнатуры, детектирующей схожие вредоносные объекты. Мы давно знаем, что множество вредоносных объектов часто являются вариациями одного и того же кода. Значит, используя более «интеллектуальные» методы классификации, в них можно выявить некую схожую часть и создать единую детектирующую логику (сигнатуру), которая будет детектировать все похожие объекты. Такие обобщающие сигнатуры создают различные системы детектирования. Чем шире используемые системой критерии выявления схожей части вредоносных объектов, тем больше вероятность того, что сигнатура сработает на похожий, но безопасный объект.
Наконец, объект может быть ошибочно принят за вредоносный технологиями, анализирующими поведение программ. Например, если неизвестное приложение начинает вносить какие-либо подозрительные изменения в системный реестр или предавать личные данные пользователя по сети, то компонент, следящий за событиями в операционной системе, должен забить тревогу. При этом так может действовать вполне безопасная программа, просто не очень часто используемая.
Борьба с ложными срабатываниями
Потенциальные последствия ложных срабатываний были понятны антивирусным аналитикам практически с момента зарождения индустрии. Однако в те времена и пользователей, и интернет-угроз было в тысячи раз меньше, да и выпуск антивирусных баз происходил гораздо реже. Поэтому 18 лет назад для проверки антивирусных баз применялись достаточно несложные методы: у разработчиков была коллекция критически важных чистых файлов (преимущественно системных), и перед выпуском обновления эксперты просто сканировали эту коллекцию при помощи каждой новой базы. При ложном срабатывании детект снимался после поступления первых жалоб. То есть команда аналитиков исправляла базы вручную, и угроза не доходила до большого количества пользователей.
Со временем поток вредоносного ПО вырос в тысячи раз, усложнились и вредоносные программы, и технологии детектирования вредоносных объектов. Сейчас «Лаборатория Касперского» ежедневно детектирует 325 000 новых вредоносных объектов. Расширился и арсенал методов борьбы с интернет-угрозами: если в девяностых годах сигнатурные методы детектирования прекрасно справлялись с защитой компьютера, то теперь в продуктах «Лаборатории Касперского» применяются и технологии автоматического предотвращения эксплуатации уязвимостей, и инструменты контроля привилегий приложений, и компонент, следящий за событиями в операционной системе, и ряд других технологий. К тому же современные базы легитимного программного обеспечения занимают терабайты дискового пространства.
Очевидно, что в таких условиях архаические методы борьбы с ложными срабатываниями применять невозможно. Современные технологии их предотвращения гораздо разнообразнее и эффективнее. Эти методы применяются и на этапе детектирования вредоносных объектов, и на этапе тестирования и выпуска баз. Кроме того, есть отдельный набор методов, позволяющий минимизировать шанс возникновения ложных срабатываний уже на этапе эксплуатации защитного продукта.
Контроль сигнатур
Как сказал бы Капитан Очевидность, самый простой способ избежать ложных срабатываний — выпускать сигнатуры, не содержащие ошибок. Поэтому особое внимание уделяется этапам создания сигнатур вредоносных объектов. Но даже если ошибка проявит себя позже, то остается возможность оперативно исправить ситуацию, даже если базы уже у пользователя.
Этап детектирования (создание статических сигнатур)
Во-первых, отдельная система автоматического контроля анализирует статические сигнатуры, которые вирусные аналитики добавляют в базы вручную. Дело в том, что человек, погрузившись в анализ кода, может не видеть всей картины. Поэтому при попытке добавления в базу сигнатуры объекта, который по каким-то критериям воспринимается системой как чистый, автоматика сообщает аналитику о возможной ошибке и приводит свои аргументы.
Во-вторых, для проверки новых сигнатур на ложные срабатывания используется коллекция хэшей (уникальных результатов преобразования кода по определенному алгоритму) заведомо «чистых» объектов. Сигнатура, созданная на основании фрагмента вредоносного кода, проверяется на соответствие хэшам из коллекции. Если система обнаруживает, что новая сигнатура по некоторым критериям совпадает с хэшем легитимного объекта, то выбирается другой участок кода для формирования сигнатуры этой угрозы.
Кроме того, в «Лаборатории Касперского» хранится отдельная база данных с «личным делом» каждого зловредного объекта, который когда-либо анализировался защитными технологиями. При создании детекта учитывается прошлое детектируемого объекта — если раньше этот объект не вызывал никаких подозрений, то он подвергается дополнительной проверке.
Также для защиты от ошибок используется коллекция файлов, ранее вызывавших ложные срабатывания. Она позволяет избежать повторения инцидента в случае незначительного изменения объекта (например, выхода новой версии программы).
Периодически базы статических сигнатур пополняются обобщающими сигнатурами: если система автоматического детектирования регистрирует множество схожих зловредов, то для борьбы с ними создается единая детектирующая логика.
Этап тестирования и выпуска баз
Чтобы удостовериться, что сигнатуры (как статические, так и обобщающие) не сработают на «чистом» ПО, сформированные базы проверяются при помощи списка разрешенных – динамической базы знаний Dynamic Allowlist. Это огромная, постоянно пополняемая коллекция легитимного программного обеспечения, которая содержит также дополнительные данные о каждом из объектов (производитель, название продукта, версия последнего обновления и многое другое). Подробнее о работе Dynamic Allowlist можно узнать здесь.
В «Лаборатории Касперского» сбором и своевременным обновлением этой коллекции занимается специальный отдел. Благодаря соглашениям, заключенным более чем с шестьюстами компаниями-разработчиками ПО, большинство популярных приложений попадает в эту коллекцию до того, как они становятся коммерчески доступны широкому кругу пользователей.
Отдельного внимания заслуживает система, производящая это сканирование. Поскольку объем коллекции легитимного ПО огромен, а базы обновляются раз в час, очевидно, что производить сканирование на обычном сервере не получится. Специально для этой задачи была разработана система распределенной обработки данных, использующая десятки серверов и хранилищ данных для балансировки нагрузки.
Все сигнатуры, вызвавшие малейшее подозрение, заносятся в отдельный реестр, который условно можно назвать «потенциально опасные вердикты». Такие сигнатуры проходят дополнительную проверку, зачастую, с привлечением аналитиков.
Оперативное реагирование (борьба на этапе эксплуатации)
Когда антивирусные базы проходят все полагающиеся проверки, их рассылают пользователям. Распределенная облачная инфраструктура Kaspersky Security Network получает статистику по происходящим на стороне пользователя детектам и отслеживает, сколько раз сработала сигнатура.
Аналитики, ответственные за выпуск, продолжают тщательно следить за тем, как продукты реагируют на обновления. Если регистрируется аномалия (за короткий промежуток времени угроза выявлена у слишком большого количества пользователей), то это может быть признаком ложного срабатывания. В этом случае аналитик получает сигнал тревоги и начинает дополнительный анализ детектируемого объекта.
Если в результате анализа становится понятно, что объект был признан вредоносным ошибочно, то в действие вступает технология Record Management System, позволяющая за считанные секунды отозвать запись, используя все ту же Kaspersky Security Network. Некорректная сигнатура также удаляется из баз. Если обнаруживается, что обобщающая сигнатура ошибочно детектирует в том числе «чистый» объект, то аналитики меняют детектирующую логику и исправляют базы. В любом случае, при следующем обновлении ошибки в базах уже не будет.
Контроль ошибок проактивных технологий
На этапе разработки проверить на ложные срабатывания технологии, которые выявляют аномальное поведение программ на компьютерах пользователей, не так просто. Предугадать все варианты действий пользователя на своей машине и все варианты «чистого» ПО, которое при этом может использоваться, практически невозможно. Поэтому от ошибочных срабатываний проактивных технологий пользователя защищают, в первую очередь, облачные технологии.
Когда продукт обнаруживает неизвестный объект, о котором в локальных антивирусных базах ничего не известно, то хэш этого объекта мгновенно передается в облачную инфраструктуру, которая в течение доли секунды отвечает, что об этом объекте известно. Если он находится в списке разрешенного доверенного ПО, то объект признается безопасным.
Кроме того, облачные технологии позволяют проверить достоверность цифровой подписи подозрительного файла и репутацию компании, выпустившей сертификат цифровой подписи. Если репутация безупречна, а сертификат подлинный, то это также свидетельствует о легитимности объекта. Следует отметить, что данные о репутации компании и подписи — не статичны. При регистрации инцидентов доверие к ним может быть утрачено, тогда изменится и реакция защитного решения на файлы.
Особенно тщательно приходится следить за инструментами проактивного детектирования в период обновления функциональности продукта. Когда обновленные технологии впервые после лабораторных тестирований начинают работать в полевых условиях, могут возникнуть непредвиденные ошибки. Поэтому новые механизмы защиты активируются не сразу на всех продуктах, а поэтапно. Сначала обновления поставляются ограниченной тестовой группе. Если это не приводит к возникновению ложных срабатываний, то новые функции получает более широкая группа пользователей. Таким образом, даже если новая технология даст сбой, то большая часть пользователей о нем даже не узнает.
Борьба с ложными срабатываниями при проверке веб-ресурсов
Отдельно несколько слов следует сказать о технологиях защиты от ложных срабатываний при проверке веб-ресурсов. Kaspersky Security Network позволяет отслеживать репутационную историю ресурса. В случае обнаружения вредоносного контента на одной из страниц сайта, от его репутации зависит, будет ли он заблокирован полностью или частично. Если репутация сайта безупречна, то решения «Лаборатории Касперского» будут блокировать не весь сайт, а только страницу, которая представляет угрозу для пользователей.
Кроме того, Kaspersky Security Network следит за статистикой посещения веб-ресурсов. Если в качестве опасного будет выявлен популярный среди пользователей сайт, то автоматика даст соответствующий сигнал аналитикам, которые проведут дополнительную проверку. Это позволит избежать ложного срабатывания на популярном ресурсе.
Заключение
Ложные срабатывания продуктов защиты неизбежны – идеальных решений не существует. Но задача компаний-производителей свести их к минимуму. И эта задача выполнима.
Эксперты «Лаборатории Касперского» тщательно контролируют работу защитных технологий, чтобы они не допустили ошибку. Для каждого типа объектов, в которых может быть выявлена угроза (веб-страницы, файлы, баннеры, загрузочные секторы, потоки трафика и так далее), есть специальные механизмы по предотвращению ложных срабатываний и отдельные коллекции заведомо чистых объектов.
В «Лаборатории Касперского» работает специальная группа, которая совершенствует существующие методы борьбы с ложными срабатываниями и разрабатывает новые. Она расследует каждый случай, анализирует его причины и создает инструменты, позволяющие избежать повторения аналогичной ошибки в будущем.
Во многом благодаря усилиям этой группы тесты продуктов «Лаборатории Касперского», проводимые независимыми исследователями, в последнее время практически не демонстрируют ложных срабатываний.
Можно ли победить неизбежное зло?