Как поймать то, чего нет. Часть первая. Термины и определения

в 13:04, , рубрики: вирусы, информационная безопасность

Поводом для написания данной статьи послужила статья «Сказки антивирусного леса». Честно сказать, сначала я хотел просто прокомментировать содержимое, но почитав комментарии решил, что лучше начать с азов, а разбор полетов убеждений оставить на закуску.

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

Из множества источников я выбрал несколько определений:

• Вредоносная программа — программное обеспечение, предназначенное для получения несанкционированного доступа к вычислительным ресурсам самой ЭВМ или к информации, хранимой на ЭВМ, с целью несанкционированного использования ресурсов ЭВМ или причинения вреда (нанесения ущерба) владельцу информации, и/или владельцу ЭВМ, и/или владельцу сети ЭВМ, путем копирования, искажения, удаления или подмены информации (Википедия).
• Вредоносная компьютерная программа — компьютерная программа либо иная компьютерная информация, заведомо предназначенная для несанкционированного уничтожения, блокирования, модификации, копирования компьютерной информации или нейтрализации средств защиты компьютерной информации (Ст. 273 УК).
• Вредоносный код — компьютерная программа, предназначенная для внедрения в автоматизированные системы, ПО, средства вычислительной техники, телекоммуникационное оборудование кредитной организации и ее клиентов — пользователей систем дистанционного банковского обслуживания, приводящего к уничтожению, созданию, копированию, блокированию, модификации и (или) передаче информации (в том числе защищаемой в соответствии с пунктом 2.1 Положения N 382-П), а также к созданию условий для такого уничтожения, создания, копирования, блокирования, модификации и (или) передачи (Письмо Банка России от 24.03.2014 N 49-Т «О рекомендациях по организации применения средств защиты от вредоносного кода при осуществлении банковской деятельности).
• Программное обеспечение, специально созданное для того, чтобы причинять ущерб отдельному компьютеру, серверу, или компьютерной сети, независимо от того, является ли оно вирусом, шпионской программой и т.д. (определение компании Microsoft).
• Программа, предназначенная для осуществления доступа несанкционированного к информации и (или) воздействия на информацию или ресурс системы информационной (ГОСТ Р 50922-2006).
• Обеспечение программное, целенаправленно приводящее к нарушению законных прав абонента и (или) пользователя, в том числе к сбору, обработке или передаче с абонентского терминала информации без согласия абонента и (или) пользователя, либо к ухудшению параметров функционирования абонентского терминала или сети связи (ПП № 575).
• malware, also known as malicious code and malicious software, refers to a program that is inserted into a system, usually covertly, with the intent of compromising the confidentiality, integrity, or availability of the victim.s data, applications, or operating system (OS) or of otherwise annoying or disrupting the victim. (NIST SP 800-83).

Это далеко не все определения, но, пожалуй, выборка достаточно характерная. По сути она показывает, что единого мнения, от чего защищает антивирус — среди теоретиков нет. Более того, нет даже единства насчет слова „вредоносный“ — в ряде переводных документов используется понятие „Защита от злонамеренных кодов“ (например, но не только — ГОСТ Р ИСО/МЭК ТО 13335-4-2007 Информационная технология. Методы и средства обеспечения безопасности, ISO/IEC 27002 Информационные технологии. Свод правил по управлению защитой информации).

А есть ли среди вышеприведенного хоть одно правильное?

Все вышеприведенные (за исключением определения из NIST, но о нем ниже) определения отличаются либо четким перечислением конкретных функций (что исключает соответствующие меры по противодействию), либо нечеткостью понятий, что не позволяет на их основе сформулировать требования к антивирусной защите. Вот, например, небезынтересный разбор определения из УК:

• «Заведомо» Для какого именно субъекта последствия применения программы должны быть «заведомые»: для создателя этой программы; для пользователя этой программы, то есть, для запускающего её лица; для владельца компьютера или устройства, на которой запускается эта программа; для обладателя копируемой, модифицируемой, уничтожаемой информации; для правообладателя соответствующего произведения.
• «Информация» Определение информации дано в законе «Об информации...»: «информация – сведения (сообщения, данные) независимо от формы их представления». Должно ли здесь применяться именно это определение, либо иное – более широкое или более узкое? Любая ли информация имеется в виду или только «внешняя» по отношению к рассматриваемой программе? Охватываются ли временные технологические копии обрабатываемой информации, или имеется в виду лишь информация, доступная для человека?
• «Несанкционированное» Кто именно должен санкционировать указанные действия над информацией, чтобы они не считались несанкционированными?: пользователь программы; владелец компьютера, устройства или носителя информации; обладатель обрабатываемой информации; обладатель исключительных прав на объекты интеллектуальной собственности, представляемые обрабатываемой информацией.

Буквоедство? Отнюдь нет. Например программы удаленного управления могут скрытно устанавливаться и системными администраторами и злоумышленниками (в свое время закрытие входящего трафика, по словам представителей Сбербанка, существенно сократило количество инцидентов связанных с ДБО). Как антивирусная программа может определить, кто устанавливает программу? Теоретически есть поведенческий анализатор, который должен реагировать на попытки установки любых программ и выдавать запросы, которые должен подтверждать пользователь. Но:

• Работа админов на компьютерах сети как правило проходит скрытно для пользователей — уведомления пользователю не должны показываться (частым требованием заказчиков является сокрытие иконки антивируса в трее)
• Пользователи в своей массе не являются специалистами по ИБ и не в курсе, что и почему работает у них на компьютере. Как вы думаете, что нажимают пользователи на всплывающие запросы? И способна ли новая вредоносная программа, пока не распознанная антивирусом сформировать окошко, аналогичное запросу поведенческого анализатора?

Но о недостатках поведенческого анализатора поговорим позже, а пока вернемся к терминологии.

Не менее опасно, когда в определении описываются все действия, которые совершает вредоносная программа. Исходя из таких определений получается, что нужно защищаться только от этих действий. Но злоумышленники постоянно придумывают все новые и новые способы отъема денежных средств, проникновения и т.д. Фиксировать настоящее означает остаться в прошлом. Более того, знаменитое четырехкнижие также опиралось при расчете рисков на описание конкретных типов вредоносных программ и их действий. Но в конце концов — вы лично уверены, что вы отслеживаете возникновение всех новых угроз и можете в режиме реального времени внедрять меры по защите от них (даже не глядя на необходимость выбивания средств и время на проведение тендеров)?

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

Всем бы хорошо определение от NIST, но кроме понятия malware NIST параллельно вводит понятие spyware. Что приводит к легализации такого ПО, как antispyware, антируткит и т.д.

Software that is secretly or surreptitiously installed into an information system to gather information on individuals or organizations without their knowledge; a type of malicious code (NIST Special Publication 800-53 rev.4)

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

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

Естественно, что любое из вышеперечисленных действий может привести к внедрению вредоносной программы — с том числе в связи с подменой источников программ или атакой типа человек посередине — но пока мы об этом не говорим.

Легально (или почти легально) устанавливаемые программы имеют документацию или как минимум лицензию, в которой они перечисляют свои функции — и именно эти функции от них ожидает видеть пользователь или администратор.

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

Таким образом, с точки зрения пользователя или администратора нежелательными программами являются те программы, которые устанавливаются без разрешения либо выполняют действия, не обозначенные в соответствующей документации или лицензии (случаи пасхальных яиц/бонусного функционала рассматривать не будем, но с точки зрения безопасности любой неизвестный функционал — не есть хорошо). Нетрудно заметить, что все вышеприведенные определения являются частным случаем данного в этом абзаце. Соответственно, поскольку все нежелательные программы так или иначе приносят вред (работой с информацией, расходом ресурсов или иначе), то точным термином для них будет определение „вредоносные программы“.

Наиболее близко к верному определению термина „вредоносная программа“ (наряду с определением от NIST) подходит определение из Положение Банка России от 9 июня 2012 года № 382-П (с изменениями согласно Указаний Банка России 3007-У от 05.06.2013, 3361-У от 14.08.2014) «О требованиях к обеспечению защиты информации при осуществлении переводов денежных средств и о порядке осуществления Банком России контроля за соблюдением требований к обеспечению защиты информации при осуществлении денежных переводов»:

— программных кодов, приводящих к нарушению штатного функционирования средства вычислительной техники (далее — вредоносный код).

Определение из 382-П в принципе даже более правильное, чем данное нами, но оно не выполнимо с точки зрения реализации, так как подразумевает анализ кода программ — выявление в нем вредоносного кода.

2.7.4 При наличии технической возможности оператор по переводу денежных средств, банковский платежный агент (субагент), оператор услуг платежной инфраструктуры обеспечивают выполнение:
• предварительной проверки на отсутствие вредоносного кода программного обеспечения, устанавливаемого или изменяемого на средствах вычислительной техники, включая банкоматы и платежные терминалы;
• проверки на отсутствие вредоносного кода средств вычислительной техники, включая банкоматы и платежные терминалы, выполняемой после установки или изменения программного обеспечения.

Силами конечной организации невозможно провести такую проверку (по сути сертификацию на ТУ и НДВ) в силу огромного количества кода, его закрытости и отсутствия необходимого количества специалистов. И действительно (как будет показано) меры, предлагаемые 382-П направлены на защиту от программ в целом, а не от кодов. Выполнение же пункта 2.7.4 де-факто, даже в случае его реализации будет чисто формальным — проверкой антивирусом — что совершенно безразлично в случае вредоносных программ, еще не определяемых средством защиты (о необходимости этого мы также еще поговорим).

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

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

• Активный вирус — вирус, программный код или часть программного кода которого находит¬ся в оперативной или виртуальной памяти и периодически выполняется.
• Известный вирус — вирус, информация о котором содержится в АВС.
• Неизвестный вирус — вирус, информация о котором не содержится в АВС.
• Вирусное воздействие (ВВ) — изменение состояния АС, вызванное как проникновением эле¬ментов программного кода вируса в систему, так и результатом его выполнения (активизации вируса).
• Вирусное заражение (ВЗ) — изменение состояния АС или отдельных ее элементов, вызванное распространением вируса.
• Вирусоподобное воздействие (разрушающее программное воздействие, РПВ) — изменение состояния АС, вызванное выполнением кода специально созданного программного субъекта или совокупности таких субъектов не обладающих свойством репликации.

В качестве затравки для следующей статьи я предлагаю Хабражителям (опираясь на собственный опыт или на стандарты, письма, приказы и тд) ответить в комментариях на три простых детских вопроса:
• Сколько вредоносных программ создается злоумышленниками в среднем в день?
• Какой процент вредоносных программ может пропускать антивирус, чтобы считаться годным средством защиты и почему антивирус может их пропускать?
• Для чего нужен антивирус — какие задачи он выполняет в системе защиты? Ответ „должен ловить вирусы“ не считается.

Подсказка — первый вопрос связан остальными не сильно.

Обещаю, дальше будет много неожиданного.

P.S. Любые дополнения к статье с указанием ссылок на источники приветствуются. Любые мнения, опровергающие положения статьи, приветствуются еще больше, но также с указанием источника знаний (личного опыта, исследования, сравнения, приказа и т.д. — есть в плане написать и об этом).

Автор: teecat

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js