Автор работы: Пользователь скрыл имя, 04 Октября 2013 в 13:17, курсовая работа
Задача защиты информации, хранимой в компьютерных системах, от несанкционированного доступа (НСД), является весьма актуальной. Для решения этой задачи используется целый комплекс средств, включающий в себя технические, программно-аппаратные средства и административные меры защиты информации.
По мере развития средств защиты компьютерных систем развиваются и средства нападения. Злоумышленники-хакеры изобретают все новые и новые атаки на различные элементы подсистем защиты компьютерных систем. Одной из наиболее опасных является атака защищенной системы посредством программных закладок.
В предлагаемой работе рассматриваются наиболее распространенные разновидности программных закладок, их способы внедрения, взаимодействия с нарушителем и методы защиты от программных закладок.
Введение. 3
1. Программные закладки: определение, опасность, классификация. 5
1.1. Программные закладки – определение 5
1.2. Опасность программных закладок 5
1.3. Классификации программных закладок 6
2. Разновидности программных закладок. 8
2.1. Клавиатурные шпионы_ 8
2.1.1. Имитаторы.. 8
2.1.2. Фильтры.. 10
2.1.3. Заместители. 11
2.2. Трояны_ 13
2.2.1. Back Orifice. 13
2.2.2. NetBus. 16
2.2.3. D.I.R.T. 18
2.2.4. Paparazzi 21
2.2.5. Распознавание троянских программ. 21
2.3. Логические бомбы_ 23
2.4. Мониторы_ 24
2.5. Компьютерные черви_ 24
2.6. Перехватчики паролей_ 24
2.7. Программы-шутки_ 25
3. Программные закладки: модели воздействия на компьютеры, способы внедрения и их взаимодействие с нарушителем.. 27
3.1. Модели воздействия программных закладок на компьютеры_ 27
3.2. Способы внедрения программных закладок и компьютерных вирусов 28
3.3. Сценарии внедрения программных закладок на различных этапах жизненного цикла программного обеспечения 30
3.4. Способы взаимодействия между программной закладкой и нарушителем 31
3.4.1. Определение понятия нарушителя. 31
3.4.2. Интернет. 32
3.4.3. Интранет. 33
3.4.4. Электронная почта. 33
4. Защита от программных закладок. 34
4.1. Защита от внедрения программных закладок 34
4.2. Выявление внедренной программной закладки_ 35
4.3. Удаление внедренной программной закладки_ 36
Заключение. 37
Литература. 38
Заместители полностью или частично подменяют собой
программные модули операционной системы,
отвечающие за аутентификацию пользователей.
Подобного рода клавиатурные шпионы могут
быть созданы для работы в среде практически
любой многопользовательской операционной
системы. Трудоемкость написания заместителя
определяется сложностью алгоритмов,
реализуемых подсистемой аутентификации,
и интерфейсов между ее отдельными модулями.
Также при оценке трудоемкости следует
принимать во внимание степень документированности
этой подсистемы. В целом можно сказать,
что задача создания заместителя значительно
сложнее задачи написания имитатора или
фильтра. Поэтому фактов использования
подобного рода программных закладок
злоумышленниками пока отмечено не было.
Однако в связи с тем, что в настоящее время
все большее распространение получает
операционная система Windows NT,
имеющая мощные средства защиты от имитаторов
и фильтров, в самом скором будущем от
хакеров следует ожидать более активного
использования заместителей в целях получения
несанкционированного доступа к компьютерным
системам.
Поскольку заместители берут на себя выполнение
функций подсистемы аутентификации, перед
тем как приступить к перехвату пользовательских
паролей они должны выполнить следующие
действия:
· подобно
компьютерному вирусу внедриться в один
или несколько системных файлов;
· использовать
интерфейсные связи между программными
модулями подсистемы аутентификации для
встраивания себя в цепочку обработки
введенного пользователем пароля.
Для того чтобы защитить систему от внедрения
заместителя, ее администраторы должны
строго соблюдать адекватную политику
безопасности. И что особенно важно, подсистема
аутентификации должна быть одним из самых
защищенных элементов операционной системы.
Однако, как показывает практика, администраторы,
подобно всем людям, склонны к совершению
ошибок. А, следовательно, соблюдение адекватной
политики безопасности в течение неограниченного
периода времени является невыполнимой
задачей. Кроме того, как только заместитель
попал в компьютерную систему, любые меры
защиты от внедрения программных закладок
перестают быть адекватными, и поэтому
необходимо предусмотреть возможность
использования эффективных средств обнаружения
и удаления внедренных клавиатурных шпионов.
Это значит, что администратор должен
вести самый тщательный контроль целостности
исполняемых системных файлов и интерфейсных
функций, используемых подсистемой аутентификации
для решения своих задач.
Но и эти меры могут оказаться недостаточно
эффективными. Ведь машинный код заместителя
выполняется в контексте операционной
системы, и поэтому заместитель может
предпринимать особые меры, чтобы максимально
затруднить собственное обнаружение.
Например, он может перехватывать системные
вызовы, используемые администратором
для выявления программных закладок, с
целью подмены возвращаемой ими информации.
Или фильтровать сообщения, регистрируемые
подсистемой аудита, чтобы отсеивать те,
которые свидетельствуют о его присутствии
в компьютере.
Троянской программой (троянцем, или троянским конем) называется:
· программа,
которая, являясь частью другой программы
с известными пользователю функциями,
способна втайне от него выполнять некоторые
дополнительные действия с целью причинения
ему определенного ущерба;
· программа
с известными ее пользователю функциями,
в которую были внесены изменения, чтобы,
помимо этих функций, она могла втайне
от него выполнять некоторые другие (разрушительные)
действия.
Таким образом, троянская программа —
это особая разновидность программной
закладки. Она дополнительно наделена
функциями, о существовании которых пользователь
даже не подозревает. Когда троянская
программа выполняет эти функции, компьютерной
системе наносится определенный ущерб.
Однако то, что при одних обстоятельствах
причиняет непоправимый вред, при других
— может оказаться вполне полезным. К
примеру, программу, которая форматирует
жесткий диск, нельзя назвать троянской,
если она как раз и предназначена для его
форматирования (как это делает команда format операционной системы DOS). Но если пользователь, выполняя некоторую
программу, совершенно не ждет, что она
отформатирует его винчестер, — это и
есть самый настоящий троянец.
Короче говоря, троянской можно считать
любую программу, которая втайне от пользователя
выполняет какие-то нежелательные для
него действия. Эти действия могут быть
любыми — от определения регистрационных
номеров программного обеспечения, установленного
на компьютере, до составления списка
каталогов на его жестком диске. А сама
троянская программа может маскироваться
под текстовый редактор, под сетевую утилиту
или любую программу, которую пользователь
пожелает установить на свой компьютер.
Рассмотрим наиболее известные примеры
троянских программ.
Троянский конь Back Orifice (BO) по своей сути
является достаточно мощной утилитой
удаленного администрирования компьютеров
в сети. Back Orifice является системой удаленного
администрирования, позволяющей пользователю
контролировать компьютеры при помощи
обычной консоли или графической оболочки.
В локальной сети или через Internet, BO “предоставляет
пользователю больше возможностей на
удаленном Windows-компьютере, чем имеет сам
пользователь этого компьютера” - сказано
в рекламном объявлении на одной из хакерских
Web-страниц.
Единственная особенность этой программы
заставляет классифицировать ее как вредную
троянскую программу: отсутствие предупреждения
об инсталляции и запуске. При запуске
троянец устанавливает себя в системе
и затем следит за ней, при этом пользователю
не выдается никаких сообщений о действиях
троянца в системе. Более того, ссылка
на троянца отсутствует в списке активных
приложений. В результате "пользователь"
этой троянской программы может и не знать
о ее присутствии в системе, в то время
как его компьютер открыт для удаленного
управления.
Троянец распространяется как пакет из
нескольких программ и документации. Все
программы написаны на C++ и компилированы
Microsoft Visual C++. Все программы имеют формат
Portable Executable и могут выполняться только
в среде Win32.
Основной программой в пакете является
BOSERVE.EXE (затем этот файл может быть обнаружен
под различными именами) - это основная
"серверная" компонента троянца,
которая ждет вызовов от удаленных "клиентов".
Вторым файлом является BOCONFIG.EXE, конфигурирующая
"сервер" и позволяющая "прикрепить"
BOSERVE.EXE к каким-либо другим файлам (как
это делают вирусы). При запуске таких
приложений вирус "выкусывает" их
из зараженного файла и запускает на выполнение
без каких-либо побочных эффектов.
В пакете также присутствуют две "клиентские"
утилиты (консоль и графический интерфейс),
они позволяют "клиенту" управлять
удаленным "сервером". Еще две программы
являются утилитами компрессии/декомпрессии
файлов - они используются для копирования
файлов с/на удаленный "сервер".
Рис. 1. Рабочее окно программы Back Orifice 2000
При запуске троянец инициализирует сокеты
Windows, создает файл WINDLL.DLL в системном каталоге
Windows, определяет адреса нескольких Windiows
API, ищет свою копию в памяти и выгружает
ее из памяти, если таковая обнаружена
(т.е. обновляет свою версию). Затем троянец
копирует себя в системный каталог Windows
и регистрирует в реестре как автоматически
запускаемый процесс:
HKEY_LOCAL_MACHINE\SOFTWARE\
Затем троянец перехватывает один из сокетов
Windows (по умолчанию - сокет 31337) и остается
в памяти Windows как скрытое приложение (т.е.
без активного окна и ссылки в списке приложений).
Основная процедура перехвата сообщений
затем ждет команд от удаленного клиента.
Сокеты команды передаются в зашифрованном
виде. В зависимости от команды троянец
выполняет следующие действия:
· высылает
имена компьютера, пользователя и информацию
о системе: тип процессора, размер памяти,
версия системы, установленные устройства
и т.п.;
· разрешает
удаленный доступ к дискам (share);
· ищет
файл на дисках;
· посылает/принимает
файл, уничтожает, копирует, переименовывает,
исполняет любой файл;
· создает/уничтожает
каталог;
· упаковывает/
· отключает
текущего пользователя от сети;
· завешивает
компьютер;
· высылает
список активных процессов;
· выгружает
указанный процесс;
· подключается
к сетевым ресурсам;
· получает
и отправляет кешированные пароли (которые
использовались пользователем в течение
текущего сеанса), ищет пароль для ScreenSaver
(расшифровывает и отправляет);
· выводит
MessageBox;
· читает/модифицирует
системный реестр;
· открывает/
· поддерживает
протокол HTTP и эмулирует Web-сервер (т.е.
троянцем можно управлять при помощи браузера);
· проигрывает
звуковые файлы;
· перехватывает,
запоминает и затем высылает строки, вводимые
с клавиатуры в момент подсоединения компьютера
к сети;
и т.д.
Троянец также позволяет расширить список
своих функций при помощи подключаемых
ресурсов (plug-in). Они могут быть переданы
на "сервер" и инсталлированы там
как часть троянца и в дальнейшем могут
выполнять практически любые действия
на пораженном компьютере.
NetBus - это вирус из серии backdoor. Вирусы этого типа,
попав на компьютер (та часть, которая
попадает на компьютер жертвы называется сервером)
и заразив его, резервируют под себя порт
и добавляют себя в автозагрузку, если
это указано в их программе. После этих
действий злоумышленник (владеющий клиентом илицентром управления) может
подключиться к этому компьютеру (если
знает его IP-адрес, а в некоторых случаях
требуется и пароль к серверу) и делать
с компьютером, что душе угодно (это ограничивается
лишь фантазией и возможностями вируса).
Таким образом, сервер становится "глазами"
и "руками" на компьютере жертвы.
NetBus более прост в обращении по сравнению
с Back Orifice.
Оригинальный пакет NetBus`а содержит в себе
следующие файлы:
· NetBus.exe -
клиент (центр управления)
· Patch.exe -
сервер. Он написан на Inprise Delphi.
· NetBus.rtf -
описание NetBus`а автором.
Чтобы заразить компьютер, требуется запустить
на компьютере жертвы сервер NetBus`а (Patch.exe).
Запустить его можно, как обычную консольную
программу или как CGI-приложение (из web-браузера).
Сервер можно запускать со следующими
ключами:
· /noadd -
для одноразового использования NetBus`а.
Сервер только загружает себя только в
оперативную память, не копирует себя
в папку с Windows и
не добавляет свой ключ в реестр
· /port:х –
указывает, на какой надо сесть порт (по
умолчанию 12345), где х - номер порта. Этот ключ
появился в версии 1.7.
· /pass:х -
назначает пароль для доступа к серверу,
где х - пароль
· /remove -
удаляет сервер из оперативной памяти
и ключ в реестре для автозагрузки (сам
сервер не удаляется из папки с Windows)
После запуска Patch.exe сервер копирует себя в папку с Windows (NetBus
написан под Windows NT/9x), создает там файл
своей конфигурации Patch.ini и файл KeyHook.dll. Далее сервер добавляет
ключ в реестр для своей автозагрузки
при каждом запускомWindows.
Ключ: [HKEY_CURRENT_USER\
Параметр: Patch
Значение параметра: C:\Windows\Patch.
Стоит заметить, что если имя сервера имело
другое название (например, cool.exe), то соответственно
и файлы в папке с Windows будут
иметь название cool, а значение в ключе
реестра имя параметра изменится тоже
на cool!!! Достойно внимания еще то, что если запустить
сервер без ключей (/port или /pass), то в реестре
создается ключ, соответствующий имени
сервера, (например, HKEY_CURRENT_USER\PATCH\), а если
с ключами то создается файл конфигурации Patch.ini (где
хранится пароль, порт и т.д.).
Далее cервер открывает socket в режиме ожидания
на указанном порту и ждет подключения
клиента. Когда происходит попытка подключиться
к этому порту, то NetBus сообщает, что это
собственно он и выдает свою версию. И
если пароль не назначен, то происходит
соединение. Доступ к серверу разрешается
по 4444 порту.
NetBus использует для связи двух компьютеров
протокол TCP и не шифрует пакеты данных,
как Back Orifice.
Рис. 2. Рабочее окно программы NetBus 1.7.
Опишем вкратце функциональные возможности
программы:
· Host name/IP - задание имени хоста или IP-адреса жертвы.
· Port –
порт, на котором висит сервер.
· Connect!/Cancel - присоединиться/отсоединиться от компьютера
· Scan! -
просканировать диапазон адресов на наличие
на них сервера NetBus.
· About –
раздел «О программе».
· Memo –
раздел «Записная книжка».
· Add IP -
запомнить введенный IP-адрес.
· Del IP -
удалить введенный IP-адрес.
· Server admin - администрирование сервером NetBus`а. Можно
добавить/удалить IP-адреса, с которых можно
подсоединиться к серверу, выгрузить сервер
из оперативной памяти или удалить его.
· Open CD-ROM/Close CD-ROM - выдвинуть/задвинуть каретку CD-ROM’a. Можно
задать интервал выезжания (поставив галочку
возле in interval) и количество выездов (Function
delay).
· Show images - показать изображение (в BMP/JPG-формате).
Требуется ввести его адрес.
· Swap mouse/Restore mouse - поменять/вернуть клавиши мыши местами.
· Start program - запускает программу по указанному
адресу.
· Msg manager - позволяет отсылать на зараженный компьютер
сообщения и присылать ответы на них.
· Screendump - делает снимок экрана и отсылает на
компьютер с клиентом.
· Get info - информация о компьютере жертвы.
· Port redirect - перенаправление на произвольном компьютере
произвольного порта.
· Play sound - проиграть WAV-файл.
· Exit Windows - позволяет отлогинить пользователя,
перезагрузить или выключить компьютер.
· Send text - если в это время находятся активные
поля для ввода текста, то туда вставится
набранный текст.
· Active wnds - список активных окон. Можно удалить
или сделать активными приведенные в списке
окна.
· App redirect - перенаправление ввода-вывода консольного
приложения на заданный порт.
· Mouse pos - установка мыши на координаты заданные
в верхних полях.
· Listen -
в появившемся окне выводятся все нажатия
клавиш и возможно нажатие некоторых функциональных
клавиш.
· Sound system - позволяет изменить звуковые настройки
и прослушать музыку, которая воспроизводится
на компьютере.
· Server setup - позволяет настроить сервер (например,
поставить пароль).
· Control mouse/Stop control - включить/выключить слежку за координатами
мышки на компьютере жертвы.
· Go to URL - открыть назначенный URL в браузере, назначенном
по умолчанию.
· Key manager - назначает воспроизведение звуков при
нажатии клавиш, заблокировать/разблокировать
выбранные клавиши или всю клавиатуру
в целом.
· File manager - управление файловой системой компьютера
с сервером (чтение/запись/удаление файлов).
Система D.I.R.T., согласно официальной
политике компании Codex Data Systems Inc., разработавшей ее, предназначается
для использования исключительно правоохранительными
органами и имеет стоимость, в зависимости
от конфигурации, от 2 до 200 тысяч долларов.
Независимые же эксперты утверждают, что
по функциональности система D.I.R.T. ненамного
превосходит широко известные бесплатные
хакерские программы такие как Back Orifice.
По утверждению разработчиков, D.I.R.T. используется
для борьбы с терроризмом, детской порнографией
и распространением наркотиков. Однако
специалисты видят серьезную опасность
в применении столь мощной системы мониторинга
и удаленного администрирования для промышленного
шпионажа и ведения информационной войны.
Вопреки маркетинговой политике компании
Codex Data Systems, многие называют D.I.R.T. не иначе,
как троянской программой. Антивирусные
компании с самого момента появления D.I.R.T.
в 1998 году находятся в замешательстве
и не знают, как реагировать на данный
факт. Некоторые из них все же пошли на
решительный шаг и включили D.I.R.T. в свои
вирусные базы. Так, например, антивирусные
программы производства "Лаборатории
Касперского" и Trend Micro определяют файл
coredll.dat, являющийся компонентом D.I.R.T., как
троянскую программу под названием Trojan.PSW.Johar,
или просто JOHAR. Кроме того, клиентская
часть D.I.R.T., устанавливаемая на компьютер,
являющийся объектом контроля, имеет по
умолчанию такие же файлы, что и JOHAR - desktop.exe,
desktop.log and desktop.dll.
Принципы работы D.I.R.T.
Система состоит из клиентской и серверной
частей. Основные функции программы - это
перехват всех нажатий клавиш и невидимая
отсылка информации на заданный адрес
электронной почты, который контролируется
командным центром D.I.R.T. При этом отсутствует
необходимость в физическом доступе к
клиентскому компьютеру. Дополнительные
возможности D.I.R.T. включают удаленный
доступ к файлам через Интернет или локальную
сеть, удаленное управление системой (запуск
программ, редактирование реестра и др.),
возможность перехвата информации в режиме
реального времени, удаленный захват экрана
и звука (если к клиентскому компьютеру
подключен микрофон).
Основой клиентской части является "жучок",
встроенный для маскировки в какой-либо
обычный исполнимый файл или документ
Microsoft Office. При запуске или открытии "зараженного"
файла, жучок активизируется и невидимо
устанавливается в системе. В его задачи
входит перехват нажатий клавиш, выполнение
команд, поступающих от серверной части,
отправка зашифрованных файлов отчета
на заданный адрес электронной почты.
Главные компоненты серверной
части
· D.I.R.T. Control Center Configuration - предоставляет удобный доступ к двум
наиболее важным конфигурационным файлам
системы D.I.R.T. - "Import Files", где содержится
перечень файлов с журналами регистрации,
полученными от клиентских компьютеров,
и "D.I.R.T. Generator", где настраиваются
параметры конфигурации для генерирования
новых "жучков". После импортирования
в базу новых клиентов можно просматривать
их журналы регистрации в html формате с
настраиваемыми шаблонами.
· Target Manager - менеджер "целей". Содержит перечень
всех клиентских компьютеров, находящихся
под наблюдением и позволяет добавлять,
удалять, редактировать, активировать/деактивировать
"цели", а также генерировать "жучки"
для новых "целей". Внешний вид окна
менеджера "целей" показан на рисунке
3.
· D.I.R.T. Remote Access - терминал для связи с клиентской частью.
Позволяет записывать файлы на клиентский
компьютер или с него, запускать программы
на клиентском компьютере, давать различные
команды и управлять "жучком", устанавливать/обновлять
дополнительные компоненты и многое другое.
Таким образом, видно, что даже минимальные
возможности D.I.R.T. дают серьезный повод задуматься специалистам
по сетевой безопасности.
Дополнением к D.I.R.T. является технология
с романтическим названием H.O.P.E. (Harnessing
the Omnipotent Power of the Electron - "управление всемогущей
силой электрона"), имеющая отнюдь не
столь романтическое предназначение -
автоматизация процесса генерирования
"жучков" и их массового внедрения
на клиентские компьютеры через сеть Интернет.
В числе вышеупомянутых 140 файлов, добытых
хакерами, самой программы H.O.P.E. не оказалось,
зато была получена презентация в формате
PowerPoint, описывающая возможности и функции
этой технологии.
Рис. 3. Внешний вид окна менеджера "целей"
Программно-аппаратный продукт H.O.P.E. поставляется
тем агентствам, которые обладают сайтовой
лицензией на D.I.R.T. Принцип его работы
состоит в том, что, при посещении сервера
H.O.P.E. пользователем, автоматически генерируется
"жучок" системы D.I.R.T., который снабжается
уникальным кодом для идентификации и
определения местоположения клиента.
Все перемещения "жучка" фиксируются
в журнале регистрации сервера. Таким
образом, сложно предположить масштабы
распространения системы D.I.R.T.
Даже межсетевые экраны не являются помехой
на пути D.I.R.T. Обход защиты достигается
за счет использования технологии AntiSec.
Предназначается AntiSec для поиска всех
известных межсетевых экранов и их незаметной
нейтрализации.
Небольшая программа под говорящим
названием PAPARAZZI, созданная Industar Cybernetics
Corp., призвана осуществлять контроль за
происходящим на офисных компьютерах,
и делает это довольно-таки оригинальным
способом.
Программа состоит из двух независимо
работающих модулей - "агента", который
тайком устанавливается на компьютере
"подопытного" и делает с заданной
регулярностью скриншоты, и "монитора",
доступ к которому имеет администратор.
"Монитор" позволяет просмотреть
накопившиеся данные или изменить настройки
PAPARAZZI - варьировать частоту кадров, удалить
или сортировать их, приостановить наблюдение на любое время.
Рис. 4. Рабочее окно программы Paparazzi. Version 0
Файлы данных тщательно защищены от обнаружения
и просмотра. Для пользования PAPARAZZI нужно
помнить (и сохранять в тайне) пароль и
код доступа. Не зная их, воспользоваться
программой или просмотреть снимки просто
невозможно. При деинсталляции все следы
работы PAPARAZZI полностью уничтожаются.
Большинство программных средств, предназначенных
для защиты от троянских программ,
в той или иной степени использует
так называемое согласование объектов. При этом в качестве
объектов фигурируют файлы и каталоги,
а согласование представляет собой способ
ответить на вопрос, изменились ли файлы
и каталоги с момента последней проверки.
В ходе согласования характеристики объектов
сравниваются с характеристиками, которыми
они обладали раньше. Берется, к примеру,
архивная копия системного файла и ее
атрибуты сравниваются с атрибутами этого
файла, который в настоящий момент находится
на жестком диске. Если атрибуты различаются
и никаких изменений в операционную систему
не вносилось, значит в компьютер, скорее
всего, проник троянец.
Одним из атрибутов любого файла является
отметка о времени его последней модификации:
всякий раз, когда файл открывается, изменяется и сохраняется
на диске, автоматически вносятся соответствующие
поправки. Однако отметка времени не может
служить надежным индикатором наличия
в системе троянца. Дело в том, что ею очень
легко манипулировать. Можно подкрутить
назад системные часы, внести изменения
в файл, затем снова вернуть часы в исходное
состояние, и отметка о времени модификации
файла останется неизменной.
То же самое происходит и с размером файла.
Нередко текстовый файл, который изначально
занимал 8 Кбайт дискового пространства,
после редактирования и сохранения имеет
тот же самый размер. Несколько иначе ведут
себя двоичные файлы. Вставить в чужую
программу фрагмент собственного кода
так, чтобы она не утратила работоспособности
и в откомпилированном виде сохранила
свой размер, достаточно непросто. Поэтому
размер файла является более надежным
показателем, чем отметка о времени внесения
в него последних изменений.
Злоумышленник, решивший запустить в компьютер
троянца, обычно пытается сделать его
частью системного файла. Такие файлы
входят в дистрибутив операционной системы
и их присутствие на любом компьютере,
где эта операционная система установлена,
не вызывает никаких подозрений. Однако
любой системный файл имеет вполне определенную
длину. Если данный атрибут будет каким-либо
образом изменен, это встревожит пользователя.
Зная это, злоумышленник постарается достать
исходный текст соответствующей программы
и внимательно проанализирует его на предмет
присутствия в нем избыточных элементов,
которые могут быть удалены безо всякого
ощутимого ущерба. Тогда вместо найденных
избыточных элементов он вставит в программу
своего троянца и перекомпилирует ее заново.
Если размер полученного двоичного файла
окажется меньше или больше размера исходного,
процедура повторяется. И так до тех пор,
пока не будет получен файл, размер которого
в наибольшей степени близок к оригиналу
(если исходный файл достаточно большой,
этот процесс может растянуться на несколько
дней).
Итак, в борьбе с троянцами положиться
на отметку о времени последней модификации
файла и его размер нельзя, поскольку злоумышленник
может их довольно легко подделать. Более
надежной в этом отношении является так
называемая контрольная суммафайла. Для ее подсчета элементы файла
суммируются, и получившееся в результате
число объявляется его контрольной суммой.
Например, в операционной системе SunOS существует специальная утилита sum, которая
выводит на устройство стандартного выводаSTDOUT контрольную
сумму файлов, перечисленных в строке
аргументов этой утилиты.
Однако и контрольную сумму в общем случае
оказывается не так уж трудно подделать.
Поэтому для проверки целостности файловой
системы компьютера используется особая
разновидность алгоритма вычисления контрольной
суммы, называемая односторонним хэшированием.
Функция хэширования называется односторонней,
если задача отыскания двух аргументов,
для которых ее значения совпадают, является
труднорешаемой. Отсюда следует, что функция
одностороннего хэширования может быть
применена для того, чтобы отслеживать
изменения, вносимые злоумышленником
в файловую систему компьютера, поскольку
попытка злоумышленника изменить какой-либо
файл так, чтобы значение, полученное путем
одностороннего хэширования этого файла,
осталось неизменным, обречена на неудачу.
Исторически сложилось так, что большинство
утилит, позволяющих бороться с проникновением
в компьютерную систему троянских программ
путем однонаправленного хэширования
файлов, было создано для операционных
систем семейства UNIX. Одной из наиболее удобных в эксплуатации
и эффективных является утилита TripWire. Она позволяет производить однонаправленное
хэширование файлов при помощи нескольких
алгоритмов. Вычисленные хэш-значения
файлов хранятся в специальной базе данных,
которая, в принципе, является самым уязвимым
звеном утилиты TripWire. Поэтому пользователям TripWire предлаг
Средства борьбы с троянцами в операционных
системах семейства Windows (95/98/NT)
традиционно являются частью их антивирусного
программного обеспечения.