วิธีปิด 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

Popular posts from this blog

Windows Server 2022 ยังน่าใช้ในปีนี้หรือไม่? คำตอบสำหรับคนกำลังวางระบบใหม่

สเปกเครื่องสำหรับติดตั้ง Windows Server 2022 เลือกอย่างไรให้คุ้มและใช้งานได้ยาว

Windows Server 2022 คืออะไร? คู่มือสำหรับมือใหม่