Читаем Безопасность информационных систем. Учебное пособие полностью

Наличие ошибок последовательности действий предопределяется асинхронным функционированием компонентов системы, которое может быть использовано для нарушения безопасности. Выявить такие ошибки в системе достаточно трудно. Например, одной из операций может быть проверка идентификатора процесса, а второй – установка для него соответствующих полномочий, или проверка допустимости параметра, а затем – его использование. Асинхронность может быть использована злоумышленником для обмана механизмов контроля путем подмены параметра на другой, запрещенный после проверки его допустимости, но перед использованием. Данная ошибка носит название TOCTTOU (time-of-check to time-of-use) – возможность подмены параметра между моментом проверки и моментом использования.

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

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

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

Классификация нарушений информационной безопасности по этапам возникновения и внедрения

Таксономия нарушений ИБ по этапу внедрения, основанная на этих положениях, приведена в табл. 5.

Таблица 5

Таксономия нарушений информационной безопасности по этапу возникновения 

Возникновение нарушений информационной безопасности на этапе разработки системы.

Процесс разработки программной системы включает этапы:

1) составление требований и спецификаций;

2) создание исходных текстов программ;

3) генерация исполняемого кода.

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

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

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

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

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

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

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

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

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

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT