Докладчики

ПРОГРАММА

10 июня

  • 09:00 Начало регистрации, приветственный кофе
  • avatar
    10:30 - 10:45 Пленарный доклад
    Шевцов Дмитрий, ФСТЭК России
    avatar
    10:45 - 11:30 Применение инструментов автоматического анализа программ в цикле разработки безопасного ПО
    Александр Герасимов, ИСП РАН

    Постоянно возрастающая сложность программных систем приводит к необходимости уделения повышенного внимания к процессам обеспечения их качества. Применение методов тестирования программ как правило не позволяет обнаруживать критические ошибки реализации программы, поскольку программисты и специалисты по тестированию проверяют заранее известный набор требований к функционированию системы и её компонент и не имеют возможности проведения тестирования на всём множестве значений внешних данных программы или компонента. Государственные стандарты Российской Федерации регламентируют использование автоматических инструментов анализа программ в цикле разработки безопасного ПО. В докладе производится обзор методов автоматического анализа программ и способов их применения для обеспечения качества программных систем.

  • 11:30 - 12:45 Выставка технологий, кофе, чай
  • 12:45 - 16:40 Информационная безопасность и инструментальная поддержка
  • avatar
    12:45 - 13:10 Карта средств защиты ядра Linux
    Александр Попов, Positive Technologies

    Защита ядра Linux — очень сложная предметная область. Она включает большое количество взаимосвязанных понятий, а именно: классы уязвимостей, техники их эксплуатации для проведения атак, механизмы выявления ошибок, технологии защиты. Александр Попов разработал карту средств защиты ядра Linux, которая отражает взаимосвязи между перечисленными выше понятиями. В докладе он даст обзор текущего состояния безопасности ядра Linux используя данную карту: https://github.com/a13xp0p0v/linux-kernel-defence-map

    avatar
    13:10 - 13:35 Моделирование и верификация политики безопасности управления доступом к электронным документам на языке TLA+
    Александр Козачок, Академия ФСО России

    В докладе будет представлено описание модели управления доступом к электронным документам компьютерных систем, обеспечивающей выполнение требований мандатного контроля целостности и конфиденциальности без учета информационных потоков по времени. Отличительной особенностью модели является учет особенностей жизненного цикла электронных документов и порядка работы с ними. Для задания модели управления доступом был выбран язык темпоральной логики действий Лэмпорта, поскольку его нотация представляется наиболее близкой к общепринятой математической, выразительные возможности и инструментальные средства позволяют описывать и верифицировать системы, заданные в виде конечных автоматов.

    В модели определены следующие действия: создание/удаление субъекта, чтение, запись, дозапись ("слепая" запись), создание/удаление объекта, назначение/удаление прав доступа, вложение объекта в объект, исключение вложенного объекта, утверждение объекта (документа), отправка объекта (документа) в архив, отмена действия утвержденного объекта (документа), копирование объекта (документа). Также определены следующие инварианты: проверки типов (включает в себя проверку соответствия всех полей объектов, также проверку соответствия типу субъектов и проверку уникальности идентификаторов субъектов и объектов) и проверки безопасности (включает в себя проверку меток конфиденциальности и целостности взаимодействующих субъектов и объектов, а также корректность процедуры назначения прав).

    avatar
    13:35 - 14:00 Гостификация ПО: подход из мира Open Source
    Дмитрий Белявский, Криптоком

    Доклад рассказывает о том, как, опираясь на уже существующие популярные Open Source библиотеки, можно быстро и успешно решать задачи добавления поддержки национальных стандартов, о том, что можно и чего нельзя ожидать от сообщества в этом направлении.

  • 14:00 - 15:00 Обед
  • avatar
    15:00-15:25 Опыт применения инструментальных средств для повышения доверия к механизмам защиты ОССН Astra Linux Special Edition
    Петр Девянин, РусБИТех-Астра

    При сертификации средств защиты информации с 1 июня 2019 г. подлежат применению «Требования по безопасности информации, устанавливающие уровни доверия к средствам технической защиты информации и средствам обеспечения безопасности информационных технологий», утверждённые приказом ФСТЭК России от 30.07.2018 № 131, и «Методика выявления уязвимостей и недекларированных возможностей в программном обеспечении», утверждённая ФСТЭК России 11.02.2019 [1]. Этими документами закрепляются требования по применению при сертификации средств защиты информации широкого спектра методов статического и динамического анализа программного кода, эффективная реализация которых невозможна без применения соответствующих инструментальных средств.

    По скольку отечественная защищённая операционная система специального назначения (ОССН) Astra Linux Special Edition [2] уже много лет сертифицирована по самым высоким классам защиты [3], то у её разработчика ООО «РусБИТех-Астра» (ГК Astra Linux) накоплен существенный опыт по применению методов и инструментальных средств, позволяющих достичь такое высокое доверие к механизмам защиты ОССН.

    Для этого в связи с значительным объёмом подлежащего анализу программного кода ОССН с целью обеспечения автоматизации процесса его сборки, верификации и тестирования используется практика непрерывной интеграции (continuous integration) в инструментальной среде GitLab [4], в которой в том числе осуществляется:

    • многоэтапное (модульное и системное) тестирование;
    • статический анализ кода;
    • динамический анализ кода на основе технологии фаззинга;
    • ручной анализ кода.
    Основой механизмов защиты ОССН является модуль PARSEC, реализующий её диспетчер доступа (монитор ссылок). Для исключения ошибок в коде этого модуля с применением инструментальных средств системы Jenkins [5] проводится многоэтапное тестирование, охватывающее также другие взаимодействующие с PARSEC механизмы защиты, такие как контроллер домена Astra Linux Directory (ALD), веб-сервер apache2 и СУБД PostgreSQL. При чем для увеличения доверия к тестам их разработка ведётся разными командами.

    Статический анализ кода осуществляется инструментальными средствами cppcheck [6] и Svace [7]. Использование различных анализаторов программного кода и обработка их результатов в единой среде GitLab позволяют более точно выявлять ошибки, в том числе уменьшить число ложных срабатываний самих анализаторов. Например, в результате статического анализа обновлений кода модуля PARSEC с помощью cppcheck и Svace ими было дано несколько сотен предупреждений о возможных ошибках, из которых при последующем ручном анализе кода ошибками той или иной степени критичности были признаны около 30 (при этом cppcheck и Svace, как правило, обнаруживали разные ошибки), что позволило своевременно устранить эти ошибки при окончательной доработке модуля PARSEC.

    Для фаззинга программного кода ОССН также используются несколько инструментальных средств. Применительно к библиотечным вызовам применяется libFuzzer [8], для пользовательских приложений — AFL-фаззер [9], для фаззинга ядра – инструмент Syzkaller4Astra (специально модифицированный с учётом специфики ОССН фаззер syzkaller [10]). Например, с помощью Syzkaller4Astra удалось выявить и устранить десятки ошибок в нескольких модулях ядра, реализующих механизмы защиты ОССН, а также в других модулях, не относящихся к механизмам защиты.

    Техника ручного анализ кода в первую очередь применятся к программному коду механизмов защиты, в которых были обнаружены ошибки с использованием перечисленных инструментальных средств, для дальнейшей оценки их степени критичности и последующего устранения.

    Помимо рассмотренных инструментальных средств для обеспечения доверия к ОССН используется разработанный ИСП РАН комплекс инструментальных средств AstraVer Toolset [11] верификации формальной модели управления доступом ОССН (МРОСЛ ДП-модели) и её реализации непосредственно в программном коде [12].

    Все перечисленное позволяет говорить не только о выполнении при разработке ОССН требований актуальных нормативных документов ФСТЭК России [1], но также о том, что ОССН стала по сути первой отечественной промышленной операционной системой, для достижения доверия к механизмам защиты которой были применены самые современные инструментальные средства, благодаря чему были развиты заложенные в эти средства научно обоснованные технологии.

    avatar
    15:25 - 15:50 Отладчик виртуальных машин PathFinder
    Валерий Егоров, Криптософт

    При создании гипервизора QP VMM разработчики НТП «Криптософт» столкнулись с необходимостью анализа исполнения гипервизором кода виртуальных машин. Для этого был разработан отладчик PathFinder. Запуск виртуальной машины с разрешенной отладкой позволяет отладчику получать контроль над виртуальной машиной. PathFinder имеет возможность анализировать состояние виртуальной машины и управлять им. PathFinder выгодно отличается от обычных отладчиков, поскольку способен отлаживать моменты переключения режимов работы процессора, обработку программных и аппаратных прерываний, настройку сегментов и таблиц страниц, а также другие операции, которые не под силу выполнить обычному отладчику.

    avatar
    15:50 - 16:15 Масштабируемые Оберон-технологии как средства обеспечения защищенного ПО критически важных систем
    Дмитрий Дагаев, Русатом Автоматизированные системы управления

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

    avatar
    16:15-16:40 Модель зрелости безопасности интернета вещей для установления, согласования и ограничения требований к операционным системам
    Екатерина Рудина, Лаборатория Касперского

    Операционная система обеспечивает базовый уровень безопасности устройства или решения, в основе которого она лежит. Различные решения и устройства предъявляют разные и часто не сравнимые между собой требования к безопасности, а значит и к ОС. Для разработчиков ОС и системного ПО важно предельно ясно описать не только реализуемые этим ПО функции безопасности, но и стратегию развития ПО, его поддержки и сопровождения от версии к версии.

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

    Зрелая с точки зрения безопасности система характеризуется достаточным набором мер защиты, которые в то же самое время не влияют негативно на её функциональность. Модель зрелости безопасности интернета вещей (IoT Security Maturity Model, IoT SMM), разработанная Консорциумом промышленного интернета (Industrial Internet Consortium) при участии специалистов Лаборатории Касперского, предназначена для коммуникации требований безопасности к системам интернета вещей от представителей бизнеса к техническим специалистов. В докладе предлагается способ представления возможностей применения операционных систем на основе описания целевых профилей зрелости безопасности для этих операционных систем.

    Модель зрелости безопасности подходит так же для установления, согласования и ограничения требований к целевой платформе в рамках технического задания, оценки состояния безопасности существующих систем относительно определенного профиля и неформальной оценки гарантий, предоставляемых системой относительно различных аспектов безопасности в течение ее жизненного цикла.

  • 16:40 - 17:10 Кофе, чай

11 июня

  • 09:00-10:00 Начало регистрации, приветственный кофе
  • 10:00-12:40 Средства разработки и сопровождения
  • 11:20 - 11:50 Кофе, чай
  • 12:40 - 16:20 Встроенные ОС и ОСРВ
  • avatar
    12:40-13:00 Обзор методов разработки ПО для беспилотных летательных аппаратов и средств обеспечения многоуровневой надежности при разработке таких систем
    Сергей Старолетов, АлтГТУ им. И.И. Ползунова

    Создание надежных беспилотных летательных аппаратов (дронов) - важная задача в развитии науки и техники, ведь такие беспилотники могут быть использованы как в реализации задач цифровой экономики, так и при защите безопасности. В данном исследовании предполагается сборка дрона из дешевых комплектующих с целью получения прототипа аппаратной части и разработка программного решения полётного контроллера с увеличенными требованиями надежности, который будет в какой-то мере отвечать стандартам программного обеспечения авионики ARINC 653, решать задачи удаленного управления и автопилотирования, использовать существующие программные наработки с открытым исходным кодом, а также служить моделью для преподавания курсов проектирования компонентов операционных систем и верификации программного обеспечения.

    В докладе будет проведен анализ существующих дронов, описано решение для самостоятельной сборки состоящее из рамы, четырех полётных двигателей и бесщеточных электронных регуляторов хода, компаса, датчика GPS координат и устройство передачи радио-телеметрии и удаленного управления.

    Будет описано свободное программное обеспечение Ardupilot (APM), соотвествующий контроллер и будет предложено использование в качестве целевого полётного контроллера платы Raspberry Pi, из-за отличного соотношения цены и производительности, ARM архитектуры, интересной для изучения, возможность реализации сложной логики и подключения периферийных устройств (модули, датчики, камера).

    Сегодняшним стандартом надежного программного обеспечения для полётных контроллеров являются партиционированные (partitioning) операционные системы реального времени, которые способны с ожидаемой скоростью реагировать на поступающие от аппаратуры события и разделять процессорное время и память между изолированными рабочими процессами. Хорошим примером такой ОС является POK, которая содержит в своем репозитории пример проектирования системы на основе Ardupilot в качестве рекомендаций. В России на основе POK разрабатывается ОС для реальных летательных аппаратов - JetOS, которая, по сообщениям, уже портирована на архитектуру ARM. В докладе будет рассмотрены вопросы портирования существующего программного кода на партиционированные ОС ARM архитектуры (все на основе открытых технологий).

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

  • 13:00 - 14:00 Обед
  • avatar
    14:00 - 14:20 Внедрение зависимостей в компонентно-ориентированном ПО на C/C++
    Дмитрий Алексеев, Эремекс

    Для упрощения повторного использования кода используется компонентно-ориентированный подход к разработке. С целью реализации этого подхода в проекте FX-RTOS был разработан инструмент FX-DJ, который, используя метаданные внутри исходных текстов, позволяет управлять сборкой и отслеживать зависимости между компонентами. При наличии нескольких вариантов одного компонента, выбор делается на основе внешней конфигурационной информации. В докладе рассматриваются принципы работы инструмента, а также опыт его применения в проекте FX-RTOS для создания ядра ОС с конфигурируемой архитектурой, способной масштабироваться на системы разных классов производительности. FX-DJ свободно распространяется под лицензией BSD.

    avatar
    14:20 - 14:40 FOSS GNU/Linux ОС Apertis для встраиваемых устройств
    Денис Пынькин, Collabora Ltd

    ОС Apertis - это FOSS (Free and open source) GNU/Linux платформа, основанная на базе Debian/Ubuntu и предназначенная для embedded устройств. В докладе я хочу провести обзор ключевых и интересных компонентов Apertis, таких как: безопасные и надежные OTA/offline апгрейды и откаты ОС на базе libostree, утилита для создания дисковых образов Debos, а также краткий обзор CI инфраструктуры. Все компоненты, которые используются в ОС Apertis, открыты и доступны для использования как по-отдельности, так и в составе других проектов, а большая часть изменений становятся частью апстрима.

    avatar
    14:40-15:00 Опыт разработки и применения системы сборки на основе специализированного языка программирования (DSL)
    Антон Бондарев, Embox

    В докладе рассматривается опыт разработки специализированной системы сборки и языка описания для нее. Система сборки направлена на упрощение сертификации и тестирования программных систем, созданных с ее помощью. В докладе также рассказывается об опыте применения системы сборки Mybuild в составе открытого проекта по созданию RTOS для встроенных систем Embox.

    avatar avatar
    15:00-15:20 Средства трассировки в ОС РВ семейства Багет
    Федор Чемерев, Годунов Александр, НИИСИ РАН

    В докладе рассмотрены средства трассировки ОС РВ семейства Багет, используемые в качестве инструментария отладки приложений реального времени. Приведено описание принципов реализации графического пользовательского интерфейса (GUI) программы просмотра и анализа протоколов событий (трасс), а также механизмов доступа к записям трассы и результатам ее вторичной обработки.

  • 15:20-15:40 Кофе, чай
  • avatar
    15:40 - 16:00 Разработка и опыт применения инструментов верификации для проекта JetOS
    Владимир Козырев, Advalange

    Одним из требований к организации процесса верификации авиационного ПО, содержащихся в документе RTCA DO-178C (и его российском аналоге - КТ-178C), является проведение анализа структурного покрытия исходного кода ПО. Такой анализ предполагает обеспечение сбора структурного покрытия, для чего используются соответствующие инструменты. Различные инструменты для сбора покрытия присутствуют на рынке уже довольно давно, однако лишь в немногих из них заявлена функциональность сбора покрытия связности по данным и управлению, при этом ни один из них не обеспечивает анализ покрытия связности по данным в той мере, в которой можно было бы считать их обеспечивающими соответствующее требование DO-178C. В докладе представляются результаты НИР по разработке инструментария сбора и анализа структурного покрытия, проводимых в последние годы в ГосНИИАС.

    avatar
    16:00-16:20 Об использовании модульного подхода во встраиваемых операционных системах
    Курбанмагомед Маллачиев, ИСП РАН

    Встраиваемые операционные системы конфигурируются на этапе сборки, позволяя создать образ ОС, предназначенный для выполнения на определенной аппаратной платформе и нацеленный на выполнение фиксированных задач. Если проследить как требуется модифицировать ОС для выполнения различных задач на различных аппаратных платформах, то можно заметить, что чаще требуется модифицировать не всю ОС, а некоторые ее подсистемы. Например, сетевую или файловую подсистемы. Доклад посвящен способу декомпозиции частоизменяемых подсистем на компоненты. Данный способ позволяет гибко конструировать и конфигурировать указанные подсистемы. Компоненты слабо связаны и могут взаимодействовать только через заранее специфицированный интерфейс. Предлагаемый способ поддерживает следующие модификации композиции компонентов:

    • модификация конфигурации отдельного компонента;
    • замена одного компонента другим с тем же интерфейсом;
    • добавление в композицию копии существующего компонента;
    • добавление компонента между двумя взаимодействующими компонентами.

    Предлагаемый модульный подход был успешно апробирован на ОСРВ JetOS при построении сетевой подсистемы. Файловая подсистема, основанная на модульном подходе находится в стадии разработки.

Организаторы

При поддержке

Регистрация

Конференция прошла 10-11 июня 2019 года.