Add bandit and defusedxml notes + update python.

This commit is contained in:
2022-03-20 17:40:59 +01:00
parent 47ed93bf21
commit 5e977d44a4
3 changed files with 72 additions and 1 deletions

View File

@@ -1,6 +1,6 @@
:PROPERTIES: :PROPERTIES:
:ID: 4fabfe6a-b104-464f-8a87-dfd7d761dbcc :ID: 4fabfe6a-b104-464f-8a87-dfd7d761dbcc
:mtime: 20220207072855 :mtime: 20220306173558
:ctime: 20211230101535 :ctime: 20211230101535
:END: :END:
#+title: Python #+title: Python
@@ -20,6 +20,9 @@
*** [[id:6cc56ee4-6d42-4d50-beb3-bb22a98298dd][textual]] *** [[id:6cc56ee4-6d42-4d50-beb3-bb22a98298dd][textual]]
* Outils * Outils
** Analyseur statique de code
*** [[id:1d258869-5421-496a-b296-2d157ebdf3b6][mypy]]
*** [[id:113a938e-3fb2-45cb-ae6e-41801418139b][bandit]]
** Formatter ** Formatter
*** [[https://github.com/hhatto/autopep8][autopep8]] *** [[https://github.com/hhatto/autopep8][autopep8]]
Utilitaire formattant le code afin de respecter la [[https://www.python.org/dev/peps/pep-0008/][PEP8]] guideline. Il est basé sur l'analyse de code effectuée par Utilitaire formattant le code afin de respecter la [[https://www.python.org/dev/peps/pep-0008/][PEP8]] guideline. Il est basé sur l'analyse de code effectuée par
@@ -31,6 +34,10 @@ En plus de vérifier la conformité avec la [[https://www.python.org/dev/peps/p
*** [[https://black.readthedocs.io/en/stable/][Black]] *** [[https://black.readthedocs.io/en/stable/][Black]]
Formatter n'appliquant que le style [[https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html][/black/]]. Il accepte la même synthaxe de contrôle que YAPF. Formatter n'appliquant que le style [[https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html][/black/]]. Il accepte la même synthaxe de contrôle que YAPF.
* Modules intéressants
** Vulnérabilités/Cyber
*** [[id:ba4c7c25-ee27-4b5e-8ef7-ba2ecc34f127][defusedxml]]
* Tips * Tips
** [[id:4ef76164-0e67-410a-8d26-b03071a0cc41][Compter la fréquence des éléments d'une liste]] ** [[id:4ef76164-0e67-410a-8d26-b03071a0cc41][Compter la fréquence des éléments d'une liste]]
** [[id:cb3c63b9-6452-4016-9b2f-a25784941d5d][List vs deque]] ** [[id:cb3c63b9-6452-4016-9b2f-a25784941d5d][List vs deque]]

13
20220306172443-bandit.org Normal file
View File

@@ -0,0 +1,13 @@
:PROPERTIES:
:ID: 113a938e-3fb2-45cb-ae6e-41801418139b
:mtime: 20220306172631
:ctime: 20220306172443
:END:
#+title: bandit
* Introduction
Bandit est un OSS détectant les failles de sécurité via l'analyse statique de code python.
* Références
* [[https://github.com/PyCQA/bandit][Github]]

View File

@@ -0,0 +1,51 @@
:PROPERTIES:
:ID: ba4c7c25-ee27-4b5e-8ef7-ba2ecc34f127
:mtime: 20220306184630
:ctime: 20220306172805
:END:
#+title: defusedxml
* Introduction
Module proposant une sourcouche protégeant contre les vulnérabilités de certains modules python gérant des données XML.
Par exemple :
#+BEGIN_SRC python
from xml.etree.ElementTree import parse
et = parse(xmlfile)
#+END_SRC
Serait à mettre à jour ainsi :
#+BEGIN_SRC python
from defusedxml.ElementTree import parse
et = parse(xmlfile)
#+END_SRC
* Liste des vulnérabilités et fonctionnalités
| Vulnérabilité | sax | etree | minidom | pulldom | xmlrpc | [[id:b18fe210-fac3-4f63-8041-4b686c64ee6a][lxml]] | genshi |
|--------------------------------------------+-------+-------+---------+---------+--------+------------+--------|
| [[id:7b090d0a-b96b-4d40-afec-2155a6909935][xml billion laughs]] | ✔ | ✔ | ✔ | ✔ | ✔ | ✖ (1) | ✖ (5) |
| quadratic blowup | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✖ (5) |
| [[id:869e88ed-fe68-47b5-a911-e27cf3927f66][XML external entity expension]] (remote) | ✔ | ✖ (3) | ✖ (4) | ✔ | ✖ | ✖ (1) | ✖ (5) |
| [[id:869e88ed-fe68-47b5-a911-e27cf3927f66][XML external entity expension]] (local file) | ✔ | ✖ (3) | ✖ (4) | ✔ | ✖ | ✔ | ✖ (5) |
| DTD retrieval | ✔ | ✖ | ✖ | ✔ | ✖ | ✖ (1) | ✖ |
| gzip bomb | ✖ | ✖ | ✖ | ✖ | ✔ | Partly (2) | ✖ |
| xpath support (7) | ✖ | ✖ | ✖ | ✖ | ✖ | ✔ | ✖ |
| xsl(t) support (7) | ✖ | ✖ | ✖ | ✖ | ✖ | ✔ | ✖ |
| xinclude support (7) | ✖ | ✔ (6) | ✖ | ✖ | ✖ | ✔ (6) | ✔ |
| C library | expat | expat | expat | expat | expat | libxml2 | expat |
1. /lxml/ est protégé contre les attaques /billion laughs/ et ne fait pas de recherche réseau (/network lookups/) par défaut.
2. /libxml2/ et /lxml/ ne sont pas directement vulnérables aux /gzip decompression bombs/ mais ne vous protège pas contre
par ailleurs.
3. /xml.etree/ ne développe pas les entités et déclenche une /ParserError/ lorsqu'une entité apparait.
4. /minicom/ ne développe pas les entités et retourne une entitée textuelle non développée.
5. /genshi.input/ (v0.6) ne développe pas les entités et déclenche une /ParserError/ lorsqu'une entité apparait.
6. La librarie apporte un support limité à /XInclude/ (mécanisme de fusion) mais requiert une étape additionnelle pour
réaliser l'inclusion.
7. Il s'agit de fonctionnalités mais peuvent introduire des failles supplémentaires.
* Références
* [[https://github.com/tiran/defusedxml][Github]]