Protégez les scripts Python de l'ingénierie inverse à l'aide de Pyarmor

Python est très lisible et largement utilisé. Si cette lisibilité facilite la collaboration, elle augmente également le risque d’accès non autorisé et d’utilisation abusive. Sans protection adéquate, des concurrents ou des attaquants malveillants peuvent copier vos algorithmes et votre logique propriétaire, ce qui aura un impact négatif sur l'intégrité de vos logiciels et la confiance de vos utilisateurs.

La mise en œuvre de mesures de sécurité solides, telles que l'obscurcissement et la vérification des licences, peut améliorer la capacité du logiciel à se protéger contre les menaces potentielles. Sécuriser les scripts Python n'est pas qu'une simple pratique, c'est une stratégie clé pour garantir la confidentialité des innovations et maintenir la confiance des utilisateurs dans un environnement numérique.

En savoir plus sur Pyarmor

Pyarmor est une bibliothèque de ligne de commande. Il aide à protéger et à masquer les scripts et packages Python. Il 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, supprime également les commentaires et refactorise le code. Cela rend le code difficile à désosser, à falsifier ou à copier.

Pyarmor peut protéger des scripts Python individuels et des progiciels entiers, et même ajouter une vérification de licence à votre code.

Installer la bibliothèque Pyarmor

Pyarmor est disponible dans le Python Package Index (PyPI). Pour l'installer à l'aide de pip, exécutez simplement la commande suivante :

pip install pyarmor

Il n'est pas nécessaire d'installer Pyarmor dans le même répertoire que le projet d'hébergement. Vous pouvez l'installer n'importe où sur votre ordinateur, en protégeant n'importe quel script Python depuis n'importe quel répertoire.

Cependant, si vous souhaitez exécuter des scripts protégés sans avoir à installer Pyarmor sur la machine cible, vous devrez l'installer dans le même répertoire que le projet d'hébergement. En effet, le script protégé contiendra une référence à l'environnement d'exécution Pyarmor, qui est nécessaire pour exécuter le script.

Protéger un seul script Python

Protéger des scripts individuels avec Pyarmor est simple. Le script suivant qui ajoute deux nombres servira d'exemple.

def add_numbers(num1, num2):
    result = num1 + num2
 print("The sum of {} and {} is: {}".format(num1, num2, result))


# Example usage
num1 = float(input("Enter the first number: "))
num2 = float(input("Enter the second number: "))
add_numbers(num1, num2)

Utilisez la ligne de commande pour accéder au répertoire où Pyarmor est installé. Exécutez ensuite les commandes suivantes pour chiffrer et masquer le script. Remplacez main.py par le nom du script.

pyarmor gen --output dist main.py

Après avoir exécuté cette commande, Pyarmor créera un nouveau dossier appelé dist qui contient votre script protégé.

Ouvrez le script protégé pour afficher son contenu.

La capture d'écran ci-dessus montre la sortie de Pyarmor après avoir obscurci et chiffré un simple script d'ajout. Or, vous ne pouvez pas savoir ce que fait un script simplement en le regardant.

Pour exécuter un script protégé, ouvrez un terminal ou une invite de commande et accédez à l'emplacement contenant le répertoire dist. Exécutez ensuite le script à l'aide de la commande suivante :

python dist/main.py

Remplacez main.py par le nom de votre script. Sans obscurcissement, le script doit s'exécuter tel quel. Testez-le minutieusement pour vous assurer que toutes les fonctions fonctionnent comme prévu.

Protéger l'intégralité du package Python

Un progiciel peut contenir quelques modules ou des centaines de modules, selon son objectif. Maintenir chaque module individuellement peut être ennuyeux. Heureusement, Pyarmor est capable de protéger l'intégralité du package sans avoir à spécifier chaque module individuellement.

Supposons que vous disposiez d'un package Python simple appelé sample_package avec la structure suivante :

sample_package/
|-- __init__.py
|-- module1.py
|-- module2.py

Vous pouvez créer n'importe quel nombre de modules.

Pour chiffrer et masquer un package, ouvrez un terminal ou une invite de commande et accédez au répertoire où se trouve le package. Exécutez ensuite la commande suivante :

pyarmor gen -O dist -r -i sample_package

Remplacez sample_package par le nom de votre package. Cette commande cryptera et obscurcira le répertoire du package et enregistrera la sortie protégée dans le répertoire dist. Utilisez des packages protégés comme n'importe quel autre package Python.

Par exemple, pour utiliser l'exemple de package ci-dessus, créez un nouveau script dans le répertoire dist :

from my_package import module1, module2

module1.say_hello()
module2.do_something()

Lorsque vous exécutez le code, le package doit se comporter exactement comme avant votre protection.

Contrôler l'accès aux scripts

Vous souhaiterez peut-être limiter la durée pendant laquelle les utilisateurs peuvent exécuter le script, par exemple pendant une période d'essai.

Pour limiter le temps d'exécution d'un script, utilisez la commande suivante lors de l'obscurcissement du script.

pyarmor gen -O dist -e 30 main.py

Remplacez 30 par le nombre de jours pendant lesquels vous souhaitez que le script soit actif. Vous pouvez également remplacer une date exacte. Après quelques jours, le script expirera.

Vous pouvez tester cette fonctionnalité en définissant une date dans le passé. Cela entraînera une erreur du script en cours d’exécution. Utilisez la commande suivante pour masquer le script avec les dates d'expiration :

pyarmor gen -O dist -e 2022-01-01 main.py

Exécutez ensuite le script protégé.

L'erreur indique que la clé de licence a expiré et que le script ne peut pas s'exécuter.

Prendre en compte la sécurité et l’efficacité

Bien que Pyarmor fournisse un puissant mécanisme d'obscurcissement pour améliorer la sécurité de votre code, il est important d'équilibrer les mesures de sécurité avec le maintien de l'efficacité et des performances de votre logiciel. Tu peux le faire:

  • Évaluez si l’obscurcissement est nécessaire : si votre logiciel implique des algorithmes propriétaires, des données sensibles ou une logique métier unique, l’obscurcissement peut être bénéfique. Cependant, pour les scripts open source, qui ne posent pratiquement aucun problème de propriété intellectuelle, le compromis entre sécurité et performances favorise l'efficacité.
  • Évaluer l'impact sur les performances : l'obscurcissement introduit une surcharge opérationnelle supplémentaire en raison d'opérations et de transformations supplémentaires effectuées sur le code. Cet impact est négligeable pour les petits scripts, mais est plus évident pour les grands projets. Vous devez soigneusement évaluer l’impact de l’obscurcissement sur les performances et effectuer des tests pour vous assurer que le logiciel reste réactif et efficace.
  • Effectuez des mises à jour et une maintenance régulières : le code obscurci, les licences et les mécanismes de sécurité sont régulièrement mis à jour pour éviter les vulnérabilités potentielles. Pensez également à minimiser les perturbations pour les utilisateurs.

Quelqu’un peut-il déchiffrer le code obscurci ?

Le piratage de logiciels consiste à supprimer la protection contre la copie ou les mécanismes de licence d'une application logicielle afin d'obtenir un accès non autorisé à toutes les fonctionnalités du logiciel sans paiement. Il est important de noter que les logiciels d’obfuscation ne le protègent pas complètement du piratage.

Avec suffisamment de détermination et de ressources, le code obscurci peut être déchiffré. Cela signifie que vous devez effectuer des mises à jour et une maintenance régulières pour corriger toute vulnérabilité suspectée.

Enfin, je recommande un outil de développement d'applications

Lève la gorge ! À propos du low-code qui est très actif dans le monde de la technologie en ce moment !

Qu’est-ce que le low-code ? Un ensemble de plates-formes d'outils technologiques numériques peuvent réaliser une construction rapide, une orchestration des données, une écologie de connexion, des services milieu de gamme, etc. sur la base de méthodes plus efficaces telles que le glisser-déposer graphique et la configuration paramétrée. Réalisez des innovations en matière d’applications de scénarios dans la transformation numérique avec peu ou pas de code. Il peut atténuer, voire résoudre, la contradiction entre l'offre et la demande provoquée par l'énorme demande du marché et la productivité traditionnelle du développement. Il est le produit de la tendance à la réduction des coûts et à l'amélioration de l'efficacité dans le processus de transformation numérique.

Nous présentons ici une plate-forme low-code utile - la plate-forme de développement rapide JNPF. Ces dernières années, il s'est distingué en termes de performances sur le marché et de compétitivité des produits en adoptant le dernier cadre de séparation avant-arrière grand public (SpringBoot+Mybatis-plus+Ant-Design+Vue 3 ) . Le générateur de code a une faible dépendance et des capacités d'extension flexibles, permettant un développement secondaire flexible.

Afin de prendre en charge le développement d'applications avec des exigences techniques plus élevées, la plate-forme low-code au niveau de l'entreprise représentée par JNPF ne présente presque aucune différence avec le développement de logiciels traditionnel, de la modélisation de bases de données à la construction d'API Web en passant par la conception de pages. Elle utilise uniquement le mode de visualisation low-code pour réduire le coût de construction. La fonction "Ajouter, Supprimer, Modifier et Vérifier" est un travail répétitif. Les partenaires qui n'ont pas encore compris le low-code peuvent essayer de le comprendre.

Application : https://www.jnpfsoft.com/?csdn

Grâce à lui, les développeurs peuvent facilement démarrer le processus de développement et tirer pleinement parti de l'expérience accumulée dans le modèle de développement traditionnel. Par conséquent, les plateformes low-code sont d’une grande aide pour les programmeurs.

おすすめ

転載: blog.csdn.net/Z__7Gk/article/details/132759789