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.

Die folgenden Empfehlungen sollen Ihnen das Aktivieren der Java-2-Sicherheit in einer Test- oder Produktionsumgebung erleichtern:
  1. 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".
  2. 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.

[AIX Solaris HP-UX Linux Windows][z/OS]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.

[IBM i]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]Rufen Sie mit dem Befehl showVariables des Objekts "AdminTask" JAVA_HOME für den Knoten ab, der dem Profil des Servers zugeordnet ist. Wenn der Knoten z. B. myNode heißt, gehen Sie wie folgt vor:
  1. Geben Sie QShell ein.
  2. Rufen Sie mit cd das Verzeichnis Profilstammverzeichnis/bin auf.
  3. 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

  1. Klicken Sie auf Sicherheit > Globale Sicherheit. Die Anzeige "Globale Sicherheit" erscheint.
  2. Wählen Sie die Option Java-2-Sicherheit verwenden, um den Anwendungszugriff auf lokale Ressourcen zu beschränken aus.
  3. Klicken Sie auf OK oder Anwenden.
  4. Klicken Sie auf Speichern, um die Änderungen zu speichern.
  5. Starten Sie den Server erneut, damit die Änderungen wirksam werden.

Ergebnisse

Die Java-2-Sicherheit ist für die Server aktiviert und wird durchgesetzt. Wenn eine durch die Java-2-Sicherheit geschützte API aufgerufen wird, wird eine entsprechende Sicherheitsberechtigung ausgewählt.
Wann sollte die Java-2-Sicherheit verwendet werden?
  1. 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.
  2. Verhindern Sie, dass der Anwendungscode zerstörerische APIs aufruft, z. B. die Methode System.exit, die den Anwendungsserver beendet.
  3. Verhindern Sie, dass Anwendungscode privilegierte Informationen (Kennwörter) abruft oder zusätzliche Berechtigungen erhält (durch Abrufen der Serverberechtigungsnachweise).

Nächste Schritte

Sie können die Java-2-Sicherheit auf Serverebene für WebSphere Application Server Network Deployment wie folgt erzwingen.
Anmerkung: Änderungen an den Einstellungen der Java-2-Sicherheit auf Serverebene überschreiben die Einstellungen auf Zellenebene.
  1. Klicken Sie auf Server > Anwendungsserver > Servername.
  2. Klicken Sie unter "Sicherheit" auf Serversicherheit.
  3. Wählen Sie die Option Sicherheitseinstellungen für diesen Server überschreiben Zelleneinstellungen aus.
  4. Wählen Sie die Option Java-2-Sicherheit verwenden, um den Anwendungszugriff auf lokale Ressourcen zu beschränken aus.
  5. Klicken Sie auf OK oder Anwenden.
  6. Klicken Sie auf Speichern, um die Änderungen zu speichern.
  7. Starten Sie den Server erneut, damit die Änderungen wirksam werden.
Der Java-2-Sicherheitsmanager wird erweitert, sodass er die Berechtigungen der Java-2-Sicherheit, die allen Klassen im Aufruf-Stack erteilt werden, ausgibt, wenn einer Anwendung der Zugriff auf eine Ressource verweigert wird. Die Ausnahme java.security.AccessControlException wird erzeugt. Diese Traceoption ist standardmäßig jedoch inaktiviert. Sie können diese Funktion aktivieren, indem Sie den Traceservice des Servers mit der Tracespezifikation com.ibm.ws.security.core.SecurityManager=all=enabled angeben. Wenn die Ausnahme erstellt wird, können Sie der Traceausgabe Hinweise entnehmen, um festzustellen, ob der Anwendung Berechtigungen fehlen oder ob der Laufzeitcode des Produkts oder Bibliotheken anderer Anbieter, die verwendet werden, nicht ausreichend berechtigt sind, wenn auf Ressourcen zugegriffen wird, die durch die Java-2-Sicherheit geschützt sind.

Ausführliche Informationen hierzu finden Sie in der Veröffentlichung Security Problem Determination Guide.


Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_enablejava2sec
Dateiname:tsec_enablejava2sec.html