Эксπир
Регистрация / Вход

Исследование и разработка системы автоматического обнаружения дефектов в исходном коде программного обеспечения

Стадии проекта
Предложение принято
Конкурс завершен
Проект закончен
Продолжительность работ
2008 - 2009, 15 мес.
Бюджетные средства
18,3 млн
Внебюджетные средства
3,12 млн

Исследование и разработка методики автоматического обнаружения уязвимостей защиты и других критических ошибок в исходном коде на языках Си/Си++ и поддерживающих ее алгоритмов. Разработка экспериментального образца системы автоматического обнаружения дефектов в программах.

Предложения

Исследование и разработка методов автоматического обнаружения дефектов в исходном коде программного обеспечения.
Тема
Исследование и разработка методов автоматического обнаружения дефектов в исходном коде программного обеспечения.
Входящий номер
6588
Организация
ИСП РАН
Руководитель организации-инициатора
Аветисян Арутюн Ишханович

Этапы проекта

1
08.08.2008 - 31.10.2008
• Осуществлены патентные исследования
• Проведён выбор и обоснование принятых направлений исследований и способов решения задач анализа исходного кода программного систем.
• Проанализированы стандарты в области уязвимостей программных систем и проведена классификация дефектов и уязвимостей программного обеспечения.
• Исследованы существующие методы анализа программного обеспечения, в частности, методы автоматизированного выявления уязвимостей в исходном коде.
• Проведено сопоставление ожидаемых показателей системы обнаружения дефектов, реализующей результаты НИР, и показателей существующих систем.
• Разработана общая методика проведения исследований.
• Проведена Экспертная оценка характеристик специфицированных средств обнаружения дефектов
• Проведены мероприятия по участию в научно-технической конференции, начаты работы по подготовке диссертационной работы, публикаций.
• Подготовлена отчетная документация за первый этап работ.
Развернуть
2
01.11.2008 - 31.12.2008
2.1. Результаты работы на отчетном этапе:
• уточнено множество дефектов, обнаруживаемых с помощью экспериментального образца;
• в качестве базовой теории для решения задачи поиска специфицированных дефектов выбрана теория решеток;
• разработана модель исходного кода программы, включающая:
a. SSA-представление исходного кода (Static Single Assignment), характеризующееся сокращенным набором инструкций управления потоком исполнения, однократным присваиванием для каждой переменной, использованием трёхоперандного кода для записи операций;
b. дополнительную информацию об объявлениях глобальных и статических переменных, используемых типах, сигнатурах функций, именах полей структур, классов, объединений;
c. семантические дуги (например, связывающие вызовы функций с их определениями).
• предложено расширение модели программы за счет внесения дополнительной информации с помощью аннотирования функций и ресурсов программы;
• предложен метод обнаружения дефектов в исходном коде на языках C/C++, включающая в себя:
a. разбор исходного кода и представление его в виде абстрактного синтаксического дерева;
b. построение модели исходного кода программы на основе SSA-представления;
c. итеративный алгоритм, представляющий собой последовательное выполнение базовых алгоритмов анализа;
d. базовые алгоритмы: алгоритм интервального анализа, алгоритм анализа указателей на объекты и функции и алгоритм построения графа потока управления;
e. использование репозитория объектов, обеспечивающего хранение результатов анализа и обеспечивающего взаимодействие между отдельными алгоритмами;
f. алгоритм восстановления путей, уточняющий решения, полученные базовыми алгоритмами анализа;
g. алгоритмы обнаружения специфицированных дефектов.
• проведена оценка вычислительной сложности разработанных алгоритмов (необходимое время анализа на данном этапе оценивается единицами часов для программы, содержащей до ста тысяч строк исходного кода);
• выполнена оценка возможности применения разработанного метода для других языков программирования, а именно, для языков Pascal/Delphi, Java, C#.
2.2. Новизна научных, конструкторских или технологических решений в сравнении с другими работами, родственными по тематике и целевому назначению и определяющими мировой уровень:
• разработаны алгоритмы анализа указателей и интервального анализа, обеспечивающие полный и точный анализ программ;
• предложены пути повышения эффективности поиска дефектов, а именно:
o итеративный алгоритм на основе базовых алгоритмов, позволяющий гибко варьировать соотношение между точностью обнаружения дефектов и временем выполнения анализа;
o алгоритм восстановления путей, позволяющий повысить точность получаемых результатов;
o для обеспечения анализа сложных конструкций языков C/C++ разработаны эвристики;
o для ограничения вычислительной сложности разработанные алгоритмы предусматривают параметризацию.
2.3. Особенности исследования, разработки, метода или методологии проведения работы на отчетном этапе: выполнялись теоретические исследования поставленных задач, включающие в себя разработку метода, модели и алгоритмов обнаружения дефектов в исходного коде на языке C/C++.
2.4. Объекты интеллектуальной собственности, созданные на отчетном этапе: отсутствуют.
Развернуть
3
01.01.2009 - 31.07.2009
Разработан экспериментальный образец САОД. Проведены экспериментальные исследования экспериментального образца САОД. Проведена доработка экспериментального образца САОД по результатам экспериментальных исследований.
Развернуть
4
01.08.2009 - 30.11.2009
Реализована подсистема формирования отчетов об обнаруженных дефектах. Проведена оценка полноты решения задач и эффективности полученных результатов в сравнении с современным научно-техническим уровнем. Проведена оценка возможности создания конкурентоспособной системы автоматического обнаружения дефектов и разработаны рекомендации по использованию результатов проведенных НИР. Реализованы мероприятия по достижению технико-экономических показателей. Разработан проект ТЗ на выполнение ОКР
Развернуть

Программа

Программа "Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса России на 2007-2013 годы"

Программное мероприятие

1.4 Проведение проблемно-ориентированных поисковых исследований и создание научно-технического задела по перспективным технологиям в области информационно-телекоммуникационных систем
Тема
Исследование и разработка системы автоматического обнаружения дефектов в исходном коде программного обеспечения.
Продолжительность работ
2008 - 2009, 16 мес.
Бюджетные средства
20 млн
Количество заявок
5
Тема
Анализ принципов построения информационных систем для автоматического обнаружения логических ошибок и шаблонов неэффективного поведения в параллельных приложениях и их реализация в web-среде в виде программного комплекса.
Продолжительность работ
2013, 8 мес.
Бюджетные средства
24 млн
Количество заявок
12
Тема
Создание ряда высокоточных аппаратно-программных комплексов для дистанционного обнаружения и наблюдения живых объектов в интересах медицины, охраны и безопасности.
Продолжительность работ
2011 - 2013, 25 мес.
Бюджетные средства
99 млн
Количество заявок
2
Тема
Разработка методов и программных средств автоматического мониторинга терминологических систем предметных областей на основе построения и анализа моноязычных, параллельных и сравнимых корпусов.
Продолжительность работ
2014 - 2016, 27 мес.
Бюджетные средства
55 млн
Количество заявок
0
Тема
Разработка методики и прикладного программного обеспечения для 3D прочностного инженерного анализа динамического деформирования с образованием зон пластического течения при нештатном нагружении в элементах конструкций с дефектами c использованием современных численных методов и технологии MPI.
Продолжительность работ
2014 - 2016, 26 мес.
Бюджетные средства
31,7 млн
Количество заявок
0