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
3037Vulnerability Database <https://osv.dev> `_ zurückgreift.
3138
3239Wenn 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
3643Wenn 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
126133Sicherheitsüberprüfung oder Audit und stellt ein rechtliches Risiko für die
127134potenzielle 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> `_
131138für auf GitHub gehostete Projekte, ansonsten eine eigene Heuristik, um eine
132139verö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
141148Risiko: 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-
159150Mit dem `OpenSSF Best Practices Badge Programm
160151<https://www.bestpractices.dev/de> `_ könnt ihr euch auch ein entsprechendes
161152Badge holen.
@@ -172,6 +163,9 @@ Bevor Code in Pull- oder Merge-Requests zusammengeführt wird, sollten Tests
172163durchgeführt werden, die dabei helfen, Fehler frühzeitig zu erkennen und die
173164Anzahl der Schwachstellen in einem Projekt zu reduzieren.
174165
166+ .. seealso ::
167+ * :ref: `coverage-github-actions `
168+
175169Verwendet 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
196189Verwendet euer Projekt Werkzeuge zur statischen Codeanalyse?
197190~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
198191
199192Risiko: 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
219202Zudem 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