¿Cómo proteger el código fuente que reside en el servidor web de virtualbox que comienza en el arranque?

2

Instalé CentOS 6 en un disco virtualbox de 3gb. Alberga un servidor web que se inicia automáticamente cuando se inicia el sistema operativo. No se requiere inicio de sesión de usuario. Cuando arranca, se le asigna una IP y la máquina host puede conectarse al servidor.

La idea es entregar esto a alguien en una unidad flash, dejar que instale virtualbox en su computadora y ejecutar la imagen para iniciar el servidor.

El software del servidor está escrito en un idioma interpretado y el código fuente también reside en la imagen. El problema es que no queremos que alguien piratee el disco y obtenga el código fuente que está claramente ahí.

Ya que queremos que el httpd se inicie en el arranque sin dar ninguna contraseña a nadie, no podemos cifrar el disco. El cifrado del disco también conlleva complicaciones, ya que httpd tendrá que iniciarse después de que se haya montado el volumen cifrado, etc.

Teniendo en cuenta estas restricciones, ¿qué opciones tengo para proteger el código fuente dentro de la unidad virtual?

    
pregunta pwned 03.05.2013 - 12:35
fuente

2 respuestas

4

Máquina virtual, pero CPU real. Independientemente de cómo elija verlo, el código de su servidor aún se ejecuta en la máquina del supuesto atacante. Del mismo modo, el cifrado de disco de cualquier tipo tampoco ayudaría, incluso si usted mismo escribió personalmente la contraseña al iniciar: en algún momento, los datos aún se descifran en la máquina del atacante.

Las máquinas virtuales no ofrecen ninguna protección contra ese tipo de inspección. Las máquinas virtuales protegen el sistema operativo host del huésped, no al revés.

Esta es una de estas situaciones en las que "go Cloud" es un buen consejo. No le des una unidad flash USB; en su lugar, alojar el código en un servidor en algún lugar. De esa manera, mantienes el control del paradero de los datos y de quién los lee.

    
respondido por el Thomas Pornin 03.05.2013 - 13:18
fuente
2

Si le das a alguien el código para que se ejecute en su propia computadora, siempre existe la posibilidad de que hagan algo con él que no quisiste o no esperabas. Si les ha dado el código fuente, se lo ha facilitado. Si absolutamente debe dar a las personas el código real, y no quiere que jueguen con él, aquí hay dos posibilidades que se desprenden del mundo real de ventas de software:

  • Aumenta el riesgo. Haga que el usuario final acepte algunas tonterías que les prohíban copiar, realizar ingeniería inversa o redistribuir el código.

  • Aumenta la complejidad. Ofusque el código a través de la compresión, el cifrado, la eliminación de símbolos, la espaguetización y otras tonterías.

Al final, si le das un código a la gente, es posible que hagan algo que no te gusta con él. Esta es la naturaleza de las computadoras.

    
respondido por el ruief 03.05.2013 - 16:24
fuente

Lea otras preguntas en las etiquetas