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.
- 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.
- 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
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.
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]](../images/iseries.gif)
- Entrez QShell.
- cd to profile_root/bin
- 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
- Cliquez sur Sécurité > Sécurité globale. Le panneau Sécurité globale s'affiche.
- Sélectionnez l'option Utiliser la sécurité Java 2 pour limiter l'accès aux applications des ressources locales.
- Cliquez sur OK ou sur Valider.
- Cliquez sur Sauvegarder pour sauvegarder les modifications.
- Redémarrez le serveur pour valider les modifications.
Résultats
- 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.
- 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.
- 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
- Cliquez sur Serveurs > Serveurs d'applications > nom_serveur.
- Dans le menu Sécurité, cliquez sur Sécurité du serveur.
- Sélectionnez l'option Les paramètres de sécurité de ce serveur se substituent aux paramètres de cellule.
- Sélectionnez l'option Utiliser la sécurité Java 2 pour limiter l'accès aux applications des ressources locales.
- Cliquez sur OK ou sur Valider.
- Cliquez sur Sauvegarder pour sauvegarder les modifications.
- Redémarrez le serveur pour valider les modifications.
Pour plus d'informations, voir Guide d'identification des incidents liés à la sécurité.