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