Skip to content

Commit 9d80f3b

Browse files
committed
📝 Update security
* Add references to Securing the release workflow, zizmor and 2FA * Add anchor for GitHub Actions
1 parent c3310ae commit 9d80f3b

3 files changed

Lines changed: 36 additions & 50 deletions

File tree

docs/productive/envs/uv/cicd.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ Zeile 23
4747
* `Using uv in GitLab CI/CD
4848
<https://docs.astral.sh/uv/guides/integration/gitlab/>`_
4949

50+
.. _github-actions:
51+
5052
GitHub Actions
5153
--------------
5254

docs/productive/qa/ruff.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ Ruff
88
`Ruff <https://docs.astral.sh/ruff/>`_ ist ein extrem schneller Python-Linter
99
und Code-Formatierer, geschrieben in Rust, der :abbr:`u.a. (unter anderem)` die
1010
Regeln von :doc:`flake8`, :doc:`isort`, :doc:`/performance/perflint`,
11-
:doc:`black` und :ref:`Bandit <bandit>` ausführen kann. Insgesamt kann Ruff
12-
`über 800 Regeln <https://docs.astral.sh/ruff/rules/>`_ überprüfen.
11+
:doc:`black` und `Bandit <https://github.com/PyCQA/bandit>`_ ausführen kann.
12+
Insgesamt kann Ruff `über 800 Regeln <https://docs.astral.sh/ruff/rules/>`_
13+
überprüfen.
1314

1415
Installation
1516
------------

docs/productive/security.rst

Lines changed: 31 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,17 @@
55
Sicherheit
66
==========
77

8-
In den vorherigen Kapiteln haben wir schon einige Hinweise gegeben, die einen
9-
sichereren Betrieb ermöglichen. Hier wollen wir die einzelnen Elemente nun
10-
nochmal zusammenfassen und erweitern. Dabei orientieren wir uns an der `OpenSSF
11-
Scorecard <https://securityscorecards.dev/>`_. Alternativ könnt ihr euch auch an
8+
In früheren Kapiteln haben wir schon einige Hinweise gegeben, die einen
9+
sichereren Betrieb ermöglichen sollen.
10+
11+
.. seealso::
12+
* :ref:`secure-release-workflow`
13+
* :ref:`zizmorcore`
14+
* :ref:`add_2fa`
15+
16+
Hier wollen wir die einzelnen Elemente nun nochmal zusammenfassen und erweitern.
17+
Dabei orientieren wir uns an der `OpenSSF Scorecard
18+
<https://securityscorecards.dev/>`_. Alternativ könnt ihr euch auch an
1219
:ref:`open_chain` orientieren.
1320

1421
.. _check-vulnerabilities:
@@ -30,8 +37,8 @@ Für eine solche Überprüfung könnt ihr :abbr:`z.B. (zum Beispiel)` `uv-secure
3037
Vulnerability Database <https://osv.dev>`_ zurückgreift.
3138

3239
Wenn eine Schwachstelle in einer Abhängigkeit gefunden wird, solltet ihr auf
33-
eine Version nicht-anfällige Version aktualisieren; wenn kein Update verfügbar
34-
ist, solltet ihr überlegen, die Abhängigkeit zu entfernen.
40+
eine nicht-anfällige Version aktualisieren; wenn kein Update verfügbar ist,
41+
solltet ihr überlegen, die Abhängigkeit zu entfernen.
3542

3643
Wenn ihr glaubt, dass die Sicherheitslücke euer Projekt nicht betrifft, kann für
3744
``osv`` eine :file:`osv-scanner.toml`-Datei erstellt werden, :abbr:`u.a. (unter
@@ -126,36 +133,20 @@ verwendet werden darf oder nicht. Das Fehlen einer Lizenz erschwert jede Art von
126133
Sicherheitsüberprüfung oder Audit und stellt ein rechtliches Risiko für die
127134
potenzielle Nutzung dar.
128135

129-
OSSF-Scorecard verwendet die `GitHub License API
136+
OpenSSF-Scorecard verwendet die `GitHub License API
130137
<https://docs.github.com/en/rest/licenses/licenses?apiVersion=2022-11-28#get-the-license-for-a-repository>`_
131138
für auf GitHub gehostete Projekte, ansonsten eine eigene Heuristik, um eine
132139
veröffentlichte Lizenzdatei zu erkennen. Dateien in einem
133-
:file:`LICENSES`-Verzeichnis sollten mit mit ihrem :ref:`SPDX
134-
<standard_format_licensing>`-Lizenzbezeichner benannt werden, gefolgt
135-
von einer entsprechenden Dateierweiterung, wie in der :ref:`REUSE
136-
<reuse>`-Spezifikation beschrieben.
140+
:file:`LICENSES`-Verzeichnis sollten mit ihrem :ref:`SPDX
141+
<standard_format_licensing>`-Lizenzbezeichner benannt werden, gefolgt von einer
142+
entsprechenden Dateierweiterung, wie in der :ref:`REUSE <reuse>`-Spezifikation
143+
beschrieben.
137144

138-
Wird nach den Best Practices der :abbr:`OpenSSF (Open Source Security Foundation)` gehandelt?
139-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
145+
OpenSSF Best Practices Badge
146+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
140147

141148
Risiko: Niedrig
142149

143-
Das `Open Source Security Foundation (OpenSSF) Best Practices Program
144-
<https://github.com/ossf/wg-best-practices-os-developers>`_ umfasst eine Reihe
145-
von sicherheitsorientierten Best Practices für die Entwicklung von
146-
Open-Source-Software:
147-
148-
* das Verfahren zur Meldung von Schwachstellen ist auf der Projektseite
149-
veröffentlicht
150-
* ein funktionierendes Build-System erstellt die Software automatisch aus dem
151-
Quellcode neu
152-
* eine allgemeine Richtlinie, dass Tests zu einer automatisierten Testsuite
153-
hinzugefügt werden, wenn wichtige neue Funktionen hinzukommen
154-
* :abbr:`ggf. (gegebenenfalls)` verschiedene Kryptographie-Kriterien werden
155-
erfüllt
156-
* mindestens ein statisches Code-Analyse-Tool, das auf jede geplante größere
157-
Produktionsversion angewendet wird
158-
159150
Mit dem `OpenSSF Best Practices Badge Programm
160151
<https://www.bestpractices.dev/de>`_ könnt ihr euch auch ein entsprechendes
161152
Badge holen.
@@ -172,6 +163,9 @@ Bevor Code in Pull- oder Merge-Requests zusammengeführt wird, sollten Tests
172163
durchgeführt werden, die dabei helfen, Fehler frühzeitig zu erkennen und die
173164
Anzahl der Schwachstellen in einem Projekt zu reduzieren.
174165

166+
.. seealso::
167+
* :ref:`coverage-github-actions`
168+
175169
Verwendet das Projekt Fuzzing-Tools?
176170
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
177171

@@ -190,31 +184,20 @@ finden.
190184
Repository eingesetzt?
191185
* Sind benutzerdefinierte sprachenspezifische Fuzzing-Funktionen im Repository
192186
vorhanden, :abbr:`z.B. (zum Beispiel)` mit `atheris
193-
<https://pypi.org/project/atheris/>`_ oder `OneFuzz
194-
<https://github.com/microsoft/onefuzz>`_?
187+
<https://pypi.org/project/atheris/>`_?
195188

196189
Verwendet euer Projekt Werkzeuge zur statischen Codeanalyse?
197190
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
198191

199192
Risiko: Mittel
200193

201-
`Statische Codeanalysen <https://de.wikipedia.org/wiki/Statische_Code-Analyse>`_
202-
testen den Quellcode, bevor die Anwendung ausgeführt wird. Dies kann verhindern,
203-
dass bekannte Fehlerklassen versehentlich in die Codebasis eingeführt werden.
204-
205-
.. _bandit:
206-
207-
Um Schwachstellen zu überprüfen, könnt ihr `bandit
208-
<https://github.com/PyCQA/bandit>`__ verwenden, das ihr auch in eure
209-
:file:`.pre-commit-hooks.yaml` integrieren könnt:
210-
211-
.. code-block:: yaml
194+
:term:`Statische Testverfahren` testen den Quellcode, bevor die Anwendung
195+
ausgeführt wird. Dies kann verhindern, dass bekannte Fehlerklassen versehentlich
196+
in die Codebasis eingeführt werden.
212197

213-
repos:
214-
- repo: https://github.com/PyCQA/bandit
215-
rev: '1.7.5'
216-
hooks:
217-
- id: bandit
198+
Um Schwachstellen zu überprüfen, könnt ihr `Bandit
199+
<https://github.com/PyCQA/bandit>`__ mit :doc:`qa/ruff` verwenden, das ihr auch
200+
in Jupyter Notebooks, IDEs und das pre-commit-Framework integrieren könnt.
218201

219202
Zudem könnt ihr :doc:`/productive/qa/pysa` für `Taint
220203
<https://en.wikipedia.org/wiki/Taint_checking>`_-Analysen verwenden.
@@ -301,7 +284,7 @@ nicht nur auf eine veränderbare Version oder einen Versionsbereich.
301284

302285
.. tip::
303286
Üblicherweise verwalte ich diese Dateien jedoch nur bei
304-
:doc:`python-basics:packs/apps` in :doc:`git/index`. Bei
287+
:doc:`python-basics:packs/apps` in :doc:`Git <git/index>`. Bei
305288
:doc:`python-basics:libs/index` schränke ich üblicherweise lediglich den
306289
Versionsbereich der Abhängigkeiten in der :file:`pyproject.toml`-Datei ein.
307290

0 commit comments

Comments
 (0)