- •Случайные угрозы безопасности информации и способы противодействия им
- •Преднамеренные угрозы безопасности информации и способы противодействия им
- •Способы и средства защиты информации от несанкционированного доступа
- •Свойства информации, обеспечивающиеся в автоматизированных системах, и угрозы для информационной безопасности
- •Уровни доступа к информации в автоматизированных системах и методы реализации угроз информационной безопасности
- •Основные принципы обеспечения информационной безопасности автоматизированных системах
- •Каналы доступа к информации и способы их перекрытия
- •Классификация криптографических систем
- •Симметричные криптосистемы: схема реализации, виды криптоалгоритмов
- •Алгоритмы подстановки
- •Метод перестановки
- •Метод замены с секретным ключом
- •Гаммирование
- •Криптосистемы с открытым ключом: схема реализации, алгоритм rsa
- •Криптоалгоритмы des и гост 28147-89 и их сравнение с rsa
- •Идентификация и классификация ключевых (идентификационных) признаков
- •Виды электронных ключей
- •Криптоанализ
- •Управление (разграничение) доступом
- •Методы защиты внешнего периметра
- •Методы защиты программ
- •Методы взлома программ
Методы защиты внешнего периметра
Подсистема включает 2 механизма
Средства межсетевого проектирования
Средство обнаружение вторжений
Межсетевой экран выполняет функции разграничения информационных потоков на границе защищаемой автоматизированной системы. Это позволяет:
повысить безопасность объектов внутренней среды за счет игнорирования не авторизованных запросов из внешней среды.
контролировать информационные потоки во внешнюю среду
регистрировать процессы
Выделяют несколько классов межсетевых экранов:
Фильтры пакетов (на сетевом и транспортных уровнях)
Фильтрация осуществляется по нескольким критериям
IP адрес источника
IP адрес получателя
Порт источника
Порт получателя
Параметры заголовков пакетов
Флаги установления соединения
Фильтрация реализуется путем сравнения параметров заголовка пакета со значениями, заданными в базе фильтрации.
Шлюзы сеансового уровня
Контролируют допустимость сеансов связи на основе протокола сеансового уровня.
Шлюзы прикладного уровня
Позволяют фильтровать отдельные виды команд в протоколах прикладного уровня. Для этого используются прокси-серверы.
Межсетевые экраны экспертного уровня
Соединяют в себе признаки первых трех экранов, но вместо прокси-сервера обычно используют алгоритм распознавания и обработки данных на уровне приложения.
Системы обнаружение вторжений представляют собой процесс выявления несанкционированного доступа или его попыток к ресурсам защищаемой системы. IDS представляет собой аппаратно-программный комплекс, состоящий из сенсора, который получает сетевой трафик ядра (модуля анализа, который сравнивает полученный трафик с имеющейся базой сигнатур атак с целью выявления попыток несанкционированного доступа). Если трафик совпадет с какой либо сигнатурой то сообщение о попытке НСД выводится на консоль и вызывается доступ анкетного реагирования, который используется для оперативного блокирования угрозы. Существуют 2 основные категории
IDS уровня сети. В таких системах сенсор функционирует на выделенном для этой цели хосте в защищаемом сегменте сети. Обычно сетевой адаптер этого хоста функционирует в режиме прослушивания, анализируя весь сетевой трафик.
IDS уровня хоста. Если сенсор находится внутри хоста то для анализа входного трафика используется информация об используемых ресурсов и записи средств протоколирования операционной системы.
IDS уровня сети не снижает общую производительность сети а IDS уровня хоста более эффективно выявляет атаки.
Методы защиты программ
Важнейшей составной частью системы защиты с использованием электронных ключей является ее программная компонента. Как правило, она включает в себя:
защитный «конверт» (Envelope)
API-функции (API - Application Program Interface)
Защита с использованием пристыковочного механизма (Envelope)
Системы автоматической защиты (automatic implementation systems) предназначены для защиты уже готовых программ без вмешательства в исходный код. Для встраивания защитного модуля внутрь готовой программы используется «вирусная» технология вживления и перехвата на себя управления после загрузки. После отработки специальных антиотладочных и антитрассировочных механизмов, выполняются следующие действия:
проверяется наличие электронного ключа и считывание из него требуемых параметров
проверка «ключевых» условий и выработка решения:
В случае TRUE производится загрузка, расшифровка и настройка на выполнение тела защищенной программы и передача на нее управления после выгрузки защитного модуля из памяти.
В случае FALSE загрузка и расшифровка тела программы в память не производится.
Для защиты от аппаратной или программной эмуляции обмен между защитной оболочкой и электронным ключом выполняется с использованием зашумленного изменяющегося во времени протокола (так называемого «плавающего» протокола).
Преимущества:
простота и легкость установки
возможность автоматического вживления защиты без модификации исходного кода программы
наличие профессионального модуля антитрассировки и противодействия отладчикам
Недостатки:
электронный ключ проверяется только при запуске, поэтому после запуска приложения на одном компьютере ключ может быть перенесен на другой компьютер
использование только защитной оболочки не обеспечивает надежной защиты.
Защита с использованием функций API
Использование функций API - это очень мощный механизм защиты. В зависимости от схемы маркетинга, программа может быть защищена с различной глубиной. При этом могут использоваться разные уровни проверок, соответствующие набору проверяемых признаков:
Наличие ключа;
Код ключа;
Тип ключа;
Версия программного продукта;
ID-номер ключа.
Потенциально, с использованием функций API можно построить защиту приложения неограниченной стойкости. Однако в описанной схеме существует определенный недостаток, наличие которого сильно ограничивает качества защиты с использованием API. Проблема заключается в том, что процедуры работы с ключом, которые вызываются из основной программы, являются «низкоуровневыми». Как правило, это процедуры чтения/записи памяти ключа, получения значений аппаратно реализованной в ключе функции и т.д. Вызовы таких процедур резко выделяются из общей логической структуры приложения, что позволяет потенциальному взломщику достаточно легко их обнаружить и нейтрализовать. Теперь представим, что разработчик прикладного программного продукта имеет в своем распоряжении библиотеку функций, специализированных для его приложения, в которой каждая функция обращается к электронному ключу и возвращает TRUE/FALSE. Использование такой библиотеки «высокоуровневых» функций работы с ключом имеет следующие преимущества:
Отсутствие в программе проверки значений, полученных из ключа.
Необходимость потенциальному взломщику детально разбираться в логике работы приложения, чтобы взломать защиту.
Автоматическое обеспечение идеологии разнесения операций получения значений из ключа и их обработки по цепочке «основная программа» — «высокоуровневые процедуры» — «низкоуровневые процедуры».
Использование памяти ключа
Память ключа может быть использована для хранения некоторой важной информации о программе, например:
серийный номер программы – для сбора статистических данных
номер версии – для распространения upgrade’ов
номер модификации (релиза)
дата выпуска (дата продажи)
количество запусков программы - для демонстрационного режима
предельная дата/время работы программы - в случае сдачи программы в аренду, для демонстрации или в лизинг с периодическими выплатами.
набор опций – для эффективного управления составом рабочих модулей дистрибутивной поставки.
количество лицензий (для сетевых версий)
Преимущества:
повышенная надежность защиты, создаваемая за счет «размазывания» вызовов API по всему телу программы
предоставление разработчику всех технологических возможностей ключа (доступ к памяти, периодические проверки, доступ к дополнительным функциям и т.д.)
Недостатки:
необходимость встраивания вызовов API внутрь программы
возможность обхода или отключения вызовов API в случае, если программа не защищена с помощью защитной оболочки