Schutz vor Host-Header-Injection-Attacken

Verhindern Sie diese Sicherheitslücke, indem Sie Eigenschaften für Zulassungslistenserver in den Archiven von Decision Center und Rule Execution Server implementieren.

Informationen zu dieser Task

Wenn Entwickler eine URI für Links in Webanwendungen erstellen, verwenden sie in der Regel den HTTP-Host-Header, der in der von der Clientseite gesendeten HTTP-Anforderung vorhandenen ist. Ein Angreifer kann diese Vorgehensweise nutzen, um einen falschen Header zu senden, der einen Domänennamen enthält. Diese Methode kann verwendet werden, um zum Beispiel den Web-Cache oder E-Mails zum Zurücksetzen des Kennworts zu beschädigen.

Gehen Sie wie folgt vor, um einen Host-Header-Injection-Angriff auf Decision Center und Rule Execution Serverzu verhindern.

Prozedur

  1. Konfigurieren Sie die Parameter für Decision Center:
    • Wechseln Sie in das Verzeichnis <InstallDir>/decisioncenter/applicationservers/ und suchen Sie das Decision Center -Archiv für Ihren Anwendungsserver:

      • Entpacken Sie in der Java™-SE-Implementierung das Archiv decisioncenter.war und öffnen Sie die Datei WEB-INF/web.xml.
      • Dekomprimieren Sie in der Implementierung von Java™ EE das Archiv jrules-decisioncenter-<your_platform>.ear . Suchen Sie die Datei WEB-INF/web.xml in der dekomprimierten Datei decisioncenter.war.
      Konfigurieren Sie in der Datei web.xml den Parameter com.ibm.rules.decisioncenter.TRUSTED_HOSTS_CONFIGURATION:
      <context-param>
        <description>
            Host HTTP header protection configuration.
            When enabled, please provide a list of trusted hosts (separated by semicolons).
            Each host must be a valid regular expression.
            Example: enableHostsAllowlist=true,hosts=host1.com;*.company.com;localhost:*
            This parameter is also used for the logout redirect parameter
            Although it is not recommended, you can add the scheme here like https://ibm.com or a wildcard *ibm.com 
        </description>
        <param-name>com.ibm.rules.decisioncenter.TRUSTED_HOSTS_CONFIGURATION</param-name>
        <param-value>enableHostsAllowlist=false,hosts=ibm.com</param-value>
      </context-param>
      Parameter Beschreibung
      com.ibm.rules.decisioncenter.TRUSTED_HOSTS_CONFIGURATION

      Eine Liste der Host-Server, denen als Referrer vertraut wird. Sie können mehrere Hosts jeweils getrennt durch ein Semikolon (;) eingeben.

      Dieser Eigenschaftswert ist ein regulärer Ausdruck. "*" ist am Ende oder am Anfang erforderlich, um beliebige Zeichen anzugeben.

      Der Standardwert ist false.

  2. Konfigurieren Sie einen Parameter für Rule Execution Server:

    Wechseln Sie zum Verzeichnis <InstallDir>/executionserver/applicationservers/ und suchen Sie das Managementarchiv von Rule Execution Server für Ihren Anwendungsserver:

    • Entpacken Sie in der Java™-SE-Implementierung das Archiv res.war und öffnen Sie die Datei WEB-INF/web.xml.
    • Dekomprimieren Sie in der Implementierung von Java™ EE das Archiv jrules-res-management-<your_platform>.ear und suchen Sie dort die Datei res.war . Suchen Sie dann in der entpackten Datei res.war die Datei WEB-INF/web.xml.
    Suchen Sie in der Datei web.xml den Parameter ilog.rules.res.TRUSTED_HOSTS_CONFIGURATION:
    <context-param>
       <description>
          Host HTTP header protection configuration.
          When enabled, please provide a list of trusted hosts (separated by semicolons).
          Each host must be a valid regular expression.
          Example: enableHostsAllowlist=true,hosts=host1.com;.*\.company\.com;myserver
       </description>
       <param-name>ilog.rules.res.TRUSTED_HOSTS_CONFIGURATION</param-name>
       <param-value>enableHostsAllowlist=false,hosts=</param-value>
    </context-param>
    Parameter Beschreibung
    ilog.rules.res.TRUSTED_HOSTS_CONFIGURATION

    Wenn enableHostsAllowlist auf truegesetzt ist, ist der Schutz gegen die Host-Header-Injektion aktiviert. Geben Sie in diesem Fall eine Liste der vertrauenswürcigen Host-Server ein. Sie können mehrere Hosts jeweils getrennt durch ein Semikolon (;) eingeben.

    Der Standardwert ist false.

  3. Packen Sie die Archive Decision Center und Rule Execution Server erneut und implementieren Sie sie erneut.