55 Security
66========
77
8- In the previous chapters we have already given some hints that enable a safer
9- operation. Here we want to summarise and expand the individual elements. In
10- doing so, we will be guided by the `OpenSSF
11- Scorecard <https://securityscorecards.dev/> `_. Alternatively, you can also
12- follow :ref: `open_chain `.
8+ In previous chapters, we have already provided some tips designed to help ensure
9+ safer operation.
10+
11+ .. seealso ::
12+ * :ref: `secure-release-workflow `
13+ * :ref: `zizmorcore `
14+ * :ref: `add_2fa `
15+
16+ Here, we would like to summarise and expand on the individual elements once
17+ again. We will be using the `OpenSSF Scorecard
18+ <https://securityscorecards.dev/> `_ as our guide. Alternatively, you can also
19+ refer to :ref: `open_chain `.
1320
1421.. _check-vulnerabilities :
1522
@@ -71,10 +78,10 @@ Are the dependencies still maintained?
7178Risk: High
7279
7380This indicates possible unpatched security vulnerabilities. Therefore, it should
74- be checked regularly whether a project has been archived. Conversely, the OSSF
75- scorecard assumes that with at least one commit a week for 90 days, the project
76- is very actively maintained. However, a lack of active maintenance is not
77- necessarily always a problem: smaller utilities in particular usually do not
81+ be checked regularly whether a project has been archived. Conversely, the
82+ OpenSSF scorecard assumes that with at least one commit a week for 90 days, the
83+ project is very actively maintained. However, a lack of active maintenance is
84+ not necessarily always a problem: smaller utilities in particular usually do not
7885need to be maintained, or only very rarely. So a lack of active maintenance only
7986tells you that you should investigate the situation more closely.
8087
@@ -126,24 +133,13 @@ with their :ref:`SPDX <standard_format_licensing>` licence identifier followed
126133by an appropriate file extension as described in the :ref: `REUSE <reuse >`
127134specification.
128135
129- Are the best practices of the :abbr: ` OpenSSF ( Open Source Security Foundation ) ` being followed?
130- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
136+ OpenSSF Best Practices Badge
137+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
131138
132139Risk: Low
133140
134- The `Open Source Security Foundation (OpenSSF) Best Practices Program
135- <https://github.com/ossf/wg-best-practices-os-developers/> `_ includes a set of
136- security-oriented best practices for open source software development:
137-
138- * the vulnerability reporting procedure is published on the project page
139- * a working build system automatically rebuilds the software from source code
140- * a general policy that tests are added to an automated test suite when
141- important new features are added
142- * various cryptography criteria are met, if applicable
143- * at least one static code analysis tool applied to each planned major
144- production release
145-
146- You can also get a corresponding badge with the `OpenSSF Best Practices Badge Program <https://www.bestpractices.dev/en >`_.
141+ You can also get a corresponding badge with the `OpenSSF Best Practices Badge
142+ Program <https://www.bestpractices.dev/en> `_.
147143
148144Continuous testing
149145------------------
@@ -156,6 +152,9 @@ Risk: Low
156152Before code is merged into pull or merge requests, tests should be performed to
157153help detect errors early and reduce the number of vulnerabilities in a project.
158154
155+ .. seealso ::
156+ * :ref: `coverage-github-actions `
157+
159158Does the project use fuzzing tools?
160159~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
161160
@@ -172,31 +171,20 @@ find the same vulnerabilities.
172171* Is `ClusterFuzzLite <https://google.github.io/clusterfuzzlite/ >`_ used in the
173172 repository?
174173* Are custom language-specific fuzzing features present in the repository, for
175- example with `atheris <https://pypi.org/project/atheris/ >`_ or `OneFuzz
176- <https://github.com/microsoft/onefuzz> `_?
174+ example with `atheris <https://pypi.org/project/atheris/ >`_?
177175
178176Does your project use static code analysis tools?
179177~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
180178
181179Risk: Medium
182180
183- `Static code analysis <https://en.wikipedia.org/wiki/Static_program_analysis >`_
184- tests the source code before the application is executed. This can prevent known
185- bug classes from being accidentally introduced into the code base.
186-
187- .. _bandit :
188-
189- To check for vulnerabilities, you can use `bandit
190- <https://github.com/PyCQA/bandit> `__, which you can also integrate into your
191- :file: `.pre-commit-hooks.yaml `:
192-
193- .. code-block :: yaml
181+ :term: `Static test procedures ` test the source code before the application is
182+ run. This can prevent known types of errors from being inadvertently introduced
183+ into the codebase.
194184
195- repos :
196- - repo : https://github.com/PyCQA/bandit
197- rev : ' 1.7.5'
198- hooks :
199- - id : bandit
185+ To check for vulnerabilities, you can use `Bandit
186+ <https://github.com/PyCQA/bandit> `__ with :doc: `qa/ruff `, which you can also
187+ integrate into Jupyter Notebooks, IDEs and the pre-commit framework.
200188
201189You can also use :doc: `/productive/qa/pysa ` for `taint
202190<https://en.wikipedia.org/wiki/Taint_checking> `_ analyses.
0 commit comments