umoci

Проекты, которые следуют приведенным ниже лучшим практикам, могут добровольно и самостоятельно оценить себя и продемонстрировать, что они получили значок Open Source Security Foundation (OpenSSF).

Если это ваш проект, пожалуйста, покажите свой значок на странице проекта! Статус значка выглядит следующим образом: Уровень значка для проекта 1084 - silver Вот как вставить его:

Это критерии уровня Gold. Вы также можете просмотреть критерии уровня Passing или Silver.

        

 Основы 4/5

  • Идентификация

    umoci is a tool for modifying Open Container images

  • Предварительные требования


    Проект ОБЯЗАН получить серебряный значок. [achieve_silver]

  • Надзор за проектом


    Проект ОБЯЗАН иметь «коэффициент автобуса» 2 или более. (Требуется URL) [bus_factor]

    Currently this project has a bus factor of one (Aleksa Sarai). However, we are working on improving this situation (Tycho Andersen is close to qualifying in this respect).



    Проект ОБЯЗАН иметь как минимум двух несвязанных значительных соавторов. (Требуется URL) [contributors_unassociated]

    There are currently two unassociated significant contributors (Aleksa Sarai and Tycho Andersen). See https://github.com/opencontainers/umoci/graphs/contributors for current statistics.


  • Другое


    Проект ОБЯЗАН указывать лицензию в каждом исходном файле. Это МОЖЕТ быть сделано путем включения в комментарий рядом с началом каждого файла следующей строки: SPDX-License-Identifier: [SPDX-выражение лицензии для проекта]. [license_per_file]

    Every source file includes the standard Apache 2.0 license header.


  • Публичное хранилище исходного кода с поддержкой версий


    Хранилище проектного исходного кода ОБЯЗАНО использовать типовое ПО для распределенного управления версиями (например, git или mercurial). [repo_distributed]

    Repository on GitHub, which uses git. git is distributed.



    Проект ОБЯЗАН четко обозначать небольшие задачи, которые могут быть выполнены новыми или случайными участниками. (Требуется URL) [small_tasks]

    Проект ОБЯЗАН требовать двухфакторной аутентификации (ДФА) от разработчиков для изменения центрального хранилища или доступа к конфиденциальным данным (например, приватным отчетам об уязвимостях). Этот механизм ДФА МОЖЕТ использовать механизмы без криптографической защиты, такие как SMS, хотя это не рекомендуется. [require_2FA]

    The opencontainers GitHub organisation requires 2FA be enabled for all accounts that are members, and thus all developers with push access must have 2FA.



    При двухфакторной аутентификации (ДФА) проекту СЛЕДУЕТ использовать криптографические механизмы для предотвращения имперсонации. ДФА на основе службы коротких сообщений (SMS) сама по себе НЕ соответствует этому критерию, поскольку короткие сообщения не шифруются. [secure_2FA]

    GitHub provides TOTP and FIDO 2FA, which are both cryptographically secure.


  • Стандарты кодирования


    Проект ОБЯЗАН документировать свои требования по ревью кода, в том числе, как проводится ревью кода, что необходимо проверять и что необходимо для приемлемости кода. (Требуется URL) [code_review_standards]

    Coding standards and requirements are described in the contributing documentation https://github.com/opencontainers/umoci/blob/master/CONTRIBUTING.md.



    Проект ОБЯЗАН проводить проверку не менее 50% всех предлагаемых модификаций до их попадания в выпуск человеком, отличным от автора, для определения того, являются ли эти модификации целесообразными и не содержат ли известных проблем, препятствующих включению. [two_person_review]

    As described in the governance rules https://github.com/opencontainers/umoci/blob/master/GOVERNANCE.md, 100% of contributions require two LGTMs from maintainers before a change can be merged. For changes made by maintainers, they are allowed to approve their own changes meaning that their contributions require one additional LGTM from a different maintainer.


  • Рабочая система сборки


    Проект ОБЯЗАН обеспечивать воспроизводимую сборку. Если сборка не требуется (например, в случае языков сценариев, где исходный код используется непосредственно вместо компиляции), выберите «N/A». (Требуется URL) [build_reproducible]

    umoci is written in Go which is a reproducible project https://blog.filippo.io/reproducing-go-binaries-byte-by-byte/, and we also have CI checks to ensure that builds are trivially reproducible. https://github.com/opencontainers/umoci/blob/v0.4.3/Makefile#L111-L122


  • Набор автотестов


    Набор тестов ОБЯЗАН запускаться стандартным способом для этого языка. (Требуется URL) [test_invocation]

    The test suite can be invoked from the project's Makefile https://github.com/opencontainers/umoci/blob/master/Makefile which uses the standard go testing tool for unit tests and runs the bats testing tool for integration tests.



    Проект ОБЯЗАН реализовать непрерывную интеграцию, при которой новый или измененный код интегрируется в центральное хранилище кода, и на получившейся базе кода запускаются автоматические тесты. (Требуется URL) [test_continuous_integration]

    This project makes use of the free software CI system Travis https://travis-ci.org/opencontainers/umoci, and the actual test framework is the free software project bats https://github.com/bats-core/bats-core.



    Проект ОБЯЗАН иметь автоматические тестовые пакеты на СПО, которые обеспечивают покрытие не менее 90% инструкций кода, если есть хотя бы один инструмент на СПО, который может измерять этот критерий на выбранном языке. [test_statement_coverage90]

    We currently have a hard requirement of 80% statement coverage for all new changes, which are automatically tested as part of CI. In future we plan to increase this to 90% (the main restriction is that currently Go's error paths are considered separate statements -- and it's not always possible to mock all error paths, especially obvious error paths).



    Проект ОБЯЗАН иметь автоматические тестовые пакеты на СПО, которые обеспечивают покрытие не менее 80% веток кода, если есть хотя бы один инструмент на СПО, который может измерять этот критерий на выбранном языке. [test_branch_coverage80]

    There doesn't currently exist any branch coverage tool for Go -- only statement coverage is available. https://github.com/golang/go/issues/28888


  • Основы правильного использования криптографии

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

    В ПО, создаваемом проектом, НЕОБХОДИМО поддерживать безопасные протоколы для всех сетевых коммуникаций, такие как SSHv2 или новее, TLS1.2 или новее (HTTPS), IPsec, SFTP и SNMPv3. По умолчанию НЕОБХОДИМО отключать небезопасные протоколы, такие как FTP, HTTP, telnet, SSLv3 или более ранние версии, и SSHv1, и разрешать их только в том случае, если пользователь явным образом это задаёт. Если программное обеспечение, созданное проектом, не поддерживает сетевые коммуникации, выберите «неприменимо» (N/A). [crypto_used_network]

    This project does not support network communication.



    Если ПО, создаваемое проектом, поддерживает или использует TLS, НЕОБХОДИМО поддерживать как минимум версию TLS 1.2. Примечание: предшественник TLS называется SSL. Если программное обеспечение не использует TLS, выберите «неприменимо» (N/A). [crypto_tls12]

    This project does not use TLS.


  • Доставка, защищенная от атак посредника (MITM)


    Веб-сайт проекта, репозиторий (если он доступен через Интернет) и сайт загрузки (если он существует отдельно) ОБЯЗАНЫ использовать упрочняющие безопасность (hardening) заголовки с неразрешающими значениями. (Требуется URL) [hardened_site]

    The necessary hardening headers are being set (see https://observatory.mozilla.org/analyze/umo.ci for an up-to-date report), but unfortunately our CSP has to include unsafe-inline for both script-src and style-src because the Hugo theme we use makes use of inline JS and CSS. However we do plan to move away from this theme to resolve the issue https://github.com/opencontainers/umoci/issues/336 and our project website is entirely static with no private data.


  • Другие вопросы безопасности


    Проект ОБЯЗАН иметь проверку безопасности за последние 5 лет. При проверке НЕОБХОДИМО учитывать требования и границы безопасности. [security_review]

    This project has not yet received any third-party security review.



    В ПО, создаваемом проектом, НЕОБХОДИМО использовать механизмы упрочнения безопасности (hardening), чтобы дефекты программного обеспечения с меньшей вероятностью приводили к уязвимостям в безопасности. (Требуется URL) [hardening]

    While Go doesn't provide many hardening mechanisms, we do use -buildmode=pie to enable ASLR https://github.com/opencontainers/umoci/blob/v0.4.3/Makefile. We also additionally have several protections such as making extracted filesystems world-inaccessible by default https://umo.ci/reference/security/, as well as working actively on protecting against container escapes (though this is something still being worked on https://github.com/opencontainers/umoci/issues/277).


  • Динамический анализ кода


    Проект ОБЯЗАН применять хотя бы один инструмент динамического анализа к любой предлагаемой основной версии ПО, создаваемого проектом до её выпуска. [dynamic_analysis]

    Проекту СЛЕДУЕТ включать достаточно много утверждений (assertions) времени выполнения в создаваемом им ПО и проверять эти утверждения во время динамического анализа. [dynamic_analysis_enable_assertions]

    We have various forms of validation (most notably relating to checksum mismatches), and our test suite validates that such attacks are being correctly detected. However, since we do not have any dynamic analysis suite (our test suite only checks statement coverage not branch coverage), this requirement is technically not met.



Эти данные доступны под лицензией Creative Commons Attribution версии 3.0 или более поздней (CC-BY-3.0+). Все могут свободно делиться и адаптировать эти данные, но должны указывать соответствующие ссылки. При распространении, пожалуйста, указывайте "Aleksa Sarai and the OpenSSF Best Practices badge contributors".

Владелец анкеты на значок проекта: Aleksa Sarai.
2017-07-02 06:46:40 UTC, последнее изменение сделано 2020-06-29 03:43:04 UTC. Последний раз условия для получения значка были выполнены 2017-07-02 13:10:18 UTC.

Назад