Материал: Система автоматического создания сигнатур исполняемых файлов

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Система автоматического создания сигнатур исполняемых файлов

Введение

антивирус программный энергетический

Мы живем в эпоху новой научно-технической революции. В эпоху великих открытий, но не географических, а открытия тайн нашего удивительного мира. Человек не в состоянии хранить в голове всю информацию касательно исследований, которые он проводит, или другую не менее важную для него информацию. Можно конечно было использовать листок бумаги и ручку, но несомненно в XXI веке гораздо удобней хранить такую информацию на электронно-вычислительной машине (к примеру на персональном компьютере). Ведь если рассудить компьютер стал незаменим помощником в жизни человека. Теперь без него не куда. Без ЭВМ не может обойтись ни коммерческая фирма, ни государственная организация. Однако, в связи с этим обострилось проблема защиты информации.

Одним из самых распространенных способов для несанкционированного доступа к информации являются компьютерные вирусы. Но современные компьютерные вирусы позволяют не только считывать важные данные, а также может препятствовать нормальной работе компьютера, разрушать файловую структуру и наносить ущерб информации хранимой на персональном компьютере. Вирусы, получившие широкое распространение в компьютерной технике, взбудоражили весь мир. Многие пользователи компьютеров весьма обеспокоены тем, что с помощью компьютерных вирусов злоумышленники взламывают сети, грабят банки, крадут интеллектуальную собственность. Все чаще в системах массовой информации появляются заявления об разного рода проделках неких хакеров или IT-хулиганов, о появлении все более совершенных саморазмножающихся программ. Компьютерные вирусы влияют на скорость работы и производительность системы, на выполнение отдельных заданий затрачивается больше времени, чем прежде. Некоторые из вирусов оказывают настолько большой вред, что вся система может «полететь» и перестать работать и в результате будут потеряны данные. Если давать определение компьютерному вирусу, то оно будет выглядеть примерно так: компьютерный вирус - это самокопирующаяся программа, разработанная с целью тиражирования самой себя помимо ведома и против воли пользователей. Распространение вирусов реализуется через присоединение их к другим программам, документам или путём записи в сектор начальной загрузки диска.

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

) Эксперты зондируют интернет в поиске новых вирусов

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

) Добавляют эту сигнатуру в базу данных сигнатур антивируса

) Антивирус ищет в файлах сигнатуры имеющиеся в базе.

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


1. Системный анализ и постановка задачи

.1 Общая информация о работе антивируса


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

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

В работе антивирусов можно выделить три составляющих:

1)       Диагностика.

Антивирус проверяет все доступные для вирусов места на жёстком диске компьютера, и если он обнаруживает вирус, то оповещает об этом пользователя.

)         Лечение.

Найдя вирус, антивирусная программа может (по усмотрению пользователя):

А) Попытаться вылечить заражённый файл.

Б) Поместить его в карантин. То есть, если этот файл ценен для вас и содержит какую-то важную информацию, его можно поместить в папку карантина. В дальнейшем, вы можете попытаться его вылечить «вручную» самостоятельно либо же с помощью специалиста, иногда это помогает.

В) Удалить инфицированный файл. Если лечение файла оказалось невозможным, он либо безнадёжно испорчен вирусом либо он сам является вирусом. Значит такой файл необходимо просто удалить с компьютера.

Г) Вы можете не предпринимать никаких действий. Иногда антивирус выдаёт ложную тревогу и если вы уверены, что просканированный файл не является вирусом, то вы смело можете дать отбой своему антивирусу.

) Профилактика.

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

В данной дипломном проекте будет реализован один из функционалов антивирусной программы - диагностика.

Существует несколько способов диагностики файла на зараженность вирусом. Но из всех методов антивирусной защиты можно выделить две основные группы:

ü  Сигнатурный анализ

ü  эвристический анализ

Сигнатура (signature) - означает «подпись», или же в переносном смысле «характерная черта, нечто идентифицирующее». Сигнатурный анализ заключается в выявлении характерных идентифицирующих черт каждого вируса и поиска вирусов путем сравнения файлов с выявленными чертами.

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

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

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

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

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

При сигнатурном анализе антивирус работает по следующей схеме:

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

При работе антивируса (проверке файлов), антивирус сверяет все сканируемые им файлы по своей базе данных и если обнаруживается подозрительный файл, то он сразу срабатывает и «бъёт» тревогу.

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

Эвристика - значит, «находить». Эвристический анализ основывается на (весьма правдоподобном) предположении, что новые вирусы часто оказываются похожи на какие-либо из уже известных. Поэтому в антивирусных базах находятся сигнатуры для определения не одного, а сразу нескольких вирусов. Следовательно, эвристический метод заключается в поиске файлов, которые не полностью, но очень близко соответствуют сигнатурам известных вирусов.

Преимущества: возможность обнаружить новые вирусы еще до того, как для них будут выделены сигнатуры

Недостатки:

ü  вероятность ошибочно определить наличие в файле вируса, когда на самом деле файл чист - такие события называются ложными срабатываниями;

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

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

Поиск вирусов, выполняющих подозрительные действия.

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

Например:

ü  удаление файла;

ü  запись в файл;

ü  запись в определенные области системного реестра;

ü  открытие порта на прослушивание;

ü  перехват данных вводимых с клавиатуры;

ü  рассылка писем;

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

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

Недостатки:

ü  ложные срабатывания;

ü  невозможность лечения;

ü  невысокая эффективность.

Если говорить об эвристическом методе - антивирус анализирует программу, если он видит какой-либо подозрительный по его мнению участок кода, то он тоже предупреждает об этом, но тут конечно не невозможно дать 100%-ные гарантии, что та или иная подозрительная программа это обязательно вирус, поэтому могут быть и ошибки, но всё-таки очень часто такие подозрительные программы впоследствии действительно оказываются вредоносными.

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

.2 Обоснование необходимости создание системы

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

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

1.3 Постановка задачи на создание системы

Наименование программы

Наименование программы: «Система автоматического создания сигнатур исполняемых файлов»

Назначение и область применения

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

Требования к функциональным характеристикам

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

1) Требования к программе

ü  Добавление/удаление фалов в список зараженных обрабатываемых на выявление сигнатуры.

ü  Выявление сигнатуры вируса из списка зараженных файлов.

ü  Добавление сигнатуры в список сигнатур.

ü  Хранение сигнатур.

ü  Добавление/удаление файлов в список проверяемых

ü  Проверка в файлах, из списка проверяемых на наличие сигнатур.

ü  Предоставление краткой отчетности о проверки.

2) Требования к обеспечению надежного функционирования программы

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

А) организацией бесперебойного питания технических средств;

Б) использованием лицензионного программного обеспечения;

В) регулярным выполнением рекомендаций Министерства труда и социального развития РБ.

3) Отказы из-за некорректных действий пользователей системы

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