Развитие теории и методов анализа и проектирования программНИР

Development of the theory and methods of analysis and design programs

Соисполнители НИР

МГУ имени М.В. Ломоносова Координатор

Источник финансирования НИР

госбюджет, раздел 0110 (для тем по госзаданию)

Этапы НИР

# Сроки Название
1 1 января 2016 г.-31 декабря 2016 г. Развитие теории и методов анализа и проектирования программ
Результаты этапа: Проведены исследование и анализ методов и комплексных подходов к разработке и реализации инструментальной среды поддержки процессов прямой и обратной инженерии программных систем различного уровня сложности, а также методов статического и динамического анализа для автоматического построения моделей программ. В ходе исследований проблемы верификации моделей ответственных программно - аппаратных средств предложен язык описания ограничений на базе языка программирования. В качестве экспериментального прототипного языка рассматривался язык Python. Предложенный подход создает основу для использования богатых возможностей языка программирования и существующей инфраструктуры (среды разработки, компиляторы, интерпретаторы, отладчики, средства документирования). Кроме того, данный подход должен позволить понизить порог вхождения в язык описания ограничений модели, если этот язык построен на базе хорошо известных концепций и синтаксиса.
2 1 января 2017 г.-31 декабря 2017 г. Развитие теории и методов анализа и проектирования программ
Результаты этапа: Проведены исследование и анализ методов и комплексных подходов к решению проблем статического и динамического анализа программ. В ходе работ второго этапа (2017 г.) НИР разработаны и реализованы методы повышения эффективности итеративного динамического анализа кода на основе статической инструментации кода, и автоматического обхода подмножества путей выполнения программы, заданных при помощи пользовательских спецификаций. Рассмотрены подходы к созданию предметно-ориентированных языков (Domain-Specific Modeling Language, DSML) на основе языка универсального моделирования UML (Unified Modeling Language) и языка описания ограничений OCL (Object Constraint Language). Проведены исследования методов и подходов к решению задач прямой и обратной инженерии программных систем с использованием предметно-ориентированных языков моделирования, основанных на UML-нотации.
3 1 января 2018 г.-31 декабря 2018 г. Развитие теории и методов анализа и проектирования программ
Результаты этапа: Проведены исследования методов и подходов построения и анализа ответственных программно-аппаратных систем. Рассмотрены проблемы, возникающие из-за большого числа различных артефактов при разработке ответственных программно-аппаратных систем. Исследованы технологии установления трассируемости между требованиями к таким системам и элементами архитектурных моделей систем. В ходе работ третьего этапа проекта были исследованы методы предсказания значений демографических атрибутов, составляющих профиль пользователя социальной сети. При решении этой проблемы применены различные методы, включая искусственные нейронные сети. Результаты экспериментального сравнения показали, нейронные сети не превосходят по качеству классический метод опорных векторов.
4 1 января 2019 г.-31 декабря 2019 г. Развитие теории и методов анализа и проектирования программ
Результаты этапа: Проведены исследования методов и подходов к построению систем статического и динамического анализа бинарного кода для решения задачи автоматического извлечения алгоритма из бинарного кода (инструкций фрагмента бинарного кода, реализующего алгоритм). Предложен и реализован комбинированный (сочетающий статический и динамический анализ) метод исследования исполняемого кода, позволяющий выделить и восстановить из исполняемого фрагмента кода не только отдельные инструкции, реализующие алгоритм, но также и извлечь необходимые для его работы данных. При этом к полученным данным предъявляется ряд требований. Они должны быть в таком виде, чтобы восстановленный алгоритм мог быть повторно использован в другой программе. Это может использоваться, в частности, при необходимости исследования фрагментов унаследованного кода или извлечении интересующих алгоритмов из вредоносного программного обеспечения, либо при обнаружении утечек чувствительных данных в исполняемом коде, а также при решении других задач обеспечения кибербезопасности. При реализации системы анализа бинарного кода разработано представление внутренней структуры программы - MetaPDS, учитывающее информацию о потоке управления по нескольким её запускам. Разработан алгоритм представления исследуемой программы по набору трасс. Реализован алгоритм восстановления зависимостей по управлению в алгоритмах, извлечённых из бинарных трасс, по представлению MetaPDS. Реализация и тестирование метода выполнены в рамках среды анализа бинарного кода, созданной в Институте системного программирования РАН.
5 1 января 2020 г.-31 декабря 2020 г. Развитие теории и методов анализа и проектирования программ
Результаты этапа: Проведены исследования методов построения инструментальных средств анализа программного кода, методов анализа помеченных данных в рамках статического анализа исходного кода программ. Анализ помеченных данных является одним из методов поиска уязвимостей и ошибок, связанных с безопасностью программного обеспечения, таких как утечка непубличных данных или использование ненадежных данных в критических функциях без достаточных проверок. Для ускорения обработки формул в статическом анализаторе Svace было реализовано кэширование запросов к решателю и их трансляция напрямую из представления Svace в стандартное представление решателя. Разработанные оптимизации позволили более чем в 2 раза уменьшить суммарное время создания и решения формул. В рамках данной работы проведено исследование используемых на практике методов формализации требований к защищенности программно - аппаратных систем. Результатом такой формализации является модель безопасности системы. Рассмотрены различные методы описания таких моделей безопасности и основные задачи, при решении которых они используются. Для достижения разумного компромисса между выразительностью, компактностью и понятностью описаний, а также возможностями использования различных методов верификации и анализа моделей, выделен набор языков, позволяющих описывать модели безопасности в виде абстрактных автоматов с инвариантами. В рамках разработки методики предсказания значений социо - демографических атрибутов пользователей социальных сетей в 2020 году был рассмотрен вопрос формирования подмножества графа для предсказания значений атрибутов. Было введено понятие специфичности контекста вершины графа, которая показывает насколько распределение значений атрибута соседних вершин отличается от распределения генеральной совокупности. На основе специфичности контекста предложены два новых метода предсказания значений демографических атрибутов пользователей социальных сетей по подмножеству социального графа. На большинстве наборов данных методы показали более высокое качество, чем существующие методы.

Прикрепленные к НИР результаты

Для прикрепления результата сначала выберете тип результата (статьи, книги, ...). После чего введите несколько символов в поле поиска прикрепляемого результата, затем выберете один из предложенных и нажмите кнопку "Добавить".