CSRF ทำงานยังไง — ลึกซึ้ง ตอน 2
Photo: Markus Winkler / Pexels

🎙️ ฉบับพอดแคสต์ — อ่านออกเสียงประมาณ 16 นาที

ในตอนนี้เราจะเจาะลึกถึงวิธีการทำงานของ CSRF และเทคนิคที่แฮกเกอร์ใช้ในการโจมตี.

ในตอนที่แล้วเราได้พูดถึงพื้นฐานของ CSRF (Cross-Site Request Forgery) และทำความเข้าใจกับแนวคิดเบื้องต้นไปแล้ว ในตอนนี้เราจะมาลงลึกถึงวิธีการทำงานของ CSRF รวมถึงเทคนิคต่างๆ ที่แฮกเกอร์ใช้ในการโจมตี และวิธีการป้องกันที่มีประสิทธิภาพมากขึ้น เพื่อให้คุณเข้าใจถึงภัยคุกคามนี้ได้ดีขึ้น

CSRF คืออะไร?

CSRF หรือ Cross-Site Request Forgery เป็นเทคนิคการโจมตีที่แฮกเกอร์ใช้เพื่อหลอกให้ผู้ใช้ทำการกระทำบางอย่างในเว็บไซต์ที่ผู้ใช้ได้ลงชื่อเข้าใช้ โดยที่ผู้ใช้ไม่รู้ตัว เช่น การโอนเงิน หรือการเปลี่ยนแปลงข้อมูลส่วนตัว โดยทั่วไปแล้ว CSRF จะเกิดขึ้นเมื่อผู้ใช้เข้าไปยังเว็บไซต์ที่เป็นอันตรายในขณะที่ยังคงมีการลงชื่อเข้าใช้ในเว็บไซต์ที่ถูกโจมตีอยู่

การโจมตี CSRF จะใช้ประโยชน์จากการที่เบราว์เซอร์จะส่งข้อมูล Cookie หรือ Token ที่เกี่ยวข้องกับการยืนยันตัวตนไปยังเซิร์ฟเวอร์โดยอัตโนมัติเมื่อผู้ใช้ทำการร้องขอ ซึ่งทำให้แฮกเกอร์สามารถใช้ข้อมูลเหล่านี้ในการโจมตีได้ โดยไม่จำเป็นต้องมีการเข้าถึงข้อมูลส่วนตัวของผู้ใช้

วิธีการทำงานของ CSRF

การทำงานของ CSRF สามารถอธิบายได้เป็นขั้นตอน ดังนี้:
1. **ผู้ใช้ลงชื่อเข้าใช้เว็บไซต์**: ผู้ใช้ทำการลงชื่อเข้าใช้ในเว็บไซต์ที่มีการป้องกัน เช่น เว็บไซต์ธนาคาร หรือเว็บไซต์ที่มีข้อมูลส่วนตัว
2. **ผู้ใช้เข้าชมเว็บไซต์ที่เป็นอันตราย**: ผู้ใช้เปิดแท็บใหม่หรือคลิกลิงก์ที่นำไปสู่เว็บไซต์ที่แฮกเกอร์สร้างขึ้น ซึ่งเว็บไซต์นี้อาจมีโค้ด JavaScript หรือ HTML ที่ถูกออกแบบมาเพื่อส่งคำขอไปยังเว็บไซต์ที่ผู้ใช้ได้ลงชื่อเข้าใช้ไว้
3. **การส่งคำขอโดยไม่รู้ตัว**: เมื่อผู้ใช้เปิดเว็บไซต์ที่เป็นอันตราย เบราว์เซอร์จะส่งคำขอไปยังเว็บไซต์ที่ผู้ใช้ได้ลงชื่อเข้าใช้ โดยอัตโนมัติพร้อมกับ Cookie หรือ Token ที่ถูกเก็บไว้ ซึ่งทำให้เว็บไซต์ไม่สามารถแยกแยะได้ว่าคำขอนี้มาจากผู้ใช้จริงๆ หรือตั้งใจจากแฮกเกอร์
4. **การดำเนินการตามคำขอ**: เว็บไซต์ที่ถูกโจมตีจะดำเนินการตามคำขอที่ได้รับมา เช่น โอนเงิน หรือเปลี่ยนแปลงข้อมูล ซึ่งอาจทำให้ผู้ใช้เกิดความเสียหายโดยไม่รู้ตัว

ตัวอย่างการโจมตี CSRF

เพื่อให้เห็นภาพการโจมตี CSRF ได้ชัดเจนยิ่งขึ้น เราลองมาดูตัวอย่างที่เกิดขึ้นจริง:

สมมุติว่า Alice เป็นผู้ใช้ที่ลงชื่อเข้าใช้ในเว็บไซต์ธนาคารของเธอ และในขณะเดียวกัน เธอได้เปิดเว็บไซต์บล็อกที่สร้างโดยแฮกเกอร์ โดยเว็บไซต์นี้มีโค้ด HTML ที่สร้างลิงก์ซ่อนอยู่ที่ส่งคำขอให้โอนเงินไปยังบัญชีของแฮกเกอร์ เมื่อ Alice คลิกที่ลิงก์นั้น เบราว์เซอร์ของเธอจะส่งคำขอไปยังเว็บไซต์ธนาคารโดยอัตโนมัติพร้อมกับ Cookie ที่ใช้ในการยืนยันตัวตนของเธอ ซึ่งทำให้เว็บไซต์ธนาคารไม่สามารถแยกแยะได้ว่าคำขอนี้มาจาก Alice หรือไม่

นอกจากนี้ยังมีกรณีที่แฮกเกอร์อาจใช้ฟอร์มซ่อนที่ส่งคำขอ POST ไปยังเซิร์ฟเวอร์ที่เป้าหมาย โดยที่ Alice ไม่รู้ตัว เช่น การสร้างฟอร์ม HTML ที่มีการตั้งค่าให้ส่งคำขอไปยังเว็บไซต์ธนาคารของเธอเมื่อเธอเปิดหน้าเว็บนั้น

วิธีการป้องกัน CSRF

การป้องกัน CSRF เป็นสิ่งสำคัญที่เว็บไซต์ทุกแห่งควรคำนึงถึง ซึ่งมีหลายวิธีที่สามารถใช้ได้:
1. **Token ยืนยันตัวตน (CSRF Token)**: การใช้ CSRF Token เป็นวิธีการป้องกันที่มีประสิทธิภาพ โดยเว็บไซต์จะสร้าง Token ที่ไม่ซ้ำกันในแต่ละครั้งที่ผู้ใช้ทำการร้องขอและส่งไปพร้อมกับคำขอ เมื่อเซิร์ฟเวอร์ได้รับคำขอ มันจะตรวจสอบว่า Token ที่ส่งมานั้นถูกต้องหรือไม่ หากไม่ถูกต้อง เซิร์ฟเวอร์จะไม่ดำเนินการตามคำขอ
2. **SameSite Cookie Attribute**: การใช้ SameSite Cookie สามารถช่วยลดความเสี่ยงจาก CSRF ได้ โดยการตั้งค่า Cookie ให้มี Attribute เป็น `SameSite` ซึ่งจะทำให้เบราว์เซอร์ไม่ส่ง Cookie ไปยังเว็บไซต์ที่ไม่ใช่ต้นทางของคำขอ
3. **ตรวจสอบ Referrer Header**: เว็บไซต์สามารถตรวจสอบ Referrer Header ของคำขอเพื่อยืนยันว่าคำขอนั้นมาจากเว็บไซต์ที่ถูกต้องหรือไม่ โดยการเปรียบเทียบ Referrer Header กับโดเมนที่คาดหวัง
4. **การยืนยันตัวตนเพิ่มเติม**: การใช้การยืนยันตัวตนเพิ่มเติม เช่น การใช้รหัส OTP หรือการยืนยันผ่านอีเมล สามารถช่วยเพิ่มความปลอดภัยให้กับการทำธุรกรรมที่สำคัญ
5. **การใช้ HTTP Method ที่เหมาะสม**: ควรใช้ HTTP Method ที่เหมาะสมในการทำธุรกรรม เช่น การใช้ GET สำหรับการดึงข้อมูลและ POST สำหรับการส่งข้อมูล โดยเฉพาะอย่างยิ่งในกรณีที่มีการเปลี่ยนแปลงข้อมูลในระบบ

ความสำคัญของการศึกษา CSRF

การศึกษาเกี่ยวกับ CSRF ไม่เพียงแต่ช่วยให้ผู้พัฒนาเว็บไซต์เข้าใจถึงช่องโหว่ที่อาจเกิดขึ้น แต่ยังช่วยให้ผู้ใช้ทั่วไปมีความตระหนักรู้ในเรื่องความปลอดภัยออนไลน์ด้วย การรู้จัก CSRF จะทำให้ผู้ใช้สามารถระมัดระวังในการคลิกลิงก์หรือเปิดเว็บไซต์ที่ไม่เชื่อถือได้

นอกจากนี้ การศึกษา CSRF ยังเป็นการเตรียมความพร้อมสำหรับการป้องกันการโจมตีที่ซับซ้อนมากขึ้นในอนาคต เมื่อเทคโนโลยีและวิธีการโจมตีพัฒนาไปอย่างรวดเร็ว ผู้ใช้และผู้พัฒนาจะต้องมีความรู้ที่ทันสมัยเพื่อป้องกันตนเองจากภัยคุกคาม

สรุป

CSRF เป็นภัยคุกคามที่สามารถทำให้ผู้ใช้ตกเป็นเหยื่อได้โดยไม่รู้ตัว การเข้าใจวิธีการทำงานของ CSRF จะช่วยให้เราสามารถป้องกันและลดความเสี่ยงจากการโจมตีนี้ได้อย่างมีประสิทธิภาพ การใช้เทคนิคต่างๆ เช่น CSRF Token และการตั้งค่า Cookie ที่เหมาะสม จะช่วยให้เว็บไซต์มีความปลอดภัยมากขึ้น และทำให้ผู้ใช้สามารถทำธุรกรรมออนไลน์ได้อย่างมั่นใจมากขึ้น

ในตอนนี้เราหวังว่าคุณจะได้เรียนรู้เกี่ยวกับ CSRF อย่างลึกซึ้ง และสามารถนำความรู้เหล่านี้ไปใช้ในการพัฒนาระบบที่ปลอดภัยยิ่งขึ้นได้ ขอบคุณที่ติดตามรับฟัง TechExtreme ในตอนนี้ พบกันใหม่ในตอนหน้า.

ที่มา: TechExtreme Editorial

#CSRF ทำงานยังไง — ลึกซึ้ง ตอน 2 #security #พอดแคสต์ #TechExtreme #พอดแคสต์ #TechExtremePodcast

ขอบคุณที่ติดตามรับฟัง TechExtreme ในตอนนี้ พบกันใหม่ในตอนหน้า.