Protégez vos scripts Python contre la rétro-ingénierie avec Pyarmor
Python est très lisible et son utilisation est très répandue. Bien que cette lisibilité encourage la collaboration, elle augmente le risque d’accès non autorisé et d’utilisation abusive. Vos concurrents ou des acteurs malveillants peuvent reproduire vos algorithmes et votre logique propriétaire sans mesures de protection appropriées. Cela aura un impact négatif sur l’intégrité de votre logiciel et sur la confiance de vos utilisateurs.
La mise en œuvre de mesures de sécurité robustes, telles que l’obscurcissement et la vérification des licences, renforce votre logiciel contre les menaces potentielles. La protection des scripts Python n’est pas seulement une pratique, c’est une stratégie essentielle pour assurer la confidentialité de vos innovations et maintenir la confiance de vos utilisateurs dans le paysage numérique.
Comprendre Pyarmor
Pyarmor est une bibliothèque en ligne de commande. Elle permet de protéger et d’obscurcir les scripts et les paquets Python. Elle transforme le code Python original en une forme plus difficile à comprendre tout en conservant ses fonctionnalités. Le processus d’obscurcissement renomme les variables, les fonctions et les classes en noms non descriptifs. Il supprime également les commentaires et restructure le code. Cela rend le code difficile à désosser, à falsifier ou à copier.
Pyarmor peut sécuriser des scripts Python individuels et des paquets entiers, et même ajouter une vérification de licence à votre code.
Installation de la bibliothèque Pyarmor
Pyarmor est listé sur le Python Package Index (PyPI). Utilisez pip pour l’installer en exécutant la commande suivante :
Il n’est pas nécessaire d’installer Pyarmor dans le même répertoire que celui qui héberge votre projet. Vous pouvez l’installer n’importe où sur votre ordinateur et être en mesure de sécuriser n’importe quel script Python à partir de n’importe quel répertoire.
Cependant, si vous souhaitez exécuter les scripts sécurisés sans avoir à installer Pyarmor sur la machine cible, vous devez l’installer dans le même répertoire que celui qui héberge votre projet. En effet, les scripts sécurisés contiendront des références au moteur d’exécution Pyarmor, qui devra être présent pour exécuter les scripts.
Sécurisation de scripts Python individuels
La sécurisation de scripts individuels à l’aide de Pyarmor est simple. Le script suivant, qui additionne deux nombres, servira d’exemple.
Utilisez la ligne de commande pour naviguer jusqu’au répertoire dans lequel vous avez installé Pyarmor. Ensuite, exécutez la commande suivante pour crypter et obscurcir votre script. Remplacer main.py par le nom de votre script.
Après l’exécution de la commande, Pyarmor crée un nouveau dossier nommé dist. A l’intérieur de ce dossier se trouve votre script sécurisé.
Ouvrez le script sécurisé pour voir son contenu.
La capture d’écran ci-dessus montre la sortie après que Pyarmor a obscurci et crypté le script d’addition simple. Il est désormais impossible de savoir ce que fait le script en le regardant.
Pour exécuter le script sécurisé, ouvrez votre terminal ou votre invite de commande et naviguez jusqu’à l’emplacement qui contient le fichier dist . Utilisez ensuite la commande suivante pour exécuter le script :
Remplacer main.py par le nom de votre script. Le script devrait s’exécuter comme il le ferait sans obscurcissement. Testez-le soigneusement pour vous assurer que toutes les fonctions fonctionnent comme vous le souhaitez.
Sauvegarde de paquets Python entiers
Les paquets peuvent contenir quelques modules ou des centaines de modules en fonction de leur objectif. Sauvegarder chaque module séparément peut être fastidieux. Heureusement, Pyarmor a la capacité de sécuriser un paquet entier sans que vous ayez à spécifier chaque module séparément.
Supposons que vous ayez un paquetage Python simple nommé paquet_échantillon avec la structure suivante :
Vous pouvez créer autant de modules que vous le souhaitez.
Pour crypter et obscurcir le paquet, ouvrez le terminal ou l’invite de commande et naviguez jusqu’au répertoire dans lequel se trouve votre paquet. Exécutez ensuite la commande suivante :
Remplacer paquet_échantillon par le nom de votre paquetage. Cette commande cryptera et obscurcira le répertoire de votre paquetage et enregistrera la sortie protégée dans le répertoire dist dans le répertoire dist . Utilisez le paquet protégé comme vous le feriez pour n’importe quel autre paquet Python.
Par exemple. Pour utiliser l’exemple de paquetage ci-dessus, créez un nouveau script dans le répertoire dist répertoire :
Lorsque vous exécutez le code, le paquet doit fonctionner comme il l’aurait fait avant de le sécuriser.
Contrôle de l’accès à votre script
Vous pouvez vouloir limiter la durée d’exécution de votre script par un utilisateur. Par exemple, pendant la période d’essai.
Pour limiter la durée d’exécution du script, utilisez la commande suivante lors de l’obscurcissement de votre script.
Remplacer 30 par le nombre de jours pendant lesquels vous souhaitez que le script soit actif. Vous pouvez également le remplacer par une date exacte. Une fois les jours écoulés, le script expirera.
Vous pouvez tester cette fonctionnalité en définissant une date passée. L’exécution du script devrait alors provoquer une erreur. Utilisez la commande suivante pour obscurcir le script avec une date d’expiration :
Exécutez ensuite le script sécurisé.
L’erreur indique que la clé de licence a expiré et que le script ne peut donc pas être exécuté.
Équilibrer la sécurité et l’efficacité
Bien que Pyarmor offre des mécanismes d’obscurcissement robustes pour améliorer la sécurité de votre code, il est important de trouver un équilibre entre les mesures de sécurité et le maintien de l’efficacité et de la performance de votre logiciel. Vous pouvez y parvenir en :
- Évaluer la nécessité de l’obscurcissement: Si votre logiciel implique des algorithmes propriétaires, des données sensibles ou une logique commerciale unique, l’obscurcissement est très bénéfique. Toutefois, pour les scripts open-source dont les préoccupations en matière de propriété intellectuelle sont minimes, le compromis entre la sécurité et les performances penche davantage en faveur de l’efficacité.
- Évaluer l’impact sur les performances: L’obscurcissement introduit des frais généraux d’exécution supplémentaires en raison des opérations et des transformations supplémentaires appliquées au code. Cet impact est négligeable pour les petits scripts, mais devient plus perceptible pour les projets plus importants. Vous devez évaluer soigneusement les implications de l’obscurcissement sur les performances et effectuer des tests pour vous assurer que votre logiciel reste réactif et efficace.
- Effectuer des mises à jour et une maintenance régulières: Mettez régulièrement à jour votre code obfusqué, vos licences et vos mécanismes de sécurité afin de rester à l’affût des vulnérabilités potentielles. Trouvez un équilibre avec la nécessité de minimiser les perturbations pour vos utilisateurs.
Quelqu’un peut-il déchiffrer le code obscurci ?
Le piratage de logiciels consiste à supprimer les mécanismes de protection contre la copie ou de licence d’une application logicielle. Afin d’obtenir un accès non autorisé à l’ensemble de ses fonctionnalités sans avoir à payer pour cela. Il est important de noter que l’obscurcissement de votre logiciel ne le protège pas complètement contre les craqueurs.
Avec suffisamment de détermination et de ressources, le code obscurci peut être déchiffré. C’est la raison pour laquelle vous devez vous efforcer de procéder à des mises à jour et à une maintenance régulières afin de combler toutes les failles suspectes.