ПАЗИ

1. Доступ к данным. Этапы идентификации и аутентификации, реализуемые ОС Windows. Разграничение доступа к устройствам.

Доступ пользователя к информационным ресурсам компьютера осуществляется при успешном выполнении процедуры идентификации и аутентификации.

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

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

Этапы идентификации и аутентификации, реализуемые ОС Windows

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

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

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

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

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

Разграничение доступа к устройствам

Разграничение доступа к устройствам – это задача противодействия внутренним ИТ-угрозам, в частности, для защиты информации от санкционированных пользователей.

В ОС семейства Unix рассматриваемые проблемы не столь критичны, т.к. устройства в них монтируются к файловой системе. ОС Windows проблема состоит в том, что многие устройства предполагают возможность взаимодействия с ними приложения не напрямую, а через драйвер. В этом случае запрос доступа к устройству осуществляется от лица пользователя System. Трудность состоит в определении идентификатора пользователя, который инициировал обращение. Можно «посмотреть», какой пользователь зарегистрирован, и фильтровать запросы доступа применительно к его учетной записи (подобный подход реализуется некоторыми специализированными средствами защиты). Но уже Windows XP возможность входа в многопользовательский режим вынесена в интерфейс (из проводника можно запустить приложение с правами другого пользователя – многопользовательский режим). При этом выявление учетной записи, от которой осуществлен запрос доступа к устройству, становится весьма сложной задачей. Возникает задача корректного разграничения доступа пользователей к устройствам, доступ к которым осуществляется через драйверы от имени пользователя System, которая напрямую не решается современными средствами ОС. Это возможно лишь опосредованно, например, через механизм обеспечения замкнутости программной среды, разрешив/запретив пользователю запуск приложения для работы с устройствами.

 

2. Идентификация и аутентификация субъекта «процесс»  при запросах на доступ. Замкнутая программная среда. Вопросы корректности идентификации пользователя.

Задача идентификации и аутентификации субъекта «процесс» при запросах на доступ

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

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

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

• Критичные процессы. К ним относят две группы процессов: те, которые запускаются в системе с привилегированными правами, например, под учетной записью System, и те, которые наиболее вероятно могут быть подвержены атакам, например, сетевые службы. Атаки на процессы первой группы наиболее критичны, так как связаны с возможностью расширения привилегий, в пределе – получения полного управления системой; атаки на процессы второй группы наиболее вероятны.

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

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

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

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

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

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

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

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

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

Замкнутая программная среда

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

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

Для локализации программной среды необходимо регламентировать права доступа к папкам, из которых пользователям разрешено (запрещено) запускать исполняемые файлы. Целесообразно разрешать выполнение программ только из каталогов \Program Files, куда следует устанавливать приложения, и \Winnt. А чтобы предотвратить модификацию исполняемых файлов, запретить запись в данные каталоги. Очевидное достоинство этого решения в «равноправности» разграничений для всех пользователей — вне зависимости от корректности их идентификации при доступе к ресурсам (в частности, атаки на расширение привилегий становятся невозможными).

Вопросы корректности идентификации объекта доступа

В качестве примера рассмотрим предоставляемые ОС Windows возможности идентификации файлового объекта. В NTFS файловый объект может быть идентифицирован различными способами:

• файлы, задаваемые длинными именами, характеризуются тем, что к ним можно обращаться как по длинному, так и по короткому имени, например к каталогу «\Program files\» можно обратиться по короткому имени «\Progra~1\»;

• файлы, задаваемые русскими буквами, также имеют короткое имя, которое формируется с использованием кодировки Unicode (внешне они могут существенно различаться), например короткое имя для каталога «C:\Documents and Settings\USER1\Главное меню» выглядит как «C:\Docume~1\USER1\5D29~1\». К этим объектам также можно обратиться как по длинному, так и по короткому имени;

• файлы идентифицируется не только именем, но и своим идентификатором (ID) – индекс объекта в таблице MFT, причем некоторые программы обращаются к файловым объектам не по имени, а именно по ID.

Если СЗИ от НСД не перехватывает и не анализирует лишь один подобный способ обращения к файлу, она становится бесполезной.

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

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

 

 

3. Идентификация и аутентификация пользователей. Основные виды аппаратной идентификации. Электронные УВИП. USB-ключи. Смарт-карты.

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

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

УВИП — устройства ввода идентификационных признаков

Основные виды аппаратной идентификации.

В системах защиты от НСД широко используются аппаратные средства идентификации и аутентификации, называемые УВИП. Этот термин соответствует ГОСТ Р 51241-98 «Средства и системы контроля и управления доступом. Классификация. Общие технические требования. Методы испытаний».

На УВИП, выполненных в виде какого–нибудь физического объекта, можно сделать запись о пользователе: его имя, пароль и описываются все полномочия, которые он получает при входе в систему. В частности, может быть записано, сколько раз пользователь может пытаться указать пароль при входе. Таким образом, случайная потеря УВИП или кража не позволяет злоумышленнику получить доступ к компьютеру: если имя пользователя еще можно узнать, то пароль ему неизвестен. Только сознательная передача УВИП кому-то одновременно с разглашением пароля может открыть доступ к компьютеру.

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

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

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

Современные УВИП принято классифицировать по следующим особенностям:

• по способу считывания идентификационных признаков;

• по виду используемых идентификационных признаков.

По способу считывания УВИП подразделяются на контактные, бесконтактные (дистанционные) и комбинированные.

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

По виду используемых идентификационных признаков УВИП могут быть электронными, биометрическими и комбинированными.

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

1. идентификаторов iButton;

2. USB-ключей;

3. смарт-карт (контактных и бесконтактных).

USB-ключи

Устройства ввода идентификационных признаков на базе USB-ключей появились в конце 90-х годов. Они предназначаются для работы непосредственно с USB-портом компьютера и не требуют аппаратного считывающего устройства. Подключение к USB-порту осуществляется непосредственно или с помощью соединительного кабеля. Идентификаторы конструктивно изготавливаются в виде брелоков, которые выпускаются в цветных корпусах, имеют световые индикаторы работы и легко размещаются на связке с ключами. Каждый USB-ключ имеет прошиваемый при изготовлении уникальный 32/64-разрядный серийный номер.

В состав USB-ключей могут входить:

1. процессор — управление и обработка данных;

2. криптографический процессор — реализация алгоритмов ГОСТ 28147-89, DES, 3DES, RSA, DSA, MD5, SHA-1 и других криптографических преобразований;

3. USB-контроллер – обеспечение интерфейса с USB-портом компьютера;

4. RAM — хранение изменяемых данных;

5. многократно программируемая постоянная память EEPROM — хранение ключей шифрования, паролей, сертификатов и других важных данных;

6. ROM — хранение команд и констант.

На российском рынке компьютерной безопасности наибольшей популярностью пользуются следующие

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

• карты с памятью;

• карты с «жёсткой» логикой;

• процессорные карты.

В настоящее время наибольшей функциональностью и степенью защищённости обладают процессорные смарт-карты.

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

Для обмена данными в УВИП на базе контактных смарт-карт необходимо обеспечить непосредственный контакт идентификатора со считывателем.

В УВИП на базе бесконтактных смарт-карт достаточно поднести идентификатор к считывателю на определённое расстояние.

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

 

 

 

 

 

4. Электронные УВИП. Приборы на базе iButton. Смарт-карты.

 

По виду используемых идентификационных признаков УВИП могут быть электронными, биометрическими и комбинированными.

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

1. идентификаторов iButton;

2. USB-ключей;

3. смарт-карт (контактных и бесконтактных).

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

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

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

• карты с памятью;

• карты с «жёсткой» логикой;

• процессорные карты.

В настоящее время наибольшей функциональностью и степенью защищённости обладают процессорные смарт-карты.

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

Для обмена данными в УВИП на базе контактных смарт-карт необходимо обеспечить непосредственный контакт идентификатора со считывателем.

В УВИП на базе бесконтактных смарт-карт достаточно поднести идентификатор к считывателю на определённое расстояние.

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

Идентификаторы iButton представляют собой микросхему (чип), вмонтированную в герметичный корпус из нержавеющей стали. Корпус отдалённо напоминает батарейку для наручных часов и имеет диаметр 17,35 мм при высоте 5,89 мм (корпус F5). Корпус защищает микросхему от различных внешних воздействий и обеспечивает высокую живучесть прибора в условиях агрессивных сред, пыли, влаги, внешних электромагнитных полей, механических ударов и т.п.

В структуре iButton можно выделить следующие основные части — постоянное запоминающее устройство ROM, энергонезависимое (nonvolatile – NV) оперативное запоминающее устройство NV RAM, сверхоперативное запоминающее устройство (scratchpad memory — SM), часы реального времени (для DS 1994), а также элемент питания – встроенную миниатюрную литиевую батарейку. Изделие DS 1990 содержит только ROM.

 

 

 

 

 

 

 

5. Биометрическая идентификация пользователей. Идентификация по манере работы по клавиатуре. Идентификация по голосу. Распознавание пользователей по лицу.

 

Биометрическая идентификация пользователей.

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

Одной из популярных в правительственных учреждениях США является карта COMSPEC–11 фирмы American Computer Security, которая обеспечивает интерфейс с самыми различными биометрическими устройствами типа электронных подписей, идентификаторов кожного узора, а также контроль доступа к каналам больших компьютеров, шифрование архивных и резервных копий данных, защиту от копирования локальных файлов. Эта плата стоит довольно дорого, однако программное обеспечение в комплекте с этой платой — на порядок дороже.

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

Идентификация по манере работать на клавиатуре

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

При идентификации учитываются следующие характеристик клавиатурного почерка (кп):

1. темп набора тестового материала Тт=Т/n (T – время набора, n — число символов);

2. темп набора каждого слова тестового примера, содержащего термины из разных сфер деятельности Tsi=Ti/ki (Ti — время набора i–го слова, ki – число символов в i-м слове);

3. (i=1 to L)Ti)/L, (L — число слов);?Средний промежуток между словами Tn= (T- 

((tj-M)2/(n-1)), (tj — время?4. Степень связности набора (дисперсия) S= м/у набором j-го и (j+1)-го символов текста, М — матожидание);

5. Матожидание временных интервалов между набором соседних символов;

6. Общий рисунок почерка – последовательность значений, представляющая собой разность между 2-мя соседними временными интервалами (~производная по почерку) dxi=ti-ti-1.

Идентификация по голосу

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

Одна из ведущих фирм в этой области – Keyware Technology, которая создала Voice Guardian. Точность идентификации 99%. Идентификация может осуществляться по произношению как ключевой фразы, так и случайного слова. Во втором случае вероятность ошибки составляет 2-5%, т.о. надежность не очень высока.

Распознавание по лицу

В настоящее время бурно развивается, что связано с резким снижением стоимости видеокамер, которые встраиваются даже в экран монитора. Стоимость 150-300$ на 1 узел. Ведущие производители – Miras и Visionics. Visionics выпускает продукт FaceItPC.

Процедура работы состоит из нескольких этапов:

1. заполнение БД снимками зарегистрированных пользователей;

2. обнаружение лица субъекта и захват его видеоизображения;

3. передача изображения в подсисистему распознавания внешности;

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

 

 

6. Идентификация по отпечатку пальцев

Идентификация по отпечатку пальцев

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

2.3.4.1 Метод выявления ключевых точек

Каждый отпечаток пальца состоит из определенного количества борозд и полосок. Полосы – это приподнятые части кожного покрова, борозды – нижние части. Полосы составляют так называемые ключевые точки; края полос – там, где полосы заканчиваются и раздвоения – там, где они разветвляются.

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

Плюсы:

• Используется в приложениях AFIS;

• Широко известный, хорошо исследованный метод;

• Алгоритм подходит для множественного сопоставления.

Минусы:

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

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

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

2.3.4.2 Сопоставление шаблонов

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

2.3.4.3 Точный алгоритм сопоставления шаблонов

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

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

Плюсы:

• Прекрасно работает со всеми известными типами сканеров отпечатков пальцев;

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

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

Минусы:

• Не может использовать базу данных AFIS (однако, может использовать недообработанные изображения);

• Не приспособлен для распознавания (для множества поисков в базе данных).

 

 

7. Технологии аутентификации. Аутентификации по многоразовым паролям. 

 

Технологии аутентификации

Для того, чтобы понять, что такое AAA и, в частности, аутентификация, обратимся к простому примеру: Ваш сотовый телефон. Телефон -это устройство, куда для начала работы Вы вкладываете SIM-карту. Когда Вы включаете телефон, на дисплее появляется надпись: «введите PIN-код». После правильного ввода PIN-кода (как правило, это 4 легко запоминаемые цифры) телефон начинает работать.

Налицо так называемая двухфакторная аутентификация. Вам надо иметь персональный носитель (SIM-карту) и знать личный PIN-код. Они связаны между собой. Причем эта связь закладывается администратором оператора сотовой связи при предпродажной подготовке контрактов с определенным тарифом и самих SIM-карт. Сам телефонный аппарат по аналогии с корпоративными информационными системами играет роль компьютера. Аналогом SIM-карты может являться микропроцессорная смарт-карта или устройство eToken, к которому привязан личный PIN-код. Только в отличие от сотового телефона PIN-код для доступа к информационной системе предприятия содержит, как правило, не менее 5-7 символов различных регистров (не только цифр). Да и алгоритмы аутентификации и шифрования там намного сложнее, чем используемые в сотовой связи A3 (алгоритм аутентификации), А8 (алгоритм генерации криптоключа), А5/2 (алгоритм шифрования оцифрованной речи для обеспечения конфиденциальности переговоров).

Рассмотрим основные методы аутентификации по принципу нарастающей сложности.

 

Аутентификация по многоразовым паролям

Учетные записи пользователей современных операционных систем включают в себя службу аутентификации, которая может хранить простейший идентификатор (login) и пароль (password) пользователя в своей базе данных. При попытке логического входа в сеть пользователь набирает свой пароль, который поступает в службу аутентификации. По итогам сравнения пары login/password с эталонным значением из базы данных учетных записей пользователей пользователь может успешно пройти процедуру простейшей аутентификации и авторизоваться в информационной системе. В зависимости от степени защищенности в рамках эволюционного развития операционных систем Windows компанией Microsoft использовались протоколы LAN Manager (LM), NT LAN Manager (NTLM), NT LAN Manager версии 2 (NTLM v2) и Kerberos. В качестве примера Kerberos, как наиболее распространенный и защищенный на сегодняшний день протокол аутентификации в локальных сетях.

Протокол аутентификации Kerberos

Протокол Kerberos’ был разработан специально для того, чтобы обеспечить надежную аутентификацию пользователей. Данный протокол использует централизованное хранение аутентификационных данных и является основой для построения механизмов Single Sign-On (возможность одноразовой аутентификации в нескольких приложениях). Протокол Kerberos предлагает механизм взаимной аутентификации клиента и сервера перед установлением связи между ними с учетом того, что начальный обмен информацией между клиентом и сервером может происходить в незащищённой среде, а передаваемые пакеты — перехвачены и модифицированы. Протокол использует понятие Ticket (билет, удостоверение). Ticket является зашифрованным пакетом данных, выданным выделенным доверенным центром аутентификации, в терминах протокола Kerberos – KDC (Key Distribution Center, центр распределения ключей). Когда пользователь выполняет первичную аутентификацию, после успешного подтверждения его подлинности KDC выдаёт первичное удостоверение пользователя для доступа к сетевым ресурсам — TGT (Ticket Granting Ticket). В дальнейшем при обращении к отдельным сетевым ресурсам пользователь, предъявляя TGT, получает от KDC удостоверение для доступа к конкретному сетевому ресурсу — Service Ticket.

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

Часть протоколов сетевой аутентификации были разработаны специально для обеспечения удаленного доступа к информационным ресурсам посредством открытых каналов связи (к примеру, телефонные линии, Internet). В качестве примера можно привести протоколы PAP, CHAP, EAP, RADIUS, TACACS и другие. В качестве примера кратко рассмотрим работу протокола RADIUS.

 

 

8. Технологии аутентификации. Аутентификация на основе одноразовых паролей.

 

Для того, чтобы понять, что такое AAA и, в частности, аутентификация, обратимся к простому примеру: Ваш сотовый телефон. Телефон -это устройство, куда для начала работы Вы вкладываете SIM-карту. Когда Вы включаете телефон, на дисплее появляется надпись: «введите PIN-код». После правильного ввода PIN-кода (как правило, это 4 легко запоминаемые цифры) телефон начинает работать.

Налицо так называемая двухфакторная аутентификация. Вам надо иметь персональный носитель (SIM-карту) и знать личный PIN-код. Они связаны между собой. Причем эта связь закладывается администратором оператора сотовой связи при предпродажной подготовке контрактов с определенным тарифом и самих SIM-карт. Сам телефонный аппарат по аналогии с корпоративными информационными системами играет роль компьютера. Аналогом SIM-карты может являться микропроцессорная смарт-карта или устройство eToken, к которому привязан личный PIN-код. Только в отличие от сотового телефона PIN-код для доступа к информационной системе предприятия содержит, как правило, не менее 5-7 символов различных регистров (не только цифр). Да и алгоритмы аутентификации и шифрования там намного сложнее, чем используемые в сотовой связи A3 (алгоритм аутентификации), А8 (алгоритм генерации криптоключа), А5/2 (алгоритм шифрования оцифрованной речи для обеспечения конфиденциальности переговоров).

Рассмотрим основные методы аутентификации по принципу нарастающей сложности.

Аутентификация на основе одноразовых паролей

Для организации удаленного доступа пользователей к защищенным информационным ресурсам были разработаны достаточно надежные схемы с применением одноразовых паролей (OTP – One Time Password). Суть концепции состоит в использовании различных паролей при каждом новом запросе на доступ. Пароль действителен только один раз. Динамический механизм задания пароля – одним из лучших способов защиты процесса аутентификации от угроз.

Методы реализации систем одноразовых паролей.

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

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

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

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

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

 

 

9. Технологии аутентификации. Аутентификация по предъявлению цифрового сертификата. Использование смарт-карт и USB-ключей.

 

Для того, чтобы понять, что такое AAA и, в частности, аутентификация, обратимся к простому примеру: Ваш сотовый телефон. Телефон -это устройство, куда для начала работы Вы вкладываете SIM-карту. Когда Вы включаете телефон, на дисплее появляется надпись: «введите PIN-код». После правильного ввода PIN-кода (как правило, это 4 легко запоминаемые цифры) телефон начинает работать.

Налицо так называемая двухфакторная аутентификация. Вам надо иметь персональный носитель (SIM-карту) и знать личный PIN-код. Они связаны между собой. Причем эта связь закладывается администратором оператора сотовой связи при предпродажной подготовке контрактов с определенным тарифом и самих SIM-карт. Сам телефонный аппарат по аналогии с корпоративными информационными системами играет роль компьютера. Аналогом SIM-карты может являться микропроцессорная смарт-карта или устройство eToken, к которому привязан личный PIN-код. Только в отличие от сотового телефона PIN-код для доступа к информационной системе предприятия содержит, как правило, не менее 5-7 символов различных регистров (не только цифр). Да и алгоритмы аутентификации и шифрования там намного сложнее, чем используемые в сотовой связи A3 (алгоритм аутентификации), А8 (алгоритм генерации криптоключа), А5/2 (алгоритм шифрования оцифрованной речи для обеспечения конфиденциальности переговоров).

Рассмотрим основные методы аутентификации по принципу нарастающей сложности.

Аутентификация по предъявлению цифрового сертификата

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

• получение открытого ключа СА (одноразовый процесс),

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

Аутентификация с открытым ключом используется как защищенный механизм аутентификации в таких протоколах как SSL, а также может использоваться как один из методов аутентификации в рамках рассмотренных протоколов Kerberos и RADIUS.

Использование смарт-карт и USB- ключей

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

Генерация ключевой пары вне устройства

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

Генерация ключевой пары с помощью устройства

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

 

 

10. Принципы организации контроллера ЗИ.

 

Реализация средства аппаратной поддержки

Структура СЗИ имеет следующие особенности:

• модульная архитектура со спецканалами;

• программируемость всех узлов (ISP-технология);

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

оборудования по стандартным каналам;

• функциональная достаточность резидентного ПО.

Контроллер «Аккорд» предназначен для работы в IBM PC совмес¬тимых компьютерах, имеющих слоты плат расширения ISA (XT или AT), в составе программно-аппаратных комплексов ЗИ от НД

Плата контроллера выполнена как полностью программируемое устройство (In-System-Programmable — ISP). То есть функциональное назначение контроллера определяется программированием его составных частей:

• интерфейса шины (BusInt)

• постоянного запоминающего устройства типа Flash (ROM)

• микроконтроллера (MCU).

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

Контроллер, при подсоединении специального программатора, работающего под управлением IBM PC совместимого компьютера, переходит в технологический режим, который обеспечивает программирование интерфейса. Возможность перепрограммирования блокируется при установке платы в слот расширения ЭВМ и/или при установке крепежного кронштейна. Если же плата без крепежного кронштейна (при этом интерфейс шины уже должен быть запрограммирован) установлена в слот расширения компьютера, то она работает в специальном режиме, который обеспечивает программирование содержимого ROM и встроенного программного обеспечения (ПО) MCU (Рис. 3.4) при помощи соответствующих утилит. Возможность перепрограммирования блокируется при установке крепежного кронштейна.

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

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

Интерфейс шины контроллера обеспечивает доступ центрального процессора ЭВМ к ROM и MCU.

Основные функции аппаратного контроллера ЗИ

Адресная селекция и контроль

Для работы контроллера используется область верхней памяти ЭВМ размером 16 Кбайт. Ее базовый адрес определяется состоянием джамперов на плате. Выбранная область разделяется на три окна: окно расширения BIOS (wBIOS), окно регистров управления контроллером (wREG) и окно страничного доступа (wFLASH).

Одна из основных функций контроллера — выполнение расширения BIOS (ПО BIOS) во время процедуры POST до загрузки операционной системы. Обычно, для плат расширения этот код записан в ПЗУ, отображаемом на часть верхней памяти ЭВМ (UMB), и ограничен из–за наличия других плат и устройств: плат, контроллеров дисков и т. д. С другой стороны, объем кода определяет как возможности ПО, так и сложность его разработки. Для уменьшения размера области занимаемой контроллером в UMB и увеличена кода ПО BIOS используется следующий механизм.

Окно wBIOS обеспечивает инициализацию ПО BIOS во время процедуры POST , при этом через окно wFLASH предоставляется полный доступ к большому объему данных. Другими словами, небольшая программа (до 8 Кб) из окна wBIOS считывает через окно wFLASH большую программу (до 500 Кб), размещает ее в памяти ЭВМ и передаёт на исполнение. Такой способ позволяет принципиально расширить ПО BIOS, при этом дает возможность разрабатывать его на языке высокого уровня.

В качестве ROM используется микросхема объемом 512 К, разбитая на 64 страницы. Страница 0 доступна через окно wBIOS, остальные – через окно wFLASH. При этом 6–битовый номер страницы предварительно записывается в регистр номера страниц (rgPAGE). Запись в него производится по адресу rgPAGE_WR, а чтение — rgPAGE_RD. При этом значащими являются 6 младших бит байта шины. В зависимости от режима и содержимого rgPAGE определяется тип доступа к окнам.

Программирование ROM.

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

Интерфейс с MCU.

MCU работает под управлением собственного встроенного ПО и выполняет функцию «электронного замка» для доступа пользователей к таким ресурсам как:

10. вычислительные функции микроконтроллера;

11. встроенная энергонезависимая память микроконтроллера (EEPROM);

12. энергонезависимая память большого объема (DataFIash);

13. внешний интерфейс (ТМ или RS232);

14. датчик случайных чисел;

15. возможность физического отключения устройств;

16. расширение интерфейса SPI.

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

3.3.2.4 Программирование MCU

Для программирования MCU контроллер должен работать в специальном режиме, а содержимое rgPAGE должно быть равно 0.

В качестве MCU используется микросхема, которая программируется с помощью командных последовательностей по интерфейсу SPI, при этом сигнал сброс па MCU должен быть установлен активным. Для управления сигналом сброса MCU и обмена по SPI используется только один бит из байта данных шипы, и два адреса в окне wBIOS. Специальная команда по выделенному адресу устанавливает сброс MCU и разрешает обмен по SPI. Интерфейс SPI обеспечивает синхронный последовательный обмен между устройствами — Master и Slave — используя соответствующий протокол, в котором используются 3 сигнала: SO, SCK, SI. Обмен производится байтами старшим битом вперед. Один обмен производится за 8 циклов

Цикл SPI

Устройство Master

Устанавливает сигнал SO – бит данных для устройства Slave.

Формирует передний фронт сигнала SCK.

Формирует задний фронтсигнала SCK и по нему принимает бит данных с линии SI.

Переходит к следующему циклу обмена.

Устройство Slave

Устанавливает сигнал SI — бит данных для устройства Master.

По переднему фронту SCK принимает бит данных с линии SO.

По заднему фронту SCK переходит к следующему циклу обмена.

При этом MCU является устройством Slave. Функцию устройства Master выполняет центральный процессор ЭВМ под управлением соответствующей утилиты. При записи по выделенному адресу в окне wBIOS формируется передний фронт сигнала SCK, а шестой бит байта данных шины определяет значение сигнала SO. Чтение по этому адресу формирует задний фронт SCK, а шестой бит считанного байта определяется значением сигнала SI. Таким образом утилита формирует командные последовательности и производит обмен данными с MCU в режиме программирования.

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

Работа MCU

После выхода из режима программирования, т. с. снятия сигнала сброс, MCU начинает работу, выполняя загруженную в пего программу. Эта программа поддерживает выполнение команд, поступающих от ЦП. Для получения команд и обмена данными используются регистры rgCS и rgDATA для записи/чтения как ЭВМ, так и MCU, a rgPAGE_WR – только для чтения ЭВМ, которые обеспечивают интерфейс между ЭВМ и MCU по типу почтового ящика. При этом запись в rgCS вызывает прерывание MCU и взводит флаг запроса ЭВМ. MCU может передавать данные ЭВМ, записывая байт в rgDATA и в rgCS. При этом запись в rgCS взводит флаг запроса MCU. Чтение регистров со стороны машины позволяет прочитать данные, записанные MCU, а чтение регистров со стороны MCU позволяет прочитать данные, записанные ЭВМ

Флаг запроса MCU снимается при чтении rgCS со стороны ЭВМ, а флаг запроса ЭВМ снимается при любом обращении к rgCS или rgDATA со стороны MCU.

Работа контроллера с дополнительными устройствами

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

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

ТМ интерфейс/ RS-232. Микроконтроллер может поддерживать функцию однопроводного (One Wire) интерфейса, предназначенного для подключения устройств фирмы Dallas, или интерфейс RS-232 для подключения стандартных устройств.

Энергонезависимая память Data Flash. Микроконтроллер, через интерфейс SPI, подключен к энергонезависи¬мой памяти (Serial EEPROM) объёмом до 1Мбит, что позволяет создавать пользовательские архивы.

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

Батарейные устройства (БатУ). Особым вариантом дополнительных устройств является семейство батарейных устройств. Особенности этих устройств заключаются в том, что с их помощью можно организовать аудит тех событий, которые ранее были неконтролируемы. Так, например, БатУ позволяет в своей памяти (DF) фиксировать вскрытие корпуса и изъятие платы контроллера (в том числе для выключенного компьютера). Для этого служат блоки датчиков и блоки уп¬равления. В памяти DF могут фиксироваться также события, связанные с аудитом администратора. Дело в том, что администратор по функциональным обязанностям обычно имеет доступ к журналам СЗИ, что может служить ис-точником злоупотреблений. Если же факт операций с журналом и их тип фик-сируется в DF БатУ, которая вообще закрыта от модификаций, то злоупотреб-ления можно расследовать.

Использование батарейного устройства (БатУ)

Состав БатУ. БатУ представляет собой устройство на основе микроконтроллера (MCU) и имеет в своем составе резервную литиевую батарею, контроллер, осуществляющий переключение питания схемы с основного питания на резервное и наоборот, и вызывающий прерывание MCU при этих событиях. Кроме этого в состав БатУ входит интерфейсная схема, устраняющая дребезг контактов и вызывающая прерывание MCU при изменении состояния входов. Интерфейсная схема контролирует питание «Аккорда» в слоте PCI, режим «Аккорда» в слоте ISA, нахождение «Аккорда» в слоте PCI, режим работы «Аккорда» и состояние внешних цепей, работающих на замыкание-размыкание (КФЛ). Один из них может использоваться для контроля закрытого корпуса. Для хранения информации БатУ имеет энергонезависимую память. Обмен БатУ с контроллером осуществляется по интерфейсу SPI.

Организация энергонезависимой памяти. Память микросхемы объемом 1 Мбайт разбита на 2 части по 512 КБайт. Эта память организована по типу ADD-ONLY, т.е. в эту память можно только добавлять записи, а читать можно произвольный адрес записи.

Первая часть этой памяти представляет память событий объемом 64кб 8–мибайтных записей. Нулевая запись служебная, а по остальным адресам осуществляется последовательная запись текущих состояний входов интерфейсной схемы. Структура записи: резервный байт, резервный байт, минута, час, день месяц, год, состояние входов.

Вторая часть памяти — это фискальная память по типу ADD-ONLY. Она также имеет 64кб 8-ми байтных записей произвольной структуры.

Основные принципы работы. Основной цикл работы – запись нового состояния в память событий. При снижении питания новое состояние записывается в ОЗУ микроконтроллера, а при восстановлении переписывается в память событий. Также БатУ выполняет команды, приходящие по SPI со стороны «Аккорда». Предполагается, что при восстановлении питания осуществляется процедура HANDSHAKE. После удачного выполнения процедуры HANDSHAKE нужная информация из БатУ переписывается в журнал «Аккорда».

При удачном выполнении этой процедуры БатУ выполняет все команды. При неудачном выполнении этой процедуры БатУ выполняет’только процедуру HANDSHAKE (возможно ограничение повторов со стороны «Аккорда»).

Команды БатУ. Команды посылаются по SPI, возврат или код ошибки. БатУ находится в состоянии SLAVE.

Произвольное чтение памяти состояний:1-й байт младшая часть адреса записи (возврат 1). 2-й байт старшая часть адреса записи (возврат 2). Количество записей (возврат 3). После этого прием (кол-во записей X 8) байт.

Произвольное чтение DF: 1-й байт младшая часть адреса записи (возврат 1). 2-й байт старшая часть адреса записи (возврат 2). Количество записей (возврат 3). После этого прием (кол-во записей Х8) байт. Примечание: при произвольном чтении все записи должны находиться на одной странице.

Характеристики СЗИ

Комплексы «Аккорд-1.95» и «Аккорд-nt/2000» предназначены для применения на ПЭВМ типа IBM PC AT в качестве средства защиты информационных ресурсов от несанкционированного доступа. В состав программно-аппаратного комплекса «АККОРД» входит программное обеспечение разграничения доступа и аппаратный модуль «Аккорд-АМДЗ». Программное обеспечение реализует возможности разграничения доступа к аппаратно-программным ресурсам ПЭВМ при работе пользователя в ОС DOS, Windows 9.x(«АККОРД-1.95») и Windows NT, Windows 2000/XP («АККОРД-NT/2000»).

Возможности:

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

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

• ввод временных ограничений работы пользователя на защищаемой ПЭВМ;

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

• реализация контроль доступа пользователей к печати;

• фиксация действия пользователей в расширенном журнале регистрации.

Комплекс защиты от НД к информационным ресурсам вычислительных сетей «АккордСеть-NDS» обеспечивает защиту сетевых ресурсов в гетерогенных вычислительных сетях с операционными системами Netware 4.11, IntraNetware, Netware 4.2, Netware 5, BorderManager 3.5, Windows NT Server 4.0, HP-UX 10.20, HP-UX 10.30, Sun Solaris 2.6, Sun Solaris 7, Linux Red Hat, NCR Unix SVR4 MP-RAS 3.0.

 

 

11. Принципы организации контролера ЗИ.

 

Принципы организации контроллера ЗИ.

Реализация средства аппаратной поддержки

Структура СЗИ имеет следующие особенности:

• модульная архитектура со спецканалами;

• программируемость всех узлов (ISP-технология);

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

оборудования по стандартным каналам;

• функциональная достаточность резидентного ПО.

Контроллер «Аккорд» предназначен для работы в IBM PC совмес¬тимых компьютерах, имеющих слоты плат расширения ISA (XT или AT), в составе программно-аппаратных комплексов ЗИ от НД

Плата контроллера выполнена как полностью программируемое устройство (In-System-Programmable — ISP). То есть функциональное назначение контроллера определяется программированием его составных частей:

• интерфейса шины (BusInt)

• постоянного запоминающего устройства типа Flash (ROM)

• микроконтроллера (MCU).

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

Контроллер, при подсоединении специального программатора, работающего под управлением IBM PC совместимого компьютера, переходит в технологический режим, который обеспечивает программирование интерфейса. Возможность перепрограммирования блокируется при установке платы в слот расширения ЭВМ и/или при установке крепежного кронштейна. Если же плата без крепежного кронштейна (при этом интерфейс шины уже должен быть запрограммирован) установлена в слот расширения компьютера, то она работает в специальном режиме, который обеспечивает программирование содержимого ROM и встроенного программного обеспечения (ПО) MCU (Рис. 3.4) при помощи соответствующих утилит. Возможность перепрограммирования блокируется при установке крепежного кронштейна.

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

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

Интерфейс шины контроллера обеспечивает доступ центрального процессора ЭВМ к ROM и MCU.

Основные функции аппаратного контроллера ЗИ

1 Адресная селекция и контроль

Для работы контроллера используется область верхней памяти ЭВМ размером 16 Кбайт. Ее базовый адрес определяется состоянием джамперов на плате. Выбранная область разделяется на три окна: окно расширения BIOS (wBIOS), окно регистров управления контроллером (wREG) и окно страничного доступа (wFLASH).

Одна из основных функций контроллера — выполнение расширения BIOS (ПО BIOS) во время процедуры POST до загрузки операционной системы. Обычно, для плат расширения этот код записан в ПЗУ, отображаемом на часть верхней памяти ЭВМ (UMB), и ограничен из–за наличия других плат и устройств: плат, контроллеров дисков и т. д. С другой стороны, объем кода определяет как возможности ПО, так и сложность его разработки. Для уменьшения размера области занимаемой контроллером в UMB и увеличена кода ПО BIOS используется следующий механизм.

Окно wBIOS обеспечивает инициализацию ПО BIOS во время процедуры POST , при этом через окно wFLASH предоставляется полный доступ к большому объему данных. Другими словами, небольшая программа (до 8 Кб) из окна wBIOS считывает через окно wFLASH большую программу (до 500 Кб), размещает ее в памяти ЭВМ и передаёт на исполнение. Такой способ позволяет принципиально расширить ПО BIOS, при этом дает возможность разрабатывать его на языке высокого уровня.

В качестве ROM используется микросхема объемом 512 К, разбитая на 64 страницы. Страница 0 доступна через окно wBIOS, остальные – через окно wFLASH. При этом 6–битовый номер страницы предварительно записывается в регистр номера страниц (rgPAGE). Запись в него производится по адресу rgPAGE_WR, а чтение — rgPAGE_RD. При этом значащими являются 6 младших бит байта шины. В зависимости от режима и содержимого rgPAGE определяется тип доступа к окнам.

Специальный режим

rgPAGE wBIOS wFLASH

= 0 denied denied

> 0 R/W R/W

Рабочий режим

rgPAGE wBIOS wFLASH

= 0 read-only denied

> 0 read-only read-only

Содержимое rgPAGE устанавливается в 0 при сбросе компьютера. Таким образом, код расширения BIOS во время процедуры POST в специальном режиме не исполняется, что важно при отладке ПО или если при его записи возникла ошибка.

Программирование ROM.

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

Интерфейс с MCU.

MCU работает под управлением собственного встроенного ПО и выполняет функцию «электронного замка» для доступа пользователей к таким ресурсам как:

10. вычислительные функции микроконтроллера;

11. встроенная энергонезависимая память микроконтроллера (EEPROM);

12. энергонезависимая память большого объема (DataFIash);

13. внешний интерфейс (ТМ или RS232);

14. датчик случайных чисел;

15. возможность физического отключения устройств;

16. расширение интерфейса SPI.

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

2. Программирование MCU

Для программирования MCU контроллер должен работать в специальном режиме, а содержимое rgPAGE должно быть равно 0.

В качестве MCU используется микросхема, которая программируется с помощью командных последовательностей по интерфейсу SPI, при этом сигнал сброс па MCU должен быть установлен активным. Для управления сигналом сброса MCU и обмена по SPI используется только один бит из байта данных шипы, и два адреса в окне wBIOS. Специальная команда по выделенному адресу устанавливает сброс MCU и разрешает обмен по SPI. Интерфейс SPI обеспечивает синхронный последовательный обмен между устройствами — Master и Slave — используя соответствующий протокол, в котором используются 3 сигнала: SO, SCK, SI. Обмен производится байтами старшим битом вперед. Один обмен производится за 8 циклов

Цикл SPI

Устройство Master

Устанавливает сигнал SO – бит данных для устройства Slave.

Формирует передний фронт сигнала SCK.

Формирует задний фронтсигнала SCK и по нему принимает бит данных с линии SI.

Переходит к следующему циклу обмена.

Устройство Slave

Устанавливает сигнал SI — бит данных для устройства Master.

По переднему фронту SCK принимает бит данных с линии SO.

По заднему фронту SCK переходит к следующему циклу обмена.

При этом MCU является устройством Slave. Функцию устройства Master выполняет центральный процессор ЭВМ под управлением соответствующей утилиты. При записи по выделенному адресу в окне wBIOS формируется передний фронт сигнала SCK, а шестой бит байта данных шины определяет значение сигнала SO. Чтение по этому адресу формирует задний фронт SCK, а шестой бит считанного байта определяется значением сигнала SI. Таким образом утилита формирует командные последовательности и производит обмен данными с MCU в режиме программирования.

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

Работа MCU

После выхода из режима программирования, т. с. снятия сигнала сброс, MCU начинает работу, выполняя загруженную в пего программу. Эта программа поддерживает выполнение команд, поступающих от ЦП. Для получения команд и обмена данными используются регистры rgCS и rgDATA для записи/чтения как ЭВМ, так и MCU, a rgPAGE_WR – только для чтения ЭВМ, которые обеспечивают интерфейс между ЭВМ и MCU по типу почтового ящика. При этом запись в rgCS вызывает прерывание MCU и взводит флаг запроса ЭВМ. MCU может передавать данные ЭВМ, записывая байт в rgDATA и в rgCS. При этом запись в rgCS взводит флаг запроса MCU. Чтение регистров со стороны машины позволяет прочитать данные, записанные MCU, а чтение регистров со стороны MCU позволяет прочитать данные, записанные ЭВМ

Флаг запроса MCU снимается при чтении rgCS со стороны ЭВМ, а флаг запроса ЭВМ снимается при любом обращении к rgCS или rgDATA со стороны MCU.

3.3.2.7 Работа контроллера с дополнительными устройствами

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

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

ТМ интерфейс/ RS-232. Микроконтроллер может поддерживать функцию однопроводного (One Wire) интерфейса, предназначенного для подключения устройств фирмы Dallas, или интерфейс RS-232 для подключения стандартных устройств.

Энергонезависимая память Data Flash. Микроконтроллер, через интерфейс SPI, подключен к энергонезависи¬мой памяти (Serial EEPROM) объёмом до 1Мбит, что позволяет создавать пользовательские архивы.

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

Батарейные устройства (БатУ). Особым вариантом дополнительных устройств является семейство батарейных устройств. Особенности этих устройств заключаются в том, что с их помощью можно организовать аудит тех событий, которые ранее были неконтролируемы. Так, например, БатУ позволяет в своей памяти (DF) фиксировать вскрытие корпуса и изъятие платы контроллера (в том числе для выключенного компьютера). Для этого служат блоки датчиков и блоки уп¬равления. В памяти DF могут фиксироваться также события, связанные с аудитом администратора. Дело в том, что администратор по функциональным обязанностям обычно имеет доступ к журналам СЗИ, что может служить ис-точником злоупотреблений. Если же факт операций с журналом и их тип фик-сируется в DF БатУ, которая вообще закрыта от модификаций, то злоупотреб-ления можно расследовать.

Использование батарейного устройства (БатУ)

Состав БатУ. БатУ представляет собой устройство на основе микроконтроллера (MCU) и имеет в своем составе резервную литиевую батарею, контроллер, осуществляющий переключение питания схемы с основного питания на резервное и наоборот, и вызывающий прерывание MCU при этих событиях. Кроме этого в состав БатУ входит интерфейсная схема, устраняющая дребезг контактов и вызывающая прерывание MCU при изменении состояния входов. Интерфейсная схема контролирует питание «Аккорда» в слоте PCI, режим «Аккорда» в слоте ISA, нахождение «Аккорда» в слоте PCI, режим работы «Аккорда» и состояние внешних цепей, работающих на замыкание-размыкание (КФЛ). Один из них может использоваться для контроля закрытого корпуса. Для хранения информации БатУ имеет энергонезависимую память. Обмен БатУ с контроллером осуществляется по интерфейсу SPI.

Организация энергонезависимой памяти. Память микросхемы объемом 1 Мбайт разбита на 2 части по 512 КБайт. Эта память организована по типу ADD-ONLY, т.е. в эту память можно только добавлять записи, а читать можно произвольный адрес записи.

Первая часть этой памяти представляет память событий объемом 64кб 8–мибайтных записей. Нулевая запись служебная, а по остальным адресам осуществляется последовательная запись текущих состояний входов интерфейсной схемы. Структура записи: резервный байт, резервный байт, минута, час, день месяц, год, состояние входов.

Вторая часть памяти — это фискальная память по типу ADD-ONLY. Она также имеет 64кб 8-ми байтных записей произвольной структуры.

Основные принципы работы. Основной цикл работы – запись нового состояния в память событий. При снижении питания новое состояние записывается в ОЗУ микроконтроллера, а при восстановлении переписывается в память событий. Также БатУ выполняет команды, приходящие по SPI со стороны «Аккорда». Предполагается, что при восстановлении питания осуществляется процедура HANDSHAKE. После удачного выполнения процедуры HANDSHAKE нужная информация из БатУ переписывается в журнал «Аккорда».

При удачном выполнении этой процедуры БатУ выполняет все команды. При неудачном выполнении этой процедуры БатУ выполняет’только процедуру HANDSHAKE (возможно ограничение повторов со стороны «Аккорда»).

Команды БатУ. Команды посылаются по SPI, возврат или код ошибки. БатУ находится в состоянии SLAVE.

Произвольное чтение памяти состояний:1-й байт младшая часть адреса записи (возврат 1). 2-й байт старшая часть адреса записи (возврат 2). Количество записей (возврат 3). После этого прием (кол-во записей X 8) байт.

Произвольное чтение DF: 1-й байт младшая часть адреса записи (возврат 1). 2-й байт старшая часть адреса записи (возврат 2). Количество записей (возврат 3). После этого прием (кол-во записей Х8) байт. Примечание: при произвольном чтении все записи должны находиться на одной странице.

Запрос событий. Прием: 1-й байт – старшая часть адреса считанной записи 2-й байт – младшая часть адреса считанной записи 3-й байт – старшая часть адреса последней записи 4-й байт – младшая часть адреса последней записи

 

 

12. Характеристики СЗИ.

 

Характеристики СЗИ

Комплексы «Аккорд-1.95» и «Аккорд-nt/2000» предназначены для применения на ПЭВМ типа IBM PC AT в качестве средства защиты информационных ресурсов от несанкционированного доступа. В состав программно-аппаратного комплекса «АККОРД» входит программное обеспечение разграничения доступа и аппаратный модуль «Аккорд-АМДЗ». Программное обеспечение реализует возможности разграничения доступа к аппаратно-программным ресурсам ПЭВМ при работе пользователя в ОС DOS, Windows 9.x(«АККОРД-1.95») и Windows NT, Windows 2000/XP («АККОРД-NT/2000»).

Возможности:

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

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

• ввод временных ограничений работы пользователя на защищаемой ПЭВМ;

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

• реализация контроль доступа пользователей к печати;

• фиксация действия пользователей в расширенном журнале регистрации.

Комплекс защиты от НД к информационным ресурсам вычислительных сетей «АккордСеть-NDS» обеспечивает защиту сетевых ресурсов в гетерогенных вычислительных сетях с операционными системами Netware 4.11, IntraNetware, Netware 4.2, Netware 5, BorderManager 3.5, Windows NT Server 4.0, HP-UX 10.20, HP-UX 10.30, Sun Solaris 2.6, Sun Solaris 7, Linux Red Hat, NCR Unix SVR4 MP-RAS 3.0.

Главной особенностью комплекса «АккордСеть-NDS» является использование и усиление защитных функций, предоставляемых службами единого каталога фирмы Novell (Novell Directory Services — NDS), развернутыми на Сервере безопасности, который функционирует в среде Novell Netware 5. В качестве устройства аппаратной поддержки используется контроллер «Аккорд-АМДЗ».

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

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

Возможности семейство СЗИ от НД «Secret Net»:

1. идентификация пользователей при помощи специальных аппаратных средств (Touch Memory, Smart Card, Smarty, Proximity и т.п.);

2. аутентификация по паролю длиной до 16 символов;

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

4. аппаратная поддержка защиты от несанкционированной загрузки ОС с гибкого диска и CD-ROM диска;

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

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

7. управление временем работы всех пользователей;

8. возможность объединения пользователей в группы для упрощения управления их доступом к совместно используемым ресурсам;

9. регистрация действий пользователя в системном журнале;

10. поддержка для каждого пользователя индивидуальных файлов Config.sys и Autoexec.bat;

11. защита компьютера от проникновения и размножения ДП;

12. контроль целостности СЗИ, среды выполнения программ и прикладных программ;

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

Особенности сетевого варианта:

14. усиленная идентификация и аутентификация;

15. криптографическая защита данных;

16. централизованный мониторинг состояния безопасности информационной системы и управление защитными механизмами.

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

СЗИ «Страж NT 2.0» предназначена для комплексной защиты информационных ресурсов от несанкционированного доступа при работе в многопользовательских автоматизированных системах. СЗИ Страж NТ 2.0 функционирует в среде операционных систем Windows NT 4.0, Windows 2000, Windows XP и устанавливается как на автономных рабочих местах, так и на рабочих станциях и файл-серверах локальной вычислительной сети.

Основные возможности:

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

• блокировка клавиатуры на время загрузки ОС (за исключением администратора);

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

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

• дискреционный контроль доступа к ресурсам системы;

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

• контроль потоков защищаемой информации;

• автоматическое затирание защищаемых файлов при их удалении;

• контроль целостности информационных массивов и программной среды.

В качестве идентификатора пользователя в данной версии СЗИ Страж NТ 2.0 могут применяться стандартная дискета (3,5″), устройства iButton, USB — ключи eToken R2, eToken Pro, Guardant.

Система «Dallas Lock» предназначена для защиты от несанкционированного доступа к информации, хранимой и обрабатываемой в автономных ПЭВМ под управлением ОС Windows 95/98 (Dallas Lock 4.1) и Windows NT 4.0 (Dallas Lock 5.0). Аппаратная часть системы предлагается как для ISA, так и PCI-слотов. Основные возможности:

• идентификация пользователей до загрузки ОС при помощи идентификаторов Touch Memory;

• аутентификация пользователей по паролю длиной до 16 символов;

• регистрация всех попыток включения ПЭВМ и входа в систему;

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

• регистрация событий операционной системы и действий пользователей;

• контроль целостности защищаемых ресурсов.

 

 

13. Аппаратные системы разграничения доступа. Использование архитектур, отличных от фоннеймановской.

 

Использование архитектур, отличных от фоннеймановской (системно–зависимые средства)

Очень простым, но весьма эффективным средством обеспечения безопасности данных является специальная конструкция компьютера, благодаря которой воровство или искажение файлов становится невозможным. Фирма Earth Computer из Калифорнии делает серию компьютеров EarthStation, приспособленных для работы в локальной сети, но не имеющей шинных разъемов, то есть нерасширяемых. Единственная плата этого компьютера расположена в клавиатуре. Управление клавиатурой, видеоадаптер и сетевой адаптер объединены на этой плате. Даже монитор предлагается покупать отдельно. В компьютере находится специальный вариант BIOS, позволяющий загружать ОС по сети.

Большинство фирм, однако, защищают свое оборудование с помощью одного из вариантов парольной защиты более или менее интегрированной с оборудованием. К их числу относятся, например, фирмы Compaq и Hewlett-Packard. Compaq разработала для своих моделей DeskPro специальную версию BIOS, содержащую элементы защиты от несанкционированного использования компьютера. При загрузке компьютера при включении питания еще во время процедуры POST требуется указать правильный пароль, чтобы машина продолжала работу (такую возможность защиты компьютера предоставляют многие фирмы, более того, часто возможность реализована в BIOS, но не описана в документации, некоторые вирусы могут записывать в поле пароля случайную информацию, и однажды пользователь обнаруживает, что его машина неплохо защищена от него). Сам пароль хранится в области CMOS и при большом желании, безусловно, может быть стерт (фирма Hewlett-Packard предусматривает хранение в специальной области CMOS предыдущей конфигурации компьютера, и по нажатию кнопки эта конфигурация может быть восстановлена в обычной области CMOS), но для затруднения доступа к «внутренностям» компьютера корпус снабжен замком. Кроме этой возможности в BIOS реализованы программы, поддерживающие следующие области разделения доступа: возможность быстрого запирания компьютера, защита серверного состояния компьютера, защита жесткого диска, гибкого диска, последовательного и параллельного портов (и эти возможности защиты реализованы только в BIOS фирмы Compaq). Запуск защитных программ из BIOS регулируется переключателями на плате компьютера.

Альтернативой известным архитектурам может быть использование для безопасного доступа к данным нейросетевых структур. Существует большое количество разработок, в основе функционирования которых положен принцип отсутствия как таковых операций чтения и записи данных в запоминающие устройства. Цикл «чтение – обработка – запись» проходит без участия центрального процессорного устройства, а реализуется в отдельных функциональных блоках. Как следствие объём данных, передаваемых между узлами системы, сокращается и уменьшается вероятность НСД к ним. Функциональные блоки данной системы выполнены на единой платформе и могут работать параллельно, что помимо надёжности хранения данных увеличивает её производительность. Множество пулов выполняют независимую обработку данных без участи центрального процессора. Если необходим обмен данными между пулами, то он производится зашифрованными пакетами. Быстрое шифрование–расшифрование осуществляется в пулах нейросетевыми устройствами. Применимость данного способа ограничивается тем, что нейросетевые технологии слабо распространены в ЭВМ общего назначения. К тому же архитектура описанной нейросетевой системы требует принципиально иного программного обеспечения.

Другим примером использования альтернативной архитектуры являются машинные старые системы Bendix – 20 и Barroughs B 6700. В них реализована так называемая маркированная архитектура, при которой с каждым словом основной памяти связываются биты особого доступа, определяющие права доступа к данному слову на чтение и запись. Эти права проверяются при каждом цикле выборки слова из памяти. Проверка осуществляется аппаратно без участия программных средств,. Для этого типа архитектуры требовались лишь дополнительные биты памяти для каждого слова, что при небольших объёмах памяти первых ЭВМ, на которых она была реализована, не требовало больших затрат.

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

 

 

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

 

Системы перлюстрации запросов на обращения к данным.

Рассмотрим узкоспециализированные аппаратные средства ОНД для IBM–совместимых персональных компьютерах. Массовость этого типа компьютеров делает оправданными усилия по разработке специализированных аппаратных СЗИ.

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

• перлюстрация системных вызовов;

• перлюстрация команд к физическому устройству.

Первая, очевидно, только системно-зависима; вторая — может быть и системно-зависимой, и системно-независимой. Защита первого типа – более гибкая и удобная с точки зрения пользователя, но ее легче обмануть; защита второго типа – менее гибкая и более надежная и универсальная. Защита второго типа, наиболее перспективна для защиты от НД и с точки зрения надежности, и системно–независимые варианты защиты – с точки зрения универсальности и по отношению к системному обеспечению, и к прикладному. Накладные расходы на работу специфической аппаратуры тоже приемлемые. Есть претензии по части гибкости защиты, но при правильном отборе программного обеспечения, при разумных затратах на настройку файловой системы и программного обеспечения это даст хорошие результаты при работе ПК. Сложно использовать такой схемы защиты в развитой конфигурации mini- или mainframe-компьютера при очень подвижной, разветвленной файловой системе, когда динамически монтируются/размонтируются многочисленные файловые системы.

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

Платы перлюстрации действует примерно так же, как действуют программные мониторы, то есть просматривают системные вызовы и пытаются выявить незаконные действия, только перехват этого вызова и дополнительная проверка условий запроса сервиса реализованы аппаратно. Это позволяет избавиться от кое-каких проблем, таких как использование некоторыми вирусами «поплавкового» механизма для более надежной привязки к системному вызову, состоящего в том, что перехватываются еще некоторые вызовы, например, прерывания от системного таймера; когда такие программы работают на компьютере одновременно, могут возникать тупиковые ситуации, зависания и т.п. И за рубежом, и у нас есть средства аппаратной защиты, реализующие перлюстрацию команд физического устройства. Только по рекламе известны: Disk DefenderTM (Director Technologies, Inc.); Guard CardTM (NorthBank Corporation), программно-аппаратный комплекс Intellectual Write Protector (BIS Corporation).

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

Поскольку плата осуществляет перлюстрацию физических команд, выдаваемых даже не на контроллер, а на физическое устройство, защита работает независимо от программного обеспечения и ОС, независимо от усилий, предпринимаемых злоумышленниками со стороны компьютера. Доступ к данным может осуществляться с использованием BIOS или даже непосредственно обращением к контроллеру диска, работая с портами, – защита с легкостью блокирует все эти действия. Эта защита столь же надежна, как и применение только считываемых носителей, например, CD-ROM, но более удобна и совершенна. Защита, конечно, универсальна в том смысле, что блокирует НД к данным, а также распространение системных, и макро- и любых других вирусов, но только в защищенных областях диска. Правда, заодно в этих областях становятся невозможны и правка текстовых файлов редактором, и трансляция программ, и многое-многое другое. Еще один недостаток этой защиты состоит в том, что защищаемая область — физическое место на диске, какие каталоги, файлы, какая часть файловой структуры окажется в этой физической области – вопрос кропотливой настройки файловой системы.

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

Недостаточная гибкость метода перлюстрации побуждает разработчиков аппаратной защиты второго типа создавать более совершенные варианты защиты. Например, отечественная разработка IWP (А.В. Водяник и др.) имеет развитые программные средства. Программный вариант защиты диска состоит из двух программ: IWP.ЕХЕ и MAP.ЕХЕ. Последняя программа предназначена для создания карты защищенных файлов, которая записывается в файл IWP.MAP в корневом каталоге (в файле фигурирует и запись в каталоге и цепочка FAT), Программа IWP.ЕХЕ — резидентная и следит за запросами на запись, проходящими через драйвер диска. Все запросы на запись проверяются по карте IWP.MAP на корректность и подавляются, если обнаружена попытка записи в закрытый файл. Заметим, что области на диске здесь уже логическое понятие, это правильно и хорошо, но в то же время любое изменение в файле IWP.MAP может привести к непредсказуемым последствиям. Перлюстрируются обращения в порты контроллера диска, и обращения не из BIOS считаются опасными. Аппаратная часть называется PWC (Port Watch Card). Имеются два варианта платы. Наиболее совершенный вариант позволяет использовать систему паролей для доступа к жесткому и гибким дискам, CMOS; в обоих случаях обращение к портам контролируется аппаратно. Пароли для более сложной платы могут быть перестроены программно (PWD.ЕХЕ).

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

Защита от считывания со сменных носителей

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

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

Самым простым решением является нестандартная разметка (форматирование) носителя информации. Изменение длины секторов, межсекторных расстояний, порядка нумерации секторов и некоторые другие способы нестандартного форматирования дискет затрудняют их использование стандартными средствами операционных систем. Нестандартное форматирование защищает только от стандартных средств работы с накопителями. Использование специальных программных средств (например, DISK EXPLORER. для IBM-совместимых ПЭВМ) позволяет получить характеристики нестандартного форматирования.

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

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

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

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

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

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

 

 

15. Программно-аппаратные криптосистемы. Алгоритмы шифрования.

 

Существует несколько видов шифрования:

• Пофайловое шифрование. Пользователь сам выбирает файлы, которые следует зашифровать. Такой подход не требует глубокой интеграции средства шифрования в систему, а следовательно, позволяет производителям криптографических средств реализовать мультиплатформенное решение для Windows, Linux, MAC OS X и т. д.

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

• Шифрование виртуальных дисков. Концепция виртуальных дисков реализована в некоторых утилитах компрессии, например Stacker или Microsoft DriveSpace. Шифрование виртуальных дисков подразумевает создание большого скрытого файла на жестком диске. Этот файл в дальнейшем доступен пользователю как отдельный диск (операционная система «видит» его как новый логический диск). Все сведения, хранящиеся на виртуальном диске, зашифрованы. Главное отличие от предыдущих подходов в том, что криптографическому ПО не требуется шифровать каждый файл по отдельности. Данные шифруются автоматически только тогда, когда они записываются на виртуальный диск или считываются с него. При этом работа с данными ведется на уровне секторов (обычно размером 512 байт).

• Шифрование всего диска. В этом случае шифруется абсолютно все: загрузочный сектор, системные файлы и другая информация на диске.

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

 

 

16. Общие сведения об аппаратных криптосистемах. Механизмы аппаратной шифрации. Криптографический контроль целостности.

 

Общие сведения об аппаратных криптосистемах
Шифрующая плата вставляется в слот расширения (PCI или ISA) на материнской плате компьютера и выполняет функцию шифрования. Режим шифрования может быть прозрачным или предварительным. На плате находится датчик псевдослучайных чисел для генерации ключей и узлы шифрования, аппаратно реализованные в специализированных однокристальных микроЭВМ. Ключи шифрования хранятся на специально созданном носителе. Программная часть комплекса содержит драйвер платы для взаимодействия программ пользователя с платой шифрования. Шифровальные платы обладают высокой гарантией защиты информации, но их применение вносит определенные неудобства в работу ПЭВМ, прежде всего – это значительное снижение скорости обработки данных, а также необходимость инициализировать плату при каждом включении компьютера. К тому же устройства этого вида, являясь довольно нестандартными, часто могут вызывать аппаратные конфликты. В последнее время функцией аппаратной шифрации снабжены программно – аппаратные СЗИ, поддерживающие доверительную среду работы пользователя.
Механизмы аппаратной шифрации (на примере Secret Net 5.0).
Обычно в программно – аппаратных криптосистемах управление шифрованием файлов и доступом к ним осуществляются на уровне каталога или тома. Поэтому каталог, в котором размещаются зашифрованные файлы, называют «шифрованный каталог» или «шифрованный ресурс».
Для того чтобы каталог стал шифрованным, необходимо включают с помощью ПО ПАКС параметр «Шифровать содержимое папки» в свойствах каталога. Там же можно указать и список пользователей, которым разрешен доступ к шифрованному каталогу. Затем файлы, находящиеся в этом каталоге, могут быть автоматически зашифрованы. Новые файлы, создаваемые в данном каталоге, будут зашифровываться автоматически.
Управляющая структура для каталога хранится в каталоге в отдельном скрытом файле. Это позволяет выполнять шифрование ресурсов на различных файловых системах (FAT, NTFS). Для того чтобы пользователь обладал возможностью создавать шифрованные ресурсы, администратор должен предоставить ему привилегию “Шифрование файлов: Создание шифрованного ресурса”. Пользователь, создавший шифрованный ресурс, является его владельцем и может предоставлять доступ к ресурсу другим пользователям, а также делегировать им полномочия на управление шифрованным ресурсом. Пользователь ресурса может создавать новые зашифрованные файлы, удалять их, выполнять с ними любые операции чтения и записи.В некоторых системах предусмотрена специальная административная привилегия «Удаление шифрованного ресурса при отсутствии ключа», которая может быть использована при потере ключей доступа к шифрованному ресурсу. Администратор, которому будет предоставлена эта привилегия, сможет удалить такие шифрованные ресурсы. Результат операций с шифрованными ресурсами фиксируется в журнале ПАКС.
ГОСТ Р34.10–2001 определяет требования, предъявляемые к алгоритмам генерации ключей пользователей. Аппаратно генерируются закрытый и открытый ключ пользователя. Открытые ключи пользователей хранятся в локальной базе данных ПАКС, закрытые ключи – в персональном идентификаторе пользователя (УВИП). Для каждой ключевой пары в системе хранится время ее генерации, при необходимости можно установить для нее минимальное и максимальное время жизни. Если пользователь выполнит операцию смены ключей, то в системе будут храниться две ключевые пары (текущая и предыдущая). При первом же обращении к шифрованному ресурсу управляющая информация расшифровывается на старом ключе и зашифровывается на новом, при этом сами данные повторно не перешифровываются.
Ключи, используемые ПАКС:
Ключи Наименование Алгоритмы генерации
SKr Закрытый ключ ресурса Генерируется в соответствии с требованиями к ключам ГОСТ Р34.10-2001
PKr Открытый ключ ресурса — » —
SKu Закрытый ключ пользователя — » —
PKu Открытый ключ пользователя — » —
Kr Ключ шифрования ресурса Генерируется с помощью датчика случайных чисел (ДСЧ)
Kf Ключ шифрования файла — » —
SKur Сессионный ключ Генерируется в соответствии с алгоритмом Diffie-Hellman
Для ключей, хранящихся в зашифрованном виде, используется алгоритм шифрования, соответствующий ГОСТ 28147-89 в режиме гаммирования с обратной связью.
При включении режима шифрования каталога:
1. В каталоге создается файл !Res.key.
2. Генерируются закрытый и открытый ключи ресурса (SKr, PKr) и ключ шифрования ресурса (Kr).
3. На основании закрытого ключа пользователя (SKu) и открытого ключа ресурса (PKr) вычисляется сессионный ключ (SKur).
4. Ключи Kr и SKr зашифровываются на ключе SKur и получаются соответственно значения Kr(SKur) и SKr(SKur), которые вместе с открытым ключом пользователя PKr сохраняются в файле !Res.key.
При зашифровании файла:
1. Из файла !Res.key считывается открытый ключ ресурса (PKr).
2. На основании открытого ключа ресурса (PKr) и закрытого ключа пользователя(SKu) вычисляется сессионный ключ (SKur).
3. С помощью сессионного ключа (SKur) из Kr(SKur) вычисляется ключ шифрования ресурса (Kr).
4. Генерируется ключ шифрования файла (Kf).
5. Содержимое файла шифруется на ключе шифрования файла (Kf).
6. С помощью ключа шифрования ресурса (Kr) зашифровывается ключ шифрования файла Kf(Kr) и помещается в отдельный служебный файл.
При расшифровании файла:
1. Из файла !Res.key считывается открытый ключ ресурса (PKr).
2. На основании открытого ключа ресурса (PKr) и закрытого ключа пользователя (SKu) вычисляется сессионный ключ (SKur).
3. С помощью сессионного ключа (SKur) из Kr(SKur) вычисляется ключ шифрования ресурса (Kr).
4. Из служебного файла считывается Kf(Kr) и расшифровывается.
5. Зашифрованное содержимое файла расшифровывается на ключе шифрования файла (Kf).
6. При последующем сохранении файла происходит его зашифрование на ключе шифрования файла (Kf).
Для предоставления другому пользователю доступа к шифрованному каталогу:
Владелец ресурса в свойствах каталога выбирает в списке имя пользователя, которому будет разрешен доступ к ресурсу. В список попадают только те пользователи, открытые ключи которых имеются в базе данных ПАКС
1. На основании закрытого ключа владельца (SKu) и открытого ключа ресурса (PKr) из файла !Res.key вычисляется сессионный ключ (SKur). С использованием сессионного ключа расшифровываются другие ключи SKr и Kr.
2. Вычисляется значение сессионного ключа для нового пользователя ресурса S Ku2r на основании закрытого ключа ресурса (SKr) и открытого ключа новогопользователя (PKu2).
3. Ключи SKr и Kr зашифровываются на сессионном ключе нового пользователя и сохраняются в файле !Res.key в виде дополнительного управляющего блока.
Криптографический контроль целостности
Механизм контроля целостности осуществляет слежение за неизменностью контролируемых объектов с целью защиты их от модификации и предназначен не только за контролем целостности файлов пользователя, но контролем целостности компонентов ОС, что немаловажно с точки зрения надёжности работы ЭВМ и сохранности данных вообще. Обычно контроль проводится в автоматическом режиме в соответствии с некоторым заданным расписанием. При этом на аппаратуру ложится, как и при шифрации, функция выработки контрольных разрядов по заранее определённым алгоритмам. Использование аппаратуры повышает быстродействие систем контроля целостности, особенно если контроль осуществляется к часто запрашиваемым ресурсам. Кроме этого, реализация криптоустройства в виде отдельного модуля, подключаемого к интерфейсной шине, позволяет в некоторых случаях (например, при контроле целостности секторов ЖМД) выполнять формирование контрольных разрядов в фоновом режиме, непосредственно при обращении к контролируемым объектам)
Объектами контроля могут быть файлы, каталоги, элементы системного реестра и секторы дисков (что отличает аппаратные криптосистемы от программных). Каждый тип объектов имеет свой набор контролируемых параметров. Так, файлы могут контролироваться на целостность содержимого, прав доступа, атрибутов, а также на их существование, т. е. на наличие файлов по заданному пути. Совокупность ресурсов, которые используются для решения определенных производственных задач, объединяются в группы. Для каждого из входящих в группу объектов рассчитываются эталонные значения контролируемых параметров. Предусматривается возможность выбора времени контроля. В частности, контроль может быть выполнен при загрузке ОС, при входе в систему или выходе пользователя из системы, по заранее составленному расписанию. Для этого составляется задание на контроль. Кроме того, может быть проведен и немедленный контроль. При обнаружении несоответствия предусмотрены следующие варианты реакции на возникающие ситуации нарушения целостности: регистрация события в журнале ПАКС; блокировка компьютера; отклонение или принятие изменений.
Таким образом, для каждого типа контролируемых объектов хранятся список имен объектов и задания для контроля тех или иных параметров указанных объектов по определенному расписанию. Эта информация размещается в БД контроля целостности, которая реализована в виде набора файлов определенного формата, расположенных в отдельном каталоге. База данных содержит всю необходимую информацию для функционирования системы. Задание на контроль содержит информацию об эталонном состоянии объекта, порядке контроля характеристик и действий, которые надо выполнить при обнаружении изменений. Результаты контроля и обработки запросов фиксируются в журнале. Система контроля целостности самостоятельно выполняет контроль системных объектов.

 

 

 

 

17. Атаки на аппаратные шифраторы

 

 

18. Варианты реализации криптосистем.  Сравнение аппаратных и прогаммных шифраторов.

 

PTS StrongDisk
PTS StrongDisk позволяет располагать данные на защищенном или виртуальном диске. Защищенный (CD-ROM, Jaz, Zip и т.п.) или виртуальный диск функционирует как обычное устройство, но вся информация при записи на них шифруется. PTS StrongDisk поддерживает алгоритмы, среди которых: Triple DES 112, CAST 128, SAFER 64 и Blowfish 128 — для шифрования данных, MD5 и SHA — для парольной защиты. На защищенных дисках могут располагаться файлы любого типа (документы, таблицы, базы данных и т.п.). Поскольку защищенный диск физически реализуется в виде обычного файла, требуется просто создавать резервные копии защищенных устройств. Кроме того, защищенные диски можно смонтировать для использования в локальной сети, а копии дисков — распространять среди пользователей, которые могут использовать бесплатную версию программы, поддерживающую только операции чтения.
Криптосистема SecretDisk 95
SecretDisk, является по сути программной, однако использует в работе аппаратный идентификатор, в памяти которого хранится главный ключ, без которого получение доступа к зашифрованным данным невозможно. Защищаемые данные хранятся на секретном логическом диске вашего винчестера в закодированном виде. Для доступа к данным необходимо предъявление пароля и электронного идентификатора. В качестве электронного идентификатора могут использоваться различные конфигурации электронных ключей (в том числе и для PCMCIA) и устройства для чтения смарт-карт. В случае корректного входа в системе «появляется» новый диск, при записи на который данные кодируются, а при чтении – декодируются.
Программно-аппаратный комплекс Криптон
Данное устройство обеспечивает высокую криптографическую стойкость, шифрование производится по алгоритму ГОСТ 28174 — 89. Открытый интерфейс позволяет разрабатывать дополнительное программное обеспечение специального назначения. Длина ключа – 256 бит. Скорость шифрования – до 200 Кбайт/ сек. Программная поддержка позволяет осуществлять: шифрование файлов, разделов, дисков; разграничение и контроль доступа к компьютеру; электронную подпись документов; прозрачное шифрование жестких и гибких дисков.
Криптосистема WatchDog,
Система, изготавливаемая фирмой Fisher International Systems, из Флориды претендует на некую универсальность, во всяком случае рассматривается возможность применения WatchDog в средах UNIX, OS/2, Windows, в дополнении к NetWare. Существуют варианты системы, поддерживаемые аппаратно.
Система предусматривает стандартные механизмы повышения безопасности: возможность «насильственной» смены пароля каждые несколько дней; проверка нового пароля на «новизну» (нельзя использовать пароль, уже бывший в употреблении на конкретном компьютере); возможность быстрого блокирования и разблокирования клавиатуры по предъявлению особого пароля, когда пользователь в процессе работы ненадолго отлучается, и есть вероятность работы, пусть недолгой, неавторизованного лица, если какое-то время пользователь не работает на клавиатуре, — он насильственно «выгоняется» из WatchDog’а; возможность разделения файловой системы на логические области, вход в которые осуществляется по предъявлению специальных полномочий; возможность использовать различные программные средства (в основном развитые) по предъявлению полномочий. Система продуманна в отношении трудности «вскрытия» защиты. Основным элементом является драйвер, использующий для своей работы информацию, сосредоточенную в нескольких десятках файлов, располагаемых WatchDog на диске.
Продуманность секретности, не сочетается с удобством работы для пользователя, хотя фирма и предлагает использовать ее генератор меню. Многие системы разграничения доступа пытаются компенсировать неудобства, причиняемые пользователю, с помощью разнообразных меню. Этим пользуются и WatchDog, и PC-Watchman, и NetWare, и Disk Oganaser.
WatchDog работает так: изменяет форматы системных таблиц на жестком диске так, что обычная система(-ы) не в состоянии опознать и работать с таким жестким диском. Сама WatchDog работает с измененными таблицами, используя драйвер, который корректирует таблицы, но требует прежде предъявления имени и пароля для доступа к ресурсам компьютера. Существуют различные уровни защиты. Программное изменение таблицы файлов не являются настоящим препятствием для опытного злоумышленника, поэтому в системе предусмотрена и более серьезная мера защиты информации: некоторые области могут быть зашифрованы с применением DES-алгоритма.
Аппаратные средства, которые могут быть использованы вместе с WatchDog, состоят из одной платы WatchDog ArmorTM. Все, что обеспечивает оборудование, сводится к следующему:
1. запрещение работы со сменными носителями дискетами до тех пор, пока не произойдет корректная загрузка с жесткого диска с установленным там WatchDog;
2. реализация DES-алгоритма аппаратно, с помощью DES микросхемы, что увеличивает скорость работы с применением этого уровня защиты;
3. наличие независимых часов, обеспечивающих точную временную привязку деятельности WatchDog и недоступных для неавторизованного изменения.

Сравнение аппаратных и программных шифраторов.
5.6.1 Характеристики информации, влияющие на выбор криптосистем
Зачастую на практике перед специалистом, которому требуется защитить какую – либо информацию от несанкционированного прочтения, встаёт вопрос, каким средствам отдать предпочтение: программным или аппаратным. Существуют несколько аспектов, влияющих на выбор средства защиты:
ценность защищаемой информации для третьих лиц (личная информация пользователя ПЭВМ, служебные данные прочтение которых нежелательно, сведения, представляющие коммерческую тайну, сведения, представляющие гостайну);
1. размер защищаемой информации;
2. возможность чтения зашифрованной информации на других ЭВМ;
3. ущерб, возникающий в результате утраты информации из–за сбоев в работе криптосистемы;
4. цена криптосистемы;
5. необходимость скрыть сам факт нахождения ценной информации на ЭВМ – немаловажный аспект, так как зачастую кражу провоцирует именно видимая возможность совершить кражу, поэтому для повышения стойкости защиты ценные данные на должны бросаться в глаза посторонним пользователям;
6. возможность использования контрафактных программных средств (программы – «крэки» на пиратские копии, генераторы ключей, эмуляторы ключей).
5.6.2 Сравнительная характеристика различных типов криптосистем
Для выбора средства защиты следует сравнить сильные и слабые стороны программных и аппаратных криптосистем на основе вышеприведённых критериев.
Преимущества аппаратных шифраторов:
1. простая и надёжная идентификация пользователей (включающая различные механизмы, вплоть до снятия биометрических параметров);
2. нет необходимости ограничивать зашифрованное пространство, шифровать можно целые диски, а не отдельные файлы и каталоги;
3. вероятность поломки устройства ниже, чем программного сбоя или повреждения ключа для работы программы, который хранится в отдельном файле;
4. невозможность зачастую даже прочесть зашифрованные данные для расшифрования на других ЭВМ, так как зачастую шифруются и системные области диска и таблицы размещения данных;
5. невозможность расшифрования данных в случае кражи самого носителя;
6. возможность использования сложных, а следовательно долгих по времени реализации алгоритмов шифрования, обладающих высокой криптостойкостью;
7. без шифратора невозможно заподозрить, что на носителе записана какая – либо информация (теоретически можно, но для этого необходимо применять специальную аппаратуру, анализирующую намагниченность диска);
8. возможность шифрования всего программного обеспечения диска, в том числе нелицензионного, что скрывает сам факт использования контрафактной продукции.
Недостатки аппаратных шифраторов:
1. высокая стоимость криптосистемы;
2. невозможно сделать резервные копии на съёмных носителях, только на другой ЭВМ;
3. при введённом в состав ЭВМ шифраторе невозможно скрыть факт наличия на ЖМД секретной информации от посторонних лиц (разъём для аппаратной идентификации нельзя скрыть);
4. хранение физического ключа требует принятие дополнительных мер по обеспечению его сохранности;
5. потеря или кража ключа приведёт к полной потере информации;
6. поломка устройства приведёт к полной потере информации;
7. поломка диска приведёт к полной потере информации.
Преимущества программных шифраторов:
1. недорого или бесплатно (пиратская копия);
2. возможность создавать виртуальные шифрованные диски, находящиеся в ОЗУ, наличие которых легко скрыть, выполнив перезагрузку;
3. возможность резервного копирования зашифрованной информации на любой носитель и хранения его в безопасном месте;
4. возможность хранения небольшого по объёму файла – ключа в секретном месте;
5. зачастую процесс шифратора виден в списке работающих, что свидетельствует о том, что часть информации на жёстком диске закрывается от прочтения;
6. возможность быстро
7. возможность скрытия зашифрованных данных и ключей в файлах других расширений (например DVD – фильмах) с помощью методов стеганографии;
Недостатки программных шифраторов:
1. ограниченный объём шифруемых данных;
2. при создании виртуальных шифрованных дисков требуется большой объём ОЗУ, регулярные сохранения содержимого таких дисков и ИБП на случай отключения электроэнергии;
3. невозможность установления факта кражи секретного ключа (если он был скопирован, узнать это невозможно, в отличие от случая кражи физического ключа);
4. отсутствие гарантии, что зашифрованные программно данные не могут быть при необходимости расшифрованы создателями таких программных средств (это касается особо секретной информации, ради которой фирма – изготовитель может пожертвовать своей репутацией);
5. невозможность установления факта кражи зашифрованной информации или расшифровки секретной информации.

 

19. Виды защиты от несанкционированного копирования программ. Программно-аппаратная защита от копирования программ.

 

Виды защиты от несанкционированного копирования программ
Защита с помощью серийного номера. Предполагается наличие уникального номера в каждом экземпляре программы. При размножении программы в нее заносится её порядковый номер, который затем проставляется на регистрационной карточке продажи этой программы конкретному покупателю.
При обнаружении копии программы у незарегистрированного пользователя можно найти источник похищения программы и даже проследить цепочку. Такой способ отлично работает, если есть соответствующее законодательство. По идеологии защита с использованием серийного номера близка к защите с помощью пароля.
Использование технических отличий в машине для программной защиты. Как правило, каждая модель ПЭВМ имеет свои индивидуальные особенности. Это можно использовать для проверки уникальности компьютера, на котором установлена программа.
• Тактовая частота работы ПК имеет различия, доходящие до ±0,001 и даже ±0,01 МГц. Если точно измерить частоту, можно проверить уникальность ПЭВМ.
• ППЗУ одинаково только для машин одного класса одной и той же фирмы. Поэтому подсчет контрольной суммы ПЗУ, либо ППЗУ (BIOS в ПЭВМ) может ограничить использование программы одной модификацией машины данной фирмы.
• При копировании программа записывается в произвольное место на диске. Если не узнать, на какие физические секторы произведена запись, практически невозможно перенести программу на другой диск.
• Специальная обработка конкретного бита на диске. При нормальном чтении диска происходит анализ: если есть магнитный сигнал, – 1, нет – 0. А если сигнал слабый? Тогда считывание десять раз дает, допустим, три раза 1, а семь раз – 0. Можно записать такой слабый сигнал, а потом проверять его.
Программно-аппаратная защита от копирования программ
Обычно процесс установки защищенного от копирования программного продукта завершается настройкой программного продукта на параметры используемого компьютера. Это необходимо для того чтобы защищенный от копирования программный продукт стало невозможно перенести на другой компьютер.
Существует несколько методов настройки установленного программного обеспечения на конкретный компьютер:
• привязка файлов программного продукта к их физическому расположению на диске (метод основан на том, что при восстановлении файлов на другом компьютере они будут располагаться в других секторах диска);
• запись в неиспользуемый участок последнего кластера, распределенного файлу, контрольной информации (при выгрузке и восстановлении файлов эти неиспользуемые участки файлов пропадают);
• привязка программы к конкретной версии BIOS, при этом используется дата трансляции BIOS и метод контрольных сумм;
• проверка производительности отдельных подсистем компьютера.
Защита же от несанкционированного копирования установочных программ так или иначе сводится к проверке каких-то специфических условий или параметров наличной аппаратуры или носителей информации. Самым «естественным» способом использования аппаратуры для защиты программ от несанкционированного копирования является широкое использование особенностей оборудования при написании программы. Эта «естественность», однако, может входить в противоречия с требованиями универсальности и простоты тиражирования программного обеспечения. Подобная защита строится по типу «черного ящика». Оборудование определенным, но уникальным образом программируется; соответственно изменяется и код программы в определенных местах; в некоторых точках программы происходит обращение к оборудованию с известными программе параметрами; оборудование возвращает какие–то данные, которые используются, например, для построения кода какого–то участка программы. Такая схема трудна для «вскрытия», поскольку невозможно установить по данным, передаваемым оборудованию, и по данным, получаемым от него в ответ, что за программа работает внутри. Сравнение разных копий дает мало информации для понимания происходящего (как правило, разные копии «зашумлены» случайными изменениями, чтобы еще более затруднить поиск реальных отличий). Локальный характер обращений к оборудованию позволяет ни в один момент не строить всего исполняемого кода.
Обычные вопрос, стоящие при построении таких систем защиты: обеспечение независимого функционирования оборудования, легкость монтажа и демонтажа. Первоначально такая аппаратура размещалась внутри компьютера. Так, ранние версии Novell защищались с помощью keycard, вставлявшейся в разъем шины сервера. Сейчас же одним из самых надежных способов реализации такой защиты является использование электронных ключей. Эти компактные устройства обычно устанавливаются на порты компьютера (параллельный ил последовательный), но существуют также решения для шины USB или для установки в слот ISA. Существует огромное множество вариаций электронных ключей, совместимых со всеми сетевыми средами, операционными системами (в том числе UNIX) и предназначенными для различных интерфейсов (в том числе для Macintosh ADB-порта, USB, японского стандарта Centronics36 и других).
При использовании ключа защищенное программное обеспечение «привязывается» не к конкретному компьютеру, а именно к ключу. Поэтому на практике пользователь может взять ключ с собой и продолжить работу с защищенными данными, скажем, на домашнем компьютере. В основе электронных ключей лежат ASIC-процессоры (Application Specific Integrated Circuit). Так, например, современный ASIC-чип, разработанный инженерами компании Aladdin, производится по 1,5-микронной Е2-технологии и содержит более 2500 вентилей на кристалле. По информации производителей электронных ключей (Aladdin, Rainbow), эти устройства, устанавливаемые на порты компьютера, «прозрачны» для периферийного оборудования и не мешают его работе. Многие электронные ключи позволяют осуществлять их каскадирование (подсоединение несколько устройств друг к другу, образуя цепь длиной 10 и более ключей).
Электронные ключи, входящие в состав аппаратно-программной инструментальной системы серии Aladdin HASP, не содержат элементов питания, имеют до 496 байт EPROM-памяти, доступной для чтения и записи, и возможность генерации уникальной серии кодов с использованием функции y=f(x), где х – отправляемое в ключ целое число в диапазоне от 0 до 65 535, а у – возвращаемые четыре целых числа из того же диапазона. Система HASP предоставляет широкий выбор различных методов защиты:
С использованием защитного «конверта» (Envelope) для уже готовых DOS и 16/32-разрядных Windows-приложений без вмешательства в исходный код программы. Защищаются программные файлы (в том числе и содержащие внутренние оверлеи). Тело программы кодируется, и в нее добавляется специальный модуль, который при запуске защищенной программы перехватывает управление.
С использованием функций API. Программа может осуществлять вызовы функции обращения к ключу из многих мест; результаты могут быть разбросаны по всему телу программы или библиотек DLL и хорошо замаскированы. Встраивание в программу вызовов API требует от разработчика некоторых усилий при программировании и модернизации программы.

 

20. Защита программ от изучения.  Цели, методы, средства изучения программ.

 

Защита программ от изучения.
Цели изучения программ.
Задача анализа программного обеспечения возникает в самых различных ситуациях. Например, что компьютерную сеть нашей организации поразил неизвестный компьютерный вирус. Для того, чтобы создать способный с ним бороться антивирус, необходимо понять принципы функционирования этого вируса, а для этого необходимо провести анализ машинного кода вируса. Другой пример. Систему защиты информации нельзя считать надежной до тех пор, пока не проведена экспертиза, которая показала, что известные методы преодоления систем защиты данного класса не работают для тестируемой системы. Группа экспертов становится в позицию злоумышленника и пытаются преодолеть защиту, реализуемую тестируемой системой. Если это не удаётся, систему можно рекомендовать для использования. Экспертиза должна включать в себя апробирование всех известных методов преодоления защиты, в том числе методов, связанных с анализом программного обеспечения. Таким образом, при проведении экспертизы системы защиты информации возникает задача анализа программного обеспечения этой системы. Однако чаще всего программы изучаются взломщиками, пытающимися создать пиратские копии лицензионных программных средств.
Задачу изучения программы можно сформулировать следующим образом. Мы имеем бинарный код программы и минимальную информацию о том, что эта программа делает. Нам нужно получить детальную информацию о функционировании этой программы. Под программой подразумевается не только exe– или com–файл, но и библиотеку функций, драйвер устройства и т. д.
Hа каком бы языке Вы не писали, какие бы способы защиты не использовали, все, пpевpатится в команды пpоцессоpа. В нашем слyчае — семейства intel x86. Так что, полyчив листинг пpогpаммы, взломщик видит знакомые ассемблеpные команды, пpичем для анализа алгоpитма pаботы пpогpаммы в большинстве слyчаев не важно, с помощью чего она была создана. Достаточно лишь хорошо pазбиpаться в работе пpоцессоpа и в аpхитектypе компьютеpа.
6.3.2 Методы изучения программ
В настоящее время сформировались три подхода к восстановлению алгоритмов, реализуемых программой:
• метод экспериментов;
• статический метод;
• динамический метод.
Метод экспериментов заключается в проведении многократных экспериментов с изучаемой программой и сравнительном анализе полученных результатов. Изучаемая программа рассматривается как «черный ящик», для которого известны входные и выходные данные, но неизвестно внутреннее устройство. Задача аналитика заключается в том, чтобы, подбирая входные данные, восстановить алгоритмы функционирования «черного ящика».
Эффективность метода экспериментов слабо зависит от программной реализации системы защиты (на нее, в частности, не влияет применение средств защиты программного обеспечения от изучения) и определяется, в первую очередь, сложностью анализируемых алгоритмов. Метод экспериментов редко применяется в чистом виде. Чаще этот метод применяется как дополнение к динамическому или статическому методу. Метод экспериментов эффективен при анализе программ, реализующих относительно простые алгоритмы. Такие программы встречаются довольно редко.
Сущность статического режима заключается в изучении исходного текста программы. Для получения листингов исходного текста выполняемый программный модуль дизассемблируют, то есть получают из программы на машинном языке программу на языке Ассемблер. В настоящее время статический метод используется чаще всего как вспомогательный инструмент для проверки предположений о восстанавливаемых алгоритмах защиты.
Динамический режим изучения алгоритма программы предполагает выполнение трассировки программы. Под трассировкой программы понимается выполнение программы на ЭВМ с использованием специальных средств, позволяющих выполнять программу в пошаговом режиме, получать доступ к регистрам, областям памяти, производить остановку программы по определенным адресам и т. д. В динамическом режиме изучение алгоритма работы программы осуществляется либо в процессе трассировки, либо по данным трассировки, которые записаны в запоминающем устройстве.
Средства противодействия дизассемблированию не могут защитить от трассировки и наоборот: программы, защищенные только от трассировки, могут быть дизассемблированы. Поэтому для защиты программ от изучения необходимо иметь средства противодействия как дизассемблированию, так и трассировке, так как дизассемблирование и отладка обычно используются вместе.
Средства изучения программ
Средства анализа исполняемого кода

Первое средство – декомпилятор. Процесс перевода из двоичного вида в символьный, на языке команд какого-нибудь языка. Например, дизассемблеры, деклиппер, obj2asm и многие другие. Эти вещи появились раньше отладчиков, т.к. в начале не было архитектуры со встроенными средствами отлаживания программ.
В чем их неудобство:
1. Неверное определение размеров данных. Например, вы дизассемблировали программу закрытую HASP ключом. Чтобы ее взломать, вам нужно найти точку входа в HASP API. Она находится сразу за строкой HASPDOSDRV. Найдете ее после дизассемблирования очень сложно.
2. Отсутствие динамики.
3. Статичный анализ (если данные зашифрованы, то декомпилятор их не расшифрует).
4. Огромное количество незначимых для Вас команд.
5. Невозможность посмотреть регистры, стек и память.
В чем преимущество:
1. Возможность изменения исходного кода программы.
2. Невозможность обнаружения.
Существует несколько проблем при работе дизассемблеров.
Проблема восстановления символических имен. В программе, написанной на языке ассемблера все переменные, метки, процедуры и сегменты имеют символические имена. При компиляции программы эти имена заменяются физическими адресами. В скомпилированном машинном коде не остается информации о символических именах, если, конечно, она специально не помещена туда для отладки или для взаимодействия с другими программами (например, динамически подгружаемые библиотеки Windows содержат таблицу имен экспортируемых функций, необходимую для их импорта программами). Обычно эта проблема решается путем «придумывания» дизассемблером символических имен типа var1, label2, proc3 и т.д.
Проблема различения команд и данных. В скомпилированной программе машинный код и данные отличаются друг от друга только по контексту использования. Например, машинная команда может непосредственно следовать за глобальной переменной. Если дизассемблер принимает код за данные или наоборот, текст, выдаваемый дизассемблером, становится бессмысленным.
Проблема определения границы машинной команды. Команды машинного кода следуют друг за другом подряд непосредственно, без каких-либо разделителей. При выполнении кода процессор начинает считывать очередную команду с байта, непосредственно следующего за только что выполненной командой. Если дизассемблер неправильно определяет границу команды, он неправильно восстанавливает эту команду и несколько команд, следующих за нейТаким образом, дизассемблеры могут допускать серьезные ошибки. Дизассемблеры условно можно разделить на «глупые» и «умные». «Глупые» дизассемблеры даже не пытаются решить описанные проблемы, в результате чего результат работы дизассемблера напоминает ассемблеровский текст весьма отдаленно. В то же время «глупые» дизассемблеры преобразуют машинный код очень быстро (почти мгновенно). К «глупым» дизассемблерам относятся встроенные дизассемблеры отладчиков и антивирусных утилит, предназначенные для интерактивного просмотра небольших участков машинного кода.
«Умные» дизассемблеры преобразуют машинный код в ассемблеровский настолько точно, что в отдельных случаях повторное ассемблирование приводит к тому же самому машинному коду. «Умные» дизассемблеры различают команды и данные, практически всегда правильно определяют границы машинных команд, выделяют в машинном коде отдельные функции, отслеживают перекрестные ссылки. Время дизассемблирования программы «умным» дизассемблером может составлять десятки минут.
Редко, но бывает необходимым внесения крупных изменений в код программы. Прямая вставка двоичных кодов не помогает, т.к. нарушается расположения меток перехода и процедур. Повторная перекомпиляция вписывает новые смещения для джампов и колов. ЭТО ОЧЕНЬ РЕДКИЙ СЛУЧАЙ. Но разработчики дизассемблеров давно учли сложности использования своих программ. И появились такие программы, как Хакер-VIEW (HIEW) и IDA (Интерактивный Дизассемблер).
HACKERVIEW выпускается как внешний просмотрщик для Нортона. Вы можете просмотреть любой исполняемый файл по любому смещению, а также «выполнить» какую-то часть программы или собственную программу, написанную на ассемблере. Это позволяет расшифровывать программы и обходить защиту от дизассемблирования. Он понимает, как старые форматы исполняемых файлов DOS-COM и DOS-EXE, так и форматы исполняемых файлов Windows и OS/2.
IDA очень мощное средство работы с ассемблерными текстами программ. Обладает такими же возможностями, как и HACKERVIEW, но имеет более удобный интерфейс. Также очень хорошо предусмотрена архитектура работы программ в Windows. Т.е. такие вещи, как DLL, расширенный режим работы с памятью и т.д. В своей практике я ни разу не использовал IDA для ломки, но для анализа вирусов приходилось. Очень хорошее средство.
Интерактивные декомпиляторы программ занимают свою нишу в инструментарии кракера. В основном это совместное использование с отладчиками, где основную работу делают отладчики. Дело в том, что программирование, благодаря Windows, в основном стало событийным, а не линейным как это было в ДОСе. Поэтому проще в отладчике поставить брейк-точку на нужное нам событие, анализируем, что готовит программа. И уже после, если того требует необходимость, лезем HEIW в нужную часть программы. Но многие задачи не требуют такого совместного использования.
Пошаговые трассировщики.
Пpактически любая компьютеpная аpхитектypа должна пpедyсматpивать наличие каких-либо аппаpатных или хотя бы пpогpаммно-аппаpатных сpедств отладки. Изначально сама по себе концепция отладки в PC была пpогpаммно-аппаpатной, с pасчетом на возможность пpедоставления пользователю пpогpаммного интеpфейса общения с механизмами отладки.
Все, что было заложено фиpмой intel с самого начала, — это два «особенных» аппаpатных пpеpывания, пpедназначенных для отладочных целей: int 1, с помощью котоpого выполнялось пошаговое исполнение пpогpаммы, и int 3, пpедназначенного для вставок точек останова пpоцессоpа (break points) в код отлаживаемой пpогpаммы. Хоть эти пpеpывания и генеpиpовались самим пpоцессоpом, но контpоль над их генеpацией и обpаботка этих пpеpываний возлагалась на отладчик пpогpаммного ypовня.
С выходом в свет пpоцессоpа i80386, появились новые возможности отладки, связанные с особенностями 32-битного защищенного pежима пpоцессоpа, а точнее, с возможностью полностью изолиpовать выполняемые пpогpаммы дpyг от дpyга (напpимеp, отладчик от отлаживаемой пpогpаммы). Были введены специальные pегистpы DR0-DR7, пpедназначенные для отладочных целей (таких как yстановка break points на обpащение к опpеделенным адpесам памяти и поpтам).
Тепеpь отладчик, запyщенный с нyлевым CPL (Code Privelege Level), полностью защищен от возможных воздействий со стоpоны отлаживаемой пpогpаммы, котоpyю он запyскает с более низким ypовнем пpивелегий. И взламываемая пpогpамма, пpи пpавильной pеализации отладчика (не без исключений, конечно), yже не может отpавить жизнь отладчикy,
Пеpеходя от отладчиков в частности к reverse engineering’y вообще, стоит yпомянyть о пpинципиально дpyгом подходе к отладке: об эмyляции исполняемого кода, когда дешифpацию и выполнение инстpyкций пpоизводит не pеальный пpоцессоp, а пpогpамма-эмyлятоp. Сyть эмyлятоpов состоит в том, что выполняемая пpогpамма не должна иметьвозможность полyчить достyп к pеальным pесypсам компьютеpной системы. Эмyлятоp как бы «находится» междy pесypсами системы и отлаживаемой пpогpаммой, виpтyализиpyя все компоненты системы, необходимые ей для pаботы (такие, как память, поpты). Пpогpамма исполняется медленней, но это компенсиpyется тем, что она чyвствyет себя совеpшенно по-дpyгомy: ведь никаких отладчиков и пpочих пpогpамм в ее адpесном пpостpанстве нет.

 

21. Защита программ от дизассемблирования.

 

Защита программ от дизассемблирования.
Существует несколько методов противодействия дизассемблированию:
• архивация;
• шифрование;
• использование самогенерирующих кодов;
• усложнение структуры программы.
Архивацию можно рассматривать как простейшее шифрование. Причем архивация может быть объединена с шифрованием. Комбинация таких методов позволяет получать надежно закрытые компактные программы. Зашифрованную программу невозможно дизассемблировать без расшифрования. Зашифрование (расшифрование) программ может осуществляться аппаратными средствами или отдельными программами. Такое шифрование используется перед передачей программы по каналам связи или при хранении ее на ВЗУ. Дизассемблирование программ в этом случае возможно только при получении доступа к расшифрованной программе, находящейся в ОП перед ее выполнением (если считается, что преодолеть криптографическую защиту невозможно).
Соответственно, требуются специальные приемы программирования для борьбы с дизассемблером и защиты от отладчиков. Для затруднения дизассемблирования лучше всего подходит шифрование отдельных участков программ или всей программы целиком. После загрузки программу следует расшифровать в оперативной памяти и передать ей управление. Еще лучше выполнять динамическое расшифровывание программы по мере ее выполнения, когда участки программы расшифровываются непосредственно перед использованием и после использования сразу же уничтожаются.
При расшифровывании можно копировать участки программы в другое место оперативной памяти. Пусть, например, программа состоит из нескольких частей. После ее загрузки в оперативную память управление передается первой части программы. Эта часть предназначена для расшифровки второй части, которая находится в памяти вслед за первой. Задача второй части — перемещение третьей части программы на место уже использованной первой части и расшифровка ее там. Третья часть, получив управление, может проверить свое расположение относительно префикса программного сегмента и, в случае правильного расположения (сразу вслед за PSP), начать загрузку сегментных регистров такими значениями, которые необходимы для выполнения четвертой (установочной) части программы. Если попытаться дизассемблировать программу, составленную подобным образом, то из этого ничего не получится.
Сущность метода, основанного на использовании самогенерируемых кодов, заключается в том, что исполняемые коды программы получаются самой программой в процессе ее выполнения. Самогенерируемые коды получаются в результате определенных действий над специально выбранным массивом данных. В качестве исходных данных могут использоваться исполняемые коды самой программы или специально подготовленный массив данных. Данный метод показал свою высокую эффективность, но он сложен в реализации.
Второй способ борьбы с дизассемблером является, по своей сути, борьбой с человеком, занимающимся дизассемблированием. Он заключается в увеличении размера загрузочного модуля программы до сотни-другой Кбайт и в усложнении структуры программы. Объем листинга, получающегося при дизассемблировании программы размером в 30 — 40 Кбайт, достигает 1 — 1,5 Мбайт. Поэтому большие размеры установочной программы могут сильно увеличить время обнаружения средств защиты.
Усложнение структуры программы может включать в себя обращения к одной и той же области памяти, содержащей многочисленные переменные, разные сегментные адреса. Поэтому очень трудно сразу догадаться, что на самом деле программа работает с одной и той же областью памяти. «Обман» дизассемблера осуществляется несколькими способами:
• нестандартная структура программы;
• скрытые переходы, вызовы процедур, возвраты из них и из прерываний;
• переходы и вызовы подпрограмм по динамически изменяемым адресам;
• модификация исполняемых кодов.
Для дезориентации дизассемблера часто используются скрытые переходы, вызовы и возвраты за счет применения нестандартных возможностей команд. Маскировка скрытых действий часто осуществляется с применением стеков.

 

 

22. Борьба с трассировкой программы пошаговыми отладчиками.

 

Борьба с трассировкой программы пошаговыми отладчиками.
Можно предложить две группы средств защиты от трассировки. В первую группу входят средства блокировки работы самих отладчиков, делающие невозможным трассировку программы:
1. Подмена векторов прерываний;
Напомним, что прерывание INT 1 и INT 3 (соответственно, прерывание для пошаговой работы и прерывание по однобайтовой команде INT) интенсивно используются отладчиками. Первое прерывание позволяет отладчику получать управление после выполнения каждой команды трассируемой программы. С помощью второго прерывания отладчик может устанавливать точки останова, заменяя байты программы на команду однобайтового прерывания.
Защищенная от трассировки программа должна подготовить свои собственные обработчики для этих прерываний и «незаметно» для человека, занимающегося трассировкой, записать их адреса в таблицу векторов прерываний. Эти обработчики прерываний могут не делать ничего, то есть состоять из одной команды IRET, или выполнять какие-либо действия, фиксирующие факт работы программы под контролем отладчика.
Если программа работает не под контролем отладчика, прерывания во время этого участка программы невозможны (они запрещены командой CLI). Если же используется режим пошагового выполнения программы под управлением отладчика, отладчик разрешает клавиатурные прерывания, невзирая на то, что была выдана команда CLI. Наш обработчик клавиатурного прерывания в этом случае зафиксирует работу в режиме трассировки.
Аналогично можно воспользоваться прерыванием таймера. Защищенная программа устанавливает свой обработчик для прерывания таймера, который устанавливает флаг в случае появления прерывания от таймера. В подходящий момент времени она запрещает прерывания и выполняет какую-либо работу, периодически проверяя флаг. Если программа работает в пошаговом режиме, команда запрета прерываний CLI не работает, и флаг будет взведен, сигнализируя работу под контролем отладчика.
Опытные взломщики знают данный метод досконально, так что противостоять им, используя языки высокого уровня, просто бесполезно.
2. Блокировка прерываний от клавиатуры.
Запретив прерывания командой CLI и переназначив прерывание от клавиатуры на себя, программа установки может выполнять какие-либо действия, не требующие работы оператора с клавиатурой и мышью (например выполнения процедуры проверки регистрационного ключа). В ходе трассировки программы (при ее пошаговом выполнении) вам необходимо нажимать на клавиши — для перехода к очередной команде. Это можно использовать для блокировки отладчика. Новичков подобные методы вводят в ступор — при попадании на заранее поставленную точку останова появляется ощущение, что машина повисла, и спасет только reset. И только дизассемблировав программу взломщик увидит, что блокируется клавиатура. Для малобюджетных проектов этой защиты достаточно.
3. Запуск фрагмента кода на нулевом кольце (если такое допустимо) и уничтожение дебаггера или программы.
4. Написание собственной виртуальной машины, на которую ложиться задача проверки регистрации на некоторый псевдокод или скрипт, выполняющийся в вашей виртуальной машине. (Протрассировать подобную защиту очень сложно даже для опытных взломщиков)
5. Блокирование вывода на экран
На время выполнения проверки регистрационного ключа можно блокировать вывод на экран. Это, конечно же, может вызвать дискомфорт у конечного пользователя, но взломщику сложно отлавливать и править эту часть защиты.
Вторая группа средств направлена на определение факта работы программы под управлением отладчика:
1. Измерение времени выполнения контрольных участков программы; Трассирование гораздо дольше обычного выполнения программы. Можно запускать самый обыкновенный таймер в отдельном потоке, и по прошествии нужного времени проверять, завершена ли процедура. Если нет — значит процедура остановлена. Отлавливать 2 независимых потока сложно и многие взломщики сдаются на этом этапе.
Однако и подобные ухищрения обходятся, для этого необходимо управление системным таймером с помощью специальных программ. Однако это сложно и трудоёмко и не всегда бывает выгодно.
2. Подсчет контрольной суммы области памяти, где находится исполняемый код, и сравнение его с заранее прошитым значением. Таким способом можно выявить внесенные в процессе отладки исправления, и вернуть программу к первозданному виду.
3. Использование «ловушек» Противодействие отладке на основании факта, что многие отладчики не могyт полностью эмyлиpовать сpедy запyска программы. Hапpимеp, они обнyляют некотоpые pегистpы, котоpые могyт нести опpеделенный смысл. Пpи ноpмальном запyске (из-под опеpационной системы MS-DOS) AX и BX отpажают пpавильность аpгyментов в командной стpочке: DX=DS, SI=IP, DI=SP. Равенство соответствyющих pегистpов дpyг дpyгy можно пpовеpить.
Ловушки (трики) не yнивеpсальны. Это всего лишь использование той или иной особенности аpхитектypы или инстpyментов отладки. А эти особенности, сколько бы их ни было, все-таки огpаничены. Основные пpинципы, на котоpых они основаны, вполне исчислимы. Таким обpазом, даже если взломщик не знаком с конкpетным тpиком, то какие-то кpитические моменты, вызванные сpабатыванием тpика, могyт его настоpожить. Пpи повтоpной пpогонке этого yчастка кода, взломщик может обойти это место без особого тpyда.
Итак, классический подход, основанный на совокyпности всевозможных ловушек, тем эффективнее, чем больше этих тpиков навоpочено. В этом и заключается интеллектyальная огpаниченность тpадиционного подхода. Сами тpики чаще всего не связаны междy собой, и от их наличия логика pаботы пpогpаммы не зависит (то есть, исключив тpик из кода пpогpаммы, мы не повлияем на пpавильность ее pаботы). Тpики, как пpавило, сваливаются в общyю кyчy по пpинципy «чем больше, тем лyчше», в pезyльтате чего мы можем полyчить нечто монстpообpазное, где pазмеpы кода тpиков сpавнимы с pазмеpом защищаемого кода, но это вpяд ли пpинесет pезyльтат. Однако, этот подход весьма попyляpен: несвязанность тpиков и основного кода обyславливает легкость их пpименения. Искpенной жалости достойны pазpаботчики, котоpые пытаются интегpиpовать тpик с кодом объекта защиты: на pазpаботкy и обезглючивание такого подхода yходит гоpаздо больше вpемени, чем на взлом.

 

 

 

 

 

 

23. Ошибки в созданных и предлагаемых защитах от копирования.

 

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

Ставится брейк на функцию GetWindowText и запускаем программу. Когда брейк сработает, жмем F11 — выполняем функцию, потом ставим брейк на область памяти, куда это все записалось. Далее смотрим данные в сверочной строке и выписываем на бумажку.
Другой, более железный, способ. Поставить брейк на MessageBox — BPX MESSAGEBOX. Когда брейк сработает, мы поднимаемся вверх до ближайшего условного перехода.
Далее, для совсем уж безграмотных. Так же этот способ подойдет, если программа не сообщает о неправильной регистрации. Те, кто придумал это, считают себя слишком умными. А если действительный покупатель программы опечатался? Но все-таки: вводим рег-ную инфу, переключаемся в отладчик и ставим на место, где эта инфа хранится брейк по чтению. Когда брейк срабатывает, смотрим условные переходы. Там, где идет сверка с эталоном или контрольная сумма, мы выписываем нужный серийный номер!
Ввод имени владельца и вычисления эталонного номера.
Также это может вычисляться из серийного номера ЖМД, из версии биоса, из версии видео-биоса, ну и т. д. Не так много вариантов. Но самое главное! При событийной отладке не ищется правильный пароль, реагируют на событие сверки с введенным паролем! А как вычисляетется эталон, никого не мучает, он перехватывается на 100%. Вы ограничены в этом методе защиты. Ваша программа уязвима. Зарубежом ставят такую защиту, чтобы не оставлять дверь открытой. Чтобы не каждый сумел бы использовать программу. Пользователям на западе проще заплотить, чем каждый раз дрожать запуская взломанную программу.
Промежуточные итоги и советы.
• Никогда не пишите функции типа CheckPassword : boolean
• Никогда не храните, и не вычисляйте ключевых слов в программе только лишь для того, чтобы произвести банальную проверку.
• Никогда явно сразу после проверок нужных вам флагов и обнаружения несоответствия, не обнаруживайте этого в коде прогрнаммы.
• Не проводите проверку введённой строки посимвольно и в случае первого символа несовпадения выдавайте результат – это существенно повышает длина пароля вместо возведения´скорость подбора (количество символов количества символов в степень длины пароля) – лучше вычислять имитоприставку строки
• Не используйте стандартных методов сверки, как то if EnterPassword=NeedPassword, или цикл и составление некоей контрольной суммы и проверки ее, или произведения неких операций, операндами которых служат введенный и эталонный пароли и т.д.
• Старайтесь вообще избегать проверок. Используйте возможность работать с данными, как с кодом и наоборот. Например, такой прием. Содержалась таблица адресов процедур или джампов, а программа к введенному паролю добавляла константу, получая смещение в таблице переходов. И переход туда!
Использование серийных номеров не годится для построения полноценной защиты от копирования. Используйте этот метод, как ловушку для невнимательного кракера. Когда вы четко будете знать, что если запускается какая-то процедурка, программа взломана. Элементарной ловушкой может быть условный переход, под ним MessageBox, сообщающий «Вы завершили регистрацию!», а затем вызов загадочной процедуры. Некоторые сразу подумают, что именно в это место программы нужно попасть, и попадаются. Только неявностью вы можете победить кракера.
Давайте сомнительные подтверждения на действия пользователя. Например, регистрация завершилась, а программа выдает ошибку, предлагая позвонить Продавцу. Какой-нибудь торопыга будет спешить и подумает, что это неверный ход программы. И действительно, программа после этого закрывается. На самом же деле, этот ACCESS VIOLATION 00000:7632621 не что иное, как неявный замаскированный вывод идентификационного номера машины. Честный покупатель звонит в магазин, сообщает номер своей лицензии (или товарного чека) и говорит о чудовищной ошибке. А вы ему говорите, нажмите CTRL+ALT+S. Опа, и программа побежала дальше.
Ограничения на время исполнения или количество запусков.
Примеры ломки: Ставится 2010 год. Ставится программу и возвращается дата на место. Существуют «пускалки», которые удерживают заданную дату при пуске какой-нибудь программы. И возвращают её на место при выходе из программа. Используя инструменты МОНИТОР REGISTRY и МОНИТОР ФАЙЛОВ, легко определяется, где и что вы прячете. Контрмеры для этих трех шагов обнаруживаются также элементарно и теми же средствами.
Итак, вы получили представление о мифе «достаточной защищенности регистрационных и шареварных программ». Не используйте эти методы по прямому назначению, т.е. для «защиты», а лишь для расстановки ловушек.

 

 

24. Виды деструктивных программ. Компьютерные вирусы и их классификация.

Виды деструктивных программ
Одним из основных источников угроз безопасности информации в КС является использование специальных программ, получивших общее название «вредительские программы». В зависимости от механизма действия вредительские программы делятся на четыре класса:
«логические бомбы»;
«черви»;
«троянские кони»;
«компьютерные вирусы».
программы-шпионы
«Логические бомбы» – программы или их части, постоянно находящиеся в ЭВМ или вычислительных системах (ВС) и выполняемые только при соблюдении определенных условий. Примерами таких условий могут быть: наступление заданной даты, переход КС в определенный режим работы, наступление некоторых событий установленное число раз и т.п.
«Червями» называются программы, которые выполняются каждый раз при загрузке системы, обладают способностью перемещаться в ВС или сети и самовоспроизводить копии. Лавинообразное размножение программ приводит к перегрузке каналов связи, памяти и, в конечном итоге, к блокировке системы.
«Троянские кони» — это программы, полученные путем явного изменения или добавления команд в пользовательские программы. При последующем выполнении пользовательских программ наряду с заданными функциями выполняются несанкционированные, измененные или какие-то новые функции.
Компьютерные вирусы — это небольшие программы, которые после внедрения в ЭВМ самостоятельно распространяются путем создания своих копий, а при выполнении определенных условий оказывают негативное воздействие на КС.
Программы-шпионы — программы, предназначенные для слежения за деятельностью пользователя и несанкционированного чтения обрабатываемой им информации.
Программы показа рекламы – отдельные или дополняющие программы, которые втайне собирают через Интернет информацию о пользователе и отправляют ее на другой компьютер. Такие программы могут отслеживать привычки пользователя при работе в сети Интернет в целях последующей рекламы. Кроме того, они используются для рассылки рекламы. К этому классу можно отнести и следящие программы – автономные или добавленные приложения, отслеживающие действия пользователя в сети Интернет и отправляющие эту информацию в целевую систему. Затем они собирают конфиденциальную информацию о поведении пользователя.

Пользователи могут по незнанию загрузить шпионские и рекламные программы с веб-узлов (обычно в виде бесплатных или условно бесплатных программ), в составе сообщений электронной почты и мгновенных сообщений. Часто пользователи по незнанию загружают рекламные программы, принимая лицензионные соглашения для других программ.
Программы набора номера – программы, которые без разрешения пользователя устанавливают через Интернет телефонные соединения с номерами серий 900- или узлами FTP, обычно для сбора денег.
Программы-шутки – программы, которые изменяют или прерывают работу компьютера способом, который их создатель счел смешным или, наоборот, пугающим. Например, такие программы можно загрузить с веб-узлов (обычно в виде бесплатных или условно бесплатных программ), в составе сообщений электронной почты и мгновенных сообщений. После этого, например, мусорная корзина может начать «убегать» от пользователя или действие кнопок мыши поменяется на противоположное.
Программы удаленного доступа – программы, которые позволяют получить доступ к компьютеру извне по сети Интернет для сбора информации, атаки на компьютер пользователя или внесения в него изменений. Например, такая программа может быть установлена пользователем, либо автоматически установлена в скрытой форме другим процессом. Программа может применяться с вредоносными целями с изменением или без изменения исходной программы удаленного доступа.
Средства взлома – программы, применяемые хакерами для получения несанкционированного доступа к компьютеру пользователя. Например, одним из средств взлома является программа отслеживания нажатий клавиш, которая регистрирует отдельные нажатия клавиш и отправляет эту информацию хакеру. Хакер может выполнить сканирование портов или потенциальных точек уязвимости. Кроме того, с помощью средств взлома можно создавать вирусы.
Угрозы для безопасности – угрозы, которые не соответствуют в точности определению вируса, троянского коня, червя и других категорий угроз, но могут представлять угрозы для компьютера и хранящихся на нем данных.
Поскольку вирусам присущи свойства всех классов вредительских программ, то в последнее время любые вредительские программы часто называют вирусами.

системами.

Классификация компьютерных вирусов
Вирусы можно разделить на классы по следующим основным признакам:
среда обитания;
операционная система (OC);
особенности алгоритма работы;
деструктивные возможности.
По среде обитания вирусы можно разделить на:
файловые;
загрузочные;
макро;
сетевые.
Файловые вирусы либо различными способами внедряются в выполняемые файлы (наиболее распространенный тип вирусов), либо создают файлы-двойники (компаньон-вирусы), либо используют особенности организации файловой системы (link-вирусы). Программные вирусы внедряются в исполняемые файлы, такие как .com, .exe и .dll, вставляя свои инструкции в выполняемую последовательность При запуске зараженного файла вставленные инструкции вызывают выполнение кода вируса. По окончании выполнения кода продолжается нормальное выполнение последовательности инструкций файла. Это происходит настолько быстро, что пользователь не замечает работы вируса.
Существует три подкласса файловых вирусов.
• Резидентные: остаются в памяти подобно резидентным программам (TSR) и обычно заражают все исполняемые файлы
• Прямого действия: Просто выполняются, заражая другие файлы, и выгружаются из памяти.
• Компаньоны: Создают двойники исполняемых файлов, не изменяя их. Например, вирус может создать файл-компаньон Word.com для файла Word.exe. При запуске программы Word выполняется зараженный файл Word.com, который производит определенные действия, а затем запускает файл Word.exe.
Загрузочные вирусы записывают себя либо в загрузочный сектор диска (boot-сектор), либо в сектор, содержащий системный загрузчик винчестера (Master Boot Record), либо меняют указатель на активный boot-сектор. Загрузочные вирусы распространяются наиболее успешно. Они просты в написании и перехватывают управление компьютером на низком уровне. Загрузочные вирусы могут повреждать главную загрузочную запись путем ее перемещения, перезаписи или удаления. Например, вирус Monkey перемещает главную загрузочную запись в третий сектор жесткого диска, а затем помещает в первый сектор свой собственный код. Перемещение главной загрузочной записи делает загрузку с жесткого диска невозможной.
Для поиска, считывания, загрузки и удаления файлов жесткий диск должен отслеживать, в каких секторах располагаются определенные порции данных. Данная информация содержится в таблицах разделов. Каждый раздел жесткого диска имеет собственную таблицу разделов. Вирусы могут поместить в таблицы разделов неверную информацию, что может сделать невозможной загрузку операционной системы.
Если компьютер загружается с зараженного гибкого диска, вирус инфицирует жесткий диск и загружает свой код в память. Для распространения вируса не требуется, чтобы диск являлся загрузочным. Вирус остается в памяти и заражает все гибкие диски при обращении к ним. Обычно инициатором проявления действия загрузочных вирусов являются значения системной даты или времени. Например, вирус Michelangelo является загрузочным вирусом, который удаляет содержимое жесткого диска зараженного компьютера 6 марта (день рождения Микеланджело).
Повреждения, причиняемые макровирусами, разнятся от вставки нежелательного текста в документы до значительного снижения производительности компьютера. Например, макрос Format.C отформатирует жесткий диск компьютера.
Макровирусы, инфицирующие программу Word, обычно поражают макросы шаблона Normal.dot. Этот шаблон является общим, поэтому будут заражены все файлы документов Word.
Сетевые вирусы используют для своего распространения протоколы или команды компьютерных сетей и электронной почты.
Существует большое количество сочетаний – например, файлово–загрузочные вирусы, заражающие как файлы, так и загрузочные сектора дисков. Такие вирусы, как правило, имеют довольно сложный алгоритм работы, часто применяют оригинальные методы проникновения в систему, используют стелс и полиморфик–технологии. Другой пример такого сочетания – сетевой макро–вирус, который не только заражает редактируемые документы, но и рассылает свои копии по электронной почте.
Заражаемая ОС (вернее, ОС, объекты которой подвержены заражению) является вторым уровнем деления вирусов на классы. Каждый файловый или сетевой вирус заражает файлы какой-либо одной или нескольких ОС, Windows, OS/2 и т.д. Макро-вирусы заражают файлы форматов Word, Excel, Office. Загрузочные вирусы также ориентированы на конкретные форматы расположения системных данных в загрузочных секторах дисков.
Среди особенностей алгоритма работы вирусов выделяются следующие пункты:
резидентность;
использование стелс-алгоритмов;
самошифрование и полиморфичность;
использование нестандартных приемов.
Резидентный вирус при инфицировании компьютера оставляет в оперативной памяти свою резидентную часть, которая затем перехватывает обращения операционной системы к объектам заражения и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения компьютера или перезагрузки ОС. Нерезидентные вирусы не заражают память компьютера и сохраняют активность ограниченное время. Некоторые вирусы оставляют в оперативной памяти небольшие резидентные программы, которые не распространяют вирус. Такие вирусы считаются нерезидентными.
Резидентными можно считать макро-вирусы, поскольку они постоянно присутствуют в памяти компьютера на все время работы зараженного редактора. При этом роль операционной системы берет на себя редактор, а понятие «перезагрузка ОС» трактуется как выход из редактора. В некоторых операционных системах ограничивается моментом инсталляции дисковых драйверов OC.
Использование стелс-алгоритмов позволяет вирусам полностью или частично скрыть себя в системе. Наиболее распространенным стелс–алгоритмом является перехват запросов OC на чтение/запись зараженных объектов. Стелс–вирусы при этом либо временно лечат их, либо «подставляют» вместо себя незараженные участки информации. В случае макро–вирусов наиболее популярный способ – запрет вызовов меню просмотра макросов.
Самошифрование и полиморфичность используются практически всеми типами вирусов для того, чтобы максимально усложнить процедуру детектирования вируса. Полиморфик–вирусы (polymorphic) — это достаточно труднообнаруживаемые вирусы, не имеющие сигнатур, т.е. не содержащие ни одного постоянного участка кода. В большинстве случаев два образца одного и того же полиморфик–вируса не будут иметь ни одного совпадения. Это достигается шифрованием основного тела вируса и модификациями программы-расшифровщика.
Различные нестандартные приемы часто используются в вирусах для того, чтобы как можно глубже спрятать себя в ядре OC, защитить от обнаружения свою резидентную копию, затруднить лечение от вируса (например, поместив свою копию в Flash-BIOS) и т.д.
По деструктивным возможностям вирусы можно разделить на:
• безвредные, т.е. никак не влияющие на работу компьютера (кроме уменьшения свободной памяти на диске в результате своего распространения);
• неопасные, влияние которых ограничивается уменьшением свободной памяти на диске и графическими, звуковыми и пр. эффектами, снижением производительности компьютера;
• опасные вирусы, которые могут привести к серьезным сбоям в работе компьютера;
• очень опасные, в алгоритм работы которых заведомо заложены процедуры, которые могут привести к потере программ, уничтожить данные, стереть необходимую для работы компьютера информацию, записанную в системных областях памяти, и способствовать быстрому износу движущихся частей механизмов – вводить в резонанс и разрушать головки некоторых типов винчестеров (непроверенно?), а так же воздействовать на пользователя (эффект 25–го кадра).
Но даже если в алгоритме вируса не найдено ветвей, наносящих ущерб системе, этот вирус нельзя с полной уверенностью назвать безвредным, так как проникновение его в компьютер может вызвать непредсказуемые и порой катастрофические последствия. Ведь вирус, как и всякая программа, имеет ошибки, в результате которых могут быть испорчены как файлы, так и сектора дисков. До сих пор попадаются вирусы, определяющие «COM или EXE» не по внутреннему формату файла, а по его расширению. Естественно, что при несовпадении формата и расширения имени файл после заражения оказывается неработоспособным. Возможно также «заклинивание» резидентного вируса и системы при использовании новых версий Windows или с другими мощными программными

 

 

25. Шпионские программы. Общая характеристика.

 

Общая характеристика программ–шпионов
Программное обеспечение и аппаратные устройства, предназначенные для скрытого слежения за деятельностью пользователей персональных компьютеров, получили в последнее время самое широкое распространение. Особую опасность представляют мониторинговые программные продукты и аппаратные устройства, которые могут быть скрытно и несанкционированно (как правило, дистанционно) установлены без ведома и согласия владельца (администратора безопасности) автоматизированной системы или без ведома владельца конкретного ПК. Данная категория мониторинговых продуктов именуется «программы-шпионы» или «продукты-шпионы».
Не все программы вредны — часть из них собирают и анализируют информацию с вполне понятными целями. Некоторые из них вы установили сознательно, зная об особенностях их работы.
Чаще всего spyware собирает информацию, ценную для маркетологов. Эти странные люди в своей работе занимаются не чем другим, как наблюдением за состоянием рынка и поведением его участников. Рекламодателей вряд ли заинтересует тот факт, что некий Вася Пупкин в течение недели заходит на сайт о вкусной и здоровой пище и просматривает рецепты итальянских блюд. Между тем, если таких вась накопилось несколько тысяч и маркетологу известно об их географическом расположении, то за эту информацию будут готовы заплатить пиццерии, продавцы кухонной утвари и издатели книг о вкусной и здоровой пище.
Иногда spyware применяется в конкурентной борьбе. Например, некоторые пользователи устанавливают на свой компьютер специальные рекламные модули в надежде заработать. Они показывают рекламу, за просмотр которой можно получить вознаграждение. Используются эти модули для нацеленной рекламы. Предположим, вы зашли на сайт книжного магазина “А”, выбрали нужный товар, занесли его в корзину и тут в рекламном модуле, который находился у вас перед глазами, появилась надпись «Зайдите в книжный магазин Б и эту книгу вы купите на 100 руб дешевле». Что это означает? Книжный магазин Б только что увел клиента из-под носа магазина А, причем это произошло без ведома последнего.
Отслеживая ваши предпочтения, «жучки» накапливают все больше информации, и вскоре у компании, занимающейся исследованием рынка, собирается очень даже неплохая база данных. По данным Forrester Research, только американская экономика еще два года назад потеряла 3 млрд. долл. из-за опасений пользователей делиться персональной информацией online. Программы, следящие за деятельностью посетителей Сети, были загружены 22 млн. раз.
Санкционированные мониторинговые программные продукты используется администратором безопасности вычислительной системы для обеспечения ее наблюдаемости – «свойства вычислительной системы, позволяющего фиксировать деятельность пользователей и процессов, использование пассивных объектов, а также однозначно устанавливать идентификаторы причастных к определенным событиям пользователей и процессов с целью предотвращения нарушения политики безопасности и/или обеспечения ответственности за определенные действия».
Между мониторинговыми продуктами для обеспечения наблюдаемости и продуктами-шпионами очень тонкая грань – это грань между управлением безопасностью и нарушением безопасности. Наличие таких функций как:
1. возможность предварительной конфигурации модуля (клиента, агента и т.п.) мониторинга и получение «скомплектованного» исполнимого файла, который при инсталляции не выводит никаких сообщений и не создает окон на экране;
2. встроенные средства доставки и дистанционной установки сконфигурированного модуля на компьютер пользователя;
превращает продукт для мониторинга и наблюдаемости в продукт-шпион. Наличие же в программе следующих требований:
1. возможность инсталляции и конфигурации модуля мониторинга только при непосредственном физическом доступе к компьютеру пользователя;
2. обязательное наличие прав администратора для инсталляции и конфигурации программы;
делает продукт малопригодным для шпионских целей и. Исключение составляют случаи, когда, например, злоумышленником является сам администратор.
Законность/незаконность использования мониторинговых (и шпионских) программ зависит от законодательства каждой конкретной страны (или административной единицы), а также от соблюдения правил использования этих программ, установленных законодательством.
Их применение мониторинговых программы позволяет специалисту, ответственному за информационную безопасность предприятия:
• определить (локализовать) все случаи попыток несанкционированного доступа к конфиденциальной информации с точным указанием времени и сетевого рабочего места, с которого такая попытка осуществлялась;
• определить факты несанкционированной установки программного обеспечения;
• проконтролировать возможность использования персональных компьютеров в нерабочее время и выявить цель такого использования;
• определить все случаи несанкционированного использования модемов в локальной сети путем анализа фактов запуска несанкционированно установленных специализированных приложений;
• определить все случаи набора на клавиатуре критичных слов и словосочетаний, подготовки каких-либо критичных документов, передача которых третьим лицам приведет к материальному ущербу;
• определить факты нецелевого использования персональных компьютеров;
• получить достоверную информацию, на основании которой будет разрабатываться политика информационной безопасности предприятия;
• контролировать доступ к серверам и персональным компьютерам;
• контролировать контакты пользователей в сети Интернет;
• проводить информационный аудит;
• исследовать и расследовать компьютерные инциденты;
• проводить научные исследования, связанные с определением точности, оперативности и адекватности реагирования персонала на внешние воздействия;
• определить загрузку компьютерных рабочих мест предприятия;
• восстановить критическую информацию после сбоев компьютерных систем.
Применение ПШ позволяет злоумышленнику:
1. несанкционированно перехватывать чужую информацию;
2. осуществлять шпионаж;
3. собирать статистику о пользователе в рекламных целях;
4. получить несанкционированный доступ к системам «банк-клиент»;
5. получить несанкционированный доступ к системам криптографии пользователя ПК – открытым и закрытым ключам, парольным фразам;
• получить несанкционированный доступ к авторизационным данным кредитных карточек.
• изменение текста сообщений электронной почты – снабжать каждое исходящее письмо и приложение рекламным блоком, модифицировать содержание файлов и т. д.
• генерировать всплывающие окна броузера, содержащие рекламные сообщения.
• занимать системные ресурсы.
В особый класс программ–шпионов следует отнести программы–шпионы в сотовых телефонах.

 

 

26. Программные кейлогеры.

 

Программные кейлоггеры
Одна из наиболее опасных особенностей всех программ-шпионов и аппаратных устройств-кейлоггеров — регистрация нажатий клавиш, сделанных пользователем, с целью контроля компьютерной активности. Когда пользователь набирает на клавиатуре пароль и данные своей кредитной карточки, возможно, в этот момент записывается каждое нажатие клавиши. Кроме этого, современные программы-шпионы позволяют захватывать текст из окон приложений и делать снимки (скриншоты) экрана и отдельных окон. Другими словами, программа-шпион может перехватить текст из документа, даже если пользователь его не набирал с клавиатуры, а просто открыл и просмотрел файл.
Программные кейлоггеры, предназначенные для контроля информации, вводимой пользователем персонального компьютера. Программные кейлоггеры (keyloggers, key loggers, keystroke loggers, key recorders, key trappers, key capture programs и множество других вариантов названия) принадлежат к той группе программных продуктов, которые осуществляют контроль над деятельностью пользователя персонального компьютера. Первоначально программные продукты этого типа предназначались исключительно для записи информации о нажатиях клавиш клавиатуры, в том числе и системных, в специализированный журнал регистрации (Log-файл), который впоследствии изучался человеком, уставившим эту программу. Log-файл может отправляться по сети на сетевой диск, ftp сервер в сети Интернет, по Email и др. В последнее время программные продукты, имеющие данное название, выполняют много дополнительных функций — это перехват информации из окон, перехват кликов мыши, «фотографирование» снимков экрана и активных окон, ведение учета всех полученных и отправленных Email, мониторинг файловой активности, мониторинг системного реестра, мониторинг очереди заданий, отправленных на принтер, перехват звука с микрофона и видео-изображения с веб-камеры, подключенных к компьютеру и др. Кейлоггеры могут быть встроены в коммерческие, бесплатные и условно-бесплатные программы, троянские программы, вирусы и черви.
В последнее время отмечается тенденция использования в кейлоггерах методов сокрытия (маскировки) своих файлов — так, чтобы их нельзя было найти вручную или с помощью антивирусного сканера. Такие методы принято называть rootkit- технологиями. Можно выделить два основных типа технологий сокрытия, используемых кейллоггерами:
• с использованием методов сокрытия пользовательского режима (UserMode);
• с использованием методов сокрытия режима ядра операционной системы (KernelMode).
В качестве примера можно привести эпидемию червя Mydoom, который содержал в себе кейлоггер. Эта эпидемия вызвала целую волну публикаций, показывающих особую актуальность проблемы. Многие серьезные и наиболее опасные предшественники Mydoom также содержали кейлоггеры. При этом нередко для распространения червей использовалась известная уязвимость IFrame браузера Internet Explorer, которая позволяла запустить произвольный код на компьютере пользователя при простом просмотре HTML документа в браузере или почтовом клиенте Outlook. И хотя она была «залатана» еще в 2001 году, широкомасштабные вирусные эпидемии в недавнем прошлом показали, что многие до сих пор работают на устаревших системах без обновлений, несмотря на регулярные предупреждения антивирусных компаний. Кроме того, компания Microsoft регулярно выпускает патчи, закрывающие уязвимости, позволяющие злоумышленнику выполнять произвольный код на компьютере пользователя.
Примерами известных программных кейлоггеров являются Activity Logger, Boss Everyware, Ghost Keylogger, HookDump, IamBigBrother, Invisible KeyLogger Stealth, iOpus STARR, iSpyNOW, KeyCopy, KeyKeeper, KeyKey, KeyLog, KeySpy, Keystroke Reporter, PC Spy, Perfect Keylogger, ProBot, Realtime Spy, Spector Pro, SpyAgent, SpyBuddy, WinWhatWhere Investigator. В мире на сегодняшний день существуют сотни подобных продуктов, отличающихся друг от друга функциональностью, удобством работы, информативностью отчетов, возможностями по невидимости и защите от обнаружения/удаления.

 

 

27. Варианты реализации программных кейлогеров

 

Кейлоггеры пользовательского режима
Кейлоггеры могут внедряться в любом месте последовательности обработки, перехватывая данные о нажатых клавишах, передаваемые одной подсистемой обработки следующей подсистеме в цепочке обработчиков.
Кейлоггеры пользовательского режима наиболее простые как для реализации, так и для обнаружения, поскольку для перехвата они используют вызовы известных и хорошо документированных функций программного интерфейса Win32 API.
Установка ловушки для клавиатурных сообщений
Это самый распространенный метод реализации. Посредством вызова функции SetWindowsHookEx кейлоггер устанавливает глобальную ловушку на клавиатурные события для всех потоков в системе. Фильтрующая функция ловушки в этом случае располагается в отдельной динамической библиотеке, которая внедряется во все процессы системы, занимающиеся обработкой сообщений. При выборке из очереди сообщений любого потока клавиатурного сообщения система вызовет установленную фильтрующую функцию.
К достоинствам этого метода перехвата относится простота и гарантированный перехват всех нажатий клавиатуры, из недостатков можно отметить необходимость наличия отдельного файла динамической библиотеки и относительную простоту обнаружения по причине внедрения во все системные процессы.
Примером кейлоггеров, использующих данный метод реализации, являются AdvancedKeyLogger, KeyGhost, Absolute Keylogger, Actual Keylogger, Actual Spy, Family Key Logger, GHOST SPY, Haxdoor, MyDoom и другие.
Использование циклического опроса состояния клавиатуры
Является вторым по распространенности методом реализации. Состояние всех клавиш с небольшим интервалом опрашивается с помощью функций GetAsynсKeyState или GetKeyState. Данные функции возвращают массивы асинхронного или синхронного состояния клавиш; анализируя их, можно понять, какие клавиши были нажаты или отпущены после последнего опроса.
Достоинства данного метода — предельная простота реализации, отсутствие дополнительного модуля (как и в случае с использованием ловушки), недостатки — отсутствие гарантии обнаружения всех нажатий, могут быть пропуски; легко обнаруживается мониторингом процессов, опрашивающих клавиатуру с высокой частотой.
Данный метод реализации используется в таких кейлоггерах, как Computer Monitor, Keyboard Guardian, PC Activity Monitor Pro, Power Spy, Powered Keylogger, Spytector, Stealth KeyLogger, Total Spy.
Внедрение в процесс и перехват функций обработки сообщений
Редко реализуемый метод реализации кейлоггера. Кейлоггер внедряется во все процессы и перехватывает в них функции GetMessage или PeekMessage (см. раздел «Обработка сообщений конкретным окном») из библиотеки user32.dll. Для этого могут быть использованы различные методы: сплайсинг (сплайсинг — метод, используемый для перехвата вызова API-функций; суть метода состоит в замене нескольких (обычно 5) первых байт функции инструкцией JMP, передающей управление коду- перехватчику), модификация таблицы адресов импортируемых функций IAT, перехват функции GetProcAddress, возвращающей адрес функции из загруженной динамической библиотеки. Кейлоггер может реализовываться в виде DLL или при помощи непосредственного внедрения кода в целевой процесс.
В результате получается следующее: когда приложение вызывает, к примеру, функцию GetMessage для получения следующего сообщения из очереди сообщений, этот вызов приходит в код перехватчика. Перехватчик вызывает исходную функцию GetMessage из user32.dll и анализирует возвращаемые результаты на предмет типа сообщений. При получении клавиатурного сообщения вся информации о нем извлекается из параметров сообщения и протоколируется кейлоггером.
К достоинствам следует отнести эффективность: ввиду малой распространенности метода лишь небольшое число программ позволяет находить подобные кейлоггеры; кроме того, против подобных кейлоггеров бесполезны стандартные экранные клавиатуры, так как посылаемые ими сообщения также перехватываются.
Недостатки: модификация таблицы IAT не гарантирует перехвата, т.к. адреса функций библиотеки user32.dll могут быть сохранены до того, как кейлоггер внедрился; сплайсинг имеет свои сложности, связанные, например, с необходимостью переписывать «на лету» тело функции.
Использование модели прямого ввода
В настоящий момент известен лишь один пример реализации данного метода — утилита тестирования защищенности системы от кейлоггеров. Суть метода заключается в использовании новой модели прямого ввода, для чего кейлоггер регистрирует клавиатуру в качестве устройства, от которого он хочет получать ввод. После этого кейлоггер начинает получать данные о нажатых и отпущенных клавишах через сообщение WM_INPUT.
Достоинства — простота реализации и эффективность: ввиду того, что данный метод стал широко известен лишь недавно, почти ни одна из защитных программ не обладает пока возможностями борьбы с подобными кейлоггерами.
Недостатки — простота обнаружения по причине необходимости специальной регистрации на получение приложением прямого ввода (по умолчанию ни один из процессов в системе его не получает).
Кейлоггеры режима ядра
Кейлоггеры режима ядра значительно более сложные, чем кейлоггеры пользовательского режима — как для реализации, так и в плане обнаружения. Они требуют специальных знаний для написания, но позволяют создавать кейлоггеры, абсолютно незаметные для всех приложений пользовательского режима. Для перехвата могут использоваться как документированные в Microsoft Driver Development Kit, так и недокументированные методы.
Использование драйвер-фильтра драйвера класса клавиатуры Kbdclass
Документированный в DDK способ перехвата (см. раздел «Стек драйверов для Plug and Play PS/2- клавиатуры»). Кейлоггеры, построенные на основе этого метода, перехватывают запросы к клавиатуре посредством установки фильтра поверх устройства «\Device\KeyboardClass0», созданного драйвером Kbdclass (см. раздел «Стек устройств для Plug and Play PS/2-клавиатуры»). Фильтруются только запросы типа IRP_MJ_READ, поскольку именно они позволяют получить коды нажатых и отпущенных клавиш.
Достоинства — гарантированный перехват всех нажатий, невозможность обнаружения без использования драйвера, благодаря чему не все антикейлоггеры их определяют. Недостатки — необходимость установки собственного драйвера.
Самыми известными кейлоггерами, использующими данный метод реализации, являются ELITE Keylogger и Invisible KeyLogger Stealth.
Использование драйвер-фильтра функционального драйвера i8042prt
Документированный в DDK способ перехвата. Кейлоггеры, построенные на основе этого метода, перехватывают запросы к клавиатуре посредством установки фильтра поверх безымянного устройства, создаваемого драйвером i8042prt под устройством Device\KeyboardClass0 (см. раздел «Стек устройств для Plug and Play PS/2-клавиатуры»). Драйвер i8042prt предоставляет собой программный интерфейс для добавления дополнительной функции обработки прерывания IRQ1 (IsrRoutine), в которой можно произвести анализ полученных от клавиатуры данных.
Достоинства и недостатки аналогичны описанным для метода, в предыдущем пункте. Но есть и дополнительный недостаток — зависимость от типа клавиатуры: драйвер i8042prt обрабатывает запросы только от PS/2 клавиатуры, поэтому рассматриваемый метод не пригоден для перехвата данных, вводимых через USB или беспроводную клавиатуру.
Kaspersky Internet Security проактивно детектирует такие кейлоггеры как Keylogger путем мониторинга клавиатурного стека устройств (должна быть включена опция «Обнаружение клавиатурных перехватчиков» подсистемы «Анализ активности приложений» модуля проактивной защиты).
Модификация таблицы системных сервисов KeServiceDescriptorTableShadow
Достаточно распространенный метод реализации кейлоггеров, функционально аналогичный методу реализации пользовательского режима. Кейлоггеры, построенные на основе этого метода, перехватывают запросы к клавиатуре посредством патчинга точки входа NtUserGetMessage/PeekMessage во второй таблице системных сервисов (KeServiceDescriptorTableShadow) драйвера win32k.sys. Информация о нажатии клавиши приходит в перехватчик, когда в каком-либо потоке завершается вызов функций GetMessage или PeekMessage.
Достоинством данного метода является сложность его обнаружения, недостатком — относительная сложность реализации (поиск самой таблицы KeServiceDescriptorTableShadow — непростая задача; помимо этого, другие драйвера могут ранее пропатчить точки входа в этой таблице) и необходимость установки отдельного драйвера.
Модификация кода функций NtUserGetMessage или NtUserPeekMessage путем сплайсинга
Крайне редко встречаемый тип кейлоггера. Кейлоггеры, построенные на основе этого метода, перехватывают запросы к клавиатуре, модифицируя код функций NtUserGetMessage или NtUserPeekMessage методом сплайсинга. Данные функции реализованы в ядре системы в драйвере win32k.sys и вызываются из соответствующих функций библиотеки user32.dll. Как указано в разделе «1.3. Внедрение в процесс и перехват функций GetMessage/ PeekMessage», эти функции позволяют фильтровать все получаемые приложениями сообщения и получать данные о нажатии и отпускании клавиш из клавиатурных сообщений.
Достоинством данного метода является сложность его обнаружения, недостатком — трудности реализации (необходимость переписывать тело функции «на лету», зависимость от версии операционной системы и установленного программного обеспечения), а также необходимость установки драйвера.
Подмена драйвера в клавиатурном стеке драйверов
Данный метод основан на подмене драйвера Kbdclass или одного из низкоуровневых драйверов клавиатуры драйвером собственной разработки. Явным недостатком данного метода является сложность реализации, так как заранее не известен тип применяемой пользователем клавиатуры, а потому подмену драйвера сравнительно просто обнаружить. Вследствие этого подобный метод практически не реализуется на практике.
Реализация собственного драйвера-обработчика прерывания IRQ 1
Метод заключается в написании своего драйвера режима ядра, перехватывающего прерывание от клавиатуры (IRQ 1) и напрямую обращающегося к ее портам ввода-вывода (60h, 64h). В связи со сложностью реализации и не совсем ясным способом взаимодействия с системным обработчиком прерывания IRQ 1 (драйвером i8042prt.sys) в настоящее время метод является сугубо теоретическим.
Рассмотренная схема клавиатурного ввода в ОС Windows достаточно сложна, и практически на любом ее этапе можно установить перехватчик. На некоторых шагах алгоритма перехватчики уже реализованы, на некоторых еще нет.
Существует зависимость распространенности кейлоггера от сложности его реализации. Так, наиболее распространенные методы перехвата — установка ловушки на события ввода и циклический опрос состояния клавиатуры — являются в то же время самыми простыми в реализации. Написать кейлоггер, использующий данные методы, может даже человек, научившийся программировать неделю назад.
Основная масса существующих в настоящее время кейлоггеров представляет собой достаточно простой в реализации инструмент, который можно легко использовать во вредоносных целях, в первую очередь для кражи вводимой с клавиатуры конфиденциальной информации.

 

 

 

 

 

 

 

 

28. Аппаратные кейлогеры.

 

Аппаратные кейлоггеры
В класс средств шпионажа можно отнести аппаратные кейлоггеры, предназначенные для контроля информации, вводимой пользователем персонального компьютера с клавиатуры (keystroke recording device, hardware keylogger и пр.) представляют собой миниатюрные приспособления, которые могут быть прикреплены между клавиатурой и компьютером или встроены в саму клавиатуру. Они регистрируют все нажатия клавиш, сделанные на клавиатуре. Процесс регистрации абсолютно невидим для конечного пользователя. Аппаратные кейлоггеры не требуют установки какой-либо программы на компьютере интересующего объекта, чтобы успешно перехватывать все нажатия клавиш. Такое устройство может быть тайно прикреплен к ПК объекта кем угодно — коллегой, уборщицей, посетителем и т.д.. Когда аппаратный кейлоггер прикрепляется, абсолютно не имеет значения, в каком состоянии находится компьютер — включенном или выключенном.
Затем атакующий может снять устройство в любой удобный момент, а его содержимое (записанные нажатия клавиш) скачать, когда ему это будет удобно. Объемы внутренней энергонезависимой памяти данных устройств позволяют записывать до 10 миллионов нажатий клавиш. Данные устройства могут быть выполнены в любом виде, так что даже специалист не в состоянии иногда определить их наличие при проведении информационного аудита.
Существуют три основных разновидности реализации аппаратных кейлоггеров: кейлоггер, встраиваемый в саму клавиатуру; кейлоггер, встраиваемый в разрыв кабеля, соединяющего клавиатуру и системный блок; кейлоггер, встраиваемый в системный блок компьютера. Сложнее всего обнаружить (и обезвредить) внутренний аппаратный кейлоггер, у которого аппаратный модуль перехвата нажатий клавиш встроен в корпус клавиатуры. Самым же распространенным является второй тип аппаратных кейлоггеров, один из самых известных примеров которых — KeyGhost USB Keylogger. Другие известные аппаратные кейлоггеры: KeyKatcher, MicroGuard, Hardware KeyLogger, производителями которых являются компании Allen Concepts Inc., Amecisco, KeyGhost Ltd., MicroSpy Ltd.
К аппаратным средствам перехвата компьютерной информации можно отнести системы видеонаблюдения за монитором или клавиатурой.

 

 

29. Методы противодействия  программам-шпионам и аппаратным кейлогерам.

 

Методы противодействия программам-шпионам
Для обнаружения и удаления мониторинговых программных продуктов, которые могут быть установлены без ведома пользователя ПК, в настоящее время используются программы различных типов, обеспечивающие более или менее эффективную защиту исключительно только против ИЗВЕСТНЫХ программ-шпионов с помощью сигнатурного анализа. Для эффективной работы программ данного типа необходимо получить образец программы-шпиона, выделить из нее сигнатуру и включить данную сигнатуру в свою базу. При обновлении сигнатурной базы пользователи персонального компьютера получают возможность бороться с данным вариантом программы-шпиона. По данному принципу работают многие известные фирмы производители антивирусного программного обеспечения. Но есть и другая группа программ-шпионов, которая наиболее опасна для любых автоматизированных систем — это НЕИЗВЕСТНЫЕ программы-шпионы. Они подразделяются на программы пяти типов:
• Программы-шпионы, разрабатываемые под эгидой правительственных организаций (как пример — продукт Magic Lantern, проект под названием Cyber Knight, США).
• Программы-шпионы, которые могут создаваться разработчиками различных ОС и включаться ими в состав ядра ОС.
• Программы-шпионы, которые разработаны в ограниченном количестве (часто только в одной или нескольких копиях) для решения конкретной задачи, связанной с похищением критической информации с компьютера пользователя (например, программы, применяемые хакерами-профессионалами). Данные программы могут представлять собой немного видоизмененные открытые исходные коды программ-шпионов, взятые из сети Интернет и скомпилированные самим хакером, что позволяет изменить сигнатуру программы-шпиона.
• Коммерческие, особенно, корпоративные программные продукты, которые очень редко вносятся в сигнатурные базы, а если и вносятся, то только по политическим мотивам (как пример — программные продукты таких известных фирм, как WinWhatWhere Corporation, SpectorSoft Corporation, ExploreAnywhere Software LLC, Omniquad Ltd. и др.).
• Программы-шпионы, представляющие собой keylogging модули включаемые в состав программ-вирусов. До внесения сигнатурных данных в вирусную базу данные модули являются неизвестными. (Пример — всемирно известные вирусы, натворившие много бед в последние годы, имеющие в своем составе модуль перехвата нажатий клавиатуры и отправки полученной информации в сеть Интернет).
Информация о программах-шпионах первого и третьего типа, как правило (если не происходит утечек информации), нигде не опубликовывается, и, соответственно, их код не может быть внесен в сигнатурные базы, поэтому они не могут обнаруживаться никакими программными продуктами, использующими сигнатурный анализ.
Информация о программах-шпионах второго типа нигде не опубликовывается, данный код работает на уровне ядра операционной системы и, соответственно, они не могут обнаруживаться никакими приложениями.
Информация о программах-шпионах четвертого типа вносится в сигнатурные базы очень редко, так как это противоречит законодательству многих стран мира. Но даже если и внести такие программы в сигнатурные базы, то деактивировать, а, тем более, удалить их зачастую невозможно без разрушения операционной системы. Они не имеют своих процессов, а прячутся в виде потоков в системные процессы, они могут работать только с памятью компьютера и не работать с жестким диском, они имеют режимы контроля целостности и самовосстановления после сбоев.
Информация о программах-шпионах пятого типа вносится в сигнатурные базы через несколько часов или дней после начала соответствующей вирусной атаки. А за это время конфиденциальная информация пользователя персонального компьтера уже может быть украдена и отослана в сеть Интеренет на заранее подготовленный вирусописателем адрес.
Решение данной проблемы возможно только в использовании комплекса продуктов: Программный продукт 1 использует эвристические механизмы защиты против программ-шпионов, созданные специалистами, имеющими больший опыт борьбы с программами-шпионами. Он оказывает защиту непрерывно и не использует сигнатурные базы. Программный продукт 2 — Антивирусный программный продукт, использующий постоянно обновляемые сигнатурные базы. Продукт 3 — персональный Firewall, контролирующий выход в сеть Интернет с ПК на основании политик, которые устанавливает сам пользователь. Персональный Firewall должен быть правильно сконфигурирован, т. к. некоторые коммерческие мониторинговые программы используют процессы программных продуктов, которым заведомо разрешен выход в Интернет (браузеры, почтовые клиенты и т.д.). Как правило, пользователь обязан разрешить им выход в Интернет. Это приводит к тому, что та информация, которая была уже украдена при полном бездействии файрвола будет передана в Интернет.
Антивирусных программных продуктов, использующих постоянно обновляемые сигнатурные базы, в мире создано великое множество (AVP, Dr.Web, Panda Antivirus, Norton Antivirus). Персональных межсетевых экранов создано еще больше (Norton Internet Security, BlackICE Defender, GuardianPro Firewall, Tiny Personal Firewall). Программные продукты первого типа должны иметь возможность отличить работу ПШ от любого иного приложения, которое установлено в системе и обеспечивать защиту от перехвата нажатий клавиш клавиатуры, защиту от перехвата текста из окон, защиту от снятия изображения рабочего стола, защиту от снятия изображения активных окон.
Для собственной защиты от внешнего разрушительного воздействия программ-шпионов должна имеется система контроля целостности и другие защитные функции.
Методы противодействия аппаратным кейлоггерам
Программные продукты не в состоянии определить наличие установленных аппаратных устройств, которые перехватывают нажатия клавиатуры ПК. Существует только два метода противодействия аппаратным кейлоггерам при работе на стандартном ПК:
• физический поиск и устранение аппаратного кейлоггера;
• использование виртуальных клавиатур для ввода особо важной информации (логины, пароли, коды доступа, PIN коды кредитных карт и т.д.).
Программный продукт PrivacyKeyboard имеет в своем составе модуль защиты от аппаратных кейлоггеров, выполненный в виде виртуальной экранной клавиатуры, которая вызывается пользователем в случае необходимости. Раскладка виртуальной клавиатуры переключается автоматически при переключении раскладки основной клавиатуры и поддерживает все языки и раскладки, установленые в ОС Windows NT/2000/XP.
Модуль блокирования программных кейлоггеров является активным по умолчанию, обеспечивая постоянную и прозрачную защиту от различных типов программных кейлоггеров. Его можно выключить/включить щелчком мыши на иконке в системном трее. PrivacyKeyboard подавляет кейлоггеры, включённые в состав коммерческих, бесплатных и условно бесплатных продуктов, а также «троянских коней» и вирусов, использующих разные принципы функционирования и основанных на модулях пользовательского уровня либо уровня ядра системы – dll, exe, sys и др., которые создают лог-файлы на ЖМД, в памяти, реестре, на сетевых дисках, либо пересылают лог-файлы на заранее указанные адреса по протоколам SMTP, FTP, HTTP и др.
7.3.8 Использование скрытых каналов
Особый класс программ–шпионов могут составлять «недобросовестные» программы, которым пользователь добровольно доверяет свою персональную информацию, надеясь, что реализуемая в системе политика безопасности не позволит получить несанкционированный доступ к ней.
Примером могут быть какие–либо серверные программы, которые ведут обработку клиентской информации через сеть. Предположим, что политика безопасности такова, что данная серверная программа не может создавать файлы, в которые она теоретически могла бы записать приватную информацию клиентов и передать её в дальнейшем третьим лицам. Или, например, может создавать файлы, но доступ к ним никто кроме неё получить не может. Возникает иллюзия, что «недобросовестный» сервер не может распространить обрабатываемую им информацию. На практике же каналом передачи данных могут быть не только логические области памяти или диска (сегменты данных или файлов), но и реальные физические объекты, наличие или отсутствие которых может кодировать «0» и «1» соответственно. Существование или отсутствие данного объекта может периодически фиксироваться третьей стороной, тем самым она воспринимает какую–то кодовую последовательность, которая и может нести секретную информацию клиента.
В качестве физических объектов могут быть использованы:
• файлы – некоторые ОС, например UNIX, позволяют программе, которая обращается к файлу, получить информацию о том, существует ли он реально, даже если доступ к нему запрещён;
• загруженность процессора – сервер специально загружает процессор пустыми операциями, соответственно у остальных процессов увеличивается время отклика;
• интенсивность сетевого трафика;
• интенсивность обращений к диску.
Недостатками скрытого канала являются низкая скорость передачи данных, сильная зашумлённость и возможные ошибки синхронизации. Первый не так важен, а 2–й и 3–й устраняют, используя помехоустойчивое кодирование. Очевидно, что такой сложный метод шпионажа, как скрытые каналы, может быть использован лишь для получения особо ценных сведений.
Методов борьбы со скрытыми каналами как таковых не существуют. Все они носят скорее организационный характер и не направлены непосредственно на борьбу с данным видом угроз. Это:
• использование сертифицированных программных продуктов,
• отслеживания состояния работы вычислительного комплекса или отдельного ПК (периодическая спонтанная активность процесса, создание или удаление файлов может вызывать подозрения)
• минимизация передаваемых по сети секретных данных (их обработка по возможности должна вестись локально).

 

 

 

 

 

30. Системы ЗИ на основе нейросетей.

Идентификация по манере поведения пользователя.
Нейросистема NNID основана на идентификации авторизованного пользователя, на основе распределения команд, которые он выполняет. Это является оправданным, потому что различные пользователи имеют тенденцию использовать различные режимы работы в зависимости от своих потребностей в системе. Некоторые используют систему только для отправки и получения писем, и не пользуются такими услугами, как программирование и компиляция. Некоторые используют все виды деятельности, включая редактирование, программирование, отправку-прием писем, работу в Internet и т.д. Однако, даже два пользователя, которые делают одно и то же, возможно, не будут использовать одну и ту же прикладную систему. Кроме того, частота использования одной и той же команды может изменяться от пользователя к пользователю. Набор используемых команд и их частота, таким образом, образуют «отпечаток» пользователя, отражая выполняемую задачу и выбор прикладных программ, и на основе этой информации становится возможным идентифицировать пользователя.
Этот подход работает, даже если некоторые пользователи специально изменили набор заданных параметров для того, чтобы как можно меньше заниматься ручным набором длинных команд, которыми они часто, пользуются, потому, что, журнал, регистрации, событий записывает действительные команды, выполняемые системой. Частная жизнь пользователей не нарушается, поскольку нет необходимости записывать аргументы для команды. То есть, надо знать, что пользователь отправляет e-mail пять раз в день, но нет необходимости знать кому-то или иное письмо было адресовано.
Построение NNID для конкретной вычислительной системы состоит из следующих трех фаз:
• Сбор обучающих данных. Получение регистрационных записей для каждого пользователя за период из нескольких дней. Для каждого дня и пользователя составляется вектор, который представляет насколько часто пользователь выполняет каждую из команд.
• Обучение. Обучение нейросети идентифицировать пользователя на основе этих векторов распределения команд.
• Характеристика: сеть идентифицирует пользователя для каждого нового вектора распределения команд. Если предположение сети отличается от действительного пользователя или сеть не имеет ясного представления, значит, имеет место аномалия.
Достоинства подобных механизмов:
• Постоянная идентификация (во время всего сеанса работы).
• Нет необходимости ввода пароля.
• Не требуется заботиться о хранении индивидуальных УВИП.
• Независимость скорости обнаружения аномалий в поведении от числа пользователей (поскольку сеть может достаточно хорошо изучать шаблоны пользователей).
• Достаточно и низкая вероятность ошибок первого и второго рода.
Недостатки:
• Сложность применения системы к большому количеству пользователей (сеть должна производить более четкие различия, и ей будет трудно сохранять такой же низкий уровень ложных тревог, т.к. любая деятельность, которая отличается от обычного режима работы пользователя, будет обнаруживаться как аномальная)
• Обучение для представления большого количества пользователей может занять довольно много времени и потребует более крупной сети.
• Необходима оптимизация набора команд, включенных в вектор пользователя.
• Изменение режима работы пользователя с течением времени (если он изменяется значительно, например, если пользователю была поручена новая работы, система должна часто перекалибровываться или количество ложных уведомлений об опасности будет возрастать).
Искусственные нейросети были предложены в качестве альтернативы компонентам статистического анализа систем обнаружения аномалий в действиях пользователей. Статистический анализ включает статистическое сравнение текущих событий с предварительно определенным набором эталонных критериев. Этот метод наиболее часто используется при обнаружении отклонений от типичного режима и определяет события, аналогичные событиям, которые указывают на НСД. Нейросети были специально предложены для того, чтобы идентифицировать типичные характеристики пользователей системы и идентифицировать статистически значимые отклонения от установленного режима работы пользователя.
Нейросетевые системы обнаружения атак на ресурсы ПК
Исследования и разработка систем обнаружения атак ведется с начала 80-х годов. Данные системы становятся все более сложными и разнообразными. Большинство из них детектируют атаки на основе правил и являются эффективными, если известны точные характеристики атаки. Однако виды НСД постоянно изменяются, поскольку хакеры используют индивидуальные подходы, а также в связи с регулярными изменениями в ПО и аппаратных средствах выбранных систем. Из-за неограниченного разнообразия атак и хакеров, даже специальные постоянные обновления базы данных правил экспертной системы никогда не дадут гарантии точной идентификации всего диапазона атак. Нейросети предлагают большое количество преимуществ в обнаружении этих атак, альтернативой к системам обнаружения НСД на основе правил.
Искусственные нейросети также предлагаются, например, для обнаружения компьютерных вирусов. Архитектура нейросети представляла сеть Кохонена, которая использует один слой нейронов для представления сведения от отдельного домена в форме геометрически организованной карты. Предлагаемая сеть была предназначена для изучения характеристик деятельности обычной системы и идентификации статистических отклонений от нормы, что может указывать на вирус.
Преимущества систем обнаружения НСД на основе нейросетей
• Гибкость. Нейросеть способна анализировать данные, даже если эти данные являются неполными или искаженными, обладает возможностью проводить анализ данных в нелинейном режиме. Способность обрабатывать данные от большого количества источников в нелинейном режиме является важной, поскольку некоторые атаки могут быть проведены скоординировано многочисленными хакерами. Скорость обработки в нейросети достаточна для реагирования в реальном времени на атаки до того, как появятся непоправимые повреждения.
• Нейросеть предоставляет возможность прогнозирования дальнейших злоупотреблений. Система обнаружения злоупотреблений на основе нейронной сети идентифицирует вероятность того, что отдельное событие, либо серия событий указывают, что против системы осуществляется атака. По мере того, как нейросеть «набирается опыта», она будет улучшать свою способность определять, в каком из этих событий наиболее вероятно имется признаки атаки. Затем эта информация может быть использована для генерации серии событий, которые должны реализовываться, если бы действительно имела место попытка атаки. Отслеживая последовательное местонахождение этих событий, система способна улучшить анализ событий и провести защитные мероприятия прежде, чем атака станет успешной.
• Способность нейросетей «изучать» характеристики атак и идентифицировать элементы, которые не похожи на те, что наблюдались прежде. Нейросеть может быть обучена распознавать известные подозрительные события с высокой степенью точности. Сеть имеет способность использовать эти знания для идентификации атак, которые неточно соответствуют характеристикам предыдущих вторжений. Вероятность атаки против системы может быть оценена и угроза обозначена, независимо от того, превышает или нет вероятность установленную пороговую величину.
Недостатки систем обнаружения злоупотреблений на основе нейросетей
• Требования к обучению нейросети. Поскольку способность искусственной нейросети идентифицировать указания на атаку полностью зависит от точности обучения системы, обучающие данные и используемые методы обучения являются наиболее важными. Порядок обучения требует большого количества данных с тем, чтобы убедиться, что результаты являются статистически значимыми. Обучение нейросети в целях обнаружения злоупотреблений, требует проведения тысячи атак, а такое количество информации трудно получить.
• Природа «черного ящика» нейросети. В отличие от экспертных систем, которые имеют жестко закодированные правила анализа событий, нейросети адаптированы на анализ данных по результатам обучения. Веса и активационные функции узлов обычно замораживаются после того, как сеть достигла допустимого уровня успеха в идентификации событий. Хотя анализ трафика достигает достаточно хорошего значения, базовый уровень его зачастую не известен. Проблема «черного ящика весьма характерна для нейросетевых приложений.
• Наиболее эффективная архитектура нейросети. Упреждающая нейросеть, которая использовала алгоритм обучения с обратным распространением, была выбрана из-за своей простоты и надежности в широком ряде приложений. Однако, альтернативы, такие как самоорганизующиеся карты, также обладают достоинствами при обнаружении злоупотреблений, которые, возможно, будут содействовать их использованию. Эффективный подход на основе нейросети должен быть высоко адаптивным. Большинство архитектур нейросетей должны повторно обучаться, если система является способной улучшать собственный анализ в ответ на изменения в картинах входных данных (например, «новые» события распознаются с последовательной вероятностью как атака вплоть до тех пор, пока сеть не переучится заново для лучшего распознавания этих событий). Теория адаптивного резонанса и самоорганизующихся карт предлагает более высокий уровень адаптируемости для нейросетей, и эти подходы исследуются для возможного использования в системах обнаружения атак.