Nota: soy nuevo en las prácticas de seguridad de la información, así que siéntete libre de señalar todo lo que podría estar haciendo mejor.
Situación: Estoy creando una aplicación web que ejecuta un programa Python como parte del back-end. Este archivo es de código cerrado y debe estar protegido de cualquier persona que intente acceder a él sin permiso.
¿Cuál es la mejor manera de evitar que se copie o vea este archivo mientras aún se permite que la aplicación web envíe datos de entrada al archivo y reciba los resultados adecuados del mismo archivo?
Además, me gustaría señalar que el servicio no necesita seguridad "a nivel de banco", obviamente, cuanto más seguro mejor, pero actualmente solo tenemos los recursos para permitir medidas de seguridad que son relativamente fácil de implementar.
Mi idea original era instalar Python en el servidor web y simplemente usar el intérprete para ejecutar el archivo .py. Supongo que esto es probablemente bastante inseguro, debido al hecho de que el archivo real se encuentra en el servidor web para que cualquiera lo vea.
En segundo lugar, pensé en usar un programa ( Nuitka o PyInstaller ) para convertir Python en un ejecutable y luego tener el binario en el servidor web. No estoy completamente seguro de cuánto aumentaría la dificultad para obtener el código fuente, pero lo que es más importante, a mis colegas les preocupa que el uso de un software de terceros para convertir el código confidencial sea un riesgo de seguridad en sí mismo. Lo que significa que el software podría potencialmente hacer copias del programa y, en última instancia, filtrar el programa de alguna manera que podría hacer daño.
¿Alguno de los métodos anteriores es suficiente o hay una mejor manera de abordar la seguridad del código fuente?