Программное обеспечение

Подводные камни динамического тестирования

Всякий, кто имеет хоть какое-то отношение к антивирусной отрасли, знает, что тестирование антивирусных продуктов — горячая тема. В последнее время ему уделяется много внимания, в особенности после учреждения в мае 2008 года Организации по стандартам в области тестирования — AMTSO (the Anti-Malware Testing Standards Organization).

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

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

Методики тестирования

Прежде чем перейти к оценке риска, связанного с динамическим тестированием, рассмотрим некоторые другие методики тестирования.

Статическое тестирование

Статическое тестирование — это наиболее простой вид тестирования. Оно заключается в сканировании по требованию, которое проводится на коллекции вредоносных программ. В наше время для того чтобы получить содержательные результаты, любой статический тест должен проводиться на коллекции вредоносного ПО, содержащей тысячи файлов. Коллекции таких тестовых организаций, как AV-Test и AV-Comparatives, как правило, состоят из сотен тысяч файлов, а в некоторых случаях в них входит и более миллиона образцов.

При столь значительном размере тестовых коллекций результаты тестирования не могут представлять для авторов вредоносного ПО значительного интереса с точки зрения «тонкой настройки» их «творений».

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

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

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

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

Тестирование скорости реакции

Несмотря на то что тестирование скорости реакции на появление новых угроз в наши дни проводится редко, на этот вид тестов стоит обратить внимание. Он был особенно популярен во времена больших эпидемий почтовых червей. NetSky, Bagle, Mydoom, Sober и Sobig — классические примеры вредоносных программ того периода.

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

Подобные конкретные результаты по каждому образцу, очевидно, могут быть полезны авторам вредоносного ПО. Можно предположить, что в результате публикации результатов тестов на скорость реакции некоторые авторы вредоносных программ изменили свой подход к их написанию, чтобы усложнить их обнаружение. Один из примеров этого — W32/Sober.K3, который в процессе инсталляции дописывал случайный мусор в конце своего файла, чтобы затруднить обнаружение антивирусными продуктами. Очень возможно, что автор реализовал это потому, что был недоволен высокой скоростью реакции на появление предыдущих вариантов Sober.

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

Ретроспективное тестирование

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

Динамическое тестирование

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

В идеале, образцы должны вводиться в тестовую систему «правильным» путем — например, методом drive-by download. Но даже при условии автоматизации процесса на выполнение этой задачи требуется значительное время, а то, что для получения значимых результатов тестирования необходимо избегать использования виртуальных машин, задачу ничуть не упрощает.

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

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

Нет сомнения в том, что к подобным рекомендациям внимательно прислушиваются и авторы вредоносного ПО.

Времена меняются

Около пяти лет назад компания Symantec внедрила в свои продукты серии Norton функцию защиты под названием anti-worm (защита от червей). Эта система проактивно обнаруживала почтовых червей на основе поведенческого анализа. Предполагалось, что компании Symantec придется обновить технологию не позднее чем через полгода после ее внедрения, чтобы обеспечить ее эффективность в отношении новых вредоносных программ. В действительности разработчикам технологии так и не пришлось ее обновлять4. Авторы вредоносных программ не знали об этой технологии, не пытались или были неспособны ее обойти.

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

В чем состоит разница между двумя поведенческими блокираторами? Функция Anti-worm была реализована в эпоху крупных эпидемий вредоносных программ, организаторы которых стремились прежде всего добиться известности. К 2006 году большая часть вредоносного ПО уже писалась с целью наживы, в том числе и LdPinch. Кроме того, надо иметь в виду, что «Лаборатория Касперского» — российская компания, а LdPinch — вредоносная программа, созданная в России и нацеленная прежде всего на российский рынок.

Но возможно и еще одно объяснение (надо, однако, отдавать себе отчет в том, что автор настоящей статьи вовсе не специалист по маркетингу): создается впечатление, что «Лаборатория Касперского» вложила больше сил в маркетинг своего поведенческого анализатора, чем Symantec в свое время вложил в маркетинг своей защиты от червей. В результате авторы вредоносного ПО были лучше осведомлены о продукте «Лаборатории Касперского» и приложили определенные усилия для обхода обеспечиваемой им защиты.

Мультисканер

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

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

Эти сервисы также пользуются определенной популярностью среди вирусописателей, которые с их помощью проверяют свои последние «творения» на предмет способности успешно избегать обнаружения. Некоторые разработчики антивирусных программ предоставляют мультисканерным сервисам последние версии своих продуктов и просят администраторов сайтов использовать самые строгие настройки, позволяющие обнаруживать максимально возможное количество вредоносного ПО. У других вендоров иной подход: они не позволяют подобным сайтам использовать свои последние разработки и просят администраторов не настраивать их продукты на максимальный уровень безопасности, чтобы они обнаруживали не все вредоносное ПО, которое продукты этих разработчиков способны детектировать в реальной жизни5. Это позволяет не демонстрировать все возможности продукта по обнаружению вредоносных программ.

Динамическое тестирование и компьютерный андеграунд

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

Функционал некоторых продуктов, призванных противостоять вредоносному ПО, фактически сводится к обнаружению вредоносных программ. Избегая обнаружения этими продуктами, вредоносные программы обходят всю обеспечиваемую ими защиту. Поэтому нет ничего странного в том, что для некоторых вредоносных программ, представляющих собой исполняемые файлы для Windows (Win32 PE), используется такая обфускация кода, что их приведение в исходный вид требует около двух минут на компьютере с процессором Core 2 Duo, работающим на частоте 2500 МГц. При этом те же образцы вредоносных программ могут быть обнаружены проактивно с помощью технологий поведенческого анализа двухлетней давности6.

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

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

Что могут сделать организаторы тестов?

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

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

Журнал Virus Bulletin пока не публикует результатов динамических тестов, но планирует использовать информацию из (готовящейся) таблицы распространенности вредоносного ПО при отборе образцов для тестирования. Вначале в результатах тестирования будут отражаться лишь семейства вредоносных программ, но до публикации конкретных названий дело тоже может дойти7.

Тестовая организация AV-Comparatives пока тоже не публикует результаты динамического тестирования, но планирует предавать огласке названия образцов, которые будут использованы в будущих динамических тестах.

Как разъяснено выше, такого подхода следует избегать. Компания AV-Test, которая уже проводит динамические тесты, использует более продуктивный подход. Изданиям запрещается публиковать названия или хэши файлов, использованных при тестировании. При этом AV-Test передает хэши или образцы производителям антивирусных продуктов, участвовавших в тестировании7.

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

Выводы

Внедрение динамических тестов влечет за собой новые проблемы. Теперь результаты тестирования имеют большее, чем когда бы то ни было, значение для авторов вредоносного ПО и для их действий. Компаниям, занимающимся компьютерной безопасностью, в их работе по просвещению общественности не следует забывать о главном — защите пользователей.

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

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



  1. Тест на скорость реакции, проведенный AV-Test в 2005 г.

  2. Результаты теста AV-Test по скорости реакции на появление варианта W32/Sober.
  3. Описание W32/Sober.K на сайте F-Secure.
  4. Информация получена от M. Kennedy.
  5. Информация получена от J. Bosveld, J. Canto.
  6. Точно название вредоносной программы можно запросить у автора настоящей статьи.
  7. Информация получена от A. Clementi, J. Hawes, A. Marx personal communications.

Статья была опубликована в журнале «Virus Bulletin» (декабрь 2008 г.)

Подводные камни динамического тестирования

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Отчеты

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

Азиатские APT-группировки: тактики, техники и процедуры

Делимся с сообществом подходами, которые используют азиатские APT-группировки при взломе инфраструктуры, и подробной информацией о тактиках, техниках и процедурах (TTPs) злоумышленников, основанной на методологии MITRE ATT&CK.

Как поймать «Триангуляцию»

Эксперты «Лаборатории Касперского» смогли получить все этапы «Операции Триангуляция»: эксплойты нулевого дня для iOS, валидаторы, имплант TriangleDB и дополнительные модули.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике