Rambler's Top100
Блоги Рустэм ХАЙРЕТДИНОВ

Безопасность заказных приложений. IX

  21 марта 2013 Страница персоны
На заре антивирусной индустрии было принято мериться размерами так называемых "антивирусных баз" - сначала в штуках ("наш антивирус ловит 450 вирусов"), потом в мега- и гигабайтах. Теперь меряются не штуками, а миллионами - "в нашей базе десятки миллионов вирусных сигнатур". Эти базы содержат признаки ("сигнатуры") вирусов, по нахождению которых в тексте исследуемых файлов можно судить о том, что файл заражен. Зная по сигнатуре, каким именно вирусом заражен файл, можно выбрать соответствующий вариант лечения. Конечно, такое краткое описание отбрасывает много деталей, но для целей блога этого достаточно, заранее прошу прощения перед представителями антивирусной индустрии. Выделив образец вируса, вирусные аналитики исследуют все возможные мутации этого вируса, то есть его изменения (отличия от сигнатуры), при которых вредоносность сохраняется, а возможно - даже усиливается ("опасные мутации"). Все вредоносные мутации наравне с оригиналом заносятся в антивирусные базы, то есть один вирус может описываться сотнями, а то и тысячами сигнатур. Но наш блог ведь не об антивирусах, правда? К чему я клоню? Часто сравнивая между собой сканеры исходного кода, продавцы таких систем упирают на то, сколько "сигнатур", признаков некорректного программирования, которые могут стать причиной уязвимостей приложения, содержится в базах сканера. И делается вывод, что чем больше "сигнатур" находится в базе, тем лучше она определяет такие потенциальные уязвимости. Это не совсем так - самое время вспомнить о мутациях. Классов уязвимостей в исходном коде приложений, особенно на высокоуровневых языках, совсем не много, для некоторых языков - несколько десятков. Поэтому не факт, что если в базе сигнатур в одном средстве автоматизированного анализа кода хранится полторы тысячи сигнатур, а в базе другого - пятьдесят, то первое лучше второго. Просто в первом случае мутации делаются аналитиками вендора вручную, и каждая мутация заносится в базу. А у второго инструмента мутации делаются автоматически поисковым движком на основе одной "сигнатуры" КЛАССА уязвимостей. Вообще-то сигнатурой в классическом смысле этот набор поисковых правил (практически самостоятельная поисковая программа, написанная на встроенном языке инструмента) назвать нельзя. Поэтому не удивляйтесь, когда производитель платформы говорит о 50 классах некорректных программных конструкций, а инструмент для контроля невключения этих классов в исходный код приложения содержит более тысячи сигнатур. Это всего лишь означает, что в рамках одного класса в силу особенностей поискового ядра конкретного инструмента приходится использовать десятки и сотни сигнатур. Поэтому чем больше сигнатур в базе, тем проще поисковик в инструменте, обратное тоже верно. Если бы кто-то стал разрабатывать автоматический анализатор исходного кода на базе регулярных выражений, счет сигнатур шел бы на миллионы, а точность все равно бы оставляла желать лучшего. Антивирусные вендоры давно это поняли.

Поделиться:

Оставить свой комментарий:

Для комментирования необходимо авторизоваться!

Комментарии по материалу

Данный материал еще не комментировался.