誤)
這個(gè)異常是Tomcat 服務(wù)器在 HTTP 端口上收到了一個(gè)非 HTTP 協(xié)議的請求具體來說是一個(gè)TLS/SSL 握手請求即 HTTPS 請求。錯(cuò)誤信息中的0x16 0x03 0x01是 TLS 記錄層的標(biāo)志——0x16表示握手類型0x03 0x01表示 TLS 1.0 版本后面的字節(jié)是握手消息的內(nèi)容。Tomcat 試圖把它當(dāng)作 HTTP 請求行解析但發(fā)現(xiàn)方法名如 GET/POST中包含不可打印字符因此拋出IllegalArgumentException。這是惡意攻擊嗎通常不是有意的攻擊而更可能是以下幾種情況客戶端配置錯(cuò)誤有人用https://協(xié)議訪問了你的 HTTP 端口例如https://example.com:8080。端口掃描或探測掃描工具在檢測你的服務(wù)器是否支持 HTTPS或者尋找開放的端口。負(fù)載均衡/代理配置錯(cuò)誤前端代理將 HTTPS 流量轉(zhuǎn)發(fā)到了后端的 HTTP 端口但沒有正確終止 SSL。惡意探測極少數(shù)情況下攻擊者可能嘗試通過發(fā)送畸形數(shù)據(jù)探測服務(wù)器漏洞但這里的 TLS 握手本身是標(biāo)準(zhǔn)的并非畸形攻擊數(shù)據(jù)。需要擔(dān)心嗎如果是零星出現(xiàn)通常無害只是錯(cuò)誤請求。如果頻繁出現(xiàn)可能有人在主動掃描你的服務(wù)器或者你的服務(wù)被錯(cuò)誤地暴露在了公網(wǎng) HTTP 端口上且有人嘗試用 HTTPS 連接。如果 HTTPS 是你需要的服務(wù)你應(yīng)該配置 Tomcat 或其他前置服務(wù)器如 Nginx正確支持 HTTPS或者將 HTTPS 端口443與 HTTP 端口8080分開。建議檢查訪問日志確認(rèn)源 IP 和頻率判斷是正常用戶誤操作還是掃描行為。防火墻策略如果不希望外部訪問 HTTP 端口可限制 IP 或關(guān)閉不必要的端口。正確配置 SSL如果你需要提供 HTTPS 服務(wù)請配置 SSL 證書并確保 443 端口監(jiān)聽 HTTPS而不是讓 HTTPS 流量落到 HTTP 端口。忽略無害錯(cuò)誤這類異常本身不會對服務(wù)器造成直接危害Tomcat 會直接拒絕請求并關(guān)閉連接??傊@個(gè)異常本身是協(xié)議解析錯(cuò)誤的正常反饋不是系統(tǒng)漏洞但可能暗示著配置或訪問上的問題。我們被問到“這是什么?惡意攻擊嗎?”并提供了一個(gè)Java異常堆棧跟蹤。異常是java.lang.IllegalArgumentException: Invalid character found in method name [0x16...后面跟著一堆十六進(jìn)制字節(jié)。這個(gè)異常來自于Tomcat的Http11InputBuffer.parseRequestLine意味著在解析HTTP請求行時(shí)方法名HTTP動詞中發(fā)現(xiàn)了無效字符。給出的字節(jié)序列看起來像是一些二進(jìn)制數(shù)據(jù)開頭是0x16 0x03 0x01 0x00 ...。這看起來像是TLS握手記錄的開頭0x16是TLS握手內(nèi)容類型0x03 0x01是TLS版本TLS 1.0后面是長度等等。因此這很可能是一個(gè)HTTPS請求被發(fā)送到了HTTP端口即明文HTTP端口上收到了TLS握手請求。換句話說客戶端嘗試與服務(wù)器建立HTTPS連接但服務(wù)器端口只監(jiān)聽HTTP明文因此Tomcat解析時(shí)將TLS握手?jǐn)?shù)據(jù)當(dāng)作HTTP請求行來解析導(dǎo)致無效字符錯(cuò)誤。這是否是惡意攻擊可能不是有意的攻擊而是一個(gè)配置錯(cuò)誤可能是客戶端錯(cuò)誤地使用了https://訪問了HTTP端口或者負(fù)載均衡器/代理配置錯(cuò)誤或者有掃描器在探測端口例如嘗試檢查是否支持HTTPS。但通常這不被視為惡意攻擊而是一種常見的錯(cuò)誤或探測行為。然而如果是大量此類請求可能表明有人在掃描你的服務(wù)以尋找可能的漏洞或配置錯(cuò)誤。因此回答應(yīng)該解釋這個(gè)異常的含義指出它表示收到了一個(gè)HTTPS請求TLS握手在HTTP端口上并評估這是否是惡意攻擊。提供一些上下文可能的原因以及如果頻繁出現(xiàn)可能需要注意。同時(shí)建議檢查服務(wù)器配置確保HTTPS和HTTP端口正確分離或者如果確實(shí)需要HTTPS則應(yīng)該配置SSL。