Безопасность информационных систем. Учебное пособие
Шрифт:
В первом случае для кодирования передаваемой информации используется либо область памяти (установление характерных признаков в имени и атрибутах файла), либо вообще неиспользуемая область (зарезервированные поля в заголовке сетевого пакета).
Во втором случае информация кодируется определенной последовательностью и длительностью событий, происходящих в системе. Например, с помощью модуляции интервалов обращения к устройствам, введения задержек между приемом и посылкой сетевых пакетов и т. д.
Кроме скрытых каналов в системе могут присутствовать и другие преднамеренно внесенные ошибки, не влекущие за собой разрушительных последствий. К их появлению автоматически приводит
Непреднамеренные (неумышленные) ошибки и нарушения информационной безопасности.
Непреднамеренные нарушения информационной безопасности могут возникнуть в системе из-за наличия ошибок на этапе разработки требований к безопасности, при разработке спецификаций и на этапе их реализации, т. е. в процессе написания программ. Большинство из ошибок обнаруживается и устраняется во время тестирования. Некоторые ошибки могут остаться незамеченными и вызвать проблемы эксплуатации вычислительных сетей. Наиболее трудно выявляются такие ошибки в сложных системах, состоящих из многочисленных компонентов, разработанных при участии большого коллектива специалистов. Одна из проблем таких систем – невозможность исчерпывающего описания их спецификаций, т. е. невозможность адекватного документирования. Недостатки проектной документации при сопровождении и эксплуатации приводят к тому, что при попытке устранения одних ошибок в нее вносятся другие. Наличие неумышленных ошибок не приводит к немедленному их использованию и нарушению безопасности системы.
Неумышленные нарушения информационной безопасности могут быть классифицированы в соответствии со следующими группами ошибок, предопределяющих их существование:
1. Ошибки контроля допустимых значений параметров.
2. Ошибки определения областей (доменов).
3. Ошибки последовательности действий и использования нескольких имен для одного объекта.
4. Ошибки идентификации/аутентификации.
5. Ошибки проверки границ объектов.
6. Ошибки в логике функционирования.
Ошибки контроля допустимых значений параметров заключаются в принятии соответствующим механизмом неправильного заключения о соответствии проверяемого параметра допустимым значениям. Это касается числа, состава, типа, размера, статуса (передаваемые или принимаемые) параметров, или ряда других их характеристик. Ошибки контроля можно рассматривать как неадекватную реакцию механизмов защиты на возникающие в системе события.
Ошибки определения областей (доменов) выражаются в наличии открытого или неконтролируемого способа доступа в защищенную область. Например, возможность получения доступа к объекту файловой системы, непосредственный доступ к которому запрещен, посредством доступа к его физическому представлению на аппаратных носителях. Другим примером является повторное использование объекта, например, доступ к остаточной информации в занимаемой объектом области памяти после ее освобождения.
Наличие ошибок последовательности действий предопределяется асинхронным функционированием компонентов системы, которое может быть использовано для нарушения безопасности. Выявить такие ошибки в системе достаточно трудно. Например, одной из операций может быть проверка идентификатора процесса, а второй – установка для него соответствующих полномочий, или проверка допустимости параметра, а затем – его использование. Асинхронность может быть использована злоумышленником для обмана механизмов контроля путем подмены параметра на другой, запрещенный после проверки его допустимости,
Ошибки идентификации/аутентификации приводят к тому, что неуполномоченный на соответствующие действия пользователь получает доступ к защищенным объектам в объеме полномочий другого лица. Эти ошибки рассматриваться как ошибки контроля, т. е. происходит неправильная проверка параметров идентификации и подлинности пользователя и объекта.
Ошибки проверки границ объектов и связанные с ними каналы утечки возникают из-за игнорирования проверок того, что определенный объект пересек границы области памяти, отведенной для его хранения (контроль длины строки, размера массива, размера и положения файла и т. д.).
Существуют также другие ошибки, не попадающие непосредственно ни в одну из перечисленных категорий. Их называют ошибками логики функционирования системы и механизмов защиты, которые потенциально могут быть использованы злоумышленниками для проникновения в систему и нарушения безопасности.
Классификация нарушений информационной безопасности по этапам возникновения и внедрения
Таксономия нарушений ИБ по этапу внедрения, основанная на этих положениях, приведена в табл. 5.
Таблица 5
Таксономия нарушений информационной безопасности по этапу возникновения
Возникновение нарушений информационной безопасности на этапе разработки системы.
Процесс разработки программной системы включает этапы:
1) составление требований и спецификаций;
2) создание исходных текстов программ;
3) генерация исполняемого кода.
На каждом из этих этапов в создаваемую систему могут быть внесены ошибки, которые приводят к возникновению нарушений информационной безопасности.
Составление требований и спецификаций. Требования к программному обеспечению описывают, что должна делать каждая из программ в составе системы. Спецификации определяют, каким образом эти действия должны выполняться.
Требования или спецификации не могут содержать положения, явно обусловливающие преднамеренные ошибки и каналы утечки информации. Требования и спецификации должны быть открыты и понятны, а также позволять относительно легко выявить и устранить ошибки типа «черного хода» и им подобные.
В основном ошибки возникают из-за необходимости одновременного выполнения как требований по защите, так и общих функциональных требований к системе. Конкуренция этих требований и неизбежно возникающие противоречия между этими требованиями требуют от разработчиков принятия компромиссных решений, в которых предпочтение может быть отдано функциональности системы в ущерб ее безопасности.
Создание исходных текстов программ. Большинство ошибок в исходных текстах, как случайных, так и внесенных преднамеренно, может быть обнаружено при тщательном их изучении. Наиболее распространены случайные ошибки в исходных текстах программ. Они возникают в результате неадекватной реализации определенных в требованиях интерфейсов модулей, либо просто из-за ошибок программистов.