jenkins

本サイトが提示する下記のベストプラクティスを実行するプロジェクトは、コアインフラストラクチャイニシアチブ(CII)バッジを達成したことを自主的に自己認証し、そのことを外部に示すことができます。

ソフトウェアに欠陥や脆弱性がないことを保証する手立てはありません。形式論的な証明ができたとしても、仕様や前提が間違っていると誤動作の可能性があります。また、プロジェクトが健全で、かつ機能的な開発コミュニティであり続けることを保証する手立てもありません。しかし、ベストプラクティスの採用は、プロジェクトの成果の向上に寄与する可能性があります。たとえば、いくつものベストプラクティスがリリース前の複数人によるレビューを定めていますが、それによりレビュー以外では発見困難な技術的脆弱性を見つけるのを助け、同時に異なる企業の開発者間の信頼を築き、さらに交流を続けることに対する意欲を生んでいます。バッジを獲得するには、すべてのMUSTおよびMUST NOT基準を満たさなければなりません。すべてのSHOULD基準も満たさなければなりませんが、正当な理由がある場合のみ満たさなくても構いません。すべてのSUGGESTED基準も満たさなければなりませんが、満たさないとしても、少なくとも考慮を払うことが望まれます。フィードバックは、 GitHubサイトのissueまたはpull requestとして提示されれば歓迎します。また、議論のためのメールリストも用意されています。

私たちは、いくつかの言語で情報を提供していますが、翻訳版に矛盾や意味の不一致があった場合、英語版を正式な記述とします。
これがあなたのプロジェクトなら、あなたのプロジェクトページにあなたのバッジステータスを表示してください!バッジステータスは次のようになります。 プロジェクト 3538 のバッジ レベルは passing です バッジステータスの埋め込み方法は次のとおりです。
バッジステータスを表示するには、あなたのプロジェクトのマークダウンファイルに以下を埋め込みます
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3538/badge)](https://bestpractices.coreinfrastructure.org/projects/3538)
あるいは、以下をHTMLに埋め込みます
<a href="https://bestpractices.coreinfrastructure.org/projects/3538"><img src="https://bestpractices.coreinfrastructure.org/projects/3538/badge"></a>


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



 基本的情報 12/12

  • 識別情報

    他のプロジェクトが同じ名前を使用していないか注意してください。

    Jenkins automation server

    どのようなプログラミング言語を使ってプロジェクトを実装していますか?
    複数の言語がある場合は、コンマを区切り(スペースを入れてもよい)としてリストし、使用頻度の高いものから順に並べます。使用言語が多くある場合は、少なくとも最初の3つの最も多く使われるものをリストアップしてください。言語がない場合(例:ドキュメントだけ、またはテスト専用のプロジェクトの場合)、1文字 " - "を使用します。言語ごとにある大文字・小文字の慣用を踏襲してください(例:「JavaScript」)。
    Common Platform Enumeration(CPE)は、情報技術(IT)システム、ソフトウェア、およびパッケージのための構造化された命名体系です。脆弱性を報告する際に、多くのシステムやデータベースで使用されています。
  • 基本的なプロジェクト ウェブサイトのコンテンツ


    バッジには十分です!

    プロジェクトのウェブサイトは、ソフトウェアが何をするのか(何の問題を解決するのか)を簡潔に記述しなければなりません。 [description_good]
    これは、潜在的なユーザーが理解できる言語でなければなりません(例えば、それは最小限の専門用語を使用します)。

    Main use-cases are documented on the jenkins.io landing page



    バッジには十分です!

    プロジェクトのウェブサイトは、取得方法、フィードバックの提供方法(バグ報告や拡張機能)、ソフトウェアへの貢献方法に関する情報を提供しなければなりません。 [interact]

    Jenkins website provides all required information: Downloads, Contribute and Participate. Jenkins issue tracker is also linked from the landing page and from the website footer.



    バッジには十分です!

    貢献する方法に関する情報は、貢献プロセス(たとえばプル リクエストが使用されか、など)を説明する必要があります。 (URLが必要です) [contribution]
    別段の記載がない限り、GitHub上のプロジェクトは、(GitHubが提供する)課題管理とプルリクエストを使用することを想定します。この情報は不足しているかもしれません。すなわち、プロジェクトがプルリクエストと課題追跡ツールを使うことか、メーリングリストへの投稿を言及している。(どちら?)

    We have [Contributing Guidelines]https://github.com/jenkinsci/jenkins/blob/master/CONTRIBUTING.md] in the Jenkins core repository. Also, there is documentation for newcomer contributors available on https://jenkins.io/participate/ . For other core components we have an organization-wide contributing page on GitHub which references other resources



    バッジには十分です!

    貢献する方法に関する情報は、貢献を受け入れるための要件(たとえば、必要なコーディング標準への参照)を含むべきです。 (URLが必要です) [contribution_requirements]
  • FLOSSライセンス

    プロジェクトのライセンスはどのようなものですか?
    SPDXライセンスの表現形式を使用してください。 例:「Apache-2.0」、「BSD-2-Clause」、「BSD-3-Clause」、「GPL-2.0 +」、「LGPL-3.0 +」、「MIT」、「(BSD-2-Clause OR Ruby)」



    バッジには十分です!

    プロジェクトによって作成されたソフトウェアは、FLOSSとしてリリースされなければなりません。 [floss_license]
    FLOSSは、オープンソース定義またはフリーソフトウェア定義を満たす方法でリリースされたソフトウェアです。そのようなライセンスの例としては、CC0MIT2項型BSD 3項型BSD Apache 2.0 Less GNU General Public License(LGPL)、および GNU General Public License(GPL)を参照してください。私たちの目的のためには、これはライセンスが以下のものでなければならないことを意味します: ソフトウェアは他の方法でライセンスされているかもしれません(たとえば、「GPLv2またはプロプライエタリ」は許容されます)。

    The MIT license is approved by the Open Source Initiative (OSI).



    バッジには十分です!

    プロジェクトによって作成されたソフトウェアに必要なライセンスは、オープンソース・イニシアチブ(OSI)によって承認されていることが推奨されています。 [floss_license_osi]
    OSIは、厳格な承認プロセスを使用して、どのライセンスがOSSであるかを判断します。

    The MIT license is approved by the Open Source Initiative (OSI).



    バッジには十分です!

    プロジェクトは、結果のライセンスをソースリポジトリの標準的な場所に投稿しなければなりません。 (URLが必要です) [license_location]
    たとえば、LICENSEまたはCOPYINGという名前の最上位ファイルです。ライセンスファイル名の後に ".txt"や ".md"などの拡張子を付けることができます。

    Non-trivial license location file in repository: https://github.com/jenkinsci/jenkins/blob/master/LICENSE.txt.


  • ドキュメンテーション


    バッジには十分です!

    プロジェクトは、プロジェクトによって作成されたソフトウェアに関する基本的なドキュメンテーションを提供しなければなりません。 [documentation_basics]
    このドキュメントは、インストール方法、起動方法、使用方法(可能であれば例示したチュートリアル)、および、そのソフトウェアの適切なトピックであれば安全に使用する方法(たとえば何をするべきで、何をすべきでないか)を記述し、メディア(たとえば、テキストやビデオなど)に収められている必要があります。セキュリティの文書は必ずしも長文である必要はありません。プロジェクトは、ドキュメンテーションとしてプロジェクト以外の素材へのハイパーテキストリンクを使用してもよいです。プロジェクトがソフトウェアを作成しない場合は、「該当なし」(N / A)を選択します。

    バッジには十分です!

    プロジェクトは、プロジェクトによって作成されたソフトウェアの外部インタフェース(入力と出力の両方)を記述する参照ドキュメントを提供しなければなりません。 [documentation_interface]
    外部インターフェイスのドキュメントは、エンドユーザーまたは開発者に、その使用方法を説明します。ドキュメントには、ソフトウェアにアプリケーション プログラム インターフェイス(API)が含まれている場合、アプリケーション プログラム インターフェイスが含まれます。ライブラリの場合、呼び出すことができる主要なクラス/型とメソッド/関数を文書化します。ウェブ アプリケーションの場合、URLインタフェース(多くの場合、RESTインタフェース)を定義します。コマンドラインインターフェイスの場合は、サポートするパラメータとオプションを文書化します。多くの場合、ドキュメントのほとんどを自動生成すると、ソフトウェアが変更されたときにドキュメントがソフトウェアと同期したままなので、最も良い方法ですが、これは必須ではありません。プロジェクトは、ドキュメンテーションとしてプロジェクト以外の素材へのハイパーテキストリンクを使用してもよいです。ドキュメンテーションは自動的に生成されるかもしれません(実際的に、しばしばこれを行う最良の方法です)。 RESTインタフェースのドキュメントは、Swagger / OpenAPIを使用して生成することができます。コード インタフェースのドキュメントは、 JSDoc (JavaScript)、 ESDoc (JavaScript)、pydoc(Python)、およびDoxygen(多数)のいずれかです。実装コードにコメントがあるだけでは、この基準を満たすには不十分です。すべてのソースコードを読むことなく情報を見るための簡単な方法が必要です。プロジェクトがソフトウェアを作成しない場合は、「該当なし」(N / A)を選択します。
  • その他


    バッジには十分です!

    プロジェクトサイト(ウェブサイト、リポジトリ、およびダウンロードURL)は、TLSを使用したHTTPSをサポートしなければなりません。 [sites_https]
    暗号化しようからフリーの証明書を入手できます。プロジェクトは、(例えば) GitHubページ GitLabページ、またはSourceForgeプロジェクトページを使ってこの基準を実装してもよいです。カスタムドメインでGitHubページを使用している場合は、ブログの投稿「このファイルを安全かつ高速にGitHub Pages with CloudFlare」に記載されているように、HTTPSをサポートするプロキシとしてコンテンツ配信ネットワーク(CDN)を使用することができます。 HTTPをサポートしている場合は、HTTPトラフィックをHTTPSにリダイレクトすることを強くお勧めします。

    Given only https: URLs.



    バッジには十分です!

    プロジェクトは、議論(提案された変更や問題を含む)のための1つ以上の検索可能なメカニズムを持たなければならず、メッセージやトピックがURLでアドレス指定され、新しい人々がディスカッションのいくつかに参加できるようにしなければならず、クライアント側でプロプライエタリなソフトウェアのインストールを必要としないようにします。 [discussion]
    受け入れ可能なメカニズムの例には、アーカイブされたメーリングリスト、GitHubのイシューとプルリクエストの議論、Bugzilla、Mantis、Tracなどがあります。非同期ディスカッション メカニズム(IRCなど)は、これらの基準を満たしていれば許容されます。 URLアドレス可能なアーカイブ機構があることを確認してください。独自のJavaScriptは、推奨されませんが、許可されています。

    GitHub supports discussions on issues and pull requests.



    バッジには十分です!

    プロジェクトは英語で文書を提供し、英語でコードに関するバグ報告とコメントを受け入れることができるべきです。 [english]
    現在、英語はコンピュータ技術のリンガ フランカです。英語をサポートすることで、世界中のさまざまな潜在的な開発者とレビュアーの数を増やします。コア開発者の主要言語が英語でなくても、プロジェクトはこの基準を満たすことができます。

(詳細)このバッジエントリを編集する権限を持つユーザーは?現在:[]
ほとんどのプロジェクトはこのフィールドを無視できます。プロジェクトのバッジエントリは、バッジエントリのオーナー(作成者)、BadgeApp管理者、GitHubリポジトリにコミットできる人(GitHub上にある場合)によっていつでも編集できます。他の人がこのバッジエントリを編集できるようにする必要があり、あなたがこのプロジェクトのバッジ エントリの編集権限をすでに持っている場合は、編集権限を持つ追加のユーザを追加することができます。 "+"と入力し、その後にカンマ区切りの整数ユーザーIDのリストを入力します。そうすることで、これらのユーザーも、このプロジェクト エントリを編集できるようになります。あなたがバッジ エントリのオーナーまたはBadgeApp管理者である場合は、 "-"と入力した後にカンマで区切られた整数ユーザーIDのリストを入力すれば、このリストからユーザーを削除できます。複数のユーザーが同時に編集しようとすると、このアプリケーションはオプティミスティック ロック機能を使用して古いデータを保存しないようにします。このフィールドは、このプロジェクト エントリのオーナーとBadgeApp管理者だけが変更できます。



 変更管理 9/9

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


    バッジには十分です!

    プロジェクトには、公開され、URLを持つ、バージョン管理のソース リポジトリがなければなりません。 [repo_public]
    URLはプロジェクトのURLと同じであってもよいです。プロジェクトは、変更が公開されていない間に(例えば、公開前に脆弱性を修正するため)、特定のケースでプライベート(非公開)ブランチを使用することができます。

    Repository on GitHub, which provides public git repositories with URLs.



    バッジには十分です!

    プロジェクトのソース リポジトリは、どのような変更が行われたのか、誰が変更を行ったのか、いつ変更が行われたのかを追跡しなければなりません。 [repo_track]

    Repository on GitHub, which uses git. git can track the changes, who made them, and when they were made.



    バッジには十分です!

    共同レビューを可能にするために、プロジェクトのソースリポジトリには、リリース間のレビューのための中間バージョンが含まれなければなりません。最終リリースのみを含めることはできません。 [repo_interim]
    プロジェクトは、公開ソース リポジトリから特定の暫定版を省略することを選択することができます。(たとえば、特定の非公開のセキュリティ脆弱性を修正するものは、公開されないか、または、合法的に投稿できないか、最終リリースに入らないです)


    バッジには十分です!

    プロジェクトのソース リポジトリに共通の分散バージョン管理ソフトウェア(gitなど)を使用することを推奨します。 [repo_distributed]
    Gitが特別に必要とされているわけでなく、プロジェクトでは、集中型バージョン管理ソフトウェア(例:subversion)を正当とする証拠を持って使用できます。

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


  • 一意的なバージョン番号


    バッジには十分です!

    プロジェクトの結果には、ユーザーが使用することを意図されたリリースごとに固有のバージョン識別子が必要です。 [version_unique]
    これはコミットID(git commit idやmercurial changeset idなど)やバージョン番号(YYYYMMDDのようなセマンティックバージョニングや日付ベースのスキームを使用するバージョン番号を含む)など、さまざまな方法で対応できます。


    かろうじてバッジには十分です。

    リリースには Semantic Versioning(SemVer)形式を使用することを推奨します。 [version_semver]
    コミットID(git commit idやmercurial changeset idなど)やYYYYMMDDなどの日付ベースのスキームなどの他のバージョン番号付けスキームは、一意であるためバージョン番号として使用される場合があります。いくつかの選択肢は問題を引き起こす可能性があります。ユーザーは最新のものかどうかを簡単に判断できない可能性があるからです。 SemVerは、すべての受信者が最新のバージョンのみを実行している場合(たとえば、継続的な配信を介して常に更新されている単一のWebサイトまたはインターネットサービスのコード)ソフトウェアリリースを特定するのにはあまり役立ちません。

    Jenkins project uses a scheme close to Semantic versioning for LTS releases: https://jenkins.io/download/lts/ . For weekly releases we use a 2-digit scheme



    バッジには十分です!

    プロジェクトがバージョン管理システム内の各リリースを特定することが推奨されています。たとえば、gitを使用しているユーザーがgitタグを使用して各リリースを特定することが推奨されています。 [version_tags]
  • リリースノート


    バッジには十分です!

    プロジェクトは、各リリースにおいて、ユーザーがアップグレードすべきかどうか、また、アップグレードの影響を判断できるよう、そのリリースの主要な変更の要約を説明したリリースノートを提供しなければなりません(MUST)。リリースノートは、バージョン管理ログの生の出力であってはなりません(例えば、 "git log"コマンドの結果はリリースノートではない)。プロジェクトの成果物が複数の場所で再利用されることを意図していないプロジェクト(単独のウェブサイトやサービスのためのソフトウェアなど)で、かつ、継続的・断続的な配布を行う場合は、「該当なし」を選択することができます。 (URLが必要です) [release_notes]
    リリースノートは様々な方法で実装できます(MAY)。多くのプロジェクトは、 "NEWS"、 "CHANGELOG"、または "ChangeLog"という名前のファイルでそれらを提供し、 ".txt"、 ".md"、 ".html"などの拡張子を付けることもあります。歴史的には、 "change log"という言葉はすべての変更のログを意味していましたが、本基準を満たすために必要なものは、人間が読める要約です。リリースノートは代わりに、 GitHubリリースのワークフローなどのバージョン管理システムのメカニズムによって提供してもよい(MAY)。

    バッジには十分です!

    リリースノートは、新しいリリースごとに修正された、既知の脆弱性をすべて特定しなければなりません。リリースノートがないか、または既知の脆弱性がない場合、これは 「該当なし」(N/A)です。 [release_notes_vulns]
    ユーザーが一般的にコンピュータ上でソフトウェアを実際に更新することができず、代わりに仲介者に依存してアップグレードを実行する必要がある場合(カーネル、およびカーネルと絡み合う低レベルのソフトウェアではよくあるケース)、プロジェクトは"非該当"(該当なし)。

    All security releases provide links to Security advisories in the changelog. Example: https://jenkins.io/changelog/#v2.197


 報告 8/8

  • バグ報告プロセス


    バッジには十分です!

    プロジェクトは、ユーザーが不具合報告を送信するプロセスを提供しなければなりません(たとえば、課題トラッカーやメーリングリストを使用します)。 (URLが必要です) [report_process]

    Jenkins Issue Tracker: https://issues.jenkins-ci.org/ . Project = JENKINS, component = core , query . Some sub-components like Docker packaging also use GitHub Issues as a second way to report issues: https://github.com/jenkinsci/docker/issues .



    バッジには十分です!

    プロジェクトは、個々の課題を追跡するための課題トラッカーを使用するべきです。 [report_tracker]

    Jenkins Issue Tracker: https://issues.jenkins-ci.org/ . Project = JENKINS, component = core , query . Some sub-components like Docker packaging also use GitHub Issues as a second way to report issues: https://github.com/jenkinsci/docker/issues



    バッジには十分です!

    このプロジェクトは、過去2〜12か月間に提出された多数のバグ報告の受領を認めなければなりません。応答に修正を含める必要はありません。 [report_responses]

    In the Jenkins project we invest in providing better response times in the issue tracker. See the Jenkins issue triage process for information about the current triage process and recommendations.

    As of Jul 21, 2020:

    • 488 defects were reported to the Jenkins core components in the last 12 months
    • 271 defects (55%) have been resolved
    • 186 issues (38%) received an initial response and/or explicit confirmation
    • 31 defects did not get a response

    We plan to introduce a Jenkins Bug Triage team to improve the response times and to ensure that all issues get processed (discussion in the developer mailing list).



    バッジには十分です!

    プロジェクトは、直近2〜12ヶ月(2ヶ月を含む)に増強要求の多数(> 50%)に対応すべきです。 [enhancement_responses]
    応答は、「いいえ」や、そのメリットについての議論であってもよいです。目標は、単にプロジェクトがまだ生きていることを示している、いくつかの要求に対する応答があることです。この基準のために、プロジェクトは偽のリクエスト(スパマーや自動システムなど)をカウントする必要はありません。プロジェクトで機能強化が行われていない場合は、「満足されない」(unmet)を選択し、この状況をユーザーに明確にするURLを含めてください。プロジェクトが強化要求の数によって圧倒される傾向がある場合は、「満足されない」(unmet)を選択して説明してください。

    At the moment we do not regular triage of the enhancement requests, but we meet the criteria with the informal process. As of Jul 21, 2020, 203 issues were reported in the last 2-12 months (inclusinve), 105 of them (or 52%) have been already resolved or closed. The majority of other requests submitted users and non-core contributors got initial response. Issue query



    バッジには十分です!

    プロジェクトは、後で検索するために、レポートとレスポンスのアーカイブを公開する必要があります。 (URLが必要です) [report_archive]

    Jenkins Issue Tracker: https://issues.jenkins-ci.org/


  • 脆弱性報告プロセス


    バッジには十分です!

    プロジェクトは、脆弱性を報告するプロセスをプロジェクト サイトに公開しなければなりません。 (URLが必要です) [vulnerability_report_process]
    たとえば、https:// PROJECTSITE / securityの明示的に指定されたメール アドレスで、これはしばしばsecurity@example.orgの形式です。これはバグ報告プロセスと同じかもしれません。脆弱性レポートは常に公開される可能性がありますが、多くのプロジェクトでは、プライベート脆弱性を報告するメカニズムがあります。

    バッジには十分です!

    プライベート脆弱性報告がサポートされている場合、プロジェクトは、プライベートに保持された方法で情報を送信する方法を含んでいなくてはなりません。 (URLが必要です) [vulnerability_report_private]
    例としては、HTTPS(TLS)を使用してWeb上に提出されたプライベート不具合報告や、OpenPGPを使用して暗号化された電子メールがあります。脆弱性報告が常に公開されている場合(プライベート脆弱性報告は存在しないため)、「該当なし」(N / A)を選択します。

    バッジには十分です!

    過去6ヶ月間に受け取った脆弱性報告に対するプロジェクトの初期応答時間は、14日以下でなければなりません。 [vulnerability_report_response]
    過去6か月間に脆弱性が報告されていない場合は、「該当なし」(N/A)を選択します。

    Vulnerability report are monitored by the Jenkins Security Team. This team monitors all incoming requests which are submitted according to the vulnerability reporting guidelines. For Jenkins core the security team handles the reports on its own, and the response time is usually less than 24 hours.


 品質 13/13

  • 作業ビルドシステム


    バッジには十分です!

    プロジェクトによって作成されたソフトウェアを利用するためにビルドが必要な場合、プロジェクトは、ソース コードからソフトウェアを自動的にリビルドできる作業ビルド システムを提供しなければなりません。 [build]
    ビルドシステムは、ソフトウェアをリビルドするのに必要なアクション(およびその順序)を決定し、それらのステップを実行します。たとえば、ビルドシステムは、ソースコードをコンパイルするためにコンパイラを呼び出すことができます。実行可能ファイルがソースコードから生成される場合、ビルドシステムは、プロジェクトのソースコードを変更でき、その変更を含む更新された実行ファイルを生成できなければなりません。プロジェクトによって生成されたソフトウェアが外部ライブラリに依存する場合、ビルドシステムはそれらの外部ライブラリをビルドする必要はありません。ソースコードが変更されても、ソフトウェアを使用するためにビルドする必要がない場合、「該当なし」(N/A)を選択します。

    バッジには十分です!

    ソフトウエアをビルドするために、一般的なツールを使用することをお勧めします。 [build_common_tools]
    たとえば、Maven、Ant、cmake、autotools、make、rakeなどです。

    バッジには十分です!

    プロジェクトは、FLOSSツールだけを使用してビルドができるようにするべきです。 [build_floss_tools]

  • 自動テスト スイート


    バッジには十分です!

    プロジェクトは、FLOSSとして公開されている少なくとも1つの自動化されたテスト スイートを使用しなければなりません(このテストスイートは、別のFLOSSプロジェクトとして維持することができます)。 [test]
    プロジェクトでは、複数の自動化されたテストスイートを使用することができます(たとえば、迅速に実行するもの、より完全であるが特別な装置が必要なもの)。

    Jenkins project includes unit and functional tests inside the main repository. In addition, there is a Jenkins Acceptance Test Harness test suite



    バッジには十分です!

    テスト スイートは、その言語の標準的な方法で呼び出すことができるべきです。 [test_invocation]
    たとえば、「make check」、「mvn test」、「rake test」などです。

    Jenkins Core unit and integration test suites can be invoked using the standard Maven Surefire Plugin. JavaScript unit tests can be launched via YARN. See Jenkins Core - Testing Changes for more information.

    Acceptance Test Harness tests can be invoked using the standard Maven Surefire Plugin, the test repository is located in jenkinsci/acceptance-test-harness/



    バッジには十分です!

    テスト スイートは、コードブランチ、入力フィールド、および機能のほとんど(または理想的にはすべて)をカバーすることが推奨されています。 [test_most]


    バッジには十分です!

    プロジェクトは、継続的インテグレーション(新しいコードまたは変更されたコードが頻繁に中央コードリポジトリに統合され、その結果に対して自動テストが実行される)を実装することを推奨されています。 [test_continuous_integration]

    We use Jenkins-on-Jenkins: https://ci.jenkins.io/


  • 新機能テスト


    バッジには十分です!

    プロジェクトは、プロジェクトで作成されたソフトウェアに主要な新機能が追加されたときに、その機能のテストを自動化されたテスト スイートに追加する必要があるという一般的な方針(正式でも、正式でなくても構いません)を持っていなければなりません。 [test_policy]
    開発者はテストを自動テスト スイートに追加して、新しい機能を追加する必要があるというポリシーが、口頭でも(文書化されていなくても)、存在する限り、「満たしている」を選択してください。

    バッジには十分です!

    プロジェクトによって作成されたソフトウェアの最新の大きな変更で、テストを追加するための test_policy が守られているという証拠がプロジェクトに存在しなければなりません。 [tests_are_added]
    主要な機能は、通常、リリースノートに記載されます。完璧は必要ないですが、プロジェクトによって生成されたソフトウェアに新しい主要機能が追加されたときに、自動テスト スイートに実際にテストが追加されているという証拠となります。

    See the pull request history. Examples for major improvements



    バッジには十分です!

    テストを追加するこのポリシー(test_policyを参照)を変更提案に関する手順で文書化することを推奨します。 [tests_documented_added]
    しかし、実際にテストが追加されている限り、非公式の規則でも許容されます。
  • 警告フラグ


    バッジには十分です!

    プロジェクトは、選択した言語でこの基準を実装することができる少なくとも1つのFLOSSツールがあれば、1つまたは複数のコンパイラ警告フラグ、「安全」言語モードを使用可能にするか、分離 「リンター」ツールを使用してコード品質エラーまたは共通の単純なミスを検索しなければなりません。 [warnings]
    コンパイラ警告フラグの例には、gcc / clang "-Wall"があります。 「安全」言語モードの例には、JavaScript「use strict」とperl5の「use warnings」があります。分離「リンター」ツールは、ソースコードを調べてコード品質のエラーや一般的な単純なミスを探すツールです。これらは、通常、ソースコードまたはビルド命令内で有効になります。

    Our Jenkins core and library Parent POM includes standard static analysis tools like SpotBugs, Animal Sniffer, Maven Enforcer (for dependency and binary API checks), etc. Same applies to the plugin POM.



    バッジには十分です!

    プロジェクトは警告を出さなければならない。 [warnings_fixed]
    これらは、警告基準の実装によって識別される警告です。プロジェクトは、警告を修正するか、ソースコード内で警告を誤検出としてマークするべきです。理想的には警告がないことがいいですが、プロジェクトはある程度の警告(通常100行あたり1警告未満または10警告未満)を受け入れることができます。

    Jenkins core, modules and libraries address all high-severity warnings and acknowledge a number of medium-severity warnings which is within the "1 warning per 100 lines" requirement. There is ongoing project to cleanup the Jenkins core warnings entirely ([JENKINS-36716])(https://issues.jenkins-ci.org/browse/JENKINS-36716).



    かろうじてバッジには十分です。

    プロジェクトによって作成されたソフトウェアにある警告に、実際的な場合には、最大限に厳格になることを推奨されています。 [warnings_strict]
    一部の警告は、あるプロジェクトでは効果的に有効にすることはできません。必要なのは、プロジェクトが可能な限り警告フラグを有効にするように努力しており、エラーが早期に検出されるという証拠です。

    Jenkins core uses high and medium thresholds for static analysis warnings. ([JENKINS-36716])(https://issues.jenkins-ci.org/browse/JENKINS-36716 intends to implement and maintain higher code quality standards.


 セキュリティ 16/16

  • セキュリティに関する開発知識


    バッジには十分です!

    プロジェクトには、セキュアなソフトウェアを設計する方法を知っている少なくとも1人の主要開発者がいなければなりません。 [know_secure_design]
    これには、 Saltzer and Schroeder の8つの原則を含む以下の設計原則を理解する必要があります。
    • メカニズムの経済性(たとえば、スイーピング シンプリフィケーションを採用して、メカニズムを実際的に単純化し小さくする)
    • フェイルセーフのデフォルト(アクセスの決定はデフォルトで拒否されるべきであり、プロジェクトのインストールはデフォルトで安全でなければならない)
    • 完全なメディエーション(制限されたすべてのアクセスは権限がチェックされ、バイパスされない)
    • オープンな設計(セキュリティメカニズムは攻撃者の設計に対する無知に依存するべきではなく、 簡単に保護ができて変更ができる鍵やパスワードのような情報に依存すべきです。
    • 特権の分離(理想的には、重要なオブジェクトへのアクセスは複数の条件に依存すべきで、1つの保護システムを破ることで完全なアクセスが可能にならないようにします。たとえば、パスワードとハードウェア トークンを必要とする多因子認証は単因子認証より強いです。
    • 最低限の権限(プロセスは最低限の権限で動作する必要がある)
    • 最低限の共通メカニズム(設計は、複数のユーザに共通のメカニズムや全てのユーザーに依存するメカニズムを最小限に抑えるべきです。)
    • 心理学的受容性(ヒューマンインタフェースは、使いやすく設計されていなければならない - 「驚きが最小限になる」という設計が助けになる)
    • 限られた攻撃面(攻撃面 - 攻撃者がデータを入力または抽出しようとする部分 - を制限する必要があります)
    • ホワイト リストで入力を検証します(入力は通常、この検証はブラックリスト(既知の不良値をリストする)ではなく、ホワイトリスト(既知の値のみを受け入れる)を使用する必要があります。
    プロジェクトの「主要な開発者」とは、プロジェクトのコードベースに精通していて、容易に変更を加えることができ、プロジェクトの他のほとんどの参加者によって認められている人です。主要な開発者は、通常、過去1年間に(コード、文書、または質問に回答して)多数の貢献を行います。ある開発者が、プロジェクトを開始している(3年以上プロジェクトから離れていない)、プライベート脆弱性報告チャネル(存在する場合)に関する情報を受け取る、プロジェクトを代表してコミットを受け入れる、最終リリースする、などを行う時主要な開発者とみなすことができます。開発者が1人だけの場合、その人物が主要開発者です。

    The Jenkins project has a Security Team which includes several Jenkins core maintainers with experience working on security issues. Some of these contributors work professionally as security engineers and regularly implement and review software designs to ensure high security standards.



    バッジには十分です!

    プロジェクトの主要開発者の少なくとも1人は、この種のソフトウェアの脆弱性につながる一般的な種類のエラーを知っていなければならず、それぞれを対策または緩和する少なくとも1つの方法を知っていなければなりません。 [know_common_errors]
    例としては、(ソフトウェアのタイプに依存しますが)SQLインジェクション、OSインジェクション、古典的なバッファ オーバーフロー、クロスサイト スクリプティング、認証欠落、権限欠落などがあります。 CWE / SANSトップ25 または OWASP Top 10 を参照してください。

    The Jenkins project has a Security Team which includes several Jenkins developers who have experience with working on security issues and provide documentation for other Jenkins developers how to address common vulnerabilities. Jenkins core maintainers and the release team are also represented on the Security team.


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

    一部のソフトウェアでは、暗号化メカニズムを使用する必要はありません。

    バッジには十分です!

    プロジェクトによって作成されたソフトウェアは、デフォルトで、一般に公開され、専門家によってレビューされている暗号プロトコルとアルゴリズムを使用しなければなりません。(暗号プロトコルとアルゴリズムが使用される場合) [crypto_published]
    ソフトウェアによっては暗号機能を直接使用する必要がないため、これらの暗号基準は常に適用されるわけではありません。

    The Jenkins project uses standard open-source implementations of cryptographic protocols and algorithms (e.g. implemented by JVM, Bouncy Castle, MINA SSH, and other open-source libraries like eddsa for its Ed25519 implementation). There are also standard APIs offered to the plugin developers (e.g. for storing secrets).



    バッジには十分です!

    プロジェクトによって作成されたソフトウェアがアプリケーションまたはライブラリであり、主な目的が暗号の実装でない場合、暗号機能を実装するために特別に設計されたソフトウェアを呼び出すだけにするべきです。自分用に(暗号機能を)再実装するべきではありません。 [crypto_call]

    The Jenkins core and its modules do not implement cryptography on their own in recent versions. They depend on open-source libraries which provide cryptography functions. There are historical cryptography APIs offered in Jenkins, but their internal implementations have been replaced by open-source cryptography libraries used in the project.

    Additional notes about previous releases that are no longer supported:

    • Jenkins Remoting layer used to implement encryption on its own in the JNLP3 protocol. This protocol was deprecated in Dec 2017 (Remoting 3.15) and then completely removed from the codebase in Dec 2019 (Remoting 3.40)
    • The Jenkins core used to include cryptography implementations, e.g. a Jenkins-specific fork of the abandoned Trilead SSH library. It was removed from Jenkins 2.186 in July 2019 and is only included as detached plugin for backward compatibility with plugins depending on it, but not used by Jenkins itself.


    バッジには十分です!

    暗号に依存するプロジェクトによって作成されるソフトウェアのすべての機能は、FLOSSを使用して実装可能でなければなりません。 [crypto_floss]

    Jenkins core is fully FLOSS, as well as its dependencies.



    バッジには十分です!

    プロジェクトによって作成されたソフトウェア内にあるセキュリティ メカニズムは、少なくとも、2030年までのNIST最小要件(2012年)を満たすデフォルト鍵長を使用しなければなりません。より小さな鍵長を完全に無効になるおうに、ソフトウェアを構成できなければなりません。 [crypto_keylength]
    これらの最小ビット長は、対称鍵112、ファクタリング係数2018、離散対数鍵224、離散対数群2048、楕円曲線224、ハッシュ224(パスワードハッシュはこのビット長でカバーされません。パスワードハッシュに関する詳しい情報は crypto_password_storage 基準にあります)です。 http://www.keylength.comにさまざまな機関が出している推奨鍵長の比較を参照して下さい。ソフトウェアは、 いくつかの構成ではより短い鍵長を許可するかもしれません。(これはダウングレード攻撃を許すので、理想的には正しくありません。しかし、短い鍵長は、相互運用性のために時に必要となります。)

    The Jenkins core generally does not manage the key lengths in the codebase. We use the default values provided by the recent versions of cryptography libraries. One of the exceptions is a CryptoConfidentialKey used in hudson.util.Secret and a few other locations. These occurrences use AES 128 by default, and it is compliant with the length requirement for symmetric keys.



    バッジには十分です!

    プロジェクトで作成したソフトウェア内のデフォルトのセキュリティ メカニズムは、破られた暗号アルゴリズム(たとえば、MD4、MD5、single DES、RC4、Dual_EC_DRBGなど)に依存してはいけませんし、コンテキストに不適切な暗号モード(たとえば、ECBモードは、ECB penguinで明らかにされているように暗号文の中に同じブロックが存在するので、ほとんどの場合不適切です。CTRモードは、入力状態が繰り返されると、認証を実行せず重複が起こすので多くの場合不適切です。)を使用してもいけません。 [crypto_working]
    多くの場合、Galois/Counter Mode (GCM)やEAXなど、秘密と認証を組み合わせて設計されたブロック暗号アルゴリズムを選択するのが最善です。プロジェクトは、互換性の必要から破られたメカニズムを有効にするかもしれませんが、ユーザーはそれをしていることを認識しています。

    We do NOT use broken cryptography algorithms for security mechanisms inside the Jenkins core or modules. In some cases MD5 is used to produce unique keys for Jenkins objects which are not used in a security context. Such objects have soft uniqueness requirements, and potential collisions do not compromise the Jenkins security or sensitive data.



    バッジには十分です!

    プロジェクトによって作成されたソフトウェア内のデフォルトのセキュリティ メカニズムは、既知の重大な脆弱性を持つ暗号アルゴリズムやモード(たとえば、SHA-1暗号ハッシュ アルゴリズムまたはSSHのCBC モード)に依存するべきではありません。 [crypto_weaknesses]
    SSHのCBCモードに関する懸念事項は、 CERT: SSH CBC 脆弱性にて議論されています。.

    Jenkins core generally does not rely on SHA-1 for security purposes. The only security-related use of SHA-1 in the Jenkins core is related to the validation of downloaded plugins and Jenkins .war files from update sites. This is only used as a fallback if the update site does not provide SHA-256 or SHA-512 checksums, and a warning is logged. Official Jenkins update sites have provided these better checksums since April 2018, so this only matters for third-party unofficial update sites, and only if downloads are not delivered via HTTPS.

    CBC mode is not used by the Jenkins core, and the algorithm is removed from the SSHD Module which implements the SSH server side logic in Jenkins.

    Note: In some cases we use AES encryption with default settings provided by JVM, without explicit padding and mode specification. This results in ECB usage in some circumstances in the case of the default JVM configuration. ECB is not optimal due to data correlation analysis weakness, but it is not considered as a serious weakness for short data objects. Jenkins users have an option to change the JVM defaults to enforce strong cryptography and other default AES modes.



    バッジには十分です!

    プロジェクトによって作成されたソフトウェア内のセキュリティ メカニズムは、鍵合意プロトコルのための完全な順方向秘密を実装するべきなので、もし長期鍵が将来侵害された場合でも、長期鍵のセットから導出されるセッション鍵は侵害されません。 [crypto_pfs]

    In the majority of use-cases we use the default forward secrecy provided by 3rd-party open-source libraries (e.g. for establishing SSH connections). Same for HTTPS, the entire implementation is supplied by external libraries or projects (e.g. Eclipse Jetty bundled in the Jenkins core and used as a default web container).

    The only exception is the Jenkins Remoting library that includes an implementation of the JNLP4-connect protocol for networking between the Jenkins server and agents. This protocol uses the standard TLS encryption layer provided by JVM (default version). As of Jenkins 2.235.1 LTS Jenkins supports Java 8 (TLS 1.2 by default, no TLS 1.3 implementation in OpenJDK) and Java 11 (TLS 1.2 or 1.3 are provided). TLS 1.2 does not enforce perfect forward secrecy by default, but users of Jenkins can enforce TLS 1.3 and forward secrecy with OpenJDK 11 or with other JVMs for Java 8/11. Jenkins admins can also elect to block the JNLP4-connect protocol over TCP, and to use the WebSocket connection over HTTP/HTTPS, in which case the encryption is delegated to the web server and reverse proxies.



    バッジには十分です!

    プロジェクトによって生成されたソフトウェアが外部ユーザーの認証に使われるパスワードの保存をする場合、パスワードは、鍵ストレッチ(反復)アルゴリズム(PBKDF2、BcryptまたはScryptなど)を使い、ユーザーごとの塩(乱数)を用いて反復ハッシュとして保存しなければなりません。 [crypto_password_storage]
    この基準は、サーバー側ウェブ アプリケーションなどのソフトウェアが、パスワードを使用してユーザー認証を行う場合のみに適用されます。ソフトウェアが他のシステムに認証のためのパスワードを保存するような場合(たとえばソフトウェアが他のシステムのクライアントを実現する場合)、少なくともそのソフトウェアの一部がハッシュされていないパスワードに頻繁にアクセスする必要があるため、この基準は適用されません。

    In Jenkins we provide a private security realm which stores password hashes in the local filesystem database. This implementation uses BCrypt, and hence it is compatible with the requirements. It is also possible to use external authentication services (e.g. LDAP) which do not store user passwords in Jenkins. Jenkins Security Realm documentation



    バッジには十分です!

    プロジェクトによって作成されたソフトウェア内のセキュリティ メカニズムは、暗号学的にセキュアな乱数発生器を使用して、すべての暗号鍵とナンスを生成しなければなりません。暗号学的にセキュアでない発生器を使用してはいけません。 [crypto_random]
    暗号学的にセキュアな乱数発生器は、ハードウェアの乱数発生器でも、Hash_DRBG、HMAC_DRBG、 CTR_DRBG、Yarrow、 Fortuna.などのアルゴリズムを使用する暗号学的にセキュアな疑似乱数発生器(CSPRNG)でもよいです。セキュアでない乱数発生器には、Javaのjava.util.RandomとJavaScriptのMath.randomがあります。

    In the Jenkins core and modules we use the standard secure random number generator provided by the JVM. There are no custom implementations within the codebase.


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


    バッジには十分です!

    プロジェクトは、MITM攻撃に対抗する配信メカニズムを使用しなければならない。httpsまたはssh+scpを使用することは許容されます。 [delivery_mitm]
    さらに強力な仕組みは、デジタル署名されたパッケージでソフトウェアをリリースすることです。配布システムへの攻撃を緩和するからです。しかし、これは、署名の公開鍵が正当なものであることをユーザーが確信でき、かつユーザーが実際に署名をチェックする場合にのみ有効です。

    The Jenkins project uses HTTPS for the entire infrastructure and delivery mechanisms with the exception of Update Center Mirrors (tracked as INFRA-266). Mirrors are used to deliver Jenkins core, native packages and plugin binaries.

    • For the Jenkins WAR file distributions, checksums for current releases can be retrieved from the https://jenkins.io/download/ page. Additionally, the war files are signed and can be checked using jarsigner.
    • All official Jenkins native packages and installers are signed by the project, and this signature can be verified upon delivery by using a package manager.
    • To ensure that the delivered plugins are not tampered, the Jenkins project provides SHA-256 checksums which are accessible over HTTPS from the Update Center JSON file which is retrieved over HTTPS in the default configuration. In addition to that, the JSON file itself is signed using SHA-512. Jenkins verifies the checksums upon download of plugins in the update center client logic.

    Jenkins users can also set up a pure HTTPS delivery for all Jenkins artifacts by deploying their own update center by using the update center generator provided by the Jenkins project. This generator downloads all artifacts and metadata from the Jenkins Maven repository over HTTPS.

    In addition to plugins and distributions, Jenkins update sites also list downloadable tools supplied by plugins (e.g. Maven, Gradle, AdoptOpenJDK). These tools are downloaded from external locations which may not implement the secure delivery chain as we depend on other projects serving files securely (tracked as JENKINS-55659). Such tool downloads are opt-in, none of the tools are enabled and installed by default. The Jenkins project does not provide guarantees for external tool downloads.



    バッジには十分です!

    暗号ハッシュ(たとえばSHA1SUM)は、http経由で運んではならず、暗号署名をチェックすることなしに使用してはいけません。 [delivery_unsigned]
    これらのハッシュは、送信中に変更することができます。

    Jenkins cryptographic hashes are retrieved over HTTPS from the Jenkins Maven repository. Checksums are also accessible over HTTPS from the Update Center JSON file which is retrieved over HTTPS by default (since 2017) and additionally, a signature for itself in a canonical form is included and verified by Jenkins.


  • 広く知られた脆弱性を修正


    バッジには十分です!

    60日を超えて公的に知られている中程度または重大度のパッチされていない脆弱性は存在してはなりません。 [vulnerabilities_fixed_60_days]
    脆弱性は、プロジェクト自体によってパッチされ、リリースされなければなりません(パッチは他の場所で開発される可能性があります)。脆弱性が無料情報と共にCVE(共通脆弱性識別子)を持つとき(例えば、 National Vulnerability Database )、またはプロジェクトに情報が伝えられ、その情報が(おそらくプロジェクトによって)一般に公開されたとき、脆弱性は一般に知られるようになります。 CVSS 2.0 の基本スコアが4以上の場合、脆弱性は中〜高程度です。 :これは、世界中のすべての攻撃者にユーザーが60日間まで脆弱である可能性があることを意味します。この基準は、責任のある開示の再開でGoogleが推奨するものよりも、しばしば満たすことが容易です。なぜなら、レポートが公開されていないときでも、プロジェクトに通知されてから60日間の期間が開始されるからです。

    There are no such vulnerabilities in the Jenkins Core and modules. While we strive to keep library dependencies updated, some dependencies included in the Jenkins core have known vulnerabilities. In such cases, we determine whether these vulnerabilities are exploitable in Jenkins, and if so, address them. Otherwise we do not consider these to be vulnerabilities in Jenkins.

    There are some unpatched vulnerabilities in plugins as listed in security advisories, but plugins are not in the scope for this certification. In the case of high severity issues the plugins are usually delisted from the Jenkins update centers. In all cases, warnings are presented to administrators of Jenkins instances that have plugins with publicly known vulnerabilities installed.



    バッジには十分です!

    プロジェクトは、すべての重要な脆弱性を、報告された後迅速に修正するべきです。 [vulnerabilities_critical_fixed]

    Critical vulnerabilities in the Jenkins core are handled by the Jenkins Security Team. This team reviews all incoming reports and prioritizes and fixes them. Critical vulnerabilities are prioritized as a top priority, and additional subject-matter experts may be involved if needed. For example, in 2015 the Jenkins project was able to analyze and fix the public class deserialization attack disclosure earlier than all other affected projects/vendors. In addition to that, we published a mitigation guide within less than 24 hours after the announcement.


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


    バッジには十分です!

    公開リポジトリは、パブリックアクセスを制限するための有効なプライベートクレデンシャル(たとえば、有効なパスワードやプライベートキー)を漏らしてはなりません。 [no_leaked_credentials]
    プロジェクトは、パブリック アクセスを制限する意図がない限り、テスト用や重要でないデータベース用の「サンプル」資格情報を漏らす可能性があります。

    The Jenkins core repository or other public repositories do not include any credentials in plain text.


 分析 8/8

  • 静的コード解析


    バッジには十分です!

    選択した言語でこの基準を実装している少なくとも1つのFLOSSツールがある場合、少なくとも1つの静的コード解析ツールを、リリース前にソフトウェアの主要な製品リリースに適用する必要があります。 [static_analysis]
    静的コード解析ツールは、ソフトウェアコードを実行せずに特定の入力を用いて(ソースコード、中間コード、または実行可能ファイルとして)調べます。この基準のために、コンパイラの警告と「安全な」言語モードは、静的コード解析ツールとしてカウントされません(これらは通常、速度が重要なため深い解析を行いません)。このような静的コード解析ツールの例には、 cppcheck clang静的解析 FindBugs FindSecurityBugsを含む)、 PMD Brakeman Coverity Quality Analyzer 、および HPE Fortify静的コード解析。大きなツールのリストは、静的コード解析のためのWikipediaツール一覧静的コード解析に関するOWASP情報 NISTソースコードセキュリティアナライザのリストウィーラーの静的解析ツール一覧SWAMPは、さまざまなツールを使用してソフトウェアの脆弱性を評価する無償のプラットフォームです。使用する実装言語で使用できるFLOSS静的解析ツールがない場合は、「該当なし」(N/A)を選択します。

    We use SpotBugs, Animal Sniffer, Maven Enforcer Plugin as a part of the build/release pipelines



    バッジには十分です!

    static_analysis基準に使用される静的解析ツールの少なくとも1つが、分析された言語または環境における共通の脆弱性を探すためのルールまたはアプローチを含むことが、推奨されています。 [static_analysis_common_vulnerabilities]
    一般的な脆弱性を探すために特別に設計された静的解析ツールは、それらを見つける可能性が高いです。つまり、静的ツールを使用すると、通常は問題を見つけるのに役立ちますので、利用を提案しますが、「合格」レベルのバッジには要求しません。

    Jenkins project is being regularly scanned by various static analysis tools, including tools like Snyk or Anchore. GitHub Security is also used for dependency scanning and reporting. Also, Jenkins users regularly run static code analysis tools against the codebase/distributions and then report the results. In addition to that, there is ongoing discussion about including FindSecBugs detectors into standard Pipelines.



    バッジには十分です!

    静的コード解析で発見された中程度および重大度の悪用可能な脆弱性はすべて、それらが確認された後、適時に修正されなくてはなりません。 [static_analysis_fixed]
    CVSS 2.0 が4以上の場合、脆弱性は中〜高程度です。

    In the Jenkins core there were several security issues reported by dependency scanning tools. They were timely analyzed and fixed if the vulnerability was confirmed. So far we did not get any confirmed medium/high severity vulnerabilities reported by a static code analysis tool.

    Jenkins plugins are not in the scope for this certification



    バッジには十分です!

    静的ソースコード解析は、コミットごと、または少なくとも毎日実行することをお勧めします。 [static_analysis_often]

    We use SpotBugs, Animal Sniffer, Maven Enforcer Plugin as a part of the build/release pipelines


  • 動的コード分析


    かろうじてバッジには十分です。

    リリース前に、ソフトウェアの主要な製品リリースに少なくとも1つの動的解析ツールを適用することが示唆されています。 [dynamic_analysis]
    動的解析ツールは、ソフトウェアを特定の入力で実行して検査します。たとえば、プロジェクトは、ファジングツール(アメリカンファジーロップなど)やウェブ アプリケーション スキャナ(例: OWASP ZAP または w3af )です。場合によっては、 OSS-Fuzz プロジェクトがプロジェクトにファズテストを適用する可能性があります。この基準のために、動的分析ツールは、様々な種類の問題を探すために何らかの方法で入力を変更するかまたは少なくとも80%のブランチ カバレッジを持つ自動テスト スイートである必要があります。 動的解析に関するWikipediaのページ ファジングに関するOWASPページで、いくつかの動的解析ツールを特定しています。解析ツールは、セキュリティの脆弱性を探すことに重点を置くことができますが、これは必須ではありません。

    We do not use dynamic analysis tools as a part of our CI/CD pipeline. Some Jenkins users run scans and sometimes report vulnerabilities to the project, but it is quite rare.



    バッジには十分です!

    プロジェクトで作成されたソフトウェアにメモリ安全でない言語(CやC ++など)を使用して作成されたソフトウェアが含まれている場合、少なくとも1つの動的ツール(たとえば、ファジーまたはウェブ アプリケーション スキャナ)を、バッファの上書きなどのメモリの安全性の問題を検出するメカニズムと一緒にいつも使用します。プロジェクトがメモリ安全でない言語で書かれたソフトウェアを作成しない場合は、「該当なし」(N/A)を選択します。 [dynamic_analysis_unsafe]
    メモリの安全性の問題を検出するメカニズムの例としては、アドレスサニタイザー(ASAN)(GCCおよびLLVMで利用可能)、 Memory Sanitizer 、および valgrind が含まれます。他に使用される可能性のあるツールには、スレッドサニタイザ定義されていない動作サニタイザを参照してください。広範なアサーションも機能します。

    Jenkins project does not include code written using a memory-unsafe language. We use some 3rd-party dependencies which include native code, e.g. Windows Process Management Library written in C. This library is provided by a third party, and it is not in the scope for this certification.



    バッジには十分です!

    プロジェクトによって作成されたソフトウェアには、動的解析中にチェックされる多くの実行時アサーションが含まれていることが推奨されます。 [dynamic_analysis_enable_assertions]

    Jenkins project does not use dynamic analysis tools as a part of the CI/CD pipeline. On the other hand, Jenkins instances produce run-time events (logs, metrics, etc.) which are exposed to monitoring tools and can be used for dynamic analysis



    バッジには十分です!

    動的コード分析で発見されたすべての中程度および重大度の悪用可能な脆弱性は、確認された後、適時に修正されなければなりません。 [dynamic_analysis_fixed]
    CVSS 2.0 ベース スコアが4の場合、脆弱性は中〜高程度です。動的コード分析を実行していないため、このように脆弱性を発見していない場合は、「該当なし」(N / A)を選択します。

    We do not use dynamic analysis tools as a part of our CI/CD pipeline



プロジェクトに関するこのデータを送信することにより、少なくとも、クリエイティブ・コモンズ帰属バージョン3.0以降(CC-BY-3.0 +)のライセンス条件によって公開することに同意したことになります。つまり、すべての人が自由にデータを共有し、修正することができますが、適切なクレディットを表示します。あなたが保有する著作権に影響はありません。プロジェクトライセンスにも影響はありません。

プロジェクト バッジ登録の所有者: Oleg Nenashev.
エントリの作成日時 2019-12-26 14:21:18 UTC、 最終更新日 2020-07-22 09:53:41 UTC 最後に2020-07-21 12:13:13 UTCにバッジ合格を達成しました。

もどる