Systemressourcen und APIs (Java-2-Sicherheit) für die Entwicklung von Anwendungen schützen
Die Java™-2-Sicherheit ist ein Programmiermodell, das zeitnah und standortunabhängig einsetzbar ist und die Anwendungsentwicklung grundlegend verändert.
Vorbereitende Schritte
Da die Java-2-Sicherheit nicht von der rollenbasierten Java EE-Sicherheit (Java Platform, Enterprise Edition) abhängig ist, können Sie sie unabhängig von der Verwaltungssicherheit inaktivieren oder aktivieren.
Die Sicherheitseinrichtung bietet zusätzlich zur rollenbasierten Java EE-Berechtigung eine Ebene des Schutzes für die Zugriffssteuerung. Sie ist insbesondere auf den Schutz von Systemressourcen und Anwendungsprogrammierschnittstellen (APIs) ausgerichtet. Administratoren müssen die Vorteile gegen die Risiken abwägen, wenn sie die Java-2-Sicherheit inaktivieren möchten.
- Stellen Sie sicher, dass die Anwendung nach dem Programmiermodell der Java-2-Sicherheit entwickelt wurde. Entwickler müssen wissen, ob die APIs, die in den Anwendungen verwendet werden, durch Java-2-Sicherheit geschützt sind. Es ist sehr wichtig, dass die erforderlichen Berechtigungen für die verwendeten APIs in der Richtliniendatei was.policy deklariert werden, da die Anwendung andernfalls nicht ausgeführt werden kann, sobald die Java-2-Sicherheit aktiviert wird. Auf der Website können die Entwickler sich darüber informieren, welche APIs des Development Kit von der Java-2-Sicherheit geschützt werden. Informationen zum Besuchen dieser Website finden Sie im Abschnitt "Programmiermodell und Entscheidungen" des Artikels "Sicherheit: Lernmaterial".
- Stellen Sie sicher, dass migrierte Anwendungen aus früheren Releases die erforderlichen Berechtigungen erhalten. Da die
Java-2-Sicherheit in den früheren Releases
von WebSphere Application Server nicht oder nur
teilweise unterstützt wird, verwenden Anwendungen, die vor dem Release der Version 5 entwickelt wurden, nicht das Programmiermodell der
Java-2-Sicherheit.
Es gibt keine einfache Methode, mit der Sie herausfinden können, ob alle erforderlichen Berechtigungen für die Anwendung verfügbar sind.
Sie können die folgenden Aktivitäten ausführen, um die zusätzlichen Berechtigungen zu ermitteln, die eine Anwendung erfordert:
- Codeprüfung
- Prüfung der Anwendungsdokumentation
- Sandbox-Tests der migrierten Unternehmensanwendungen mit aktivierter Java-2-Sicherheit in einer Vorproduktionsumgebung. Aktivieren Sie im WebSphere Java 2 Security Manager den Trace, um die fehlenden Berechtigungen in der Richtliniendatei der Anwendung zu ermitteln. Die Tracespezifikation ist com.ibm.ws.security.core.SecurityManager=all=enabled.
- Verwenden Sie die Systemeigenschaft "com.ibm.websphere.java2secman.norethrow" für die Unterstützung des Debugging.
Verwenden Sie diese Eigenschaft nicht in Produktionsumgebungen.
Weitere Informationen finden Sie im Artikel Java-2-Sicherheit.
Die Standardberechtigungen für Anwendungen entsprechen den empfohlenen Berechtigungen, wie sie
in der Spezifikation
J2EE 1.3 definiert sind. Die Standardberechtigungen sind in der Richtliniendatei Stammverzeichnis_des_Anwendungsservers/profiles/Profilname/config/cells/Zellenname/nodes/Knotenname/app.policy definiert. Weitere Berechtigungen sind
in der Richtliniendatei des Development Kit (JAVA_HOME/jre/lib/security/java.policy)
definiert, die jedem Benutzer Berechtigungen erteilt. In der Datei profiles/Profilname/config/cells/Zellenname/filter.policy deklarierte
Berechtigungen werden den Anwendungen verweigert.
Die in der Datei filter.policy deklarierten Berechtigungen werden bei der Überprüfung der Berechtigungen
für Anwendungen gefiltert.
Die Standardberechtigungen für Anwendungen entsprechen den empfohlenen Berechtigungen, wie sie
in der Spezifikation
J2EE 1.3 definiert sind. Die Standardberechtigungen sind in der Richtliniendatei
Profilstammverzeichnis/config/cells/Zellenname/nodes/Knotenname/app.policy deklariert.
Weitere Berechtigungen sind in der Richtliniendatei des Development Kit definiert, die jedem Benutzer Berechtigungen erteilen.
Die Datei java.policy befindet sich im Verzeichnis
Java-Ausgangsverzeichnis der
Java Virtual Machine (JVM), die für das Profil aktiviert ist. Die Datei
java.policy wird systemweit für alle Java Virtual Machines verwendet. Editieren Sie nicht die Datei java.policy auf dem Server.
Die in der Datei Profilstammverzeichnis/config/cells/Zellenname/filter.policy deklarierten Berechtigungen werden Anwendungen verweigert.
Die in der Datei filter.policy deklarierten Berechtigungen werden bei der Überprüfung der Berechtigungen
für Anwendungen gefiltert.
![[IBM i]](../images/iseries.gif)
- Geben Sie QShell ein.
- Rufen Sie mit cd das Verzeichnis Profilstammverzeichnis/bin auf.
- Führen Sie den folgenden Befehl aus:
wsadmin -conntype NONE -c '$AdminTask showVariables {-scope Node=myNode -variableName JAVA_HOME}'
Definieren Sie die erforderlichen Berechtigungen für eine Anwendung in einer Datei was.policy und integrieren Sie die Datei was.policy in die EAR-Datei als as IHREANW.ear/META-INF/was.policy. Einzelheiten hierzu finden Sie im Artikel Richtliniendateien für Java-2-Sicherheit konfigurieren.
Die folgenden Schritte beschreiben, wie die Java-2-Sicherheit auf der Zellenebene für WebSphere Application Server Network Deployment umgesetzt wird.
Vorgehensweise
- Klicken Sie auf Sicherheit > Globale Sicherheit. Die Anzeige "Globale Sicherheit" erscheint.
- Wählen Sie die Option Java-2-Sicherheit verwenden, um den Anwendungszugriff auf lokale Ressourcen zu beschränken aus.
- Klicken Sie auf OK oder Anwenden.
- Klicken Sie auf Speichern, um die Änderungen zu speichern.
- Starten Sie den Server erneut, damit die Änderungen wirksam werden.
Ergebnisse
- Aktivieren Sie den Zugriffsschutz für Systemressourcen beispielsweise beim Öffnen einer Socketverbindung, beim Warten auf Anforderungen an einer Socketverbindung, beim Lese- und Schreibzugriffen auf Dateisysteme des Betriebssystems oder beim Lesen oder Schreiben von JVM-Systemeigenschaften.
- Verhindern Sie, dass der Anwendungscode zerstörerische APIs aufruft, z. B. die Methode System.exit, die den Anwendungsserver beendet.
- Verhindern Sie, dass Anwendungscode privilegierte Informationen (Kennwörter) abruft oder zusätzliche Berechtigungen erhält (durch Abrufen der Serverberechtigungsnachweise).
Nächste Schritte
- Klicken Sie auf Server > Anwendungsserver > Servername.
- Klicken Sie unter "Sicherheit" auf Serversicherheit.
- Wählen Sie die Option Sicherheitseinstellungen für diesen Server überschreiben Zelleneinstellungen aus.
- Wählen Sie die Option Java-2-Sicherheit verwenden, um den Anwendungszugriff auf lokale Ressourcen zu beschränken aus.
- Klicken Sie auf OK oder Anwenden.
- Klicken Sie auf Speichern, um die Änderungen zu speichern.
- Starten Sie den Server erneut, damit die Änderungen wirksam werden.
Ausführliche Informationen hierzu finden Sie in der Veröffentlichung Security Problem Determination Guide.