Защита программного обеспечения

Признаки заражения

  • автоматическое открытие окон с незнакомым содержимым при запуске компьютера;
  • блокировка доступа к официальным сайтам антивирусных компаний, или же к сайтам, оказывающим услуги по «лечению» компьютеров от вредоносных программ;
  • появление новых неизвестных процессов в выводе диспетчера задач (например, окне «Процессы» диспетчера задач Windows);
  • появление в ветках реестра, отвечающих за автозапуск, новых записей;
  • запрет на изменение настроек компьютера в учётной записи администратора;
  • невозможность запустить исполняемый файл (выдаётся сообщение об ошибке);
  • появление всплывающих окон или системных сообщений с непривычным текстом, в том числе содержащих неизвестные веб-адреса и названия;
  • перезапуск компьютера во время старта какой-либо программы;
  • случайное и/или беспорядочное отключение компьютера;
  • случайное аварийное завершение программ;
  • снижение производительности при достаточном объёме памяти, вплоть до «зависаний» вкупе с аномальным перегреванием системного блока;
  • случайное появление BSoD при запуске компьютера;
  • появление неизвестных файлов и каталогов в файловой системе ОС, которые обычно выдают ошибку удаления;
  • шифрование или повреждение пользовательских файлов;
  • неизвестные изменения в содержимом системных файлов при открытии их в текстовом редакторе;
  • быстрая утечка памяти на жёстком диске.

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

Что будем мониторить?

Для различных вредоносных программ характерно довольно много событий, причем их список неуклонно увеличивается по мере развития творческих способностей вирусописателей. Общую картину можно увидеть, к примеру, на рисунке 2. Здесь показаны события (вернее, даже совокупности событий), на которые реагирует «Антивирус Касперского».

Рисунок 2. События, контролируемые проактивной защитой «Антивируса Касперского»)

Конечно, некоторые пункты (а именно «Активность, характерная для P2P-червей», «Активность, характерная для троянских программ» и «Активность, характерная для червей») описаны очень уж обобщенно, и сейчас мы попытаемся всё это дело немного конкретизировать.

Итак, в первую очередь речь идет о сетевой активности: подавляющее большинство нечисти обязательно пытается или что-то передать в сеть (пароли, явки, номера кредиток и т. д.) или, наоборот, что-то получить из сети (загрузить основную часть малвари или обновления, принять какие-нибудь команды управления, да мало ли еще что). Многие вредоносные программы пытаются проинжектить свой код в доверенный процесс (обычно это explorer.exe или svchost.exe), получить привилегии отладчика и изменить системные компоненты (например, пропатчить ядро ОС в своих интересах) — в общем, как можно глубже внедриться в систему.

Думаю, с отслеживаемыми событиями все ясно, поэтому пойдем дальше.

Нейросети на антивирусной службе

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

Комплексный подход к защите от вирусных угроз

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

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

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

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

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

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

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

Устаревшие технические средства защиты

В прошлом применялись и другие методы защиты ПО от нелегального использования.

Ключевая дискета

Метод был распространён во времена MS-DOS, сейчас, в силу устаревания технологии FDD, практически не применяется. Есть четыре основных способа создания некопируемых меток на дискетах:

  • Считывание конкретного сектора дискеты (возможно, пустого или сбойного). Это самый простой способ защиты, и при копировании «дорожка в дорожку» дискета копируется.
  • Запоминание сбойных секторов дискеты. Перед тем, как записать на дискету информацию, её царапают (или прожигают лазером), после этого записывают номера сбойных секторов. Для проверки подлинности дискеты программа пытается записать в эти сектора информацию, затем считать её.
  • Нестандартное форматирование дискеты. Известна программа FDA (Floppy Disk Analyzer), которая могла проводить исследование и копирование таких дискет.
  • «Плавающий бит». Один бит записывается так, что в некоторых случаях он читается как «0», в некоторых как «1». Проводится многократное считывание дискеты; среди результатов считывания должны быть и нули, и единицы.

Запись некопируемых меток на жёсткий диск

Некоторые старые программы для DOS создавали некопируемые метки на жёстком диске. Например, файл длиной 1 байт занимает на диске один кластер (не менее 512 байт), и в оставшиеся 511 байт можно записать некоторую информацию. Эта практика практически не используется, так как велик риск потери данных.

Привязка к некоторому физическому объекту

Лицензия программы может привязываться к некоторому физическому объекту, к примеру:

  • к руководству пользователя. Например, программа выводит: «Введите 5-е слово на 12-й сверху строке 26-й страницы». Более изощрённый способ защиты — в руководстве находится важная информация, без которой невозможно пройти игру, этим известна серия Space Quest. Распространение сканеров и многозадачных операционных систем положило конец этой практике.
  • к некоторому механическому устройству. Игра Another World поставлялась с «кодовым колесом». В системе защиты от копирования Lenslok, применявшейся в играх для ZX Spectrum, надо было, посмотрев на картинку через систему призм, увидеть двухбуквенный код.

Загрузка драйвера

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

Первый способ, который напрашивается сам собой, — это контролировать загрузку драйверов путем перехвата API-функции NtLoadDriver. Он прост и, в общем-то, эффективен, им не брезгуют пользоваться очень многие производители антивирусных программ (к примеру, Comodo, F-Secure, «Лаборатория Касперского», которая включила этот механизм в свои антивирусы с шестой по девятую версию). Помимо этого, можно прибегнуть к уже знакомым нам функциям уведомления. Функция PsSetLoadImageNotifyRoutine регистрирует функцию уведомления, которая вызывается в момент загрузки образа или отображения образа в память. Операционная система вызывает зарегистрированную callback-функцию после отображения в память образа, исполняемого в пользовательском пространстве или в пространстве ядра (как раз то, что нам нужно, ведь драйвера как раз и грузятся в ядро), до начала исполнения образа (рисунок 10).

Рисунок 10. PsSetLoadImageNotifyRoutine в DrWeb контролирует загрузку драйверов

Кроме того, некоторые антивирусы учитывают, что для загрузки драйвера его нужно прописать его в ветке реестра HKLM\System\CurrentControlSet\Services (рисунок 11). Достаточно следить за этой веткой, чтобы в случае появления там подозрительного раздела с параметром Type, значение которого равно 1, 2 или 8 (это SERVICE_KERNEL_DRIVER, SERVICE_FILE_SYSTEM_DRIVER или SERVICE_RECOGNIZER_DRIVER соответственно), своевременно поднять тревогу (рисунок 11).

Рисунок 11. Реакция «Антивируса Касперского» на загрузку драйвера от Kernel Detective 1.2. Может, он и вправду вредоносный?..

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

Про функции уведомления и функции обратного вызова (callback-функции) Windows можно почитать здесь.

Что дальше?

Наш главный редактор уже многозначительно постукивает резиновой дубинкой по столу, намекая на то, что выделенное под статью место заканчивается. А ведь мне так хотелось рассказать про распознавание кейлоггеров, антируткит-технологии, «песочницу», подозрительную сетевую активность и целостность системных файлов, да и аналитический компонент проактивной защиты остался без внимания… Ну что же — жди продолжения, следующий номер не за горами.

Методы предотвращения вторжений (IPS-методы):

HIPS

HIPS — метод контроля активности, основанный на перехвате обращений к ядру ОС и блокировке выполнения потенциально опасных действий ПО, работающего в user-mode, выполняемых без ведома пользователя;

Принцип работы

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

Преимущества систем, построенных на методе HIPS:

  • Низкое потребление системных ресурсов;
  • Не требовательны к аппаратному обеспечению ПК (могут работать на различных платформах);
  • Высокая эффективность противостояния угрозам 0-day;
  • Высокая эффективность противодействия руткитам, работающим в user-mode;

Недостатки систем, построенных на методе HIPS:

  • Низкая эффективность противодействия руткитам, работающим в kernel-mode;
  • Большое количество обращений к пользователю ПК;
  • Пользователь должен обладать знаниями о принципах функционирования ОС;
  • Невозможность противодействия активному заражению ПК;

VIPS

VIPS — метод контроля активности, основанный на мониторинге выполняемых операций ПО, установленном на ПК, и блокировке выполнения потенциально опасных действий ПО, выполняемых без ведома пользователя.

Принцип работы

VIPS-система при помощи технологий аппаратной виртуализации (Intel VT-x, AMD-V) запускает ОС в «виртуальной машине» и осуществляет контроль всех выполняемых операций. В случае попытки выполнения потенциально опасного действия со стороны ПО, VIPS-система блокирует выполнение данного действия и выдает запрос пользователю, который решает разрешить или запретить выполнение данного действия.

Преимущества систем, построенных на методе VIPS:

  • Низкое потребление системных ресурсов;
  • Высокая эффективность противостояния угрозам 0-day;
  • Высокая эффективность противодействия руткитам, работающим и в user-mode, и в kernel-mode;

Недостатки систем, построенных на методе VIPS:

  • Требовательны к аппаратному обеспечению ПК (для работы VIPS-системы необходима аппаратная поддержка процессором технологий аппаратной виртуализации (Intel VT-x или AMD-V);
  • Большое количество обращений к пользователю ПК;
  • Пользователь должен обладать знаниями о принципах функционирования ОС;
  • Невозможность противодействия активному заражению ПК;

Песочница (sandbox)

Песочница (sandbox) — метод, основанный на выполнении потенциально опасного ПО в ограниченной среде выполнения (т.н. «песочнице»), которая допускает контакт потенциально опасного ПО с ОС.

Принцип работы

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

Преимущества систем, построенных на методе песочница (sandbox):

  • Низкое потребление системных ресурсов;
  • Не требовательны к аппаратному обеспечению ПК (могут работать на различных платформах);
  • Малое количество обращений к пользователю ПК;

Недостатки систем, построенных на методе песочница (sandbox):

  • Пользователь должен обладать знаниями о принципах функционирования ОС;
  • Невозможность противодействия активному заражению ПК;
Добавить комментарий

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

Adblock
detector