Preview

Труды Института системного программирования РАН

Расширенный поиск
Том 29, № 5 (2017)
Скачать выпуск PDF
7-18
Аннотация
Веб-приложения являются одним из наиболее распространенных типов объектов исследования в рамках работы системы сертификации средств защиты информации. Актуальность исследования уязвимостей в веб-приложениях в рамках сертификации по требованиям безопасности информации обусловлена тем, что веб-технологии, с одной стороны, активно используются при реализации современных информационных систем, в том числе критичных с точки зрения информационной безопасности, а, с другой стороны, проведение базовых атак на подобные информационные системы не требуют от нарушителей высокой технической компетентности, поскольку данные о типовых уязвимостях и атаках, включая инструментальные средства проведения атак, в большом объеме представлены в общедоступных источниках информации, а сами информационные системы, как правило, доступны из сетей связи общего пользования. В работе представлены результаты исследования защищённости веб-приложений, являющихся объектами испытаний в рамках сертификации по требованиям безопасности информации, от атак типа «межсайтовая подделка запросов». Приведены результаты систематизации и обобщения сведений об атаке типа «межсайтовая подделка запросов» и мерах защиты, используемых разработчиками веб-приложений. Представлены результаты экспериментальных исследований 10 веб-приложений, которые проходили сертификационные испытания по требованиям безопасности информации. Результаты экспериментальных исследований показали, что большинство разработчиков не уделяют должного внимания защите от межсайтовой подделки запросов - 7 из 10 исследованных веб-приложений оказали уязвимыми к данному типу атаки. По результатам обработки результатов экспериментальных исследований получены распределения мер защиты, используемых в веб-приложениях, и выявленных уязвимостей по языкам программирования. Сформулированы рекомендации в части защиты веб-приложений от межсайтовой подделки запросов для разработчиков, планирующих проведение сертификации своего программного обеспечения.
19-38
Аннотация
Существует несколько известных методов, позволяющих оценить усилия, которые придется потратить на разработку программного обеспечения. В популярной на сегодняшний день методологии гибкой разработки Scrum для этих целей широко используется подход, основанный на story points. Однако, их использование для оценки объема работы может быть затруднительным для тех людей, которые только начинают знакомство с методологией Scrum или впервые попадают в новую Scrum-команду. Описанный в статье подход предлагает использовать оценку трудозатрат на разработку конкретной части программного продукта на основе привычных и понятных для всех фраз естественного языка. Предложенная система нечеткого вывода (модель Мамдани) позволяет преобразовывать мнения людей, выраженные в виде предложений на естественном языке, в число story points - проведенные исследования эмпирически показывают, что те, кто делает первые шаги в методологии Scrum, считают такой подход более удобным и простым, по сравнению с обычным методом оценивания в story points. Также, с целью выяснения, может ли разработанный подход использоваться при работе над реальными проектами, был проведен дополнительный эксперимент, в котором приняли участие четыре группы людей с различными уровнями квалификации в Scrum-разработке. Представителям этих групп было дано задание оценить трудозатраты на разработку отдельных частей некоторого проекта с использованием предложенного подхода и обычных story points единицах. Оценки группы экспертов в области Scrum оказались примерно одинаковы для обоих подходов, в то время как оценки ¢новичков′ в методологии сильно отличались при применении двух разных методов. По мнению авторов, предложенный подход может дать возможность более плавного вхождения в методологию Scrum, лучшего понимания природы story points и более быстрой выработке навыков работы с ними на практике. Отдельного внимания заслуживает вопрос изучения разных форм агрегации мнений экспертов, анализ альтернативных подходов к представлению степеней уверенности экспертных оценок и возможная разработка плагина для системы отслеживания ошибок JIRA. Всё это может составить предмет развития данной темы.
39-60
Аннотация
Предложен способ построения модифицированных кодов с суммированием взвешенных переходов между разрядами в информационных векторах, занимающими соседние позиции в информационных векторах. Новые коды с суммированием имеют такое же количество контрольных разрядов, как и классические коды Бергера, однако обнаруживают большее количество ошибок в информационных векторах. Модифицированные коды с суммированием взвешенных переходов по сравнению с кодами Бергера также имеют улучшенные характеристики обнаружения ошибок в области малой кратности. Кроме того, для некоторых значений длин информационных векторов могут быть построены коды с обнаружением любых двукратных и любых трехкратных ошибок. Авторами разработан способ синтеза систем функционального контроля комбинационных схем, основанный на анализе топологии объекта диагностирования с выделением групп контролепригодных выходов с учетом свойств обнаружения ошибок модифицированными кодами с суммированием взвешенных переходов. Сформирован алгоритм синтеза системы функционального контроля.
61-74
Аннотация
При синтезе современных интегральных схем разработчики все чаще прибегают к услугам сторонних фирм для реализации тех или иных компонент системы (Intellectual Property cores, перепрограммируемых компонент на базе FPGA и т.д.) с целью снижения ее стоимости. В компонентах, изготовленных сторонними фирмами, могут быть спрятаны вредоносные подсхемы (Trojan circuits) c целью разрушения системы или извлечения из нее конфиденциальной информации. Trojan Circuits (TCs) обычно действуют в ситуациях, которые возникают в работающей системе чрезвычайно редко, поэтому они не обнаружимы ни в процессе верификации системы, ни в процессе ее тестирования. В работе предлагается подход к проектированию частично программируемых схем из вентилей, программируемых блоков памяти (LUTs) и программируемых мультиплексоров (MUXs), ориентированный на маскирование ТCs. Такой подход к синтезу позволяет либо замаскировать действие TC в случае ее обнаружения, либо получить схему, в которой эффективное введение TCs становится невозможным. Предложен способ перепрограммирования блоков памяти LUTs для маскирования TC. Сформулировано требование к замещающей функции, поступающей на свободный вход программируемого блока, основанное на анализе частичных функций внутренних полюсов комбинационной схемы. Построение частичных функций выполняется с использованием операций над Reduced Ordered Binary Decision Diagrams (ROBDD-графами), строящимися для фрагментов схемы. Операции характеризуются полиномиальной сложностью.
75-92
Аннотация
Современные автоматические устройства все чаще оснащаются микроконтроллерами. Логика работы автоматического оборудования поддерживается рядом различных встроенных программных приложений, которые выполняются под управлением встроенной операционной системы реального времени (ОС). Надежность ОС чрезвычайно важна для правильной работы всей автоматической системы. Поэтому встроенную ОС следует тщательно тестировать с помощью соответствующего набора автоматических тестов. Такой набор тестов для тестирования встроенной ОС обычно организуется как набор многозадачных тестовых приложений, которые должны выполняться под управлением данных. В статье представлены специальный язык для определения соответствующей логики задачи тестирования и концепция плоских съем для эффективного выполнения тестирования встроенной ОС. Чтобы избежать интенсивной интерпретации текстовых строк во время тестового прогона, предварительно образуется специальное представление теста, в котором исходная строковая форма преобразуется в форму регулярного массива и, таким образом, повышается эффективность тестирования. Ключевые слова: встроенные приложения; операционные системы; тестирование программного обеспечения; системы реального времени
93-110
Аннотация
Сложность существующих систем и их сопровождения привела к созданию новой концепции вариабельности систем, определяемой с помощью модели характеристик (МХ). В статье мы рассматриваем подходы к формальному определению МХ и созданию на их основе вариантов программных систем (ПС), операционных систем (ОС) и их семейств. Мы рассмотрим методы создания ПС в линейке продуктов (ProductFamily/ProductLines), конвейере К.Чарнецки для сборки артефактов в пространстве проблем и решений, логико-математическое моделирование ПС из функциональных и интерфейсных элементов в объектно-компонентном методе (ОКМ), выделение функциональных элементов в ОС в МХ для генерации новых вариантов этой системы. Обсуждаются подходы формализации вариабельности существующих, новых ПС и их семейств. Определена новая концепция управления вариабельностью с помощью ОКМ. Предложены подходы к верификации МХ для ПС, ОС, их семейств и конфигурирования функциональных и интерфейсных объектов для получения новых вариантов системы. Изучены характеристики процесса тестирования ПС, ОС и их семейств. Ключевые слова: модель вариабельности; программная система; семейство систем; конфигурация; вариант; функциональный, интерфейсный элемент; требование; управление.
111-134
Аннотация
Среди методов анализа программ на наличие дефектов выделяют методы статического и динамического анализа. В данной статье мы предлагаем комбинированный подход, заключающийся в применении динамического символьного исполнения для определения достижимости дефектов, найденных при помощи статического анализа. Предлагаемый подход является развитием ранее предложенного подхода определения достижимости определенной инструкции в программе методами динамического символьного исполнения, примененном последовательно для нескольких точек в программе, включающих точки инициализации дефекта, условные переходы в трассе дефекта и точку реализации дефекта. С начала производится статический анализ исполняемого кода программы с целью выделения путей исполнения, которые приводят к точке инициализации дефекта. Далее производится вычисление входных данных, приводящих к точке инициализации дефекта методом динамического символьного исполнения и прохождения базовых блоков, лежащих на трассе дефекта, включая точку реализации дефекта. Выбор наиболее перспективного пути для исполнения программы производится при помощи метрики минимального расстояния от пути исполнения на предыдущей итерации до следующей точки на трассе дефекта. Метрика вычисляется на основе путей в графе вызовов в программе, расширенного графом потока управления функций на путях исполнения, приводящих к реализации дефектов. Предлагаемый подход был проверен на нескольких программах с открытым исходным кодом из комплекта утилит командной строки операционной системы Debian Linux. В результате экспериментальной проверки было подтверждена возможность применения данного подхода к классификации дефектов, найденных при помощи статического анализа программ. Также, были обнаружены некоторые ограничения, препятствующие внедрению данного подхода в промышленные инструменты анализа. Одним из направлений дальнейших исследований может быть выбрано исследование подходов к снятию этих ограничений.
135-148
Аннотация
В настоящее время вопросу защиты информации при проектировании и эксплуатации объектов критической информационной инфраструктуры уделяется особое внимание. Одним из распространенных подходов к обеспечению безопасности информации, обрабатываемой на объектах, при этом является создание изолированной программной среды. Безопасность среды обуславливается ее неизменностью. Однако эволюционное развитие систем обработки информации порождает необходимость запуска в данной среде новых компонентов и программного обеспечения при условии выполнения требований по безопасности. Наиболее важным при этом является вопрос доверия к новому программному коду. Данная работа посвящена разработке формального логического языка описания функциональных требований к программному коду, который позволит в дальнейшем предъявлять требования на этапе статического анализа и контролировать их выполнение в динамике.
149-164
Аннотация
Поведение многопоточных программ не может быть промоделировано попеременным последовательным исполнением различных потоков на одном вычислительном узле. На данный момент полное и корректное описание поведения многопоточных программ является открытой теоретической проблемой. Одним из перспективных решений этой проблемы является „обещающая“ модель памяти. Для того, чтобы некоторая модель могла быть использована в стандарте некоторого промышленного языка программирования, должна быть доказана корректность компиляции из этой модели в модель памяти целевой процессорной архитектуры. Данная статья представляет доказательство корректности компиляции из подмножества обещающей модели в модели памяти процессора ARMv8.3. Главной идеей доказательства является введение промежуточного операционного варианта модели ARMv8.3, поведение которого может быть симулировано обещающей моделью.
165-184
Аннотация
В работе рассмотрен нетрадиционный подход к созданию параллельных программ, их анализу и трансформации с использованием языка функционально-потокового параллельного программирования, обеспечивающего написание программ без учёта ресурсных ограничений, что позволяет изначально ориентироваться на алгоритмы с максимальным параллелизмом. Разработанные инструментальные средства обеспечивают трансляцию, выполнение, отладку, оптимизацию и верификацию функционально-потоковых параллельных программ. Выполнение разработанных программ осуществляется путём «сжатия» параллелизма с учётом ограниченных ресурсов реальных вычислительных систем. Вычислительный процесс рассматривается как наложение управляющего графа, определяющего организацию вычислений, на информационный граф, описывающий функциональные особенности реализуемого алгоритма. Возможно использование различных стратегий управления путём модификации управляющих графов. Предложенные инструменты обеспечивают формирование промежуточных представлений, на основе которых возможны дальнейшие преобразования исходных программ в программы для реальных архитектур параллельных вычислительных систем.
185-238
Аннотация
Обсуждаются принципы организации и функционирования инструментальной среды для программной реализации моделей, методов и приложений теории планирования движения. Среда предоставляет развитый набор готовых к использованию программных компонентов для автоматического построения бесконфликтных траекторий для робота, перемещаемого в статическом и динамическом трехмерном окружении. Организация среды в виде объектно-ориентированного каркаса обеспечивает развитие, адаптацию и гибкое конфигурирование разработанных программных компонентов в составе целевых приложений. Благодаря выделенным интерфейсам разного уровня и предусмотренным точкам расширения среда допускает интеграцию со сторонними прикладными системами.
239-256
Аннотация
В статье описывается практический опыт разработки перспективной системы визуального планирования проектов на основе объектно-ориентированного каркаса. Используемый каркас представляет собой систему классов и интерфейсов, предназначенных для программной реализации моделей, методов и приложений теории расписаний. Благодаря наличию готовых компонентов для решения типовых задач, а также предусмотренным механизмам их конфигурирования и расширения, создание приложений осуществляется относительно просто. Применение каркаса позволило реализовать в целевой системе необходимый функционал проектного планирования, а также обеспечить его последующее развитие путем обобщения условий задач и расширения арсенала алгоритмов, применяемых для их решения.
257-282
Аннотация
В данной статье демонстрируется целесообразность применения языка моделирования программно-аппаратных систем AADL и его расширения Error Model Annex для описания требований безопасности проектируемой системы. Наиболее важным аспектом здесь является возможность описания требований безопасности в терминах, используемых в теории безопасности, таких, как марковские цепи или логико-вероятностные функции, т.к. за годы развития теории было накоплено большое количество весьма полезных результатов. Различные подходы к оценке безопасности систем не конкурируют, но дополняют друг друга, так что наличие некоторой универсальности в описании требований безопасности является весьма ценным качеством.
283-310
Аннотация
Рассматриваются распределённые алгоритмы решения задач на неориентированных графах. В разделе 2 определяется используемая модель, особенностью которой является наличие корня, с которого начинается и в котором заканчивается работа алгоритма. Описываются синхронная и асинхронная разновидности модели. В разделе 3 предлагаются алгоритмы решения любых задач, основанные на сборе информации о всём графе в корне или в каждой вершине, а также, если необходимо, разметке графа (его вершин и/или рёбер). Акцент сделан на времени работы алгоритма, а при минимальном времени - на экономии памяти в вершинах и суммарном объёме пересылаемых сообщений. В остальной части статьи рассматриваются оптимизации для конкретных задач: построение максимального независимого множества (MIS - Maximal Independent Set), поиск множества всех мостов в графе (FSB - Finding Set of Bridges), построение минимального остовного дерева во взвешенном графе (MST - Minimum Spanning Tree). В разделе 4 предлагается модификация общих алгоритмов для этих задач, уменьшающая оценки размера памяти вершин и сообщений. Раздел 5 содержит нижние оценки сложности решения этих задач. В разделе 6 для синхронной модели уменьшается время работы алгоритмов с разметкой графа до нижней границы для задач с однозначным решением, зависящим только от простых циклов графа, в частности, FSB, MST и задачи поиска гальмильтонова цикла. В разделе 7 рассматриваются оптимальные по времени алгоритмы для FSB и MST для обеих моделей: синхронной и асинхронной. Заключение подводит итоги и намечает направления дальнейших исследований.
311-328
Аннотация
В этой статье мы представляем программный пакет для создания адаптивных конечно-разностных сеток через представление гидромеханических переменных разреженным рядом вейвлетов. Приводятся технические детали реализации. В частности, описаны используемые структуры данных и способ распараллеливания вычислений. Также представлены результаты решения некоторых физических задач с привлечением данного пакета.
329-344
Аннотация
Работа посвящена численному исследованию теплоотдачи в прямоугольных каналах с односторонним нанесением неглубоких лунок. Математическое моделирование выполнено на базе уравнения Навье-Стокса, уравнения неразрывности, уравнения энергии. Для замыкания системы уравнений использована k-w-sst модель турбулентности. Численное решение получено с помощью программного пакета Code Saturne, распространяемого на основе свободной лицензии. Для построения сетки использовался программный пакет Salome. В работе рассмотрены вопросы верификации получаемого численного решения. На базе выполненного численного исследования проведена оценка теплогидравлической эффективности неглубоких лунок различной конфигурации для прямоугольных каналов с односторонним нанесением неглубоких лунок.


Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)