IDPA: Sicherheitslücken bei der Apache Tomcat-Standardinstallation
Summary: Der Artikel bietet eine Problemumgehung für "Sicherheitslücken bei der Apache Tomcat-Standardinstallation und/oder der installierten Begrüßungsseite", die in ACM erkannt wurden.
Instructions
Die folgende Sicherheitslücke kann im ACM-Teil von IDPA für Port 8543 erkannt werden:
| Titel der Sicherheitslücke | Komponenten | Serviceport | Schweregrad der Sicherheitslücke | Beschreibung der Sicherheitslücke | Schutz vor Sicherheitslücken | Lösung für Sicherheitslücken |
|---|---|---|---|---|---|---|
| Apache Tomcat Standardinstallation oder Begrüßungsseite installiert | ACM | 8543 | 5 | Die Tomcat-Standardinstallation oder die Willkommensseite wird auf diesem Server installiert. Dies weist in der Regel auf einen neu installierten Server hin, der noch nicht ordnungsgemäß konfiguriert wurde und dem möglicherweise nicht bekannt ist. Oft wird Tomcat zusammen mit anderen Anwendungen installiert, sodass der Nutzer möglicherweise nicht weiß, dass der Webserver ausgeführt wird. Diese Server werden selten aktualisiert und selten überwacht, was Hackern ein bequemes Ziel bietet, das wahrscheinlich keinen Alarm auslöst. |
Ausführen des HTTPS-Service * Produkt Tomcat existiert – Apache Tomcat 9.0.45. HTTP GET Anfrage an https://<ACM IP>:8543/Der HTTP-Antwortcode war erwartet 200. <h1>Apache Tomcat/9.0.45</h1> 27: </div> 28: <div id="upper" class="curved container"> 29: <div id="congrats" class="curved container"> 30: ... this, you have successfully installed Tomcat. Congratulations!</h2> |
Ändern Sie die Standardseite oder beenden und deaktivieren Sie den Tomcat-Server vollständig. Wenn dieser Server die erforderlichen Funktionen bereitstellen muss, sollte die Standardseite durch relevanten Inhalt ersetzt werden. Andernfalls sollte dieser Server gemäß dem Sicherheitsprinzip der minimalen Komplexität aus dem Netzwerk entfernt werden. |
Führen Sie die folgenden Schritte aus, um das Problem zu umgehen:
- Melden Sie sich als Root beim ACM an
- Ändern Sie das Arbeitsverzeichnis in
/usr/local/dataprotection/apache-tomcat-9.0.*/webapps/ROOT.
acm:~ # cd /usr/local/dataprotection/apache-tomcat-9.0.*/webapps/ROOT
In diesem Beispiel lautet der Apache Tomcat-Pfad
/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT
Dies kann je nach IDPA-Version, an der gearbeitet wird, geändert werden.
- Vergewissern Sie sich , dass das
index.jspDie Datei ist im Verzeichnis vorhanden:
acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT # ls -la total 188 drwxr-x--- 3 idpauser idpauser 4096 Nov 12 00:29 . drwxr-x--- 6 idpauser idpauser 4096 Dec 6 17:00 .. -rw-r----- 1 idpauser idpauser 12243 Feb 4 2022 1 -rw-r----- 1 idpauser idpauser 6898 Mar 30 2021 RELEASE-NOTES.txt drwxr-x--- 2 idpauser idpauser 4096 May 7 2021 WEB-INF -rw-r----- 1 idpauser idpauser 27235 Mar 30 2021 asf-logo-wide.svg -rw-r----- 1 idpauser idpauser 713 Mar 30 2021 bg-button.png -rw-r----- 1 idpauser idpauser 1918 Mar 30 2021 bg-middle.png -rw-r----- 1 idpauser idpauser 1401 Mar 30 2021 bg-nav.png -rw-r----- 1 idpauser idpauser 3103 Mar 30 2021 bg-upper.png -rw-r----- 1 idpauser idpauser 21630 Mar 30 2021 favicon.ico -rw-r----- 1 idpauser idpauser 12243 Feb 4 2022 index.jsp -rw-r----- 1 idpauser idpauser 5542 Mar 30 2021 tomcat.css -rw-r----- 1 idpauser idpauser 67795 Mar 30 2021 tomcat.svg acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT #
- Erstellen eines Backups der vorhandenen
index.jspdurch Kopieren nachindex.jsp.defaultfestzulegen:
acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT # cp -p index.jsp index.jsp.default
curl -kv https://localhost:8543. Diese Ausgabe sollte in Schritt 8 verwendet werden, um die Ausgabe nach der Problemumgehung zu vergleichen.
- Erstellen Sie eine neue Datei mit dem Namen
index.jspund ersetzen Sie den Inhalt durch Folgendes:
<html>
<body>
<%
response.sendRedirect("../dataprotection/");
%>
</body>
</html>
Hier ist ein einfaches Verfahren zum Erstellen und Bearbeiten der index.jsp wird:
- Entfernen der vorhandenen
index.jsp
rm index.jsp
- Erstellen Sie eine neue
index.jspunter Verwendung des VI-Editors.
vi index.jsp
- Drücken Sie die Taste
i, um in den Einfügemodus zu wechseln. Dies ermöglicht die Bearbeitung der Datei. - Kopieren Sie den obigen Text und fügen Sie ihn in den vi-Editor ein.
- Beenden Sie den Einfügemodus durch Drücken von
Esc - Speichern Sie die Änderungen und beenden Sie vi, indem Sie Folgendes eingeben:
:wq!und drücken Sie die Eingabetaste.
- Überprüfen Sie den Inhalt der
index.jsp-Datei mit den folgenden Befehlen:
acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT # ls -la
total 192
drwxr-x--- 3 idpauser idpauser 4096 Dec 6 17:05 .
drwxr-x--- 6 idpauser idpauser 4096 Dec 6 17:00 ..
-rw-r----- 1 idpauser idpauser 12243 Feb 4 2022 1
-rw-r----- 1 idpauser idpauser 6898 Mar 30 2021 RELEASE-NOTES.txt
drwxr-x--- 2 idpauser idpauser 4096 May 7 2021 WEB-INF
-rw-r----- 1 idpauser idpauser 27235 Mar 30 2021 asf-logo-wide.svg
-rw-r----- 1 idpauser idpauser 713 Mar 30 2021 bg-button.png
-rw-r----- 1 idpauser idpauser 1918 Mar 30 2021 bg-middle.png
-rw-r----- 1 idpauser idpauser 1401 Mar 30 2021 bg-nav.png
-rw-r----- 1 idpauser idpauser 3103 Mar 30 2021 bg-upper.png
-rw-r----- 1 idpauser idpauser 21630 Mar 30 2021 favicon.ico
-rw-r----- 1 idpauser idpauser 81 Feb 10 05:27 index.jsp
-rw-r----- 1 idpauser idpauser 12243 Feb 4 2022 index.jsp.default
-rw-r----- 1 idpauser idpauser 5542 Mar 30 2021 tomcat.css
-rw-r----- 1 idpauser idpauser 67795 Mar 30 2021 tomcat.svg
acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT # cat index.jsp
<html>
<body>
<%
response.sendRedirect("../dataprotection/");
%>
</body>
</html>
acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT #
- Öffnen Sie einen Webbrowser , greifen Sie auf die ACM-Webseite zu und überprüfen Sie, ob sie ordnungsgemäß funktioniert. Beim Öffnen der ACM-Webseite:
https://<ACM IP Adddress>:8543/
https://<ACM IP Adddress>:8543/dataprotection/#/login
- Validieren Sie die Änderungen in der ACM-Befehlszeile:
curl -kv https://localhost:8543 wäre in etwa so:
curl -kv https://<ACM IP address>:8543 Gibt das gleiche Ergebnis zurück:
acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT # curl -kv https://localhost:8543 * Rebuilt URL to: https://localhost:8543/ * Trying 12x.0.0.1... * TCP_NODELAY set * Connected to localhost (12x.0.0.1) port 8543 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * TLSv1.2 (OUT), TLS header, Certificate Status (22): * TLSv1.2 (OUT), TLS handshake, Client hello (1): * TLSv1.2 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Client hello (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS change cipher, Client hello (1): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-SHA384 * ALPN, server did not agree to a protocol * Server certificate: * subject: C=US; ST=California; L=Irvine; O=EMC; OU=Avamar; CN=localhost.localdom * start date: Feb 4 12:27:16 2022 GMT * expire date: Feb 2 12:27:16 2032 GMT * issuer: C=US; ST=California; L=Irvine; O=EMC; OU=Avamar; CN=localhost.localdom * SSL certificate verify result: self signed certificate (18), continuing anyway. > GET / HTTP/1.1 > Host: localhost:8543 > User-Agent: curl/7.60.0 > Accept: */* > < HTTP/1.1 200 < Content-Type: text/html;charset=UTF-8 < Transfer-Encoding: chunked < Date: Fri, 10 Feb 2023 05:39:29 GMT < Connection: close < Server: DataDomain < <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Apache Tomcat/9.0.45</title> <link href="favicon.ico" rel="icon" type="image/x-icon" /> <link href="tomcat.css" rel="stylesheet" type="text/css" /> <script>window.location = window.location.origin + "/dataprotection/"; </script></head> <body> <div id="wrapper"> <div id="navigation" class="curved container"> <span id="nav-home"><a href="https://tomcat.apache.org/">Home</a></span> <span id="nav-hosts"><a href="/docs/">Documentation</a></span> <span id="nav-config"><a href="/docs/config/">Configuration</a></span> <span id="nav-examples"><a href="/examples/">Examples</a></span> <span id="nav-wiki"><a href="https://wiki.apache.org/tomcat/FrontPage">Wiki</a></span> <span id="nav-lists"><a href="https://tomcat.apache.org/lists.html">Mailing Lists</a></span> <span id="nav-help"><a href="https://tomcat.apache.org/findhelp.html">Find Help</a></span> <br class="separator" /> </div> <div id="asf-box"> <h1>Apache Tomcat/9.0.45</h1> </div> <div id="upper" class="curved container"> <div id="congrats" class="curved container"> <h2>If you're seeing this, you've successfully installed Tomcat. Congratulations!</h2> </div> ... skipped </body> </html>
Wenn der Workaround implementiert wurde, sollte die Ausgabe wie folgt aussehen:
acm:/usr/local/dataprotection/apache-tomcat-9.0.45/webapps/ROOT # curl -kv https://localhost:8543 * Rebuilt URL to: https://localhost:8543/ * Trying 12x.0.0.1... * TCP_NODELAY set * Connected to localhost (12x.0.0.1) port 8543 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * TLSv1.2 (OUT), TLS header, Certificate Status (22): * TLSv1.2 (OUT), TLS handshake, Client hello (1): * TLSv1.2 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Client hello (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS change cipher, Client hello (1): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-SHA384 * ALPN, server did not agree to a protocol * Server certificate: * subject: C=US; ST=California; L=Irvine; O=EMC; OU=Avamar; CN=localhost.localdom * start date: Feb 4 12:27:16 2022 GMT * expire date: Feb 2 12:27:16 2032 GMT * issuer: C=US; ST=California; L=Irvine; O=EMC; OU=Avamar; CN=localhost.localdom * SSL certificate verify result: self signed certificate (18), continuing anyway. > GET / HTTP/1.1 > Host: localhost:8543 > User-Agent: curl/7.60.0 > Accept: */* > < HTTP/1.1 302 < Set-Cookie: JSESSIONID=3396A12A1A458BBB4DDCB636A72B66EE; Path=/; Secure; HttpOnly < Location: ../dataprotection/ < Content-Type: text/html;charset=ISO-8859-1 < Content-Length: 0 < Date: Fri, 10 Feb 2023 05:42:58 GMT < Connection: close < Server: DataDomain < * Closing connection 0 * TLSv1.2 (OUT), TLS alert, Client hello (1):
Additional Information
Wenn auf der ACM-Webseite nach dem Befolgen des obigen Verfahrens "HTTP Status 500 - Internal Server Error" angezeigt wird, z. B.:

Melden Sie sich mit SSH als Root-Nutzer beim ACM an und starten Sie dann den ACM-Service mit den folgenden Befehlen neu:
service dataprotection_webapp stop service dataprotection_webapp start
Laden Sie dann die ACM-Webseite erneut.
Wenden Sie sich bei Bedarf an den Dell Support , um weitere Unterstützung zu erhalten.