Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
35
Добавлен:
16.04.2015
Размер:
1.21 Mб
Скачать

объект атаки находятся в одном сегменте. При межсегментной атаке субъект и объект атаки находятся в разных сегментах.

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

6. По уровню эталонной модели ISO/OSI, на котором осуществляется воздействие

физический (класс 6.1)

канальный (класс 6.2)

сетевой (класс 6.3)

транспортный (класс 6.4)

сеансовый (класс 6.5)

представительный (класс 6.6)

прикладной (класс 6.7)

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

131

Рис. 13.

Классификация удаленных атак

2.3.1.2.Формы организации атак

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

Удаленное проникновение в систему: программы, которые получают неавторизованный доступ к другому компьютеру через глобальную (или локальную) сеть

132

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

Удаленное блокирование компьютера: программы, которые через сеть блокируют работу всего удаленного компьютера или отдельной программы на нем

Локальное блокирование компьютера: программы, которые блокируют работу компьютера, на котором они работают

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

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

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

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

2.3.2. БЕЗОПАСНОСТЬ И МОБИЛЬНЫЙ КОД

Оказавшийся в браузере в результате загрузки страницы Web мобильный код может поступить в виде текста, интерпретация которого должна производиться во время выполнения. Основными примерами такого кода являются JavaScript, Jscript, VPScript и Visual Basic for Applications (макросы Word и Excel).

Java и ActiveX отличаются тем, что браузеру передается уже скомпилированный код (из-за чего контроль за ними оказывается существенно затруднен). В случае Java код компилируется в промежуточный, не зависящий от архитектуры формат — в так называемый байт-код — и выполняется виртуальной машиной Java (Java Virtual Machine, JVM). В случае ActiveX код компилируется в двоичный код для 32-разрядных систем Windows и по сути ничем не отличается от любой динамически компонуемой библиотеки (Dynamic Link Library, DLL), поставляемой с ОС изначально.

133

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

2.3.2.1.Java

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

При загрузке страницы со ссылкой на апплет Java браузер Web получает байт-код Java от сервера Web. Этот код передается компоненту Java, известному как контролер или верификатор байт-кода. Контролер проверяет правильность формата байт-кода, возможность переполнения или незаполнения внутренних стеков и т. д. Второй компонент, загрузчик классов, определяет, как и когда апплет добавляет код в среду выполнения Java, чтобы апплеты не подменили важные системные компоненты. (Всякая программа Java состоит из одного или более классов, совокупности информационных объектов и методов манипулирования ими.)

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

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

Чтобы стать действительно полезными, мобильные программы Java должны покинуть свою «песочницу». Сделать это позволяет Java Development Kit (JDK) 1.1, куда

134

включены API для шифрования и поддержка цифровых сертификатов. Апплеты из архива Java (файл *.JAR) могут быть подписаны, в результате конечный пользователь получает уверенность, что они поступили от известного источника и не были изменены. Если пользователи получат код апплета, подписанный кем-то, кому они доверяют, то они могут дать команду браузерам и JVM рассматривать этот код как локальный.

Java 1.2 (позднее переименованный в Java 2) идет еще дальше. Отказываясь от защиты по принципу «все или ничего», он вводит более детализированную модель, в соответствии с которой любой код — локальный; загруженный, но заслуживающий доверия; не пользующийся доверием — получает только те привилегии, которые ему необходимы для выполнения его задачи. Другими словами, «ящик с песком» остается, но он может принимать разные размеры и формы. Например, только определенный код может иметь право доступа к файловой системе, только определенный код может иметь право доступа к сети, только определенный код может иметь право доступа к графическим ресурсам, таким, как окна, и т. д. Таким образом, корпоративная модель защиты в Java 2 позволяет задавать детализированные параметры защиты, с помощью которых автор приложения может заранее определить, к чему и при каких условиях апплет имеет право доступа. Кроме того, она обеспечивает простой способ конфигурации правил защиты (с помощью утилиты Policy Tool), легко расширяемую структуру управления доступом и распространение проверки защиты на все программы Java. После загрузки коду присваивается уровень полномочий в соответствии с действующими правилами защиты. Уровень полномочий определяет уровень доступа к данному ресурсу, в частности право чтения или записи файлов, право подключения к хосту или порту. При отсутствии явным образом заданных прав код не может обращаться к ресурсам, доступ к которым предоставляется в соответствии с параметрами полномочий. Такой контроль доступа может применяться к апплетам Java и другому коду Java, в том числе приложениям, Beans и сервлетам.

2.3.2.2.ActiveX

При обращении ActiveX-совместимого браузера, такого, как Internet Explorer, к странице, содержащей код ActiveX, вначале он загружает код, а затем просматривает его в поисках подписи, создаваемой с помощью технологии Authenticode компании Microsoft. Authenticode позволяет физически вставлять подписи в существующие форматы файлов (*.EXE, *.CAB, файлы классов и т. д.) вместо того, чтобы передавать их

135

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

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

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

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

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

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

Главный недостаток ActiveX (и Java 2) в том, что он возлагает на пользователя принятие решений, касающихся защиты.

2.3.2.3.Общие принципы защиты от мобильного кода

Одной из крайностей является подход «будь что будет». Другая крайность состоит в полном блокировании Java и ActiveX. Иногда это, возможно, оправданно, но для большинства — это выплескивание младенца вместе с водой. Так, Microsoft использует ActiveX для предоставления обновлений и исправлений Windows, в частности, чтобы клиенты могли получить последние заплаты системы защиты.

136

Таким образом, для большинства людей наиболее здравый подход состоит в настройке браузера на отказ всем неподписанным кодам. Кроме того, защиту можно укрепить с помощью независимого программного обеспечения. Первоначально подобные программы предлагались отдельно компаниями, специализирующимися в области защиты мобильного кода, такими, как Aladdin Knowledge Systems, Finjan и Security-7 (в настоящее время входит в состав Computer Associates). Теперь защита от вандалов интегрирована в программные антивирусные пакеты.

Такое программное обеспечение выполняет две функции: во-первых, оно пытается идентифицировать мобильный код при его поступлении из Internet в локальную сеть (а также, возможно, при его отправке из локальной сети в Internet). Эта задача может оказаться сложнее, чем просто поиск определенных тегов, — в особенности если мобильный код поступает через Secure Sockets Layer (SSL) или по другим шифруемым каналам. После идентификации мобильный код проверяется по базе данных на предмет принадлежности к известным образцам вредоносного кода.

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

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

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

137

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

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

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

Подход Sun Microsystems к цифровой подписи апплетов Java предполагает помещение кода Java и всех связанных с ним файлов в один файл — так называемый архив Java (Java Archive, JAR). Затем цифровая подпись применяется ко всему файлу JAR. Sun предоставляет для этой цели утилиту с графическим интерфейсом под названием Jarsinger. Эта утилита позволяет подписывать файлы JAR и проверять подписи и целостность подписанных файлов. При генерации цифровых подписей для файлов JAR она использует информацию о ключах и сертификатах из хранилища ключей. Утилита для управления ключами и сертификатами Keytool позволяет создавать и администрировать эти хранилища файлов, с ее помощью пользователи могут управлять своими парами открытых/личных ключей и соответствующими сертификатами.

138

2.3.3. БРАНДМАУЭРЫ

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

2.3.3.1.Классификация брандмауэров

Работа всех брандмауэров основана на использовании информации разных уровней модели OSI. Модель OSI, разработанная Международной организацией по стандартизации (International Standards Organization - ISO), определяет семь уровней, на которых компьютерные системы взаимодействуют друг с другом, - начиная с уровня физической среды передачи данных и заканчивая уровнем прикладных программ, используемых для коммуникаций. В общем случае, чем выше уровень модели OSI, на котором брандмауэр фильтрует пакеты, тем выше и обеспечиваемый им уровень защиты.

Таблица 21 Брандмауэры и уровни модели OSI

Уровень модели OSI

Протоколы Internet

Категория брандмауэра

Прикладной

Telnet, FTP, DNS, NFS,

Шлюз

прикладного

уровня,

 

PING, SMTP, HTTP

брандмауэр экспертного уровня

Представления данных

 

 

 

 

Сеансовый

TCP

Шлюз сеансового уровня

 

Транспортный

TCP

 

 

 

Сетевой

IP

Брандмауэр с фильтрацией пакетов

Канальный

 

 

 

 

Физический

 

 

 

 

139

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

брандмауэры с фильтрацией пакетов (packet-filtering firewall);

шлюзы сеансового уровня (circuit-level gateway);

шлюзы прикладного уровня (application-level gateway);

брандмауэры экспертного уровня (stateful inspection firewall).

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

1. Брандмауэры с фильтрацией пакетов

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

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

Вы можете задать правила фильтрации пакетов, которые будут "указывать" брандмауэру, какие пакеты должны быть пропущены, а какие отбракованы. Например, можно определить правила таким образом, чтобы брандмауэр отбраковывал пакеты, поступающие от внешних серверов (их обычно называют Internet-хостами), IP-адреса которых указаны в таблице. Можно также задать правило, в соответствии с которым будет разрешено пропускать только входящие сообщения электронной почты, адресованные почтовому серверу, или правило блокировки всех почтовых сообщений, поступающих от внешнего хоста, который когда-то "наводнил" вашу сеть гигабайтами ненужных данных. Кроме того, можно сконфигурировать брандмауэр для фильтрации пакетов на основе номеров портов, задаваемых в заголовках пакетов TCP и UDP (User Datagram Protocol). В этом случае можно будет пропускать отдельные виды пакетов

140

Соседние файлы в папке Тестирование