Безопасность

Почему важна базовая безопасность OpenSSF для проектов с открытым исходным кодом

Почему важна базовая безопасность OpenSSF для проектов с открытым исходным кодом

Базовая линия безопасности проектов с открытым исходным кодом, или OSPS Baseline, - это новая инициатива OpenSSF, направленная на укрепление безопасности проектов с открытым исходным кодом.

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

Программное обеспечение с открытым исходным кодом используется во всем, от современных серверов до IoT и рабочих столов на работе, и, похоже, оно лежит в основе систем Европейского союза. Программный офис Еврокомиссии по открытому исходному коду решил предложить вознаграждение за ошибки в популярном ПО с открытым кодом. Что может быть лучше для признания важности OSS, чем спонсорство со стороны государства?

В частности, особое внимание уделяется OpenSSL и ошибке Heartbleed.

Во-вторых, обеспечить безопасность приложений не так-то просто, о чем мы писали в статье «The State Of Secure Software Development - Three OpenSSF Courses»:

Но как вам, разработчику библиотеки, фреймворка или приложения, придумать правила безопасного кодирования? Образование - вот что важно, и никакие инструменты, какими бы мощными они ни были, не смогут его заменить. Знание того, как писать безопасный код, минимизирует риски и может смягчить ограничения инструментов. Сложность современного программного обеспечения требует не только написания основного кода с учетом требований безопасности. Она требует обеспечения безопасности не как дополнения к процессу разработки, а как неотъемлемой части конвейеров CI/CD. Существует даже новый принцип на эту тему: пересечение DevOps и безопасности в DevSecOps. Этот принцип привел Linux Foundation к созданию Open Source Security.

Foundation (OpenSSF), целью которого является обучение разработчиков:

  • Раскрытие уязвимостей
  • Инструментарий безопасности
  • Лучшие практики безопасности
  • Определение угроз безопасности для проектов с открытым исходным кодом
  • Обеспечение безопасности критически важных проектов

Новая базовая попытка укрепляет видение OpenSSF в отношении безопасного программного обеспечения с открытым исходным кодом, помогая разработчикам
начать с общего набора разумных настроек по умолчанию. Разумные настройки по умолчанию - это, конечно, то, что уже используется в таких инструментах, как Semgrep.

В блоге 2020 года «Будущее AppSec и почему я присоединился к r2c» эксперт по кибербезопасности Клинт Гиблер говорит следующее:

Невозможно найти все ошибки, какими бы продвинутыми ни были ваши инструменты.

Вместо этого он утверждает, что путь вперед заключается в следующем:

Создание библиотек и инструментов secure-by-default, которые разработчики могут использовать для предотвращения целых классов уязвимостей, а затем убедиться, что разработчики используют их. Именно в это верят дальновидные команды безопасности в таких компаниях, как Google, Microsoft, Facebook, Netflix, Dropbox и других, и вкладывают в это средства на протяжении многих лет.

Например, современные веб-фреймворки, такие как Django, Ruby on Rails и другие, имеют ряд безопасных настроек по умолчанию и встроенных ограждений, которые делают потенциально опасные задачи безопасными по умолчанию, включая контекстно-зависимое кодирование вывода (предотвращение XSS), тесную интеграцию с объектно-реляционными мапперами (предотвращение SQL-инъекций) и многое другое. По моему мнению и мнению многих других, именно поэтому улучшилась общая веб-безопасность, а не все те причудливые инструменты для поиска ошибок, которые мы создали.

Компания Chainguard сделала еще один шаг вперед, применив этот принцип разумных настроек по умолчанию к образам контейнеров, собранных с помощью Wolfi, Linux (un)distribution и инструментария сборки компании Chainguard. Таким образом, Wolfi создает образы контейнеров, которые отвечают требованиям безопасной цепочки поставок программного обеспечения; то есть образы уже снабжены подписями и разумными настройками по умолчанию.

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

Контроль доступа

Контроль доступа фокусируется на механизмах и политиках, которые контролируют доступ к системе контроля версий и CI/CD конвейерам проекта. Эти средства контроля позволяют гарантировать, что только авторизованные пользователи могут получать доступ к конфиденциальным данным, изменять настройки репозитория или выполнять процессы сборки и выпуска.

  • OSPS-AC-01.01
    Требования: Когда пользователь пытается получить доступ к конфиденциальному ресурсу в системе контроля версий проекта, система ДОЛЖНА потребовать от пользователя пройти процесс многофакторной аутентификации.

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

Сопоставления с внешним фреймворком

  • BPB: CC-G-1
  • CRA: 1.2d, 1.2e, 1.2f
  • SSDF: PO3.2, PS1
  • CSF: PR.A-02
  • ОКР: 486-813, 124-564, 347-352, 333-858, 152-725, 201-246

Как видите, базовая линия имеет общие черты с другими фреймворками, такими как SSDF от NIST, Европейский закон о киберустойчивости (CRA) и т. д.

Build and Release

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

  • OSPS-BR-01.02
    Требование: Если конвейер CI/CD использует имя ветки в своей функциональности, значение этого имени ДОЛЖНО быть продезинфицировано и проверено перед использованием в конвейере.

Оценка безопасности

  • OSPS-SA-02.01
    Требования: Когда проект выпустил релиз, проектная документация ДОЛЖНА включать описания всех внешних программных интерфейсов выпущенных программных активов.

Рекомендации: Документируйте все программные интерфейсы (API) выпущенных программных активов, объясняя, как пользователи могут взаимодействовать с программным обеспечением и какие данные ожидаются или производятся. Убедитесь, что эта документация обновляется при появлении новых функций или изменений.

Управление уязвимостями

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

  • OSPS-VM-03 - Проект ДОЛЖЕН предоставить средства для сообщения об уязвимостях безопасности в частном порядке контактным лицам по безопасности в рамках проекта.
    Уязвимости безопасности не должны распространяться среди общественности до тех пор, пока проекту не будет предоставлено время для анализа и подготовки мер по их устранению для защиты пользователей проекта.
  • OSPS-VM-03.01
    Требование: Пока проект активен, документация проекта ДОЛЖНА предоставлять средства для сообщения об уязвимостях безопасности в частном порядке контактным лицам по безопасности в проекте.

Рекомендация: Предоставьте исследователям безопасности возможность сообщать об уязвимостях в частном порядке в проект. Это может быть специальный адрес электронной почты, веб-форма, специализированные инструменты VSC, адреса электронной почты контактных лиц службы безопасности или другие методы.

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

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

Читайте также

Фишеры используют Google OAuth для подделки Google в атаке повторного воспроизведения DKIM

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