Proteja los scripts de Python de la ingeniería inversa usando Pyarmor

Python es muy legible y ampliamente utilizado. Si bien esta legibilidad facilita la colaboración, también aumenta el riesgo de acceso no autorizado y uso indebido. Sin la protección adecuada, los competidores o los atacantes maliciosos pueden copiar sus algoritmos y su lógica patentada, lo que afectará negativamente la integridad de su software y la confianza de sus usuarios.

La implementación de medidas de seguridad sólidas, como la ofuscación y la verificación de licencias, puede mejorar la capacidad del software para proteger contra amenazas potenciales. Proteger los scripts de Python no es sólo una práctica, es una estrategia clave para garantizar la confidencialidad de las innovaciones y mantener la confianza de los usuarios en un entorno digital.

Más información sobre Pyarmor

Pyarmor es una biblioteca de línea de comandos. Ayuda a proteger y ofuscar scripts y paquetes de Python. Transforma el código Python original en una forma más difícil de entender manteniendo su funcionalidad. El proceso de ofuscación cambia el nombre de variables, funciones y clases a nombres no descriptivos, también elimina comentarios y refactoriza el código. Esto hace que el código sea difícil de realizar ingeniería inversa, manipulación o copia.

Pyarmor puede proteger scripts de Python individuales y paquetes de software completos, e incluso agregar verificación de licencia a su código.

Instalar la biblioteca Pyarmor

Pyarmor está disponible en el índice de paquetes de Python (PyPI). Para instalarlo usando pip, simplemente ejecute el siguiente comando:

pip install pyarmor

No es necesario instalar Pyarmor en el mismo directorio que el proyecto de hosting. Puede instalarlo en cualquier lugar de su computadora, protegiendo cualquier script de Python desde cualquier directorio.

Sin embargo, si desea ejecutar scripts protegidos sin tener que instalar Pyarmor en la máquina de destino, deberá instalarlo en el mismo directorio que el proyecto de alojamiento. Esto se debe a que el script protegido contendrá una referencia al entorno de ejecución de Pyarmor, que es necesario para ejecutar el script.

Proteger un único script de Python

Proteger scripts individuales con Pyarmor es sencillo. El siguiente script que suma dos números servirá como ejemplo.

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)

Utilice la línea de comando para navegar hasta el directorio donde está instalado Pyarmor. Luego ejecute los siguientes comandos para cifrar y ofuscar el script. Reemplace main.py con el nombre del script.

pyarmor gen --output dist main.py

Después de ejecutar este comando, Pyarmor creará una nueva carpeta llamada dist que contiene su script protegido.

Abra el script protegido para ver su contenido.

La captura de pantalla anterior muestra el resultado de Pyarmor después de ofuscar y cifrar un script de adición simple. Ahora bien, no se puede saber qué hace un guión con sólo mirarlo.

Para ejecutar un script protegido, abra una terminal o símbolo del sistema y navegue hasta la ubicación que contiene el directorio dist. Luego ejecute el script usando el siguiente comando:

python dist/main.py

Reemplace main.py con el nombre de su script. Sin ofuscación, el script debería ejecutarse tal cual. Pruébelo minuciosamente para asegurarse de que todas las funciones funcionen como se esperaba.

Proteger todo el paquete Python

Un paquete de software puede contener unos pocos módulos o cientos de módulos, según su propósito. Mantener cada módulo individualmente puede resultar molesto. Afortunadamente, Pyarmor puede proteger el paquete completo sin tener que especificar cada módulo individualmente.

Digamos que tienes un paquete Python simple llamado sample_package con la siguiente estructura:

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

Puede crear cualquier número de módulos.

Para cifrar y ofuscar un paquete, abra una terminal o símbolo del sistema y navegue hasta el directorio donde se encuentra el paquete. Luego ejecute el siguiente comando:

pyarmor gen -O dist -r -i sample_package

Reemplace sample_package con el nombre de su paquete. Este comando cifrará y ofuscará el directorio del paquete y guardará la salida protegida en el directorio dist. Utilice paquetes protegidos como cualquier otro paquete de Python.

Por ejemplo, para utilizar el paquete de ejemplo anterior, cree un nuevo script en el directorio dist:

from my_package import module1, module2

module1.say_hello()
module2.do_something()

Cuando ejecuta el código, el paquete debería comportarse tal como lo hacía antes de protegerlo.

Controlar el acceso a los scripts

Es posible que desee limitar el tiempo que los usuarios pueden ejecutar el script, por ejemplo, durante un período de prueba.

Para limitar el tiempo que tarda en ejecutarse un script, utilice el siguiente comando al ofuscar el script.

pyarmor gen -O dist -e 30 main.py

Reemplace 30 con la cantidad de días que desea que el script esté activo. También puedes sustituir una fecha exacta. Después de unos días, el script caducará.

Puede probar esta función estableciendo una fecha en el pasado. Esto hará que el script en ejecución arroje un error. Utilice el siguiente comando para ofuscar el script con fechas de vencimiento:

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

Luego ejecute el script protegido.

El error dice que la clave de licencia ha caducado, por lo que no se puede ejecutar el script.

Teniendo en cuenta la seguridad y la eficiencia

Aunque Pyarmor proporciona un poderoso mecanismo de ofuscación para mejorar la seguridad de su código, es importante equilibrar las medidas de seguridad con el mantenimiento de la eficiencia y el rendimiento de su software. Puedes hacerlo:

  • Evalúe si es necesaria la ofuscación: si su software incluye algoritmos propietarios, datos confidenciales o una lógica empresarial única, la ofuscación puede resultar beneficiosa. Sin embargo, para los scripts de código abierto, que esencialmente no tienen problemas de propiedad intelectual, la compensación entre seguridad y rendimiento favorece la eficiencia.
  • Evaluar el impacto en el rendimiento: la ofuscación introduce una sobrecarga operativa adicional debido a operaciones y transformaciones adicionales realizadas en el código. Este impacto es insignificante para guiones pequeños, pero es más obvio para proyectos grandes. Debe evaluar cuidadosamente el impacto de la ofuscación en el rendimiento y realizar pruebas para garantizar que el software siga siendo receptivo y eficiente.
  • Realice actualizaciones y mantenimiento periódicos: el código, las licencias y los mecanismos de seguridad ofuscados se actualizan periódicamente para evitar posibles vulnerabilidades. Considere también minimizar las molestias a los usuarios.

¿Alguien puede descifrar el código ofuscado?

El craqueo de software es el acto de eliminar la protección contra copia o los mecanismos de licencia de una aplicación de software para obtener acceso no autorizado a la funcionalidad completa del software sin pago. Es importante tener en cuenta que el software de ofuscación no lo protege completamente contra el crack.

Con suficiente determinación y recursos, se puede descifrar el código ofuscado. Esto significa que debe realizar actualizaciones y mantenimiento periódicos para corregir cualquier vulnerabilidad sospechosa.

Finalmente, recomiendo una herramienta de desarrollo de aplicaciones.

¡Levanta la garganta! ¡Acerca de que el código bajo es muy activo en el mundo de la tecnología en este momento!

¿Qué es el código bajo? Un conjunto de plataformas de herramientas de tecnología digital puede realizar una construcción rápida, orquestación de datos, ecología de conexión, servicios de extremo medio, etc. basándose en métodos más eficientes, como arrastrar y soltar gráficos y configuración parametrizada. Logre innovación de aplicaciones de escenarios en la transformación digital con poco o ningún código. Puede aliviar o incluso resolver la contradicción entre oferta y demanda causada por la enorme demanda del mercado y la productividad del desarrollo tradicional, y es producto de la tendencia de reducción de costos y mejora de la eficiencia en el proceso de transformación digital.

Aquí presentamos una útil plataforma de código bajo: la plataforma de desarrollo rápido JNPF. En los últimos años, se ha destacado en términos de desempeño en el mercado y competitividad del producto. Adopta el último marco de separación de adelante hacia atrás (SpringBoot+Mybatis-plus+Ant-Design+Vue 3 ) . El generador de código tiene baja dependencia y capacidades de expansión flexibles, lo que permite un desarrollo secundario flexible.

Para respaldar el desarrollo de aplicaciones con requisitos técnicos más altos, la plataforma de código bajo de nivel empresarial representada por JNPF casi no tiene diferencia con el desarrollo de software tradicional desde el modelado de bases de datos, la construcción de API web hasta el diseño de páginas. Solo utiliza el modo de visualización de código bajo para Reduzca el costo de construcción. La función "Agregar, eliminar, modificar y verificar" es un trabajo repetitivo. Los socios que aún no han entendido el código bajo pueden intentar comprenderlo.

Aplicación: https://www.jnpfsoft.com/?csdn

Con él, los desarrolladores pueden comenzar fácilmente durante el proceso de desarrollo y aprovechar al máximo la experiencia acumulada en el modelo de desarrollo tradicional. Por tanto, las plataformas low-code son de gran ayuda para los programadores.

Supongo que te gusta

Origin blog.csdn.net/Z__7Gk/article/details/132759789
Recomendado
Clasificación