Monday, June 25, 2018

Knowledge : โจมตีแบบ Cross-site Request Forgery หรือ CSRF

ผลการค้นหารูปภาพสำหรับ csrf

Credit pic : https://d3eaqdewfg2crq.cloudfront.net/wp-content/uploads/2013/04/csrf.png 

CSRF หรือ  Cross-site Request Forgery  คืออะไร

      การโจมตีแบบ CSRF จะใช้ “ตัวตน (Identity)” และ “สิทธิ์ (Privilege)” ของเหยื่อที่มีบนเว็บไซต์ ในการปลอมตัวเป็นเหยื่อและกระทำการหรือธุรกรรมไม่พึงประสงค์ แฮ็คเกอร์จะพยายามใช้ประโยชน์จากเหยื่อที่มี Login Cookies เก็บไว้ในเว็บเบราเซอร์ ส่งผลให้เว็บไซต์ E-commerce ที่ส่ง Cookie ไปเก็บข้อมูลการพิสูจน์ตัวตนของผู้ใช้มักตกเป็นเป้าหมายของการโจมตีนี้


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

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

Screen Shot 2559-01-21 at 11.15.28 AM
 Credit pic : https://i1.wp.com/blog.wisered.com/wp-content/uploads/2016/01/Screen-Shot-2559-01-21-at-11.15.28-AM.png?w=1742&ssl=1


ป้องกันการโจมตีแบบ CSRF ได้อย่างไร

 

      เว็บไซต์ Network World ได้แนะนำวิธีป้องกันการโจมตีแบบ CSRF ของทั้งฝั่งเซิร์ฟเวอร์และฝั่งผู้ใช้งาน ดังนี้
ฝั่งเซิร์ฟเวอร์
  • เว็บไซต์ของธนาคารและผู้ประกอบการควรเปลี่ยนจากการใช้ Cookies ที่ทำ Session-tracking มาเป็น Session Token ที่ถูกสร้างขึ้นแบบไดนามิกแทน ซึ่งช่วยให้แฮ็คเกอร์ขโมยเซสชันจากผู้ใช้ได้ยากยิ่งขึ้น
  • อย่าเชื่อว่าทุกเว็บไซต์จะมีมาตรการในการป้องกัน CSRF แนะนำให้ทำการป้องกันที่ฝั่งผู้ใช้ด้วยเช่นกัน
ฝั่งผู้ใช้
  • ติดตั้งโปรแกรม Antivirus และอัปเดตฐานข้อมูลล่าสุดอยู่เสมอ สคริปต์อันตรายบางอย่างอาจถูกบล็อกโดยโปรแกรมเหล่านี้ได้
  • อย่าเปิดอีเมลหรือใช้งานเว็บไซต์อื่นๆ ขณะที่ล็อกอินเข้าเว็บไซต์ของธนาคารหรือ E-commerce เพื่อทำธุรกรรมออนไลน์ เพื่อลดความเสี่ยงในการคลิกลิงค์ซึ่งอาจเป็นสคริปต์สำหรับโจมตีแบบ CSRF ได้
  • หลังจากที่ทำธุรกรรมออนไลน์เสร็จสิ้นให้ล็อกเอาท์ออกจากเว็บไซต์ทันที เพื่อไม่ให้มีเซสชันค้างให้แฮ็คเกอร์มาขโมยใช้งานได้
  • ไม่บันทึกชื่อล็อกอินและรหัสผ่านของเว็บไซต์ธนาคารและสถานบันการเงินไว้บนเว็บเบราเซอร์ สคริปต์ CSRF อาจเจาะถึงข้อมูลตรงจุดนี้และนำไปใช้ประโยชน์ได้
  • ยกเลิกการใช้สคริปต์บนเว็บเบราเซอร์ เพื่อเพิ่มความมั่นคงปลอดภัยสูงสุด
  • แยกการทำธุรกรรมออนไลน์ไว้บนเบราเซอร์หนึ่ง ส่วนเว็บไซต์ที่เหลือไว้บนอีกเบราเซอร์หนึ่ง เพื่อไม่ให้แฮ็คเกอร์ใช้ประโยชน์จากเว็บเบราเซอร์เดียวกันในการโจมตีเว็บไซต์ที่กำลังทำธุรกรรม

ขอขอบคุณข้อมูลจาก
  1.  https://www.techtalkthai.com/how-to-prevent-csrf/
  2.  https://blog.wisered.com/%E0%B8%8A%E0%B9%88%E0%B8%AD%E0%B8%87%E0%B9%82%E0%B8%AB%E0%B8%A7%E0%B9%88%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B9%80%E0%B8%A0%E0%B8%97-cross-site-script-forgery-csrf/
  3.  http://www.cs.utexas.edu/~shmat/courses/cs378_spring09/zeller.pdf


No comments:

Post a Comment