Новый способ сертификации ПО с открытым исходным кодом. Задача проекта AssureMOSS

(Ди Маттео Маури)
04/08/21

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

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

В этой статье мы кратко рассмотрим попытку проекта AssureMOSS (Гарантия и сертификация безопасного многостороннего открытого программного обеспечения и услуг - https://assuremoss.eu) для решения проблемы программного обеспечения открытые источники «Разработано везде, но гарантировано в Европе». Трехлетний проект (октябрь 2020 г. - сентябрь 2023 г.) финансируется Европейской комиссией в рамках программы HORIZON 2020 [1].

Стремление к сборке программного обеспечения и парадигма MOSS

В последнее десятилетие среди множества инноваций две основные характеристики, в частности, радикально изменили и обусловили проекты разработки программного обеспечения [2]. Во-первых, сокращение цикла обратной связи между командами разработчиков и реакции на продукты, которые эти команды выпускают (например, A / B-тестирование, DevOps), привело к лихорадочной разработке с более быстрыми изменениями продукта. Во-вторых, разработчики все больше сосредотачиваются на дифференциации функций в своих конечных продуктах, но все больше полагаются на сторонних разработчиков во всем остальном (облачная реализация, широкое использование открытых фреймворков, таких как OpenSSL [3] или Node .js [4], или использование других ограниченные продукты, но в любом случае с протоколами, процедурами, библиотеками и API [5] открытые источники). Все это привело к разработке, в которой задействованы разные стороны (так называемые «многосторонние», от английского: «многосторонняя сторона»): результатом является сборка, управляемая разными участниками, каждый со своими собственными методами / политиками безопасности и конфиденциальности.

Мы уже можем ввести здесь аббревиатуру, которую будем использовать в оставшейся части статьи. Современное программное обеспечение основано на парадигме под названием «Открытое многостороннее программное обеспечение и услуги» (MOSS). Следовательно, компания-разработчик программного обеспечения, разрабатывающая продукт, представляет собой только одного из главных действующих лиц, участвующих в процессе обеспечения безопасности программного обеспечения для этого же продукта.

Эти вовлеченные стороны включают сообщества разработчиков ОС, например, в создании обновлений безопасности, или компании, которые предоставляют новые услуги безопасности или обновления существующих интерфейсов. Парадигма MOSS, безусловно, применима к более крупным компаниям, в то время как более мелкие компании, такие как МСП и стартапы, могут иметь более короткую цепочку поставок, которая в основном основана на бесплатном программном обеспечении с открытым исходным кодом (FOSS - бесплатное программное обеспечение с открытым исходным кодом).

Последний составляет основу индустрии программного обеспечения: сегодня почти 80% коммерческих продуктов содержат по крайней мере один компонент FOSS до такой степени, что Европейский парламент официально признал его ключевую роль. Также интересно отметить прогрессирующую тенденцию к сокращению части кода, производимого внутри компаний, занимающихся разработкой программного обеспечения. В конце 90-х годов более 95% программного стека состояло из кода собственной разработки. Только базы данных и операционные системы поставлялись лицензированными поставщиками с закрытым исходным кодом. Наблюдая текущую тенденцию, можно увидеть, что в 2019 году, с другой стороны, часть кода, созданного внутри компании, резко уменьшилась и составляет лишь 5% пирога: браузеры, фреймворки пользовательского интерфейса, менеджеры пакетов, серверы приложений, платформы микросервисов, контейнеры, системы, работающие в контейнерах, все они, как правило, сторонние программные компоненты (в основном открытые источники), которые компании-разработчики программного обеспечения используют ежедневно [6-7-8].

Сертификация и ресертификация программного обеспечения

Эта эволюция процесса разработки программного обеспечения в быстрых и фрагментированных циклах будет означать столько процессов / циклов сертификации и гарантии безопасности программного обеспечения из-за многочисленных изменений, которые имеют последствия для безопасности и конфиденциальности (например, новая уязвимость может быть введена при использовании новой библиотеки, способной получать доступ к личным данным и, возможно, передавать их). Следовательно, новая парадигма обеспечения безопасности должна быть «легкой и непрерывной» по сравнению с предыдущей «жесткой и фиксированной» парадигмой. Поэтому мы должны говорить не о сертификации, а скорее о сертификации, повторной сертификации и оценке рисков.

Тот факт, что разработка программного обеспечения, по сути, является деятельностью многих заинтересованных сторон (где некоторые заинтересованные стороны скрыты во вложенных зависимостях сторонних библиотек), означает, что методы обеспечения достоверности должны работать в фрагментированной экосистеме с несколькими источниками артефактов (например, из сообщества открытые источники), разные технологии и языки и разные области принятия решений. В результате новая парадигма обеспечения безопасности включает в себя «умный и гибкий» подход, который позволяет учиться, адаптироваться и улучшаться с течением времени за счет доступности новых данных и дополнительной обратной связи.

Если не будут созданы инновационные, легкие и интеллектуальные методы обеспечения безопасности, которые могут быть интегрированы с многочисленными заинтересованными сторонами и быстро развивающимися разработчиками, безопасность будет по-прежнему наказываться [9] гонкой продуктивности команд разработчиков. Настоятельно рекомендуется внедрять новые функции ежедневно основание.

Быстрая разработка с участием многих заинтересованных сторон также создает проблему для обеспечения сертификации программного обеспечения. Существующие схемы сертификации безопасности, в том числе для проектов открытые источники, такие как Программа значка Инициативы по базовой инфраструктуре (CII) [10], нацелены на подтверждение того, что программные проекты соответствуют определенным передовым методам безопасности. По сути, эти схемы сосредоточены на процессе разработки программного обеспечения. Однако в современных проектах программного обеспечения процесс разработки становится более плавным и постоянно адаптируется разработчиками (в отличие от жесткого и централизованного исполнения). В результате предприятия, задействованные на каждом этапе, могут не располагать необходимыми ресурсами для получения и поддержания этих сертификатов.

Задача проекта AssureMOSS

Из того, что было сказано, определенно будет воспринята необходимость изменения точки зрения со стороны Европейского Союза, который попытался запустить новый подход, финансируя проект AssureMOSS. В проекте участвует команда, состоящая из 4 университетов (Делфт, Готеборг, Тренто, Вена), 3 инновационных малых и средних предприятий (Pluribus One, FrontEndArt, Search-Lab), 2 крупных компаний (SAP, Thales), организации EU-VRi и консультационной Совет состоит из стратегических деятелей из мира индустрии и программного обеспечения с открытым исходным кодом (OSS).

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

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

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

• использование машинного обучения для интеллектуального выявления проблем безопасности среди артефактов;

• анализ и проверка изменений посредством постоянного отслеживания побочных эффектов на конфиденциальность и безопасность;

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

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

Инструменты AssureMOSS помогут, например, сэкономить время при поиске ошибок и уязвимостей за счет полуавтоматической проверки добавлений, удалений и изменений в репозиториях кода (анализ фиксации [11]), тем самым также ускоряя оценку и процесс анализа программного обеспечения.

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

Основная интуиция хорошо обобщена в хорошо известной практике в области медицинского здравоохранения [12], которую мы адаптируем здесь для этой цели: «Скрининг определяется как профилактическое выявление заболевания у явно здорового и бессимптомного населения с помощью тесты (компонентов программного обеспечения), экзамены или другие процедуры, которые можно быстро и легко применить к целевой группе населения. [...] Поддерживая программы скрининга, важно избегать навязывания моделей, полученных из высокоэффективной среды с передовыми системами здравоохранения и сложными и дорогостоящими (безопасными) схемами проверки, компаниям, процессам (разработчикам и пользователям) в странах, которые не иметь необходимой инфраструктуры и ресурсов для получения адекватной профилактики среди населения ".

1 Проект AssureMOSS регулируется Соглашением о гранте № 952647 и финансируется на общую сумму 4.689.425 XNUMX XNUMX евро, www.pluribus-one.it/it/ricerca/progetti/assuremoss

2 Янв Бош, Скорость, данные и экосистемы: превосходство в мире программного обеспечения, CRC Press, 2016

3 OpenSSL - это реализация протоколов SSL и TLS с открытым исходным кодом, доступная для большинства unix-подобных операционных систем, включая GNU / Linux и macOS, а также для Microsoft Windows, www.openssl.org

4 Node.js - это событийно-ориентированная кроссплатформенная система времени выполнения с открытым исходным кодом для выполнения кода JavaScript, построенная на движке Google Chrome V8 JavaScript. Многие из его основных модулей написаны на JavaScript, и разработчики могут писать новые модули на JavaScript, https://nodejs.org/it/

5 API, аббревиатура от Application Programming Interface, www.redhat.com/en/topics/api/what-are-application-programming-interfaces

6.Опрос Black Duck: будущее открытого исходного кода, 2015 г.

7 Хольгер Мак, Том Шрёер, Кризис среднего возраста в сфере безопасности, Саммит по безопасности продуктов SAP 2019

http://www.europarl.europa.eu/oeil/popups/ficheprocedure.do?lang=en&refe...

9 Согласно CVE Details, в 2017 г. был побит рекорд по уязвимостям предыдущих лет (14714 в 2017 г. против предыдущего рекорда в 7946 в 2014 г.). К сожалению, 2018 год оказался еще хуже (16555 уязвимостей). https://www.cvedetails.com/browse-by-date.php

10 https://www.coreinfrastructure.org

11 https://wiki.ubuntu-it.org/Programmazione/Git/Commit

12 https://www.who.int/cancer/prevention/diagnosis-screening/screening/en/

13 Эоин Вудс, Демократизация архитектуры программного обеспечения, основной доклад на ICSA 2019, онлайн по адресу https://speakerdeck.com/eoinwoods/democratising-software-architecture

14 www.pluribus-one.it/it/chi-siamo/blog/88-cybersecomics/111-bug