Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3204

.pdf
Скачиваний:
9
Добавлен:
15.11.2022
Размер:
3.44 Mб
Скачать

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

управление файловыми системами; управление конфигурацией системы; управление процессами.

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

Из множества современных средств скрытного удаленного контроля выделяются два наиболее ярких представителя – Back Orifice и NetBus. Подавляющее большинство других распространенных закладок данного класса представляют собой подражания либо Back Orifice, либо

NetBus.

Программная закладка Back Orifice разработана хакерской группой Cult of the Dead Cow. Закладка функционирует под управлением Windows 95 и 98 (версия Back Orifice 2000 – также под Windows семейства NT начиная с версии 4.0). Закладка инсталлируется в качестве системного сервиса Windows и оставляет в реестре заметные следы. После инсталляции закладка позволяет пользователю-нарушителю осуществлять удаленное управление операционной системой компьютера, на котором она установлена. Поддерживаются функции управления файловой системой, реестром, списком процессов и многое другое. Помимо средств удаленного контроля закладка содержит средства перехвата клавиатурного ввода и сбора хеш-образов ранее введенных паролей для последующего подбора самих паролей.

Программная закладка NetBus разработана КарломФридрихом Найктером (Carl-Fredrik Neikter). В отличие от Back Orifice NetBus предназначен для работы под управлением

111

Windows NT, в остальном эти закладки различаются только деталями технической реализации. NetBus более громоздок (в одной из версий серверная часть, внедряемая в атакуемую операционную систему, занимает 1 114 Кбайт) и поэтому на практике реже применяется нарушителями.

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

уязвимость для антивирусных средств – такие

антивирусы,

как Dr

Web и

«Антивирус Касперского»,

«излечивают» программные закладки наравне с вирусами;

 

 

присутствие

множества

 

практически

бесполезных

для

осуществления

 

НСД

функций

(открыть/закрыть привод CD-ROM, подвигать указателем

мыши и т.п.);

 

 

 

 

 

 

 

 

отсутствие

функций

взаимодействия

с

подсистемой безопасности Windows;

 

 

 

 

чрезмерно большой размер серверной части (до 1 200 Кбайт).

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

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

первоначального получения доступа к атакуемому компьютеру;

внедрения других программных закладок; управления другими программными закладками;

112

выявления
атакованного

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

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

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

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

Большинство современных закладок модели «наблюдатель», предназначенных для применения в операционных системах семейства Windows, функционируют в качестве отдельного процесса. Этот процесс, как правило, не регистрируется в качестве сервиса, а для автозапуска после перезагрузки системы используют ключи реестра

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Cu rrentVersionVRun* и HKEY_CUERRENT_USER\Software\Microsoft\Windows\Current Version\Run*, где под символом «*» подразумевается любое количество (в том числе и ноль) любых символов.

Для связи с нарушителем, осуществляющим удаленный

113

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

программами. Часто номера портов, используемых закладками, выглядят странно и сразу бросаются в глаза при просмотре списка открытых портов (666, 6969, 12345 и т.д.).

Функционирование серверной части программной закладки модели «наблюдатель» в общем случае иллюстрируется схемой, приведенной на рис. 2.1.

Рис. 2.1. Обобщенная схема функционирования программной закладки модели «наблюдатель»

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

114

одним клиентом.

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

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

скопировать на атакованный компьютер модуль расширения, предоставленный клиентом;

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

выключить заданный модуль расширения;

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

передать клиенту список модулей расширения, имеющихся на атакованном компьютере.

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

115

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

HTTP – протокол информационного обмена между вебклиентом и веб-сервером;

SMTP + POP3/IMAP – протоколы отправки и получения электронной почты;

ICQ – протокол информационного обмена между экземплярами одноименной программы моментальной передачи сообщений.

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

2.3.2. Модель «перехват»

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

Stream (S, M(L), Ох) -> 02

преобразуется в пару операций:

Stream (S',M(L), Ох) -> О2;

Stream (S', M(L), О x) -> ON,

где S' – субъект, полученный в результате внедрения программной закладки в субъект S; ОN – объект, используемый для несанкционированного хранения информации.

В роли объекта перехвата х) обычно выступают объекты, связанные со следующими устройствами атакуемой системы:

клавиатура (в первую очередь закладку интересуют вводимые с клавиатуры пароли);

файловые системы;

116

физические и логические устройства, осуществляющие прием сетевого трафика.

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

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

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

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

117

проблему очень быстро.

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

login: user password:

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

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

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

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

StoreFile = fopen (Filename, "а + b"); fseek (StoreFile, 0, SEEK_END);

fputc (NewSymbol, StoreFile); fclose (StoreFile);

118

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

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

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

файлы, содержащие список пользователей;

файлы, описывающие текущую политику безопасности;

файлы, в которых хранится журнал аудита;

файлы, содержащие заранее определенные ключевые слова или фразы.

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

119

нарушителя, среди огромного объема информации, копируемой из оперативной памяти во внешнюю и обратно. Поскольку часто имеет место многократное обращение к одним и тем же данным, вероятна ситуация, когда массив собранных данных будет содержать многочисленные копии одной и той же информации. Так, например, текстовый редактор Microsoft Word при каждом сохранении документа полностью перезаписывает файл документа. Если документ «заинтересовал» программную закладку, то при каждом сохранении файла в массив перехваченной информации добавляется очередная копия одних и тех же данных. Таким образом, перед закладкой встает задача различения похожих, но не вполне совпадающих копий одной и той же информации. Удовлетворительного решения данной задачи пока не известно.

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

перехват информационных потоков, проходящих через сетевое программное обеспечение операционной системы;

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

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

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

120

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]