FixVibe
Covered by FixVibemedium

การกำหนดค่าส่วนหัวการรักษาความปลอดภัยไม่เพียงพอ

เว็บแอปพลิเคชันมักจะล้มเหลวในการใช้ส่วนหัวการรักษาความปลอดภัยที่จำเป็น ทำให้ผู้ใช้ต้องเผชิญกับสคริปต์ข้ามไซต์ (XSS) การคลิกแจ็คกิ้ง และการแทรกข้อมูล การปฏิบัติตามหลักเกณฑ์ด้านความปลอดภัยบนเว็บที่กำหนดไว้และการใช้เครื่องมือตรวจสอบเช่น MDN Observatory นักพัฒนาสามารถเสริมความแข็งแกร่งให้กับแอปพลิเคชันของตนจากการโจมตีเบราว์เซอร์ทั่วไปได้อย่างมาก

CWE-693

ผลกระทบ

การไม่มีส่วนหัวด้านความปลอดภัยทำให้ผู้โจมตีสามารถทำการคลิกแจ็ค ขโมยคุกกี้เซสชัน หรือเรียกใช้สคริปต์ข้ามไซต์ (XSS) [S1] หากไม่มีคำแนะนำเหล่านี้ เบราว์เซอร์จะไม่สามารถบังคับใช้ขอบเขตความปลอดภัยได้ ซึ่งนำไปสู่การขโมยข้อมูลและการกระทำของผู้ใช้ที่ไม่ได้รับอนุญาต [S2]

ต้นเหตุ

ปัญหานี้เกิดจากความล้มเหลวในการกำหนดค่าเว็บเซิร์ฟเวอร์หรือกรอบงานแอปพลิเคชันให้รวมส่วนหัวความปลอดภัย HTTP มาตรฐาน แม้ว่าการพัฒนามักจะจัดลำดับความสำคัญของ HTML และ CSS [S1] ที่ใช้งานได้ แต่การกำหนดค่าความปลอดภัยมักถูกละเว้น เครื่องมือตรวจสอบ เช่น MDN Observatory ได้รับการออกแบบมาเพื่อตรวจจับเลเยอร์การป้องกันที่ขาดหายไป และให้แน่ใจว่าการโต้ตอบระหว่างเบราว์เซอร์และเซิร์ฟเวอร์นั้นปลอดภัย [S2]

รายละเอียดทางเทคนิค

ส่วนหัวความปลอดภัยจัดเตรียมคำสั่งความปลอดภัยเฉพาะให้กับเบราว์เซอร์เพื่อบรรเทาช่องโหว่ทั่วไป:

  • นโยบายความปลอดภัยของเนื้อหา (CSP): ควบคุมว่าทรัพยากรใดที่สามารถโหลดได้ ป้องกันการดำเนินการสคริปต์ที่ไม่ได้รับอนุญาตและการฉีดข้อมูล [S1]
  • Strict-Transport-Security (HSTS): ตรวจสอบให้แน่ใจว่าเบราว์เซอร์สื่อสารผ่านการเชื่อมต่อ HTTPS ที่ปลอดภัยเท่านั้น [S2]
  • X-Frame-Options: ป้องกันไม่ให้แอปพลิเคชันแสดงผลใน iframe ซึ่งเป็นการป้องกันเบื้องต้นจากการคลิกแจ็คกิ้ง [S1]
  • X-Content-Type-Options: ป้องกันไม่ให้เบราว์เซอร์ตีความไฟล์เป็นประเภท MIME ที่แตกต่างจากที่ระบุไว้ และหยุดการโจมตีแบบดมกลิ่น MIME [S2]

วิธีทดสอบ FixVibe

FixVibe สามารถตรวจพบสิ่งนี้ได้โดยการวิเคราะห์ส่วนหัวการตอบสนอง HTTP ของเว็บแอปพลิเคชัน ด้วยการเปรียบเทียบผลลัพธ์กับมาตรฐาน MDN Observatory [S2], FixVibe สามารถตั้งค่าสถานะส่วนหัวที่ขาดหายไปหรือกำหนดค่าไม่ถูกต้อง เช่น ZXCVFIXVIBTOKEN3ZXCV, HSTS และ X-Frame-Options

แก้ไข

อัปเดตเว็บเซิร์ฟเวอร์ (เช่น Nginx, Apache) หรือมิดเดิลแวร์ของแอปพลิเคชันเพื่อรวมส่วนหัวต่อไปนี้ในการตอบกลับทั้งหมดโดยเป็นส่วนหนึ่งของมาตรการรักษาความปลอดภัยมาตรฐาน [S1]:

  • นโยบายความปลอดภัยเนื้อหา: จำกัดแหล่งทรัพยากรไว้เฉพาะโดเมนที่เชื่อถือได้
  • Strict-Transport-Security: บังคับใช้ HTTPS ด้วย max-age แบบยาว
  • X-Content-Type-Options: ตั้งค่าเป็น nosniff [S2]
  • X-Frame-Options: ตั้งค่าเป็น DENY หรือ SAMEORIGIN เพื่อป้องกันการคลิกแจ็คกิ้ง ZXCVFIXVIBTOKEN2ZXCV