การตั้งค่า Webserver เพื่อป้องกัน Clickjacking Attack ที่ถูกมองข้าม

Parapol Makdum
Nov 8 · 2 min read

เกริ่น : ชาวไอทีหลายคนคงทราบดีอยู่แล้วว่าบนโลกอินเตอร์เน็ตนั้นมีมิจฉาชีพอยู่เป็นจำนวนมาก พวกเขามักหาวิธีการต่างๆ ที่จะดักรับข้อมูลหรือโจมตีเครื่องของผู้ใช้งาน (Users) เพื่อนำข้อมูลที่ได้ไปใช้ในทางที่ผิด และ Clickjacking Attack ก็เป็นหนึ่งในวิธีที่นิยมใช้กันมาก โดยในปี 2008 โดย Jeremiah Grossman ผู้เชี่ยวชาญในด้านความปลอดภัยออกมาแจ้งเตือนให้เว็บไซต์ทำการแก้ไข

ถึงแม้จะเป็นช่องโหว่เก่าเมื่อสิบปีก่อน แต่ก็ต้องยอมรับว่าทุกวันนี้ยังมีให้เห็นกันอยู่

Clickjacking Attack คือ?

  • การโจมตีเว็บไซต์รูปแบบหนึ่งที่ผู้โจมตี (Attacker) นำเอา code เข้าไปฝังซ่อนไว้ส่วนใดส่วนหนึ่งที่หน้าเว็บไซต์อื่น อย่างเช่น ปุ่ม Submit, หน้าถัดไป (Next page), Picture Link เป็นต้น เพื่อรับ Response ทั้งหมดให้ Redirect ไปยังเว็บไซต์ปลอมที่ถูกสร้างขึ้น

ผลกระทบกับผู้ใช้งาน

  • เมื่อผู้ใช้งานอินเตอร์เน็ตเข้าไปยังหน้าเว็บไซต์หนึ่งที่มีช่องโหว่นี้ แล้วเผลอคลิกหรือกรอกข้อมูลตรงส่วนที่ Attacker ตั้งใจจะดักรับข้อมูล อาจเกิดการโหลด Malware ลงเครื่องโดยตรงทันที ข้อมูลส่วนตัวรหัสผ่านต่างๆ ของผู้ใช้งานจะตกอยู่ในมือของผู้ไม่หวังดี

รูปแบบของ Clickjacking

  • ทั่วไปแล้ว Clickjacking มักจะรันซ่อนอยู่ภายใต้หน้า HTML ในส่วนของ iframe ( HTML CODE ที่ใช้ในการดึงหน้าเว็บไม่ว่าจะเป็น path url จากเว็บเราหรือจากเว็บอื่น มาแสดงในเว็บของเรา) ในรูปแบบอื่นก็จะเป็นปุ่ม Like หรือ Cursor
@imperva.com

ตัวอย่างวิธีการ Clickjacking

  1. เมื่อผู้ใช้งานเปิดเว็บไซต์แห่งหนึ่ง แล้วคลิกลิงก์ที่แสดงผลว่า “WIN” ผู้ชนะได้รับรางวัล iPad
  2. ปรากฏว่าหลังจากคลิกไปแล้วโค้ดที่รันจริงๆ นั้นคือ การให้โอนเงินให้กับ Attacker ปลายทางไป
@troyhunt.com

3. ภายใต้หน้าเว็บไซต์มีการใส่ค่า Request URL เรียกใช้ไปยัง process อื่นๆ เช่นตัวอย่าง ภายใน code tag <iframe> จะเห็นว่า source ต้นทางแท้จริงแล้วคือ http://mybank/Transfer.aspx ซึ่งไม่เกี่ยวข้องกับเว็บไซต์

การป้องกันฝั่งผู้ให้บริการเว็บไซต์ (Server-Side method)

  • ตั้งค่า Header Response ของ X-Frame-Options ที่เครื่อง Web Server โดยหากใช้ Apache2 สามารถทำการ config เพิ่มเติมได้ดังนี้

การเลือกใช้ Value ต่างๆ ของ X-Frame-Options มีทั้งหมด 3 แบบ

  • DENY — ไม่อนุญาตให้โดเมนใดๆ แสดงผลบนหน้าเว็บไซต์
  • SAMEORIGIN — อนุญาตให้โดเมนเดียวที่ใช้งานอยู่ แสดงผลใน Frame บนหน้าเว็บไซต์
  • ALLOW-FROM URI — อนุญาตให้มีการแสดงผลใน Frame บนหน้าเว็บไซต์ตามโดเมนที่กำหนด เช่น www.example.com/frame-page

วิธีการทดสอบหาช่องโหว่ Clickjacking บนเว็บไซต์

  1. ใช้ Tools ตรวจสอบ ตัวอย่างเช่น OWASP
  2. ตรวจสอบผ่านเว็บไซต์ : http://online.attacker-site.com/html5/ClickjackingTester/
  3. ใช้ Developer Tools บน Chrome Browser ไปที่ More tools > Developer Tools > Network จากนั้นใส่ URL ที่ต้องการตรวจสอบ หากยังไม่มีการตั้งค่าจะพบข้อมูล Headers ตามรูป
@troyhunt.com

ที่มา :

https://www.troyhunt.com/clickjack-attack-hidden-threat-right-in/

https://www.mindphp.com

https://www.imperva.com/learn/application-security/clickjacking/

Life at dek-d

Hello world. Sharing the wonderful moment making life wonderful.

Parapol Makdum

Written by

Life at dek-d

Hello world. Sharing the wonderful moment making life wonderful.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade