4.3. Таксономия нарушений информационной безопасности вычислительной системы и причины, обусловливающие их существование
4.3. Таксономия нарушений информационной безопасности вычислительной системы и причины, обусловливающие их существование
Таксономия – абстрактная структура категорированных экземпляров, включает комплексное исследование предметной области и создание теоретической модели полного множества изучаемых объектов, что позволяет определить признаки, которые могут быть положены в основу той или иной классификации.
Таксономия позволяет построить полное множество категорий исследуемых объектов для любой выбранной классификации.
Таксономия безопасности вычислительных систем должная ответить на вопросы:
1. Каким образом ошибки, приводящие к появлению нарушений информационной безопасности, вносятся в систему защиты? Классификация нарушений информационной безопасности по источнику появления.
2. Когда и на каком этапе они вносятся? Классификация нарушений информационной безопасности по этапу возникновения.
3. Где и в каких узлах системы защиты или вычислительной системе в целом они возникают и проявляются? Классификация нарушений информационной безопасности по размещению в системе.
Классификация нарушений информационной безопасности по источнику появления
Источником нарушений информационной безопасности и их появлений является ошибка или недоработка в системе безопасности. Эти ошибки носят неслучайный характер. Классификация нарушений информационной безопасности по источнику появления представлена в таблице 4.
Под источником появления понимается основа существования нарушений информационной безопасности, т. е. либо характеристики вычислительной сети, которые обусловливают ее существование, либо принцип функционирования средств, использующих нарушения информационной безопасности для осуществления атаки. Для решения практических задач наибольший интерес представляет таксономия нарушений информационной безопасности по причинам возникновения.
Таблица 4
Таксономия нарушений информационной безопасности по источнику появления
Ошибки, служащие источником появления нарушений информационной безопасности, могут быть внесены в систему защиты преднамеренно, либо возникнуть неумышленно, непреднамеренно. Для выявления таких непреднамеренных или случайных ошибок применяются различные стратегии и методики. Большинство случайных ошибок может быть выявлено и устранено при увеличении времени и глубины анализа и тестирования кода системы защиты. Но в отношении наиболее серьезных преднамеренно внесенных и замаскированных ошибок этот способ является малоэффективным. Для эффективного поиска таких ошибок необходимо проведение специальных испытаний, заключающихся в попытках проникновения в систему и проведения атак на систему защиты.
В некоторых случаях определенные функции, специально добавленные в программное обеспечение, предопределяли внесение в систему защиты непреднамеренных ошибок. Возможность использования удаленной отладки или настройки системы может привести к появлению нарушений информационной безопасности. Такая ошибка может быть классифицирована как преднамеренная, но не имеющая деструктивной функции.
Определенные злоумышленные, преднамеренные ошибки могут рассматриваться как случайные. Случайные ошибки вносятся в систему при разработке требований к безопасности и спецификаций системы защиты, а также в процессе сопровождения системы, т. е. обновлении версии, поставки новых утилит и т. п. Преднамеренные ошибки внедряются в систему на этапе ее применения, в противном случае возможно компрометация системы.
Преднамеренные и злоумышленные ошибки являются достаточно трудно обнаруживаемыми, так как они специально скрыты, замаскированы с целью их не обнаружения. Они являются самыми опасными. Специально внесенные ошибки с деструктивными функциями могут серьезно нарушить функционирование системы. Случайные ошибки, безобидные сами по себе, также могут быть использованы для этих же целей специально написанными программами.
Преднамеренное внедрение нарушений информационной безопасности с наличием деструктивных функций.
Преднамеренно внесенные в систему защиты нарушения и связанные с ними каналы утечки информации являются результатом функционирования предварительно внедренных вредоносных программ. Характеристикой вредоносных программ является активное их функционирование и противодействие системе обеспечения безопасности и обеспечение утечки информации.
«Черным ходом» называется скрытая или замаскированная возможность получения доступа к ресурсам в обход стандартных механизмов контроля. Например, разработчик программы проверки уникального идентификатора может при совпадении контролируемого параметра с известной только ему константой предусмотреть осуществление некоторые непредусмотренных действий, скажем, отменить контроль доступа для субъекта с этим идентификатором. В дальнейшем этот разработчик мог бы использовать этот «черный ход» для бесконтрольного доступа к информации.
Преднамеренно внедренные нарушения информационной безопасности без деструктивных функций.
Вредоносные программы могут осуществлять взаимодействие с атакующим систему злоумышленником через «скрытые каналы» утечки информации. Под скрытым каналом понимают любую возможность обмена информацией с процессами или другими компонентами системы, не предусмотренную ее разработчиками и, как следствие, неконтролируемую системой защиты. Отсутствие контроля над скрытыми каналами со стороны системы защиты широко используются злоумышленниками.
Для использования скрытых каналов требуется наличие двух процессов:
1) посредством вредоносных программ осуществляется сбор информации, интересующей злоумышленника, которая помещается в скрытый канал, неконтролируемый системой защиты;
2) прослушивание канала в ожидании поступления собранной информации, и при ее появлении выполняет необходимую обработку и сохранение.
Скрытые каналы утечки в зависимости от способа кодирования информации, передаваемой между этими процессами, подразделяются на два типа: с использованием памяти и с использованием времени.
В первом случае для кодирования передаваемой информации используется либо область памяти (установление характерных признаков в имени и атрибутах файла), либо вообще неиспользуемая область (зарезервированные поля в заголовке сетевого пакета).
Во втором случае информация кодируется определенной последовательностью и длительностью событий, происходящих в системе. Например, с помощью модуляции интервалов обращения к устройствам, введения задержек между приемом и посылкой сетевых пакетов и т. д.
Кроме скрытых каналов в системе могут присутствовать и другие преднамеренно внесенные ошибки, не влекущие за собой разрушительных последствий. К их появлению автоматически приводит любое расхождение между требованиями по безопасности и требованиями к функциональности системы.
Непреднамеренные (неумышленные) ошибки и нарушения информационной безопасности.
Непреднамеренные нарушения информационной безопасности могут возникнуть в системе из-за наличия ошибок на этапе разработки требований к безопасности, при разработке спецификаций и на этапе их реализации, т. е. в процессе написания программ. Большинство из ошибок обнаруживается и устраняется во время тестирования. Некоторые ошибки могут остаться незамеченными и вызвать проблемы эксплуатации вычислительных сетей. Наиболее трудно выявляются такие ошибки в сложных системах, состоящих из многочисленных компонентов, разработанных при участии большого коллектива специалистов. Одна из проблем таких систем – невозможность исчерпывающего описания их спецификаций, т. е. невозможность адекватного документирования. Недостатки проектной документации при сопровождении и эксплуатации приводят к тому, что при попытке устранения одних ошибок в нее вносятся другие. Наличие неумышленных ошибок не приводит к немедленному их использованию и нарушению безопасности системы.
Неумышленные нарушения информационной безопасности могут быть классифицированы в соответствии со следующими группами ошибок, предопределяющих их существование:
1. Ошибки контроля допустимых значений параметров.
2. Ошибки определения областей (доменов).
3. Ошибки последовательности действий и использования нескольких имен для одного объекта.
4. Ошибки идентификации/аутентификации.
5. Ошибки проверки границ объектов.
6. Ошибки в логике функционирования.
Ошибки контроля допустимых значений параметров заключаются в принятии соответствующим механизмом неправильного заключения о соответствии проверяемого параметра допустимым значениям. Это касается числа, состава, типа, размера, статуса (передаваемые или принимаемые) параметров, или ряда других их характеристик. Ошибки контроля можно рассматривать как неадекватную реакцию механизмов защиты на возникающие в системе события.
Ошибки определения областей (доменов) выражаются в наличии открытого или неконтролируемого способа доступа в защищенную область. Например, возможность получения доступа к объекту файловой системы, непосредственный доступ к которому запрещен, посредством доступа к его физическому представлению на аппаратных носителях. Другим примером является повторное использование объекта, например, доступ к остаточной информации в занимаемой объектом области памяти после ее освобождения.
Наличие ошибок последовательности действий предопределяется асинхронным функционированием компонентов системы, которое может быть использовано для нарушения безопасности. Выявить такие ошибки в системе достаточно трудно. Например, одной из операций может быть проверка идентификатора процесса, а второй – установка для него соответствующих полномочий, или проверка допустимости параметра, а затем – его использование. Асинхронность может быть использована злоумышленником для обмана механизмов контроля путем подмены параметра на другой, запрещенный после проверки его допустимости, но перед использованием. Данная ошибка носит название TOCTTOU (time-of-check to time-of-use) – возможность подмены параметра между моментом проверки и моментом использования.
Ошибки идентификации/аутентификации приводят к тому, что неуполномоченный на соответствующие действия пользователь получает доступ к защищенным объектам в объеме полномочий другого лица. Эти ошибки рассматриваться как ошибки контроля, т. е. происходит неправильная проверка параметров идентификации и подлинности пользователя и объекта.
Ошибки проверки границ объектов и связанные с ними каналы утечки возникают из-за игнорирования проверок того, что определенный объект пересек границы области памяти, отведенной для его хранения (контроль длины строки, размера массива, размера и положения файла и т. д.).
Существуют также другие ошибки, не попадающие непосредственно ни в одну из перечисленных категорий. Их называют ошибками логики функционирования системы и механизмов защиты, которые потенциально могут быть использованы злоумышленниками для проникновения в систему и нарушения безопасности.
Классификация нарушений информационной безопасности по этапам возникновения и внедрения
Таксономия нарушений ИБ по этапу внедрения, основанная на этих положениях, приведена в табл. 5.
Таблица 5
Таксономия нарушений информационной безопасности по этапу возникновения
Возникновение нарушений информационной безопасности на этапе разработки системы.
Процесс разработки программной системы включает этапы:
1) составление требований и спецификаций;
2) создание исходных текстов программ;
3) генерация исполняемого кода.
На каждом из этих этапов в создаваемую систему могут быть внесены ошибки, которые приводят к возникновению нарушений информационной безопасности.
Составление требований и спецификаций. Требования к программному обеспечению описывают, что должна делать каждая из программ в составе системы. Спецификации определяют, каким образом эти действия должны выполняться.
Требования или спецификации не могут содержать положения, явно обусловливающие преднамеренные ошибки и каналы утечки информации. Требования и спецификации должны быть открыты и понятны, а также позволять относительно легко выявить и устранить ошибки типа «черного хода» и им подобные.
В основном ошибки возникают из-за необходимости одновременного выполнения как требований по защите, так и общих функциональных требований к системе. Конкуренция этих требований и неизбежно возникающие противоречия между этими требованиями требуют от разработчиков принятия компромиссных решений, в которых предпочтение может быть отдано функциональности системы в ущерб ее безопасности.
Создание исходных текстов программ. Большинство ошибок в исходных текстах, как случайных, так и внесенных преднамеренно, может быть обнаружено при тщательном их изучении. Наиболее распространены случайные ошибки в исходных текстах программ. Они возникают в результате неадекватной реализации определенных в требованиях интерфейсов модулей, либо просто из-за ошибок программистов.
Преднамеренные ошибки могут быть внесены программистом. Программист может внедрить в систему код, не предусмотренный ее спецификациями, но нужный ему для отладки и тестирования разрабатываемой программы. Если по завершению разработки программы этот код не будет удален из нее, он превратится в канал утечки информации и может быть использован злоумышленником.
Генерация исполняемого кода. Исполняемый код генерируется компиляторами из исходных текстов программ и представляет собой инструкции, предназначенные для выполнения процессором. Поскольку компиляторы предназначены только для формального преобразования исходных текстов в исполняемый код, они автоматически переносят ошибки из первых во второй. Если ошибки содержатся в самом компиляторе, тогда они могут использоваться злоумышленниками для получения в компилируемых программах нужных им фрагментов кода.
Возникновение нарушений информационной безопасности на этапе сопровождения и развития системы.
Случайные ошибки, внесенные в систему во время ее сопровождения, чаще всего обусловлены неправильным представлением программистами всех аспектов функционирования системы в целом. Любые изменения, вносимые ими в систему, потенциально могут превратиться в каналы утечки информации. Для предотвращения такой ситуации каждое вносимое изменение должно сопровождаться тщательной проверкой всей системы.
Возникновение нарушений информационной безопасности на этапе эксплуатации системы.
Возникновение ошибок и сбоев, утечка информации и другие подобные явления в процессе функционирования системы в большинстве случаев происходят по причине воздействия на нее специально написанных вредоносных программ.
Классификация нарушений информационной безопасности по размещению в системе
Нарушения информационной безопасности классифицируют по их размещению в вычислительных сетях в зависимости от того, в каких компонентах системы они находятся (табл. 6).
Ошибки и каналы утечки в программном обеспечении
Компоненты программного обеспечения, вне зависимости от их конкретного предназначения, чрезвычайно сильно связаны и взаимозависимы.
Среди всего комплекса программного обеспечения в отдельную категорию выделяют операционную систему. В ней определена и реализована архитектура всей вычислительной системы. Наличие в ней ошибок, связанных с обеспечением безопасности, автоматически влечет серьезные последствия для всей вычислительной сети.
Таблица 6
Таксономия нарушений информационной безопасности по размещению в вычислительных сетях
Непосредственно с операционной системой связано сервисное программное обеспечение, обеспечивающее поддержку различных аспектов функционирования системы. Кроме того, существует прикладное программное обеспечение, с которым непосредственно работают пользователи.
Системное программное обеспечение
Операционная система включают в себя функции управления процессами, устройствами, распределением памяти, файловой системой и т. д. Она обеспечивает инициализацию вычислительной системы при опасности.
Ошибки на этапе инициализации могут возникнуть в результате неправильного взаимодействия с аппаратурой. Например, если произошли изменения в составе аппаратных средств, или при наличии неправильных конфигурационных параметров. Такие ошибки приводят к неправильному назначению полномочий доступа процессов и пользователей к ресурсам системы.
Управление процессами и управление распределением памяти – это основные задачи операционной системы, и такие ошибки приводят к получению злоумышленником контроля над всей системой и свободному доступу к любой информации.
Управление устройствами определяет наличие комплекса программ ввода/вывода, обеспечивающих функционирование этих устройств параллельно и независимо от центрального процессора. Ошибки в таких программах приводят либо к отказам и сбоям в работе устройств, либо позволяют получить информацию, доступ к которой запрещен.
Файловая система использует значительное число функций операционной системы – управление процессами, устройствами, распределением памяти и т. д. Такие ошибки автоматически распространяются и на файловую систему. Кроме того, файловой системе присущи и собственные ошибки, касающиеся хранения данных и ограничения доступа к ним. Из-за неправильного представления данных следует неправильное функционирование механизмов контроля. Наличие ошибок в механизмах управления файловой системой способно привести к нарушению функционирования и безопасности всей вычислительной системы.
Идентификация и аутентификация являются основой функционирования любой системы защиты. Операционная система содержит специальные файлы, в которых хранятся имена и пароли, на основании которых и выполняются указанные процедуры. Чрезвычайно важно обеспечить не только адекватную реализацию процедур идентификации и аутентификации, но и всестороннюю защиту этих файлов от несанкционированного доступа и изменения. Иначе злоумышленник сможет выдать себя за легального пользователя и получить соответствующие полномочия.
Сервисное программное обеспечение
Сервисное программное обеспечение включает компиляторы, отладчики, редакторы, библиотеки функций, системы управления базами данных и т. п. Операционная система при запуске таких программ предоставляет им специальные привилегии, превышающие привилегии работающего с ними пользователя.
Привилегированные утилиты, как правило, являются сложными программами и часто обеспечивают выполнение функций, не предусмотренных операционной системой. Они разрабатываются отдельно от операционной системы и могут не поддерживать принятые в ней требования и ограничения безопасности, даже при наличии собственной системы защиты. Это означает, что привилегированные утилиты являются потенциально опасными для защиты вычислительных систем.
Наличие ошибок в реализации систем защиты привилегированных утилит или каналов утечки информации в них может быть использовано злоумышленником.
Прикладное программное обеспечение
Нарушения в функционировании вычислительной систем вызванные неумышленными ошибками в прикладном программном обеспечении, обычно ограничиваются только содержащим эту ошибку процессом, который некорректно функционирует либо саморазрушается. Преднамеренно внесенные программные закладки, вирусы, «троянские кони» и «логические бомбы» находятся именно на уровне прикладного программного обеспечения. Объектами их атак могут стать любые компоненты ИС, вплоть до выведения операционной системы из строя. В этом случае успех атаки зависит от того, насколько защищена конкретная операционная система от разрушительных действий прикладных программ. Многопользовательские многозадачные операционные системы (такие как Unix) сравнительно легко справляются с подобной проблемой, а широко распространенные DOS и Windows в этой ситуации оказываются бессильными.
Таксономия причин возникновения нарушений информационной безопасности представлена на Рис. 3.
Рис. 3. Причины нарушения безопасности ИС.
Все случаи нарушений информационной безопасности происходят по одной из следующих причин:
1. Выбор модели безопасности, несоответствующей назначению или архитектуре вычислительной сети. Модель безопасности должна соответствовать как требованиям, предъявляемым к безопасности вычислительной сети, так и принятой в ней парадигме обработке информации. При выборе модели безопасности необходимо учитывать архитектуру и специфику вычислительной сети, в противном случае, несмотря на все достоинства модели, гарантированного ею уровня безопасности достичь не удастся.
2. Неправильное внедрение модели безопасности. В этом случае модель безопасности выбрана правильно, но ее применение к конкретной реализации операционной системы в силу свойств модели или самой операционной системы было проведено неудачно. Это означает, что при реализации были потеряны все теоретические достижения, полученные при формальном доказательстве безопасности модели. Неправильное внедрение модели безопасности в систему выражается в недостаточном ограничении доступа к наиболее важным для безопасности операционной системы и системным службам и объектам, а также введении различных исключений из предусмотренных моделью правил разграничения доступа типа привилегированных процессов, утилит и т. д.
3. Отсутствие идентификации и/или аутентификации субъектов и объектов. Во многих современных операционных системах (Unix, Novell Netware, Windows) идентификация и аутентификация субъектов и объектов взаимодействия находятся на весьма примитивном уровне – субъект взаимодействия может сравнительно легко выдать себя за другого субъекта и воспользоваться его полномочиями доступа к информации. Кроме того, можно внедрить в систему «ложный» объект, который будет при взаимодействии выдавать себя за другой объект. Часто идентификация и аутентификация носят непоследовательный характер и не распространяются на все уровни взаимодействия – в операционной системе Novell Netware предусмотрена аутентификация пользователя, но отсутствует аутентификация рабочей станции и сервера. В стандартной версии операционной системе Unix аутентификация пользователей находится на примитивном уровне – программы подбора пароля легко справляются со своей задачей при наличии у злоумышленника идентификатора пользователя и зашифрованного пароля. Ряд служб операционной системы Unix вообще не предусматривает аутентификации.
4. Отсутствие контроля целостности средств обеспечения безопасности. Во многих операционных системах недостаточное внимание уделено контролю целостности самих механизмов, реализующих функции защиты. Во многих системах возможна прозрачная для служб безопасности подмена компонентов. В операционной системе Unix система традиционно построена таким образом, что для обеспечения ее функционирования многие процессы должны выполняться с уровнем полномочий, превышающим обычный пользовательский уровень (с помощью механизма замены прав пользователя на права владельца программы). Такие программные приложения являются потенциальной брешью в системе защиты, так как нуждаются в проверке на безопасность при их установке в систему и постоянном контроле целостности. С точки зрения безопасности такая ситуация нежелательна – не соблюдается принцип минимальной достаточности при распределении полномочий пользователей и процессов. Перечень критичных приложений и пользователей, обладающих высоким уровнем привилегий, должен быть максимально ограничен. Это достигается последовательным применением принципа локализации функций обеспечения безопасности и целостности в ядре операционной системы.
5. Ошибки, допущенные при программной реализации систем обеспечения безопасности. Эта группа причин нарушения безопасности будет существовать до тех пор, пока не появятся технологии программирования, гарантирующие производство безошибочных программ. Тщательное тестирование и верификация программных продуктов позволит сократить вероятность появления подобных ошибок до минимума.
6. Наличие средств отладки и тестирования в конечных продуктах. Многие разработчики оставляют в коммерческих продуктах «люки», «дыры», «отладочные возможности» и т. п. Причины, по которым это происходит, – программные продукты становятся все более сложными, и отладить их в лабораторных условиях становится невозможно. Следовательно, для определения причин сбоев и ошибок уже в процессе эксплуатации программного продукта, разработчикам приходится оставлять в своих продуктах возможности для отладки и диагностики. Для тех ситуаций, где безопасность имеет решающее значение применение подобной практики недопустимо.
7. Ошибки администрирования. Наличие самых современных и совершенных средств защиты не гарантирует систему от возможных нарушений безопасности, так как остается человеческий фактор – администратор, управляющий средствами обеспечения безопасности, может совершить ошибку.
Данный текст является ознакомительным фрагментом.