Protection des ressources système et des API (sécurité Java 2) pour le développement des applications

La sécurité Java™ 2 est un nouveau modèle de programmation qui s'étend rapidement et a une incidence importante sur le développement des applications.

Avant de commencer

La sécurité de Java 2 n'est pas dépendante de la sécurité fondée sur des rôle de Java EE (Java Platform, Enterprise Edition) ; vous pouvez la désactiver ou l'activer indépendamment de la sécurité administrative.

En fait, elle fournit un niveau de protection supplémentaire pour le contrôle des accès associé aux autorisations Java EE fondées sur les rôles. Elle s'applique plus particulièrement à la protection des ressources système et des API. Les administrateurs doivent évaluer les avantages et les risques liés à la désactivation de la sécurité Java 2.

Les recommandations suivantes sont fournies pour faciliter l'activation de la sécurité Java 2 dans un environnement de test ou de production :
  1. Veillez à développer l'application avec le modèle de programmation de la sécurité Java 2. Les développeurs doivent savoir si les API utilisées dans les applications sont protégées par la sécurité Java 2. Il est nécessaire de déclarer les droits d'accès des API utilisées dans le fichier de règles (was.policy). Dans le cas contraire, l'application ne parvient pas à s'exécuter lorsque la sécurité Java 2 security est activée. Un site Web est disponible pour connaître les API de JDK protégées par la sécurité Java 2. Pour consulter ce site Web, reportez-vous à la section relative au modèle de programmation et aux décisions de la rubrique Sécurité : Ressources d'apprentissage.
  2. Assurez-vous que les applications migrées à partir de versions précédentes disposent des droits d'accès nécessaires. Puisque la sécurité Java 2 n'est pas intégralement prise en charge par les versions de WebSphere Application Server précédentes, il est probable que les applications développées avant la version 5 n'utilisent pas le modèle de programmation de la sécurité Java 2. Il n'existe pas de méthodes simples pour déterminer tous les droits d'accès requis pour l'application. Vous pouvez effectuer les opérations suivantes pour déterminer les droits d'accès supplémentaires dont l'application a besoin.
    • Vérification et analyse du code
    • Consultation de la documentation de l'application
    • Test du bac à sable pour les applications d'entreprise migrées avec la sécurité Java 2 dans un environnement de pré-production. Activez la fonction de trace dans le gestionnaire de sécurité Java 2 WebSphere pour déterminer les droits d'accès manquants dans le fichier de règles de l'application. La spécification de trace correspond à : com.ibm.ws.security.core.SecurityManager=all=enabled.
    • Utilisez la propriété système com.ibm.websphere.java2secman.norethrow pour faciliter le débogage. N'utilisez pas cette propriété dans un environnement de production.

      Reportez-vous àSécurité Java 2

[AIX Solaris HP-UX Linux Windows][z/OS]Le jeu de droits par défaut établi pour les applications correspond à celui défini dans la spécification J2EE 1.3. Le jeu par défaut est déclaré dans le fichier de règles racine_serveur_app/profiles/nom_profil/config/cells/nom_cellule/nodes/nom_noeud/app.policy avec les droits définis dans le fichier de règles du composant JDK (JAVA_HOME/jre/lib/security/java.policy) qui accorde des droits à tout le monde. Toutefois, les droits d'accès déclarés dans le fichierprofiles/nom_profil/config/cells/nom_cellule/filter.policy ne sont pas accordés aux applications. Les droits déclarés dans le fichier filter.policy sont supprimés pour les applications lors de la phase de vérification.

[IBM i]Le jeu de droits par défaut établi pour les applications correspond à celui défini dans la spécification J2EE 1.3. Le jeu par défaut est déclaré dans le fichier de règles racine_profil/config/cells/nom_cellule/nodes/nom_noeud/app.policy avec les droits définis dans le fichier de règles du composant JDK qui accorde des droits à tout le monde. Le fichier java.policy se trouve dans le répertoire java_home selon la machine virtuelle Java (JVM) qui est activée pour le profil. Pour toutes les machines virtuelles Java, le fichier java.policy est utilisé à l'échelle du système. N'éditez pas le fichier java.policy sur le serveur. Les droits d'accès déclarés dans le fichier racine_profil/config/cells/nom_cellule/filter.policy sont refusés aux applications. Les droits déclarés dans le fichier filter.policy sont supprimés pour les applications lors de la phase de vérification.

[IBM i]Utilisez la commande showVariables de l'objet AdminTask pour récupérer JAVA_HOME pour le noeud associé au profil du serveur. Par exemple, si le noeud est myNode :
  1. Entrez QShell.
  2. cd to profile_root/bin
  3. Exécutez la commande suivante :
    wsadmin -conntype NONE -c '$AdminTask showVariables {-scope Node=myNode -variableName JAVA_HOME}'

Définissez les droits dont une application a besoin dans un fichier was.policy et incorporez le fichier was.policy dans le fichier EAR sous la forme YOURAPP.ear/META-INF/was.policy. Pour plus d'informations, voir Configuration des fichiers de règles de sécurité Java 2.

Les étapes ci-dessous expliquent comment appliquer la sécurité Java 2 au niveau de la cellule pour WebSphere Application Server, Network Deployment.

Procédure

  1. Cliquez sur Sécurité > Sécurité globale. Le panneau Sécurité globale s'affiche.
  2. Sélectionnez l'option Utiliser la sécurité Java 2 pour limiter l'accès aux applications des ressources locales.
  3. Cliquez sur OK ou sur Valider.
  4. Cliquez sur Sauvegarder pour sauvegarder les modifications.
  5. Redémarrez le serveur pour valider les modifications.

Résultats

La sécurité Java 2 est activée et appliquée pour les serveurs. Les droits d'accès Java 2 sont sélectionnés lorsque une API protégée par la sécurité Java 2 est appelée.
Quand utiliser la sécurité Java 2
  1. Par exemple, activez la protection des ressources système lors de l'ouverture ou de l'écoute d'une connexion socket, de la lecture ou de l'écriture dans les systèmes de fichiers du système d'exploitation, de la lecture ou de l'écriture de propriétés système de la machine virtuelle.
  2. Pour empêcher le code de l'application d'appeler des API destructrices. Par exemple, l'appel de la méthode System.exit arrête le serveur d'applications.
  3. Pour empêcher le code de l'application d'obtenir des informations privilégiées (mots de passe) ou d'acquérir des droits supplémentaires (obtention de justificatifs du serveur).

Que faire ensuite

Vous pouvez appliquer la sécurité Java 2 au niveau du serveur pour WebSphere Application Server, Network Deployment en effectuant les opérations ci-dessous.
Remarque : Les modifications apportées aux paramètres de sécurité Java 2 au niveau du serveur remplacent les paramètres définis au niveau de la cellule.
  1. Cliquez sur Serveurs > Serveurs d'applications > nom_serveur.
  2. Dans le menu Sécurité, cliquez sur Sécurité du serveur.
  3. Sélectionnez l'option Les paramètres de sécurité de ce serveur se substituent aux paramètres de cellule.
  4. Sélectionnez l'option Utiliser la sécurité Java 2 pour limiter l'accès aux applications des ressources locales.
  5. Cliquez sur OK ou sur Valider.
  6. Cliquez sur Sauvegarder pour sauvegarder les modifications.
  7. Redémarrez le serveur pour valider les modifications.
Le gestionnaire de sécurité Java 2 a été optimisé pour effectuer un cliché des droits d'accès Java 2 accordés à toutes les classes sur la pile d'appels lorsqu'une application n'est pas autorisée à accéder à une ressource. L'exception java.security.AccessControlException est créée. Toutefois, la fonction de trace est désactivée par défaut. Vous pouvez l'activer en définissant le service de trace du serveur avec la spécification com.ibm.ws.security.core.SecurityManager=all=enabled. Lorsque l'exception est émise, le cliché de trace fournit des astuces permettant de déterminer si des droits sont manquants dans l'application, si le code de l'environnement d'exécution du produit ou si les bibliothèques tiers utilisées ne sont pas correctement marquées comme privilégiées lors de l'accès aux ressources protégées par sécurité Java 2.

Pour plus d'informations, voir Guide d'identification des incidents liés à la sécurité.


Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_enablejava2sec
Nom du fichier : tsec_enablejava2sec.html