12 Codage sécurisé
Créer un code sécurisé est essentiel pour protéger les données et maintenir le bon comportement du logiciel. Créer un code sécurisé est une discipline relativement nouvelle, car les développeurs sont principalement chargés d’écrire des fonctions et des sorties, sans nécessairement les sécuriser. Cependant, étant donné la prévalence des exploits, il est important que les développeurs intègrent dès le départ de bonnes pratiques de sécurité.
Voici quelques pratiques de sécurité du développement Python à prendre en compte :
Utilisez une version à jour de Python : Les versions obsolètes ont été corrigées avec des mises à jour de la vulnérabilité. Ne pas intégrer ces mises à jour dans l’environnement Python peut laisser les vulnérabilités exposées à des exploitations.
Créez la base de code dans un environnement Sandbox : L’utilisation d’un environnement Sandbox empêche les dépendances Python malveillantes de passer en production. Si des progiciels malveillants sont présents dans les environnements Python, l’utilisation d’un environnement virtuel permettra d’isoler les progiciels de la base de code de production.
Importez correctement les progiciels : Lorsque vous travaillez avec des modules Python externes ou internes, veillez à les importer en utilisant les bons chemins. Il existe deux types de chemins d’importation en Python : absolus et relatifs. De plus, il existe deux types d’importations relatives : implicites et explicites. Les importations implicites ne spécifient pas le chemin de la ressource relatif au module actuel, tandis que les importations explicites spécifient le chemin exact du module que vous souhaitez importer. L’importation implicite a été désapprouvée et supprimée de Python 3, car si le module spécifié est trouvé dans le chemin du système, il sera importé, ce qui pourrait être très dangereux, car il est possible qu’un module malveillant portant un nom identique se trouve dans une bibliothèque open-source et puisse trouver son chemin vers le chemin du système. Si le module malveillant est trouvé avant le module réel, il sera importé et utilisé pour exploiter les applications dans leur arbre de dépendance. Il est important d’assurer une importation absolue ou des importations relatives explicites, car cela garantit l’authenticité et l’intégrité du module attendu.
Utilisez les requêtes HTTP Python avec précaution : Il est recommandé de faire preuve de prudence lors de l’envoi de requêtes HTTP et de bien comprendre comment la bibliothèque que vous utilisez gère la sécurité pour éviter les problèmes de sécurité. Lorsque vous utilisez une bibliothèque de requêtes HTTP courante telle que Requests, il est déconseillé de spécifier des versions antérieures dans votre fichier requirements.txt, car avec le temps, des versions obsolètes du module peuvent être installées. Pour éviter cela, assurez-vous d’utiliser la version la plus récente de la bibliothèque et vérifiez si elle gère la vérification SSL de la source.
Il est important d’identifier les progiciels exploités et malveillants.
Les progiciels sont utiles, car, ils permettent de gagner du temps en évitant de créer des artefacts à partir de zéro à chaque fois. Les progiciels Python peuvent être facilement installés via l’outil d’installation de progiciels Pip. Cependant, il convient de noter que les progiciels Python sont généralement publiés sur PyPI, un référentiel de code pour les progiciels Python qui n’est pas soumis à un examen ou à un contrôle de sécurité. Cela signifie que PyPI peut facilement publier du code malveillant.
Afin d’éviter d’avoir des progiciels exploités dans votre code, il est important de vérifier chaque progiciel Python que vous importez. De plus, il est recommandé d’utiliser des outils de sécurité dans votre environnement pour analyser vos dépendances Python et éliminer les progiciels exploités.