วิธีปิด TRACE Method บน IIS Windows Server 2022 ป้องกัน Cross-Site Tracing และเพิ่มความปลอดภัยเว็บเซิร์ฟเวอร์
TRACE เป็น HTTP Method ที่ถูกออกแบบมาเพื่อใช้ในการวิเคราะห์และ Debug การเชื่อมต่อระหว่าง Client และ Web Server แต่ในระบบ Production ปัจจุบันแทบไม่มีความจำเป็นต้องใช้งานอีกต่อไป
ในทางกลับกัน TRACE กลับกลายเป็นช่องทางที่ผู้โจมตีสามารถนำไปใช้ร่วมกับช่องโหว่ประเภท Cross-Site Scripting (XSS) เพื่อขโมยข้อมูลสำคัญ เช่น Session Cookie, Authentication Header หรือข้อมูลภายใน Request ได้
ด้วยเหตุนี้ Security Scanner ส่วนใหญ่ เช่น Nessus, Acunetix, Qualys และ OpenVAS จึงมักแจ้งเตือนทันทีหากพบว่า TRACE Method ยังเปิดใช้งานอยู่บน IIS
บทความนี้จะอธิบายวิธีตรวจสอบและปิด TRACE Method บน IIS Windows Server 2022 อย่างถูกต้อง
🔐 TRACE Method คืออะไร
TRACE เป็น HTTP Method มาตรฐาน
ตัวอย่าง
GET
POST
PUT
DELETE
TRACE
หน้าที่ของ TRACE คือ
ส่ง Request กลับมายังผู้ส่ง
เพื่อใช้ตรวจสอบข้อมูลการเชื่อมต่อ
🚨 ทำไม TRACE จึงเป็นความเสี่ยง
TRACE สามารถสะท้อนข้อมูล Request
กลับไปยัง Browser
หากมีช่องโหว่ XSS
ผู้โจมตีอาจใช้ TRACE
เพื่อเข้าถึงข้อมูลสำคัญ
เรียกการโจมตีประเภทนี้ว่า
Cross-Site Tracing (XST)
🎯 ผลกระทบจาก TRACE
🔓 Session Cookie Leakage
🔓 Authentication Header Exposure
🔓 Information Disclosure
🔓 เพิ่มพื้นผิวการโจมตี
🔍 ตรวจสอบว่า TRACE เปิดอยู่หรือไม่
เปิด Command Prompt
ใช้คำสั่ง
curl -X TRACE https://example.com
หาก Server ตอบกลับ
TRACE ยังเปิดใช้งานอยู่
🌐 ตรวจสอบผ่าน Telnet
เชื่อมต่อ
telnet example.com 80
ส่งคำสั่ง
TRACE / HTTP/1.1
Host: example.com
หากได้รับ Response
แสดงว่า TRACE ยังเปิดอยู่
🚀 วิธีปิด TRACE ผ่าน Request Filtering
เปิด
IIS Manager
เลือกเว็บไซต์
เปิด
Request Filtering
เลือกแท็บ
HTTP Verbs
คลิก
Deny Verb
ใส่
TRACE
กด
OK
IIS จะปฏิเสธ TRACE ทันที
⚙️ วิธีปิด TRACE ผ่าน web.config
เพิ่ม
<system.webServer>
<security>
<requestFiltering>
<verbs>
<add verb="TRACE"
allowed="false" />
</verbs>
</requestFiltering>
</security>
</system.webServer>
จากนั้น
Recycle Application Pool
หรือ
iisreset
⚡ วิธีปิด TRACE ผ่าน Request Filtering ระดับ Server
เลือก
Server Level
เปิด
Request Filtering
เพิ่ม
TRACE
ใน Deny Verbs
จะมีผลกับทุกเว็บไซต์
🔍 ทดสอบหลังปิด TRACE
ใช้คำสั่ง
curl -X TRACE https://example.com
ควรได้
405 Method Not Allowed
หรือ
404
ถือว่าปิดสำเร็จ
🌐 ตรวจสอบผ่าน Browser
เปิด
F12
ตรวจสอบ
Network
หรือใช้ Security Scanner
📊 ตรวจสอบผ่าน PowerShell
Invoke-WebRequest `
-Uri https://example.com `
-Method TRACE
ควรได้รับ Error
🔍 ตรวจสอบ IIS Log
เปิด
C:\inetpub\logs\LogFiles
ค้นหา
TRACE
หากยังพบ
อาจยังไม่ได้ปิดทุกเว็บไซต์
⚠️ ระบบที่อาจได้รับผลกระทบ
ในระบบทั่วไป
แทบไม่มีผลกระทบ
มีเพียงบางระบบ Debug
ที่ใช้ TRACE
แต่ Production ไม่ควรเปิดใช้งาน
❌ ความเข้าใจผิดที่พบบ่อย
TRACE จำเป็นต่อ HTTPS
❌ ไม่จริง
TRACE จำเป็นต่อ IIS
❌ ไม่จริง
TRACE ช่วยให้เว็บเร็วขึ้น
❌ ไม่เกี่ยวข้อง
📋 Security Checklist
✅ ปิด TRACE
✅ ปิด TRACK
✅ เปิด HTTPS
✅ เปิด HSTS
✅ ใช้ TLS 1.2 หรือ TLS 1.3
✅ เปิด Security Headers
✅ ตรวจสอบ Security Scan
🛡️ Best Practices
① ปิด TRACE ทุกเว็บไซต์
② ปิด TRACE ระดับ Server
③ ใช้ Request Filtering
④ ตรวจสอบ IIS Logs
⑤ สแกนช่องโหว่ทุกเดือน
⑥ ใช้ Security Baseline
⑦ ทดสอบหลังเปลี่ยนแปลงทุกครั้ง
ทีมงาน comsiam กำหนดให้การปิด TRACE Method เป็นหนึ่งในขั้นตอนพื้นฐานของ IIS Hardening Checklist ทุกเครื่อง เนื่องจากไม่มีผลกระทบต่อการทำงานของเว็บไซต์ทั่วไป แต่ช่วยลดความเสี่ยงด้าน Security ได้ทันที
🎯 สรุป
TRACE Method เป็นฟังก์ชันสำหรับ Debug ที่ไม่จำเป็นต่อการใช้งานเว็บไซต์ในปัจจุบัน และอาจถูกนำไปใช้ร่วมกับช่องโหว่อื่นเพื่อเปิดเผยข้อมูลสำคัญของระบบ
บน IIS Windows Server 2022 ควรปิด TRACE ผ่าน Request Filtering หรือ web.config และตรวจสอบผลลัพธ์ด้วยเครื่องมือทดสอบหรือ Security Scanner เพื่อให้ Web Server มีความปลอดภัยมากขึ้นและสอดคล้องกับมาตรฐาน Security Hardening สำหรับระบบ Production