Глава 2. Программы-шпионы

Глава 2. Программы-шпионы

1. Программные закладки

 

Программные закладки

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

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

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

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

Чтобы программная закладка могла произвести какие-либо действия по отношению к другим программам или по отношению к данным, процессор должен приступить к исполнению команд, входящих в состав кода программной закладки. Это возможно только при одновременном соблюдении следующих условий:

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

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

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

Существуют три основные группы деструктивных действий, которые могут осуществляться программными закладками:

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

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

 

2. Модели воздействия программных закладок на компьютеры

Модели воздействия программных закладок на компьютеры

Перехват

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

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

Модель типа "перехват" может быть эффективно использована при атаке на защищенную операционную систему Windows NT. После старта Windows NT на экране компьютерной системы появляется приглашение нажать клавиши <Ctrl>+<Alt>+<Del>. После их нажатия загружается динамическая библиотека MSGINA.DLL, осуществляющая прием вводимого пароля и выполнение процедуры его проверки (аутентификации). Описание всех функций этой библиотеки можно найти в файле Winwlx.h. Также существует простой механизм замены исходной библиотеки MSGINA.DLL на пользовательскую (для этого необходимо просто добавить специальную строку в реестр операционной системы Windows NT и указать местоположение пользовательской библиотеки). В результате злоумышленник может модифицировать процедуру контроля за доступом к компьютерной системе, работающей под управлением Windows NT.

Искажение

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

Можно выделить статическое и динамическое искажение. Статическое искажение происходит всего один раз. При этом модифицируются параметры программной среды компьютерной системы, чтобы впоследствии в ней выполнялись нужные злоумышленнику действия. К статическому искажению относится, например, внесение изменений в файл AUTOEXEC.BAT операционной системы Windows 95/98, которые приводят к запуску заданной программы, прежде чем будут запущены все другие, перечисленные в этом файле.

Специалистам российского Федерального агентства правительственной связи и информации (ФАПСИ) удалось выявить при анализе одной из отечественных систем цифровой подписи интересное статистическое искажение Злоумышленник (сотрудник отдела информатизации финансовой организации, в которой была внедрена данная система) исправил в исполняемом ЕХЕ-модуле программы проверки правильности цифровой подписи символьную строку "ПОДПИСЬ НЕКОРРЕКТНА" на символьную строку "ПОДПИСЬ КОРРЕКТНА". В результате вообще перестали фиксироваться документы с неверными цифровыми подписями, и, следовательно, в электронные документы стало можно вносить произвольные изменения уже после их подписания электронной цифровой подписью.

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

Практика применения цифровой подписи в системах автоматизированного документооборота показала, что именно программная реализация цифровой подписи особенно подвержена влиянию программных закладок типа "динамическое искажение", которые позволяют осуществлять проводки фальшивых финансовых документов и вмешиваться в процесс разрешения споров по фактам неправомерного применения цифровой подписи. Например, в одной из программных реализаций широко известной криптосистемы PGP электронный документ, под которым требовалось поставить цифровую подпись, считывался блоками по 512 байт, причем процесс считывания считался завершенным, если в прочитанном блоке данные занимали меньше 512 байт. Работа одной программной закладки, выявленной специалистами ФАПСИ, основывалась на навязывании длины файла. Эта закладка позволяла считывать только первые 512 байт документа, и в результате цифровая подпись определялась на основе только этих 512 байт. Такая же схема действовала и при проверке поставленной под документом цифровой подписи. Следовательно, оставшаяся часть этого документа могла быть произвольным образом искажена, и цифровая подпись под ним продолжала оставаться "корректной".

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

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

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

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

При инициировании динамической ошибки для некоторой операции генерируется ложная ошибка из числа тех ошибок, которые могут возникать при выполнении данной операции. Например, для блокирования приема или передачи информации в компьютерной системе может постоянно инициироваться ошибочная ситуация "МОДЕМ ЗАНЯТ". Или при прочтении первого блока информации длиной 512 байт может устанавливаться соответствующий флажок для того, чтобы не допустить прочтения второго и последующих блоков и в итоге подделать цифровую подпись под документом.

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

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

Уборка мусора

Как известно, при хранении компьютерных данных на внешних носителях прямого доступа выделяется несколько уровней иерархии: сектора, кластеры и файлы. Сектора являются единицами хранения информации на аппаратном уровне. Кластеры состоят из одного или нескольких подряд идущих секторов. Файл — это множество кластеров, связанных по определенному закону.

Работа с конфиденциальными электронными документами обычно сводится к последовательности следующих манипуляций с файлами:

  • создание;
  • хранение;
  • коррекция;
  • уничтожение.

Для защиты конфиденциальной информации обычно используется шифрование. Основная угроза исходит отнюдь не от использования нестойких алгоритмов шифрования и "плохих" криптографических ключей (как это может показаться на первый взгляд), а от обыкновенных текстовых редакторов и баз данных, применяемых для создания и коррекции конфиденциальных документов!

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

Важно помнить и о том, что при записи отредактированной информации меньшего объема в тот же файл, где хранилась исходная информация до начала сеанса ее редактирования, образуются так называемые "хвостовые" кластеры, в которых эта исходная информация полностью сохраняется. И тогда "хвостовые" кластеры не только не подвергаются воздействию программ шифрования, но и остаются незатронутыми даже средствами гарантированного стирания информации. Конечно, рано или поздно информация из "хвостовых" кластеров затирается данными из других файлов, однако по оценкам специалистов ФАПСИ из "хвостовых" кластеров через сутки можно извлечь до 85%, а через десять суток — до 25—40% исходной информации.

Пользователям необходимо иметь в виду и то, что команда удаления файла (DEL) операционной системы DOS2 не изменяет содержания файла, и оно может быть в любой момент восстановлено, если поверх него еще не был записан другой файл. Распространенные средства гарантированного стирания файлов предварительно записывают на его место константы или случайные числа и только после этого удаляют файл стандартными средствами DOS. Однако даже такие мощные средства оказываются бессильными против программных закладок, которые нацелены на то, чтобы увеличить количество остающихся в виде "мусора" фрагментов конфиденциальной информации. Например, программная закладка может инициировать статическую ошибку, пометив один или несколько кластеров из цепочки, входящей в файл, меткой "СБОЙНЫЙ". В результате при удалении файла средствами операционной системы или средствами гарантированного уничтожения та его часть, которая размещена в сбойных кластерах, останется нетронутой и впоследствии может быть восстановлена с помощью стандартных утилит.

Наблюдение и компрометация

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

3. Защита от программных закладок

Защита от программных закладок

Задача защиты от программных закладок может рассматриваться в трех принципиально различных вариантах:

  • не допустить внедрения программной закладки в компьютерную систему;
  • выявить внедренную программную закладку;
  • удалить внедренную программную закладку.

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

  • навязывать конечные результаты контрольных проверок;
  • влиять на процесс считывания информации и запуск программ, за которыми осуществляется контроль;
  • изменять алгоритмы функционирования средств контроля.

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

Защита от внедрения программных закладок

Универсальным средством защиты от внедрения программных закладок является создание изолированного компьютера. Компьютер называется изолированным, если выполнены следующие условия:

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

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

Интересный метод борьбы с внедрением программных закладок может быть использован в информационной банковской системе, в которой циркулируют исключительно файлы-документы. Чтобы не допустить проникновения программной закладки через каналы связи, в этой системе не допускается прием никакого исполняемого кода. Для распознавания событий типа "ПОЛУЧЕН ИСПОЛНЯЕМЫЙ КОД" и "ПОЛУЧЕН ФАЙЛ-ДОКУМЕНТ" применяется контроль за наличием в файле запрещенных символов: файл признается содержащим исполняемый код, если в нем присутствуют символы, которые никогда не встречаются в файлах-документах.

Выявление внедренной программной закладки

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

  • качественные и визуальные;
  • обнаруживаемые средствами тестирования и диагностики.

К качественным и визуальным признакам относятся ощущения и наблюдения пользователя компьютерной системы, который отмечает определенные отклонения в ее работе (изменяется состав и длины файлов, старые файлы куда-то пропадают, а вместо них появляются новые, программы начинают работать медленнее, или заканчивают свою работу слишком быстро, или вообще перестают запускаться). Несмотря на то что суждение о наличии признаков этого класса кажется слишком субъективным, тем не менее, они часто свидетельствуют о наличии неполадок в компьютерной системе и, в частности, о необходимости проведения дополнительных проверок присутствия программных закладок. Например, пользователи пакета шифрования и цифровой подписи "Криптоцентр" с некоторых пор стали замечать, что цифровая подпись под электронными документами ставится слишком быстро. Исследование, проведенное специалистами ФАПСИ, показало присутствие программной закладки, работа которой основывалась на навязывании длины файла. В другом случае тревогу забили пользователи пакета шифрования и цифровой подписи "Криптон", которые с удивлением отметили, что скорость шифрования по криптографическому алгоритму ГОСТ 28147-89 вдруг возросла более, чем в 30 раз. А в третьем случае программная закладка обнаружила свое присутствие в программе клавиатурного ввода тем, что пораженная ею программа перестала нормально работать.

Признаки, выявляемые с помощью средств тестирования и диагностики, характерны как для программных закладок, так и для компьютерных вирусов. Например, загрузочные закладки успешно обнаруживаются антивирусными программами, которые сигнализируют о наличии подозрительного кода в загрузочном секторе диска. С инициированием статической ошибки на дисках хорошо справляется Disk Doctor, входящий в распространенный комплект утилит Norton Utilities. А средства проверки целостности данных на диске типа Adinf позволяют успешно выявлять изменения, вносимые в файлы программными закладками. Кроме того, эффективен поиск фрагментов кода программных закладок по характерным для них последовательностям нулей и единиц (сигнатурам), а также разрешение выполнении только программ с известными сигнатурами.

Удаление внедренной программной закладки

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

4. Троянские программы

Троянские программы

Троянской программой (троянцем, или троянским конем) называется:

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

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

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

Откуда берутся троянские программы

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

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

К последним можно отнести, например, троянскую программу PC CYBORG, которая завлекала ничего не подозревающих пользователей обещаниями предоставить им новейшую информацию о борьбе с вирусом, вызывающим синдром приобретенного иммунодефицита (СПИД). Проникнув в компьютерную систему, PC CYBORG отсчитывала 90 перезагрузок этой системы, а затем прятала все каталоги на ее жестком диске и шифровала находящиеся там файлы.

Другая троянская программа называлась AOLGOLD. Она рассылалась по электронной почте в виде заархивированного файла. В сопроводительном письме, прилагавшемся к этому файлу, говорилось о том, что AOLGOLD предназначена для повышения качества услуг, которые предоставляет своим пользователям крупнейший американский Internet-провайдер America Online (AOL). Архив состоял из двух файлов, один из которых именовался INSTALL.BAT. Пользователь, запустивший INSTALL.BAT, рисковал стереть все файлы из каталогов С:\, C:\DOS, C:\WINDOWS и C:\WINDOWS\SYSTEM на своем жестком диске.

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

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

Случается и так, что троянцы встраиваются в некоторые утилиты программистами, не имеющими никакого отношения к разработке этих утилит. Па-пример, в дистрибутив сканера SATAN, предназначенный для установки на компьютеры с операционной системой Linux, распространявшийся через Internet, попала троянская программа, которая "обосновалась" в утилите fping. При первом же запуске модифицированной утилиты fping в файл /etc/passwd добавлялась запись для пользователя с именем suser, который в результате мог войти в Linux и тайно получить там полномочия администратора. Однако у автора этой троянской программы были явные пробелы в компьютерном образовании. В частности, он не знал некоторых нюансов хранения паролей в операционных системах семейства UNIX. В результате файл /etc/passwd был соответствующим образом изменен всего лишь на двух компьютерах, на которых был установлен этот испорченный дистрибутив сетевого анализатора SATAN для Linux.

Где обитают и как часто встречаются троянские программы

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

Например, в январе 1999 г. было обнаружено, что популярная утилита TCP Wrapper, предназначенная для администрирования UNIX-систем и бесплатно распространяемая через Internet, на многих ftp-сайтах была заменена внешне похожей на нее программой, которая на самом деле являлась троянцем. После инсталляции он отправлял электронное сообщение по определенным внешним адресам, оповещая своего хозяина об успешном внедрении. Потом он ждал, пока будет установлено удаленное соединение с портом 421 зараженного им компьютера, и предоставлял привилегированные права доступа через этот порт.

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

В настоящее время существует целый ряд троянских программ, которые можно совершенно свободно скачать, подключившись к глобальной компьютерной сети Internet. Наибольшую известность среди них получили троянцы Back Orifice, Net Bus и SubSeven. На Web-узле группы разработчиков Back Orifice, которая именует себя Cult of Dead Cow (Культ мертвой коровы), можно даже найти с десяток постеров, которые предназначены для рекламы ее последней разработки — троянца Back Orifice 2000.

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

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

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

Иногда ущерб, который может нанести троянец, оценить довольно легко. Например, если он предназначен для пересылки по электронной почте содержимого файла /etc/passwd, в котором операционные системы семейства UNIX хранят информацию о пользовательских паролях, достаточно установить "чистую" версию программы взамен той, в которой обосновался этот троянец. Затем пользователи должны будут обновить свои пароли, и на этом борьба с ним успешно завершается.

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

Как распознать троянскую программу

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

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

Может быть, иначе обстоит дело с размером файла? Отнюдь. Нередко текстовый файл, который изначально занимал, скажем, 8 Кбайт дискового пространства, после редактирования и сохранения имеет тот же самый размер. Несколько иначе ведут себя двоичные файлы. Вставить в чужую программу фрагмент собственного кода так, чтобы она не утратила работоспособности и в откомпилированном виде сохранила свой размер, достаточно непросто. Поэтому размер файла является более надежным показателем, чем отметка о времени внесения в него последних изменений.

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

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

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

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

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

Исторически сложилось так, что большинство утилит, позволяющих бороться с проникновением в компьютерную систему троянских программ путем однонаправленного хэширования файлов, было создано для операционных систем семейства UNIX. Одной из наиболее удобных в эксплуатации и эффективных является утилита Trip Wire, которую можно найти в Internet по адресу http://www.tripwiresecurity.com/. Она позволяет производить однонаправленное хэширование файлов при помощи нескольких алгоритмов, в том числе — MD43, MD54 и SHA5. Вычисленные хэш-значения файлов хранятся в специальной базе данных, которая, в принципе, является самым уязвимым звеном \ утилиты TripWire. Поэтому пользователям TripWire предлагается в обязательном порядке принимать дополнительные меры защиты, чтобы исключить доступ к этой базе данных со стороны злоумышленника (например, помещать ее на съемном носителе, предназначенном только для чтения).

 

Рис. 2.5. Окно антивирусной программы Norton Antivirus 2000

Средства борьбы с троянцами в операционных системах семейства Windows (95/98/NT) традиционно являются частью их антивирусного программною обеспечения. Поэтому, чтобы отлавливать Back Orifice, Net Bus, SubSeven и другие подобные им троянские программы, необходимо обзавестись самым современным антивирусом (например, программой Norton Anuvirus 2000 компании Symantec (рис. 2.1), которая позволяет обнаруживать присутствие   в компьютерной системе наиболее распространенных троянцев и избавляться от них). Следует регулярно проверять свой компьютер на присутствие в нем вирусов.

Тем, кто хочет иметь в своем распоряжении утилиту, предназначенную именно для обнаружения троянцев в компьютерах, которые работают под управлением операционных систем семейства Windows, можно посоветовать обратить свои взоры на программу The Cleaner компании MooSoft Development (http://www.homestead.com/moosoft/ cleaner.html) Эта утилита может быть с успехом использована для борьбы с более чем четырьмя десятками разновидностей троянских программ.

Обзор средств борьбы с троянскими программами был бы далеко не полным, если обойти вниманием недавно появившиеся на рынке программные пакеты, предназначенные для комплексной зашиты от угроз, с которыми сталкиваются пользователи настольных компьютеров при работе в Internet. Одним из таких пакетов является eSafe Protect компании Aladdin Knowledge Systems (демонстрационную версию eSafe Protect можно найти в Internet no адресу www.esafe.com).

Функционально eSafe Protect делится на три компонента — антивирус, персональный брандмауэр и модуль защиты компьютерных ресурсов. Антивирус избавляет компьютер от вредоносных программ благодаря применению антивирусного модуля VisuSafe, сертифицированного американским Национальным агентством компьютерной безопасности. Персональный брандмауэр контролирует весь входящий и исходящий трафик по протоколу TCP/IP, наделяя используемые IP-адреса определенными правами (например, ограничивая доступ в Internet в определенные часы или запрещая посещение некоторых Web-узлов).

Для защиты ресурсов компьютера, на котором установлен программный пакет eSafe Protect, создается специальная изолированная область — так называемая песочница. Все автоматически загружаемые из Internet Java-аплсты и компоненты ActiveX сначала помещаются в "песочницу", где они находятся под неусыпным наблюдением eSafe Protect. Если попавшая в "песочницу" программа попытается выполнить какое-либо недозволенное действие, то оно будет немедленно блокировано. В течение заданного интервала времени (от 1 до 30 дней) каждое приложение, загруженное в компьютер из Internet. проходит "карантинную" проверку в "песочнице". Полученная в холе такой проверки информация заносится в особый журнал. По истечении "карантина" приложение будет выполняться вне "песочницы", однако ему будут дозволены только те действия, перечень которых определяется на основе имеющихся журнальных записей.

Таким образом, по сравнению с другими подобными программными пакетами eSafe Protect обеспечивает наиболее развитые и эффективные средства комплексной зашиты от троянских программ. Входящий в состав eSafe Protect антивирус помогает быстро выявлять троянцев и расправляться с ними, используя технологии, которые хорошо зарекомендовали себя при борьбе с вирусами. Персональный брандмауэр блокирует любые попытки связаться извне с проникшими в компьютерную систему троянскими программами. И наконец с помощью "песочницы" своевременно предотвращается внедрение троянцев в компьютеры под видом Java-аплетов и компонентов ActiveX.

5. Клавиатурные шпионы

 

 

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

Клавиатурные шпионы — явление отнюдь не новое в мире компьютеров. В свое время они разрабатывались и для OS/370, и для UNIX, и для DOS. Их поведение в общем случае является довольно традиционным: типовой клавиатурный шпион обманным путем завладевает пользовательскими паролями, а затем переписывает эти пароли туда, откуда их может без особого труда извлечь злоумышленник. Различия между клавиатурными шпионами касаются только способа, который применяется ими для перехвата пользовательских паролей. Соответственно все клавиатурные шпионы делятся на три типа — имитаторы, фильтры и заместители.

Имитаторы

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

Обманутый пользователь, видя, что ему предлагается еще раз внести пароль. приходит к выводу о том, что он допустил какую-то ошибку во время предыдущего ввода пароля, и послушно повторяет всю процедуру входи в систему заново. Некоторые имитаторы для убедительности выдают на экран монитора правдоподобное сообщение о якобы совершенной пользователем ошибке. Например, такое: "НЕВЕРНЫЙ ПАРОЛЬ. ПОПРОБУЙТЕ ЕЩЕ РАЗ".

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

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

login:

password:

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

Системный процесс WinLogon, отвечающий в операционной системе Windows NT за аутентификацию пользователей, имеет свой собственный рабочий стол — совокупность окон, одновременно видимых на экране дисплея. Этот рабочий стол называется столом аутентификации. Никакой другой Процесс, в том числе и имитатор, не имеет доступа к рабочему столу аутентификации и не может расположить на нем свое окно.

После запуска Windows NT на экране компьютера возникает так называемое начальное окно рабочего стола аутентификации, содержащее указание нажать на клавиатуре клавиши <Ctrl>+<Alt>+<Del>. Сообщение о нажатии этих клавиш передается только системному процессу WinLogon, а для остальных процессов, в частности, для всех прикладных программ, их нажатие происходит совершенно незаметно. Далее производится переключение на другое, так называемое регистрационное окно рабочего стола аутентификации. В нем-то как раз и размещается приглашение пользователю ввести свое идентификационное имя и пароль, которые будут восприняты и проверены процессом WinLogon.

Для перехвата пользовательского пароля внедренный в Windows NT имитатор обязательно должен уметь обрабатывать нажатие пользователем клавиш <Ctrl>+<Alt>+<Del>. В противном случае произойдет переключение на регистрационное окно рабочего стола аутентификации, имитатор станет неактивным и не сможет ничего перехватить, поскольку все символы пароля, введенные пользователем, минуют имитатор и станут достоянием исключительно системного процесса WinLogon. Как уже говорилось, процедура регистрации в Windows NT устроена таким образом, что нажатие клавиш <Ctrl>+<Alt>+<Del> проходит бесследно для всех процессов, кроме WinLogon, и поэтому пользовательский пароль поступит именно ему.

Конечно, имитатор может попытаться воспроизвести не начальное окно рабочего стола аутентификации (в котором высвечивается указание пользователю одновременно нажать клавиши <Ctrl>+<Alt>+<Del>), а регистрационное (где содержится приглашение ввести идентификационное имя и пароль пользователя). Однако при отсутствии имитаторов в системе регистрационное окно автоматически заменяется на начальное по прошествии короткого промежутка времени (в зависимости от версии Window NT он может продолжаться от 30 с до 1 мин), если в течение этого промежутка пользователь не предпринимает никаких попыток зарегистрироваться в системе. Таким образом, сам факт слишком долгого присутствия на экране регистрационного окна должен насторожить пользователя Windows NT и заставить его тщательно проверить свою компьютерную систему на предмет наличия в ней программных закладок.

Подводя итог сказанному, можно отметить, что степень защищенности Windows NT от имитаторов достаточно высока. Рассмотрение защитных механизмов, реализованных в этой операционной системе, позволяет сформулировать два необходимых условия, соблюдение которых является обязательным для обеспечения надежной защиты от имитаторов:

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

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

Фильтры

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

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

Известны несколько фильтров, созданных специально для различных версий операционной системы DOS. В 1997 г. отмечено появление фильтров для операционных систем Windows 3.11 и Windows 95.

Надо сказать, что изготовить подобного рода программную закладку не составляет большого труда. В операционных системах Windows 3.11 и Windows 95/98 предусмотрен специальный программный механизм, с помощью Которого в них решается ряд задач, связанных с получением доступа к вводу с клавиатуры, в том числе и проблема поддержки национальных раскладок клавиатур. К примеру, любой клавиатурный русификатор для Windows представляет собой самый что ни на есть настоящий фильтр, поскольку призван перехватывать все данные, вводимые пользователем с клавиатуры компьютера. Нетрудно "доработать" его таким образом, чтобы вместе со своей основной функцией (поддержка национальной раскладки клавиатуры) он заодно выполнял бы и действия по перехвату паролей. Тем более, что но . многих учебных пособиях и руководствах пользователя операционных систем Windows имеются исходные тексты программных русификаторов клавиатуры. "Перепрофилировав" этот русификатор так, чтобы он взял на себя выполнение функций клавиатурного шпиона, его можно встроить перед настоящим русификатором или после него, и в результате вся информация. 4 вводимая пользователем с клавиатуры, пойдет и через клавиатурного шпиона. Таким образом задача создания фильтра становится такой простой, что не требует наличия каких-либо специальных знаний у злоумышленника. Ему остается только незаметно внедрить изготовленную им программную  закладку в операционную систему и умело замаскировать ее присутствие.

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

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

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

Заместители

Заместители полностью или частично подменяют собой программные модули операционной системы, отвечающие за аутентификацию пользователей. Подобного рода клавиатурные шпионы могут быть созданы для работы в среде практически любой многопользовательской операционной системы. Трудоемкость написания заместителя определяется сложностью алгоритмов, реализуемых подсистемой аутентификации, и интерфейсов между ее отдельными модулями. Также при оценке трудоемкости следует принимать во внимание степень документированности этой подсистемы. В целом можно сказать, что задача создания заместителя значительно сложнее задачи написания имитатора или фильтра. Поэтому фактов использования подобного рода программных закладок злоумышленниками пока отмечено не было. Однако в связи с тем, что в настоящее время все большее распространение получает операционная система Windows NT, имеющая мощные средства защиты от имитаторов и фильтров, в самом скором будущем от хакеров следует ожидать более активного использования заместителей в целях получения несанкционированного доступа к компьютерным системам.

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

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

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

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

Как защитить систему от клавиатурных шпионов

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

Однако необходимо еще раз отметить, что единственной операционной системой, в которой построение такой защиты возможно, является Windows NT.

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

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

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

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