Protección de los recursos y las API del sistema (seguridad de Java 2) para el desarrollo de aplicaciones

La seguridad de Java™ 2 es un modelo de programación que es muy flexible y que tiene un gran impacto en el desarrollo de aplicaciones.

Antes de empezar

La seguridad de Java 2 es ortogonal respecto a la seguridad basada en roles de Java EE (Java Platform, Enterprise Edition); puede inhabilitarla o habilitarla independientemente de la seguridad administrativa.

Sin embargo proporciona un nivel adicional de protección de control de acceso por encima de la autorización basada en roles Java EE. En especial se ocupa de la protección de los recursos del sistema y las API. Los administradores deben sopesar los beneficios y los riesgos de inhabilitar la seguridad de Java 2.

Se proporcionan las recomendaciones siguientes para ayudarle a habilitar la seguridad de Java 2 en un entorno de prueba o de producción:
  1. Asegúrese de que la aplicación se desarrolla con el modelo de programación de la seguridad de Java 2. Los desarrolladores deben saber si las API que se utilizan en las aplicaciones están protegidas por la seguridad de Java 2. Es muy importante que los permisos necesarios para las API que se han utilizando se declaren en el archivo de políticas, was.policy, o la aplicación no se podrá ejecutar cuando la seguridad de Java 2 esté habilitada. Los desarrolladores pueden consultar el sitio web para saber cuáles son las API de Java Development Kit que están protegidas por la seguridad de Java 2. Consulte la sección sobre el modelo y las decisiones de programación del tema Seguridad: Recursos de aprendizaje para visitar el sitio web.
  2. Asegúrese de que a las aplicaciones migradas de releases anteriores se les haya otorgado los permisos necesarios. Puesto que no se da soporte, o sólo parcialmente, a la seguridad de Java 2 en releases anteriores de WebSphere Application Server, las aplicaciones desarrolladas antes de la versión 5 muy probablemente no tendrán en cuenta el modelo de programación de la seguridad de Java 2. No hay disponible una manera fácil de averiguar todos los permisos necesarios para la aplicación. A continuación se muestran algunas tareas que pueden llevarse a cabo para determinar qué permisos adicionales necesita una aplicación:
    • Revisar e inspeccionar el código
    • Revisar la documentación de la aplicación
    • Experimentar de forma aleatoria con las aplicaciones de empresa migrada con la seguridad de Java 2 habilitada en un entorno previo a al de producción. Habilitar el rastreo en el gestor de seguridad de Java 2 de WebSphere para que sea más fácil determinar los permisos que faltan en el archivo de políticas de la aplicación. La especificación de rastreo es: com.ibm.ws.security.core.SecurityManager=all=enabled.
    • Utilice la propiedad del sistema com.ibm.websphere.java2secman.norethrow como ayuda para la depuración. No utilice esta propiedad en un entorno de producción.

      ConsulteSeguridad Java 2

[AIX Solaris HP-UX Linux Windows][z/OS]El conjunto de permisos predeterminado de las aplicaciones es el conjunto de permisos recomendados que se ha definido en la especificación J2EE 1.3. El valor predeterminado se declara en el archivo de políticas raíz_servidor_apl/profiles/nombre_perfil/config/cells/nombre_célula/nodes/nombre_nodo/app.policy con los permisos definidos en el archivo de políticas (JAVA_HOME/jre/lib/security/java.policy) de Development Kit que otorga permisos a todo el mundo. Sin embargo, se deniegan los permisos a las aplicaciones que se han declarado en el archivo profiles/nombre_perfil/config/cells/nombre_célula/filter.policy. Los permisos que se declaran en el archivo filter.policy se filtran para las aplicaciones durante la comprobación de permisos.

[IBM i]El conjunto de permisos predeterminado de las aplicaciones es el conjunto de permisos recomendado que se ha definido en la especificación J2EE 1.3. El valor predeterminado se declara en el archivo de políticas raíz_perfil/config/cells/nombre_célula/nodes/nombre_nodo/app.policy con permisos definidos en el archivo de políticas de Development Kit que otorga permisos a todo el mundo. El archivo java.policy se encuentra en el directorio inicio_java según la máquina virtual Java (JVM) habilitada para el perfil. Para todas las máquinas virtuales Java, se utiliza el archivo java.policy en todo el sistema. No edite el archivo java.policy en el servidor. Se deniegan los permisos a las aplicaciones que se han declarado en el archivo raíz_perfil/config/cells/nombre_célula/filter.policy. Los permisos declarados en el archivo filter.policy se filtran para las aplicaciones durante la comprobación de permisos.

[IBM i]Utilice el mandato showVariables del objeto AdminTask para recuperar JAVA_HOME para el nodo asociado con el perfil del servidor. Por ejemplo, si el nodo es miNodo:
  1. Especifique QShell.
  2. Vaya al directorio raíz_perfil/bin
  3. Ejecute el mandato siguiente:
    wsadmin -conntype NONE -c '$AdminTask showVariables {-scope Node=myNode -variableName JAVA_HOME}'

Defina los permisos necesarios para una aplicación en el archivo was.policy e incluya el archivo was.policy en el archivo EAR (Application Enterprise Archive) como YOURAPP.ear/META-INF/was.policy, consulte Configuración de los archivos de políticas de la seguridad de Java 2 si desea más detalles.

En los pasos siguientes se describe cómo aplicar la seguridad de Java 2 a nivel de célula para WebSphere Application Server, Network Deployment.

Procedimiento

  1. Pulse Seguridad > Seguridad global. Se muestra el panel Seguridad global.
  2. Seleccione la opción Utilice la seguridad de Java 2 para limitar el acceso de las aplicaciones a los recursos locales.
  3. Pulse Aceptar o Aplicar.
  4. Pulse Guardar para guardar los cambios.
  5. Reinicie el servidor para que los cambios entren en vigor.

Resultados

La seguridad de Java 2 está habilitada y se implementa para los servidores. El permiso de la seguridad de Java 2 se selecciona cuando se llama a una API protegida por la seguridad de Java 2.
Cuándo se debe utilizar la seguridad de Java 2
  1. Habilite la protección en los recursos del sistema, por ejemplo al abrir o escuchar una conexión de socket, al leer o escribir en sistemas de archivos del sistema operativo, al leer o escribir propiedades del sistema de la máquina virtual .
  2. Evite que el código de la aplicación llame a las API destructivas, por ejemplo, llamar al método System.exit detiene el servidor de aplicaciones.
  3. Evite que el código de la aplicación obtenga información privilegiada (contraseñas) o que obtenga privilegios adicionales (obtener credenciales de servidor).

Qué hacer a continuación

Puede aplicar la seguridad de Java 2 en el nivel de servidor para WebSphere Application Server, Network Deployment completando los pasos siguientes:
Nota: Los cambios en los valores de seguridad de Java 2 en el nivel de servidor alteran temporalmente los valores en el nivel de célula.
  1. Pulse Servidores > Servidores de aplicaciones > nombre_servidor.
  2. Bajo Seguridad, pulse Seguridad de servidor.
  3. Seleccione la opción Los valores de seguridad de este servidor alteran temporalmente los valores de célula.
  4. Seleccione la opción Utilice la seguridad de Java 2 para limitar el acceso de las aplicaciones a los recursos locales.
  5. Pulse Aceptar o Aplicar.
  6. Pulse Guardar para guardar los cambios.
  7. Reinicie el servidor para que los cambios entren en vigor.
El gestor de la seguridad de Java 2 se ha mejorado para volcar los permisos de la seguridad de Java 2 otorgados a todas las clases en la pila de llamadas cuando se deniega a la aplicación el acceso a un recurso. Se crea la excepción java.security.AccessControlException. Sin embargo, esta capacidad de rastreo está inhabilitada de manera predeterminada. Puede habilitar esta posibilidad especificando el servicio de rastreo del servidor con la especificación de rastreo com.ibm.ws.security.core.SecurityManager=all=enabled. Cuando se crea la excepción, el vuelco del rastreo proporciona pistas para determinar si a la aplicación le faltan permisos o el código de tiempo de ejecución del producto o las bibliotecas de terceros que se utilizan no se marcan correctamente como con privilegios al acceder a los recursos protegidos con la seguridad de Java 2.

Para más información, consulte la guía para la determinación de problemas de seguridad.


Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_enablejava2sec
File name: tsec_enablejava2sec.html