¿Hay alguna forma de robar el código PHP o ASP de un servidor web a través de los protocolos HTTP (S)?

2

Estoy trabajando en una aplicación web que incluiría un desarrollo personalizado y me preocupé un poco por el robo de código.

Entonces, la pregunta que quería hacer es si, en términos generales, es posible robar código PHP o ASP de un servidor web en ejecución utilizando los protocolos HTTP o HTTPS.

Mi entendimiento es que obtener archivos PHP / ASP de un servidor web requeriría TANTO:

  • que el atacante tendría que hacer que el servidor de alguna manera elimine los archivos que normalmente no se envía al cliente, y
  • que el atacante está explotando algunas fallas de seguridad en el servidor web software

Pido principalmente confirmación de que no es posible obtener archivos PHP / ASP a través de algunas operaciones "normales" (operaciones que no requieren el uso de agujeros de seguridad sin parches).

Además, si hay una forma some (rotonda) para recuperar este tipo de archivos a través de HTTP o HTTPS sin el uso de agujeros de seguridad, ¿qué se puede hacer para bloquear eso?

    
pregunta coderworks 20.08.2015 - 02:52
fuente

3 respuestas

10

Usted tiene razón en que esto no es posible sin las vulnerabilidades de configuración o seguridad que lo permiten.

En general, los culpables más probables cuando se trata de eliminar el código de la aplicación son los códigos comentados, los archivos de copia de seguridad que tienen extensiones que les permiten ser entregados directamente a los clientes sin procesamiento, y probablemente más probable que todos los demás culpables combinados, son excesivamente mensajes de error detallados.

Por lo tanto, no solo se trata de asegurarse de que su aplicación se comporte correctamente cuando la use correctamente, sino también de que se comporte correctamente cuando se abusa de ella.

Dicho esto, el robo de código es, en general, un riesgo muy sobrevalorado. Tu código no es tan especial. Lo digo simplemente porque, en mi experiencia, hay muy poco código. Es muy poco probable que alguien realmente quiera robarlo. Es mucho más probable que se utilice el tipo de fallas que enumeré anteriormente para obtener información confidencial como las credenciales de la base de datos, o para exponer la existencia de debilidades en la lógica de la aplicación que podrían conducir a la explotación por vectores comunes como la inyección de SQL.

    
respondido por el Xander 20.08.2015 - 03:26
fuente
5

Si el servidor web que está utilizando está configurado correctamente, no tiene que preocuparse por la entrega de los propios archivos ASP / PHP no interpretados (a menos que, por supuesto, el atacante esté explotando una vulnerabilidad en algún lugar, como señaló) .

Si te preocupa especialmente el robo de código, probablemente sea más útil pensar en otros vectores de ataque más probables:

  • Su host de control de versión (es decir, github, bitbucket, su propio host de repo privado) está en peligro. En estos días, todos los grandes proyectos de software deberían estar usando algún tipo de control de versión, y definitivamente no es extraño que los atacantes obtengan acceso al propio repositorio.
  • Los servicios que está utilizando que tienen acceso de lectura a su control de versión (es decir, Travis CI) están comprometidos. Esto podría decirse que es más probable que suceda que una compañía masiva como Github o Atlassian siendo hackeada, y ha sucedido antes: enlace
  • Su servidor se verá afectado por alguna otra vulnerabilidad (vulnerabilidad ssh, acceso a través de un servicio alojado en la misma caja, un proveedor de alojamiento comprometido, etc.), aunque tiene mucho más de mucho temas de los que preocuparse. en este caso.

Me inclino a estar de acuerdo con Xander en este caso: el robo de código como concepto está sobrevalorado definitivamente, a menos que esté trabajando en una IP muy compleja y única (tenga en cuenta que incluso esto es un extreme rareza).

    
respondido por el Nic Barker 20.08.2015 - 04:24
fuente
2

Para mayor seguridad, mantenga el código importante fuera del directorio del servidor web. Colóquelo en otro directorio del servidor donde el servidor web no pueda acceder. En su página web, agregue una línea de inclusión para ese archivo, incluida la ruta completa desde la raíz al archivo. La página puede acceder al código, pero no hay código para mostrar si la página alguna vez descarga el código. Este es el enfoque recomendado para todas las conexiones de base de datos que tienen contraseñas en el script.

    
respondido por el bpetrey 19.10.2015 - 20:49
fuente

Lea otras preguntas en las etiquetas