¿Cómo puedo asegurarme de que el código fuente de mi aplicación web de Python sea seguro?

2

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?

    
pregunta Paul Warnick 02.08.2016 - 18:24
fuente

1 respuesta

2

Cualquiera de estos métodos debería ser suficiente, suponiendo que su servidor web esté configurado correctamente y no permita que los usuarios visiten y vean la estructura del sistema de archivos.

Si desea compilar el código en un archivo ejecutable y asegurarse de que los desarrolladores del software de compilación no puedan recibir el código que se les envía, configure un sistema de desarrollo como virtual con todo el software que necesita, pero ninguno de tu código. Apague el virtual, haga una copia / clone con una copia completa del disco duro virtual. Encienda la copia, retire el adaptador de red y conéctelo a una unidad virtual separada (esta unidad debe estar en una carpeta separada y deberá colocar su código en ella la primera vez que la use). Haga todo su trabajo en el clon, copie el archivo ejecutable en el almacenamiento extraíble (USB, CDROM, etc.), luego coloque el trabajo terminado en el servidor web. Al menos una vez al mes, apague y elimine el sistema de clonación (teniendo cuidado de preservar el disco virtual separado con su código), inicie el virtual original, complete las actualizaciones de la aplicación y del sistema operativo, y cree un nuevo clon (siguiendo los mismos pasos de retirando el adaptador de red y conectando la unidad virtual con su código).

    
respondido por el LeoB 02.08.2016 - 20:13
fuente

Lea otras preguntas en las etiquetas