Score:0

Tomcat 9 ปรับใช้โดยใช้นักเทียบท่าแบบสุ่มถึง 200% CPU โดยไม่มีเว็บแอพใดๆ

ธง in

สวัสดี มี Tomcat 9 ทำงานในเครื่อง AWS โดยใช้ไฟล์เขียนนักเทียบท่าต่อไปนี้:

รุ่น: '3'
บริการ:
  สตอร์มแคท:
    รูป: ทอมแคท:9
    ชื่อคอนเทนเนอร์: fstomcat
    พอร์ต:
      - 443:443
    ปริมาณ:
      - /opt/tomcat/webapps:/usr/local/tomcat/webapps
      - /opt/tomcat/conf:/usr/local/tomcat/conf
      - /opt/tomcat/logs:/usr/local/tomcat/logs

ไม่มีเว็บแอพในขณะนี้ (เว็บแอพว่างเปล่า) EC2 นี้มีเฉพาะ Tomcat ไม่มี Apache ไม่มีเว็บเซิร์ฟเวอร์หรือเซิร์ฟเวอร์ฐานข้อมูลอื่น อย่างไรก็ตาม AWS รายงานการใช้ CPU เพิ่มขึ้นแบบสุ่ม เมื่อฉันเข้าไปในคอนเทนเนอร์จาวาอยู่ที่ CPU 199% สถิติล่าสุดเกิดขึ้นเมื่อ 2021-06-20 เวลา 13:30 น. และบันทึกเดียวที่ฉันมีสำหรับวันนั้นคือ:

คาทาลิน่า:

20-มิ.ย.-2021 09:45:04.595 INFO [https-openssl-nio-443-exec-6] org.apache.coyote.http11.Http11Processor.service เกิดข้อผิดพลาดในการแยกวิเคราะห์ส่วนหัวคำขอ HTTP
 หมายเหตุ: ข้อผิดพลาดในการแยกวิเคราะห์คำขอ HTTP เพิ่มเติมจะถูกบันทึกที่ระดับ DEBUG
        java.lang.IllegalArgumentException: พบอักขระที่ไม่ถูกต้องในเป้าหมายคำขอ [/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_$
                ที่ org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:490)
                ที่ org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:261)
                ที่ org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
                ที่ org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
                ที่ org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
                ที่ org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
                ที่ java.base/java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
                ที่ java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
                ที่ org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
                ที่ java.base/java.lang.Thread.run(Thread.java:834)

เข้าไป:

192.241.220.30 - - [20/มิ.ย./2564:00:22:53 +0000] "-" 400 -
74.82.47.4 - - [20/มิ.ย./2564:00:31:59 +0000] "-" 400 -
74.82.47.4 - - [20/มิ.ย./2564:00:32:03 +0000] "-" 400 -
74.82.47.4 - - [20/มิ.ย./2564:00:32:03 +0000] "-" 400 -
74.82.47.4 - - [20/มิ.ย./2564:00:32:03 +0000] "-" 400 -
74.82.47.4 - - [20/มิ.ย./2564:00:32:04 +0000] "-" 400 -
74.82.47.4 - - [20/มิ.ย./2564:00:32:06 +0000] "-" 400 -
74.82.47.4 - - [20/มิ.ย./2564:00:32:08 +0000] "-" 400 -
74.82.47.4 - - [20/มิ.ย./2564:00:33:03 +0000] "-" 400 -
162.216.17.178 - - [20/มิ.ย./2564:00:41:24 +0000] "-" 400 -
128.1.248.42 - - [20/มิ.ย./2021:01:17:50 +0000] "GET / HTTP/1.1" 404 682
192.241.215.206 - - [20/มิ.ย./2021:01:56:40 +0000] "GET /actuator/health HTTP/1.1" 404 682
45.33.79.16 - - [20/มิ.ย./2021:02:19:19 +0000] "-" 400 -
209.17.97.98 - - [20/มิ.ย./2021:02:57:39 +0000] "-" 400 -
162.216.17.71 - - [20/มิ.ย./2021:04:19:13 +0000] "-" 400 -
45.83.67.150 - - [20/มิ.ย./2564:04:58:00 +0000] "-" 400 -
66.240.205.34 - - [20/มิ.ย./2564:06:08:25 +0000] "-" 400 -
45.33.79.16 - - [20/มิ.ย./2564:06:18:56 +0000] "-" 400 -
162.62.123.46 - - [20/มิ.ย./2021:08:04:09 +0000] "GET / HTTP/1.0" 404 682
192.241.218.53 - - [20/มิ.ย./2021:08:12:25 +0000] "GET /owa/auth/logon.aspx?url=https%3a%2f%2f1%2fecp%2f HTTP/1.1" 404 682
162.216.17.71 - - [20/มิ.ย./2021:08:18:54 +0000] "-" 400 -
45.146.165.123 - - [20/มิ.ย./2021:09:44:57 +0000] "POST /Autodiscover/Autodiscover.xml HTTP/1.1" 404 682
45.146.165.123 - - [20/มิ.ย./2021:09:44:59 +0000] "GET /_ignition/execute-solution HTTP/1.1" 404 682
45.146.165.123 - - [20/มิ.ย./2021:09:45:00 +0000] "GET / HTTP/1.1" 404 682
45.146.165.123 - - [20/มิ.ย./2021:09:45:02 +0000] "POST /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1" 404 682
45.146.165.123 - - [20/มิ.ย./2021:09:45:04 +0000] "GET null HTTP/1.1" 400 2273
45.146.165.123 - - [20/มิ.ย./2021:09:45:06 +0000] "GET /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1" 404 682
45.146.165.123 - - [20/มิ.ย./2021:09:45:06 +0000] "GET /?XDEBUG_SESSION_START=phpstorm HTTP/1.1" 404 682
45.146.165.123 - - [20/มิ.ย./2021:09:45:07 +0000] "GET /wp-content/plugins/wp-file-manager/readme.txt HTTP/1.1" 404 682
45.146.165.123 - - [20/มิ.ย./2021:09:45:08 +0000] "POST /mifs/.;/services/LogService HTTP/1.1" 404 682
45.146.165.123 - - [20/มิ.ย./2021:09:45:09 +0000] "GET /console/ HTTP/1.1" 404 682
45.33.79.16 - - [20/มิ.ย./2564:10:19:25 +0000] "-" 400 -
193.118.53.210 - - [20/มิ.ย./2021:10:20:10 +0000] "GET / HTTP/1.1" 404 682
162.216.17.71 - - [20/มิ.ย./2564:12:19:00 +0000] "-" 400 -
138.68.175.207 - - [20/มิ.ย./2564:13:28:31 +0000] "-" 400 -
138.68.175.207 - - [20/มิ.ย./2564:13:28:35 +0000] "-" 400 -
138.68.175.207 - - [20/มิ.ย./2564:13:28:35 +0000] "-" 400 -
138.68.175.207 - - [20/มิ.ย./2564:13:28:35 +0000] "-" 400 -
138.68.175.207 - - [20/มิ.ย./2564:13:28:35 +0000] "-" 400 -
165.22.86.42 - - [20/มิ.ย./2564:13:56:50 +0000] "-" 400 -
162.142.125.39 - - [20/มิ.ย./2564:14:01:08 +0000] "-" 400 -
162.142.125.39 - - [20/มิ.ย./2021:14:01:10 +0000] "GET / HTTP/1.1" 404 682
162.142.125.39 - - [20/มิ.ย./2021:14:01:10 +0000] "GET / HTTP/1.1" 404 682
60.217.75.69 - - [20/มิ.ย./2021:14:22:42 +0000] "GET / HTTP/1.1" 404 682
172.105.172.151 - - [20/มิ.ย./2021:14:35:22 +0000] "GET /owa/ HTTP/1.1" 404 682
192.241.214.26 - - [20/มิ.ย./2021:15:04:40 +0000] "GET / HTTP/1.1" 404 682
34.90.100.245 - - [20/มิ.ย./2021:15:18:59 +0000] "GET /.env HTTP/1.1" 404 682
34.90.100.245 - - [20/มิ.ย./2021:15:19:00 +0000] "POST / HTTP/1.1" 404 682
128.14.134.170 - - [20/มิ.ย./2021:16:01:33 +0000] "GET / HTTP/1.1" 404 682
97.107.132.27 - - [20/มิ.ย./2564:16:19:28 +0000] "-" 400 -
173.255.234.116 - - [20/มิ.ย./2564:16:30:04 +0000] "-" 400 -
23.90.160.130 - - [20/มิ.ย./2021:16:37:09 +0000] "GET / HTTP/1.1" 404 682
23.95.191.195 - - [20/มิ.ย./2021:16:50:06 +0000] "POST /GponForm/diag_Form?style/ HTTP/1.1" 404 682
162.216.17.71 - - [20/มิ.ย./2564:18:18:33 +0000] "-" 400 -
193.118.53.210 - - [20/มิ.ย./2021:18:29:39 +0000] "GET / HTTP/1.1" 404 682
51.159.23.43 - - [20/มิ.ย./2021:18:44:34 +0000] "GET / HTTP/1.1" 404 682
45.79.168.6 - - [20/มิ.ย./2564:20:19:38 +0000] "-" 400 -
192.241.220.87 - - [20/มิ.ย./2564:20:48:59 +0000] "-" 400 -
192.241.220.87 - - [20/มิ.ย./2564:20:48:59 +0000] "-" 400 -
192.241.220.87 - - [20/มิ.ย./2564:20:48:59 +0000] "-" 400 -
192.241.220.87 - - [20/มิ.ย./2564:20:48:59 +0000] "-" 400 -
192.241.220.87 - - [20/มิ.ย./2564:20:48:59 +0000] "-" 400 -
192.241.220.87 - - [20/มิ.ย./2564:20:48:59 +0000] "-" 400 -
192.241.220.87 - - [20/มิ.ย./2564:20:49:00 +0000] "-" 400 -
192.241.220.87 - - [20/มิ.ย./2564:20:49:00 +0000] "-" 400 -
192.241.212.36 - - [20/มิ.ย./2564:21:03:09 +0000] "-" 400 -
128.14.209.162 - - [20/มิ.ย./2021:21:36:20 +0000] "GET / HTTP/1.1" 404 682
192.241.218.97 - - [20/มิ.ย./2021:22:11:38 +0000] "GET /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application HTTP/1.1" 404 682
45.79.144.15 - - [20/มิ.ย./2564:22:19:16 +0000] "-" 400 -
162.142.125.40 - - [20/มิ.ย./2564:23:08:05 +0000] "-" 400 -
162.142.125.40 - - [20/มิ.ย./2021:23:08:07 +0000] "GET / HTTP/1.1" 404 682
162.142.125.40 - - [20/มิ.ย./2021:23:08:07 +0000] "GET / HTTP/1.1" 404 682
45.63.12.50 - - [20/มิ.ย./2564:23:49:07 +0000] "-" 400 -

syslog:

20 มิ.ย. 13:00:24 น. ip-172-30-1-110 systemd-timesyncd[21286]: มีการเปลี่ยนแปลงการกำหนดค่าเครือข่าย กำลังพยายามสร้างการเชื่อมต่อ
20 มิ.ย. 13:00:24 น. ip-172-30-1-110 systemd-networkd[13629]: ens5: กำหนดค่าแล้ว
20 มิ.ย. 13:00:24 ip-172-30-1-110 systemd-timesyncd[21286]: ซิงโครไนซ์กับเซิร์ฟเวอร์เวลา 91.189.89.198:123 (ntp.ubuntu.com)
20 มิ.ย. 13:17:01 ip-172-30-1-110 CRON[21362]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
20 มิ.ย. 13:30:24 ip-172-30-1-110 systemd-networkd[13629]: ens5: กำหนดค่าแล้ว
20 มิ.ย. 13:30:24 น. ip-172-30-1-110 systemd-timesyncd[21286]: มีการเปลี่ยนแปลงการกำหนดค่าเครือข่าย กำลังพยายามสร้างการเชื่อมต่อ
20 มิ.ย. 13:30:24 ip-172-30-1-110 systemd-timesyncd[21286]: ซิงโครไนซ์กับเซิร์ฟเวอร์เวลา 91.189.89.198:123 (ntp.ubuntu.com)

นี่คือวิธีที่เซิร์ฟเวอร์เริ่มต้น:

23-มิ.ย.-2021 17:37:03.904 คำเตือน [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin Match [Server/Service/Connector] ไม่สามารถตั้งค่าคุณสมบัติ [maxSpareThreads] เป็น [75]
23-มิ.ย.-2021 17:37:03.999 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log ชื่อเวอร์ชันเซิร์ฟเวอร์: Apache Tomcat/9.0.41
23 มิถุนายน 2021 17:37:04.000 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log เซิร์ฟเวอร์ที่สร้างขึ้น: 3 ธันวาคม 2020 11:43:00 UTC
23-มิ.ย.-2021 17:37:04.001 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log หมายเลขเวอร์ชันของเซิร์ฟเวอร์: 9.0.41.0
23 มิถุนายน 2021 17:37:04.003 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log ชื่อระบบปฏิบัติการ: Linux
23 มิถุนายน 2021 17:37:04.003 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log เวอร์ชันระบบปฏิบัติการ: 5.4.0-1029-aws
23-มิ.ย.-2021 17:37:04.004 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log สถาปัตยกรรม: amd64
23 มิถุนายน 2021 17:37:04.004 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/local/openjdk-11
23 มิถุนายน 2021 17:37:04.005 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log เวอร์ชัน JVM: 11.0.10+9
23 มิถุนายน 2021 17:37:04.005 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log ผู้ขาย JVM: Oracle Corporation
23 มิถุนายน 2021 17:37:04.006 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
23 มิถุนายน 2021 17:37:04.006 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
23-มิ.ย.-2021 17:37:04.007 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log อาร์กิวเมนต์บรรทัดคำสั่ง: --add-opens=java.base/java.lang=ALL-UNNAMED
23 มิถุนายน 2021 17:37:04.008 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log อาร์กิวเมนต์บรรทัดคำสั่ง: --add-opens=java.base/java.io=ALL-UNNAMED
23-มิ.ย.-2021 17:37:04.008 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log อาร์กิวเมนต์บรรทัดคำสั่ง: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
23 มิถุนายน 2021 17:37:04.008 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log อาร์กิวเมนต์บรรทัดคำสั่ง: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging .คุณสมบัติ
23 มิถุนายน 2021 17:37:04.009 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log อาร์กิวเมนต์บรรทัดคำสั่ง: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
23 มิถุนายน 2021 17:37:04.009 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log อาร์กิวเมนต์บรรทัดคำสั่ง: -Djdk.tls.ephemeralDHKeySize=2048
23 มิถุนายน 2021 17:37:04.010 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log อาร์กิวเมนต์บรรทัดคำสั่ง: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
23 มิถุนายน 2021 17:37:04.016 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log อาร์กิวเมนต์บรรทัดคำสั่ง: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
23 มิถุนายน 2021 17:37:04.017 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log อาร์กิวเมนต์บรรทัดคำสั่ง: -Dignore.endorsed.dirs=
23 มิถุนายน 2021 17:37:04.018 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log อาร์กิวเมนต์บรรทัดคำสั่ง: -Dcatalina.base=/usr/local/tomcat
23 มิถุนายน 2021 17:37:04.018 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log อาร์กิวเมนต์บรรทัดคำสั่ง: -Dcatalina.home=/usr/local/tomcat
23 มิถุนายน 2021 17:37:04.018 INFO [หลัก] org.apache.catalina.startup.VersionLoggerListener.log อาร์กิวเมนต์บรรทัดคำสั่ง: -Djava.io.tmpdir=/usr/local/tomcat/temp
23-มิ.ย.-2021 17:37:04.025 INFO [หลัก] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent โหลดไลบรารี Apache Tomcat Native [1.2.25] โดยใช้เวอร์ชัน APR [1.6.5]
23-มิ.ย.-2021 17:37:04.025 INFO [หลัก] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent ความสามารถของ APR: IPv6 [จริง], sendfile [จริง], ยอมรับตัวกรอง [เท็จ] สุ่ม [จริง]
23-มิ.ย.-2021 17:37:04.026 INFO [หลัก] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent การกำหนดค่า APR/OpenSSL: useAprConnector [เท็จ], useOpenSSL [จริง]
23-มิ.ย.-2021 17:37:04.030 INFO [หลัก] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL เริ่มต้นได้สำเร็จ [OpenSSL 1.1.1d 10 ก.ย. 2019]
23 มิถุนายน 2021 17:37:04.634 INFO [หลัก] org.apache.coyote.AbstractProtocol.init กำลังเริ่มต้น ProtocolHandler ["https-openssl-nio-443"]
23-มิ.ย.-2021 17:37:05.225 INFO [หลัก] org.apache.catalina.startup.Catalina.load การเริ่มต้นเซิร์ฟเวอร์ใน [1569] มิลลิวินาที
23-มิ.ย.-2021 17:37:05.324 INFO [หลัก] org.apache.catalina.core.StandardService.startInternal การเริ่มต้นบริการ [Catalina]
23-มิ.ย.-2021 17:37:05.324 INFO [หลัก] org.apache.catalina.core.StandardEngine.startInternal การเริ่มต้น Servlet engine: [Apache Tomcat/9.0.41]
23-มิ.ย.-2021 17:37:05.365 INFO [หลัก] org.apache.coyote.AbstractProtocol.start การเริ่มต้น ProtocolHandler ["https-openssl-nio-443"]
23-มิ.ย.-2021 17:37:05.396 INFO [หลัก] org.apache.catalina.startup.Catalina.start เซิร์ฟเวอร์เริ่มต้นใน [170] มิลลิวินาที

เราปิดใช้งานการอัปเดตอัตโนมัติใดๆ ในเครื่อง EC2 เพื่อขจัดความเป็นไปได้ที่การอัปเดตในนักเทียบท่าจะเป็นสาเหตุของสิ่งนี้ แต่สิ่งเดียวที่เราทำได้คือเริ่มต้นใหม่

อยากทราบว่าใครเคยเป็นแบบนี้บ้าง และมีวิธีแก้ไขอย่างไรบ้างครับ

Score:0
ธง by

เซิร์ฟเวอร์ของคุณได้รับการสแกนหาช่องโหว่โดยเครือข่ายบอท/ไวรัสเป็นประจำ หากสิ่งนี้ทำให้บริการหยุดชะงักคุณสามารถใช้ได้ ล้มเหลว 2 แบน เพื่อขึ้นบัญชีดำ IPs ซึ่งทำให้เกิด 400 ข้อผิดพลาดในช่วงเวลาสั้น ๆ

คุณอาจทำเช่นเดียวกันสำหรับ 404 ข้อผิดพลาด แต่ตรวจสอบให้แน่ใจว่าได้จับคู่เฉพาะ URI คำขอที่ไม่เคยมีอยู่ในไซต์ของคุณ มิฉะนั้น คุณอาจแบนโปรแกรมรวบรวมข้อมูลของเครื่องมือค้นหา

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา