Proteger la aplicación web de Java dentro del servidor (contra la ingeniería inversa) [cerrado]

-5

Tengo una aplicación web que se ejecuta en el contenedor de servlets Glassfish 3.1.2 y necesito una forma de proteger las clases Java compiladas. He intentado ofuscar el código fuente pero no funcionó.

El proyecto contiene muchas clases que utilizan reflexiones en java, anotaciones, genéricos y algunas otras cosas que hacen que el proceso de ofuscación sea muy difícil. ¿Alguien sabe una manera de restringir el acceso a los archivos .war y .class dentro de la carpeta de glassfish? ¿Alguien ya tuvo este problema y logró encontrar una solución viable?

    
pregunta lucianovcnt 22.05.2013 - 23:41
fuente

1 respuesta

4

Lo que estás pidiendo hacer es intentar hacer es imposible. Si la máquina puede descubrir cómo ejecutar una aplicación, también lo puede hacer un humano.

Ahora, su código fuente debe ser absolutamente legible para fines de mantenimiento y auditoría, si la seguridad es realmente una de sus principales preocupaciones.

En cuanto a evitar que las entidades maliciosas hagan ingeniería inversa a tu WAR, tienes algunas opciones, algunas más radicales.

  1. Cambie su método de entrega a software-como-un-servicio. Las entidades hostiles nunca ven su WAR, pero usted asume riesgos adicionales, ya que su empresa será la atacada ahora, no sus clientes. También está centralizando los datos de sus clientes, por lo que la violación de un cliente en un sistema mal diseñado afectará a todos los clientes.

  2. Use alguna forma de administración de licencias dentro de su aplicación. Deje en claro que cualquier persona que eluda las restricciones sufrirá a manos de su departamento legal. Lo difícil de esto es detectar cuando alguien intenta realizar una ingeniería inversa en tu WAR. Dejar de lado las comprobaciones de autointegración aleatorias en el código fuente indica que la forma en que llamar a casa por teléfono en caso de que falle podría ser útil, pero está en una situación inestable: los atacantes pueden eliminarlas.

  3. Ir a código abierto. En serio, vaya al código abierto y ubíquese como consultor y SaaS como se mencionó anteriormente. Esto puede conllevar serios beneficios, por ejemplo, la Ley de Linus puede entrar en juego. Sin embargo, si su algoritmo es un secreto comercial o si su seguridad se basa en el Principio de Kerckhoffs , esto puede ser una mala idea. . Obviamente, deberá volver a diseñar los planes de flujo de efectivo actuales de su empresa. También hay diferentes modelos para esto, por ejemplo, ediciones comerciales gratuitas y ediciones profesionales, o complementos de pago.

respondido por el Tinned_Tuna 23.05.2013 - 13:07
fuente

Lea otras preguntas en las etiquetas