Шрифт:
На каждом из этих этапов в создаваемую систему могут быть внесены ошибки, которые приводят к возникновению нарушений информационной безопасности.
Составление требований и спецификаций. Требования к программному обеспечению описывают, что должна делать каждая из программ в составе системы. Спецификации определяют, каким образом эти действия должны выполняться.
Требования или спецификации не могут содержать положения, явно обусловливающие преднамеренные ошибки и каналы утечки информации. Требования и спецификации должны быть открыты и понятны, а также позволять относительно легко выявить и устранить ошибки типа «черного хода» и им подобные.
В основном ошибки возникают из-за необходимости одновременного выполнения как требований по защите, так и общих функциональных требований к системе. Конкуренция этих требований и неизбежно возникающие противоречия между этими требованиями требуют от разработчиков принятия компромиссных решений, в которых предпочтение может быть отдано функциональности системы в ущерб ее безопасности.
Создание исходных текстов программ. Большинство ошибок в исходных текстах, как случайных, так и внесенных преднамеренно, может быть обнаружено при тщательном их изучении. Наиболее распространены случайные ошибки в исходных текстах программ. Они возникают в результате неадекватной реализации определенных в требованиях интерфейсов модулей, либо просто из-за ошибок программистов.
Преднамеренные ошибки могут быть внесены программистом. Программист может внедрить в систему код, не предусмотренный ее спецификациями, но нужный ему для отладки и тестирования разрабатываемой программы. Если по завершению разработки программы этот код не будет удален из нее, он превратится в канал утечки информации и может быть использован злоумышленником.
Генерация исполняемого кода. Исполняемый код генерируется компиляторами из исходных текстов программ и представляет собой инструкции, предназначенные для выполнения процессором. Поскольку компиляторы предназначены только для формального преобразования исходных текстов в исполняемый код, они автоматически переносят ошибки из первых во второй. Если ошибки содержатся в самом компиляторе, тогда они могут использоваться злоумышленниками для получения в компилируемых программах нужных им фрагментов кода.
Возникновение нарушений информационной безопасности на этапе сопровождения и развития системы.
Случайные ошибки, внесенные в систему во время ее сопровождения, чаще всего обусловлены неправильным представлением программистами всех аспектов функционирования системы в целом. Любые изменения, вносимые ими в систему, потенциально могут превратиться в каналы утечки информации. Для предотвращения такой ситуации каждое вносимое изменение должно сопровождаться тщательной проверкой всей системы.
Возникновение нарушений информационной безопасности на этапе эксплуатации системы.
Возникновение ошибок и сбоев, утечка информации и другие подобные явления в процессе функционирования системы в большинстве случаев происходят по причине воздействия на нее специально написанных вредоносных программ.
Классификация нарушений информационной безопасности по размещению в системе
Нарушения информационной безопасности классифицируют по их размещению в вычислительных сетях в зависимости от того, в каких компонентах системы они находятся (табл. 6).
Ошибки и каналы утечки в программном обеспечении
Компоненты программного обеспечения, вне зависимости от их конкретного предназначения, чрезвычайно сильно связаны и взаимозависимы.
Среди всего комплекса программного обеспечения в отдельную категорию выделяют операционную систему. В ней определена и реализована архитектура всей вычислительной системы. Наличие в ней ошибок, связанных с обеспечением безопасности, автоматически влечет серьезные последствия для всей вычислительной сети.
Таблица 6
Таксономия нарушений информационной безопасности по размещению в вычислительных сетях
Непосредственно с операционной системой связано сервисное программное обеспечение, обеспечивающее поддержку различных аспектов функционирования системы. Кроме того, существует прикладное программное обеспечение, с которым непосредственно работают пользователи.
Системное программное обеспечение
Операционная система включают в себя функции управления процессами, устройствами, распределением памяти, файловой системой и т. д. Она обеспечивает инициализацию вычислительной системы при опасности.
Ошибки на этапе инициализации могут возникнуть в результате неправильного взаимодействия с аппаратурой. Например, если произошли изменения в составе аппаратных средств, или при наличии неправильных конфигурационных параметров. Такие ошибки приводят к неправильному назначению полномочий доступа процессов и пользователей к ресурсам системы.