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