Makes

本サイトが提示する下記のベストプラクティスを実行するプロジェクトは、Open Source Security Foundation (OpenSSF) バッジを達成したことを自主的に自己認証し、そのことを外部に示すことができます。

これがあなたのプロジェクトなら、あなたのプロジェクトページにあなたのバッジステータスを表示してください!バッジステータスは次のようになります。 プロジェクト 5703 のバッジ レベルは gold です バッジステータスの埋め込み方法は次のとおりです。

これらはゴールドレベルの基準です。合格またはシルバーレベル基準を表示することもできます。

        

 基本的情報 5/5

  • 識別情報

    A DevSecOps framework powered by Nix.

  • 前提要件


    プロジェクトは、シルバー レベル バッジを達成しなければなりません。 [achieve_silver]

  • プロジェクトの管理・運営


    プロジェクトは2以上の "バス ファクタ"を持つ必要があります。 (URLが必要です) [bus_factor]

    The project is maintained by Fluid Attacks and employes contribute to it as part of of their work schedule. Usually more than 2 developers contribute to each release: https://github.com/fluidattacks/makes/commits/main and currently we have three persons in the payroll with maintainer status: https://fluidattacks.github.io/makes/governance/



    プロジェクトには少なくとも2人の関係を持たない重要な貢献者がいなければなりません。 (URLが必要です) [contributors_unassociated]

    As of 2022-09-22, the project has had code contributions (measured in commits) from the following individuals:

    makes $ git log --format=%aN --since=2021-09-22 | sort | uniq -c | sort -rn

    152 Kevin Amado
    109 John Perez
     49 Daniel Salazar
     15 Diego Restrepo
      6 David Arnold
      3 Luis Saavedra
      2 GuangTao Zhang
      1 Timothy DeHerrera
      1 Github Dependabot
      1 Daniel Murcia
    

    https://github.com/fluidattacks/makes/commits/main


  • その他


    プロジェクトは、各ソースファイルにライセンスステートメントを含まなければなりません。これは、各ファイルの先頭近くに次のコメントを含めることによって行うことができます: SPDXライセンス識別子:[プロジェクトに対するSPDXライセンス表現] [license_per_file]

    We use https://reuse.software/ and validate its compliance in the CI/CD on each pull request. This is how a file copyright statement looks like: https://github.com/fluidattacks/makes/blob/cf3762cd96b65759d9c18a9b30f41d5aac465f2c/README.md?plain=1#L1-L5


  • 公開されたバージョン管理ソースリポジトリ


    プロジェクトのソースリポジトリは、共通の分散バージョン管理ソフトウェア(gitやmercurialなど)を使用しなければなりません。 [repo_distributed]

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



    プロジェクトは、新規または偶に参加する貢献者によって実行できる小さなタスクを明確に識別しなければなりません。 (URLが必要です) [small_tasks]

    プロジェクトは、中央リポジトリを変更したり、機密データ(プライベート脆弱性レポートなど)にアクセスするために、開発者に対して二要素認証(2FA)を要求する必要があります。推奨されませんが、2FAメカニズムは、SMSのような暗号化メカニズムを持たないメカニズムを使用することができます。 [require_2FA]

    2FA is required at the organization level, so in order to sign-in to GitHub and approve pull requests or access the repository configuration they need to authenticate first.



    プロジェクトの2要素認証(2FA)は、偽装を防ぐために暗号化メカニズムを使用すべきです。ショート メッセージ サービス(SMS)ベースの2FA自体は、暗号化されていないため、この基準を満たしていません。 [secure_2FA]

    GitHub normally uses a token based 2FA read from a mobile authentication app, lately, the 2FA authentication is usually push-based, so a user needs to use GitHub mobile to enter the code display in the screen.


  • コーディング標準


    プロジェクトは、コードレビューの実施方法、チェックする必要があるもの、受け入れられる必要があるものなど、コードレビュー要件を文書化しなければなりません。 (URLが必要です) [code_review_standards]

    プロジェクトは、公開する前に、提案されたすべての変更の少なくとも50%を著作者以外の人がレビューして、それが価値のある変更であり、取り込みに反対する既知の問題がないかどうかを判断しなければなりません。 [two_person_review]
  • 作業ビルドシステム


    プロジェクトが再現可能なビルドを持たなければなりません。ビルドが発生しない場合(たとえば、コンパイルされないでソースコードが直接使用されるスクリプト言語)、「該当なし」(N/A)を選択します。 (URLが必要です) [build_reproducible]

    We use the Makes, which uses the Nix Package Manager under the hood. The Nix Package Manager is a reproducible build tool. Generally all that is needed is a single command and that would build anything available in the repository.

    The build scripts and their Nix environment definition can be found here: https://github.com/fluidattacks/makes/tree/8aeed32054e90ef6dd577a935b35d884a238dcde/makes


  • 自動テスト スイート


    テストスイートは、その言語の標準的な方法で呼び出すことができなければなりません。 (URLが必要です) [test_invocation]

    We have to test many programing languages, so in order to simplify orchestration we use a build tool. Usually all a person needs to do to invoke the test suite is to: - Open a pull request, which fires automated tests automatically, or - Run locally $ m . /test<something>, for example: $ m . /tests/secretsForGpgFromEnv

    https://github.com/fluidattacks/makes/blob/a4b0e3ba6c309972354852efb16bca00d0d97153/.github/workflows/dev.yml#L597



    プロジェクトは、新しいコードまたは変更されたコードが頻繁に中央コードリポジトリに統合され、その結果に対して自動化されたテストが実行される、継続的な統合を実装しなければなりません。 (URLが必要です) [test_continuous_integration]

    Workflows are defined, running on GitHub actions https://github.com/fluidattacks/makes/tree/main/.github/workflows



    プロジェクトは、選択された言語でこの基準を測定できる少なくとも1つのFLOSSツールがある場合、少なくとも80%のステートメント カバレッジを提供するFLOSS自動テストスイートを備えていなければなりません。 [test_statement_coverage90]

    Most of the code we have (the framework) uses Nix and Shell scripting, and there is no tool to measure their coverage. For our CLI application (which uses Python), we use Pytest and Pytest-Cov, to measure statement coverage, and is executed continuously by the CI/CD system on every Pull Request. However, we also have a lot of integration tests for the Nix+Shell components, so their correctness is verified as well.



    選択された言語でこの基準を測定できる少なくとも1つのFLOSSツールがあれば、少なくとも80%のブランチカバレッジを提供するFLOSS自動テストスイートがプロジェクトに存在しなければなりません。 [test_branch_coverage80]

    Most of the code we have (the framework) uses Nix and Shell scripting, and there is no tool to measure their coverage. For our CLI application (which uses Python), we use Pytest and Pytest-Cov, to measure branch coverage, and is executed continuously by the CI/CD system on every Pull Request. However, we also have a lot of integration tests for the Nix+Shell components, so their correctness is verified as well.


  • 優良な暗号手法を使用する

    一部のソフトウェアは暗号化メカニズムを使用する必要がないことに注意してください。あなたのプロジェクトが作成するソフトウェアが、(1) 暗号化機能を含む、アクティブ化する、または有効化し、(2) 米国(US)から米国外または米国市民以外にリリースされる可能性がある場合は、法的に義務付けられた追加手順の実行を要求される可能性があります。通常、これにはメールの送信が含まれます。詳細については、 Understanding Open Source Technology & US Export Controls「オープンソース技術と米国の輸出管理について」)の暗号化のセクションを参照してください。

    プロジェクトで作成されたソフトウェアは、ネットワーク通信すべてに対して、SSHv2以降、TLS1.2以降 (HTTPS)、IPsec、SFTP、SNMPv3などのセキュア プロトコルをサポートしなければなりません。FTP、HTTP、telnet、SSLv3以前、SSHv1などのセキュアでないプロトコルは、デフォルトで無効にしておき、ユーザーが特別に設定した亜場合のみ有効にしなければなりません。プロジェクトによって作成されたソフトウェアがネットワーク通信をサポートしない場合は、「該当なし」(N/A)を選択します。 [crypto_used_network]


    プロジェクトによって作成されたソフトウェアは、TLSをサポートあるいは使用する場合、少なくともTLSバージョン1.2をサポートしなければなりません。TLSの前身は、SSLと呼ばれていたことに注意して下さい。ソフトウェアがTLSを使用ない場合、「該当なし」(N/A)を選択します。 [crypto_tls12]

  • MITM(man-in-the-middle:中間者)攻撃に対応できる安全な配信


    プロジェクトウェブサイト、リポジトリ(ウェブからアクセス可能な場合)、およびダウンロードサイト(別々の場合)には、許容できない値を持つキー強化ヘッダーが含まれていなければなりません。 (URLが必要です) [hardened_site]

  • その他のセキュリティ上の課題


    プロジェクトは過去5年間にセキュリティレビューを実施していなければなりません。このレビューは、セキュリティ要件とセキュリティ境界を考慮しなければならりません。 [security_review]

    We perform security reviews on each pull request. From a conceptual and design level, the potential problems and their mitigation (threat model) have been identified here: https://fluidattacks.github.io/makes/security/threat-model/. We also make sure that the design principles are secure: https://fluidattacks.github.io/makes/security/design-principles/. Static analysis tools are used often as well: https://fluidattacks.github.io/makes/security/assurance/



    プロジェクトによって作成されたソフトウェアで強化メカニズムを使用しなければならないので、ソフトウェア欠陥がセキュリティ上の脆弱性を引き起こす可能性が低くなります。 (URLが必要です) [hardening]

    The Makes CLI is a Python application, there is no hardening we can do beyond making sure it runs with a recent version of Python and with dependencies free of known security vulnerabilities: https://fluidattacks.github.io/makes/security/assurance/


  • 動的コード分析


    プロジェクトは、リリース前にプロジェクトによって作成されたソフトウェアの主要な製品リリースに対して、少なくとも1つの動的解析ツールを適用しなければなりません。 [dynamic_analysis]

    We use an automated test suite for this purpose, branch coverage is enabled on it, and the critical flows are tested and verified by the CI/CD system for every change made in the project



    プロジェクトは、生成するソフトウェアに多くの実行時アサーションを含めるべきであり、動的分析中にそれらのアサーションをチェックするべきです。 [dynamic_analysis_enable_assertions]

    We use raise SystemExit(code) anytime an error condition is encountered so that the CLI signals to the user that something went wrong. An error message is also normally printed. This system exits would also be caught by the dynamic analysis tool.



このデータは、Creative Commons Attribution version 3.0以降のライセンス(CC-BY-3.0 +)のもとで利用できます。すべての人がデータを自由に共有および適応できますが、適切にクレジットを入れる必要があります。 John PerezとOpenSSFベストプラクティス バッジ貢献者のクレジットを入れてください。

プロジェクト バッジ登録の所有者: John Perez.
エントリの作成日時 2022-03-10 18:51:06 UTC、 最終更新日 2022-10-28 18:29:34 UTC 最後に2022-03-10 19:49:27 UTCにバッジ合格を達成しました。

もどる