การโจมตี CSRF คืออะไรและคุณจะป้องกันได้อย่างไร?

การโจมตี CSRF คืออะไรและคุณจะป้องกันได้อย่างไร?

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

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

มาดูกันว่าการโจมตี CSRF คืออะไรและวิธีที่เป็นไปได้ที่คุณสามารถป้องกันตัวเองจากการโจมตีนี้ในฐานะนักพัฒนาหรือในฐานะผู้ใช้

การโจมตี CSRF ส่งผลต่อคุณอย่างไร?

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

ตัวอย่างเช่น การเปิดใช้งานกระบวนการต่อต้าน CSRF จะป้องกันการโต้ตอบที่เป็นอันตรายข้ามโดเมน

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

ด้วยการจัดการ ID ผู้โจมตีสามารถเปลี่ยนเส้นทางผู้เยี่ยมชมไปยังหน้าเว็บอื่นหรือใช้ประโยชน์จากวิธีการวิศวกรรมสังคมเช่น อีเมลเพื่อส่งลิงก์ กระตุ้นให้เหยื่อดาวน์โหลดซอฟต์แวร์ที่เป็นอันตราย

เมื่อเหยื่อดำเนินการดังกล่าวแล้ว จะส่งคำขอ HTTP ไปยังหน้าบริการของผู้ใช้และให้สิทธิ์การดำเนินการตามคำขอแก่ผู้โจมตี ที่สามารถทำลายล้างให้กับผู้ใช้ที่ไม่สงสัย

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

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

วิธีที่ผู้โจมตีแย่งชิงเซสชันของคุณด้วย CSRF: ตัวอย่าง

เป้าหมายหลักของการโจมตี CSRF คือการดำเนินการทางเว็บที่เกี่ยวข้องกับการตรวจสอบสิทธิ์ของผู้ใช้ การจะประสบความสำเร็จได้นั้น จำเป็นต้องมีการกระทำที่ไม่ตั้งใจจากเหยื่อ

ระหว่างการโจมตี CSRF การกระทำ GET, DELETE และ PUT รวมถึงคำขอ POST ที่มีช่องโหว่เป็นเป้าหมายหลักของผู้โจมตี

ลองดูความหมายของคำเหล่านั้น:

  • GET:คำขอเพื่อรวบรวมผลลัพธ์จากฐานข้อมูล เช่น การค้นหาโดย Google
  • POST:โดยทั่วไปแล้วสำหรับการส่งคำขอผ่านแบบฟอร์มบนเว็บ คำขอ POST เป็นเรื่องปกติระหว่างการลงทะเบียนหรือเข้าสู่ระบบของผู้ใช้ หรือที่เรียกว่าการตรวจสอบสิทธิ์
  • DELETE:เพื่อลบทรัพยากรออกจากฐานข้อมูล คุณทำเช่นนี้ทุกครั้งที่คุณลบบัญชีของคุณออกจากบริการเว็บใดบริการหนึ่ง
  • PUT:คำขอ PUT จะแก้ไขหรืออัปเดตทรัพยากรที่มีอยู่ เป็นตัวอย่างการเปลี่ยนชื่อ Facebook ของคุณ

ในทางปฏิบัติ ผู้โจมตีใช้การจี้เซสชันเพื่อสำรองการโจมตี CSRF เมื่อใช้ชุดค่าผสมนี้ ผู้โจมตีสามารถใช้จี้เพื่อเปลี่ยนที่อยู่ IP ของเหยื่อ

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

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

ตัวอย่าง GET Request CSRF Attack

ลองนึกภาพการพยายามชำระเงินออนไลน์ผ่านแพลตฟอร์มอีคอมเมิร์ซที่ไม่ปลอดภัย เจ้าของแพลตฟอร์มใช้คำขอ GET เพื่อดำเนินการธุรกรรมของคุณ ข้อความค้นหา GET นั้นอาจมีลักษณะดังนี้:

https://websiteurl/pay?amount=$10&company=[company ABC's account]

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

https://websiteurl/pay?amount=$20000&company=[attacker's account]

เมื่อคุณคลิกลิงก์ไปยังคำขอ GET ที่แก้ไขแล้ว คุณจะโอนไปยังบัญชีของผู้โจมตีโดยไม่ตั้งใจ

การทำธุรกรรมผ่านคำขอ GET เป็นแนวปฏิบัติที่ไม่ดี และทำให้กิจกรรมเสี่ยงต่อการถูกโจมตี

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

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

ในการจี้คำขอ POST ให้สำเร็จ ผู้โจมตีจำเป็นต้องมี ID เซสชันปัจจุบันของคุณ แบบฟอร์มที่มองไม่เห็นซึ่งจำลองแบบบางรูปแบบ และบางครั้ง วิศวกรรมทางสังคมเพียงเล็กน้อย

ตัวอย่างเช่น แบบฟอร์มคำขอ POST อาจมีลักษณะดังนี้:





 

อย่างไรก็ตาม ผู้โจมตีสามารถสลับข้อมูลประจำตัวของคุณโดยสร้างหน้าใหม่และแก้ไขแบบฟอร์มด้านบนเป็น:





 

ในแบบฟอร์มที่ได้รับการจัดการ ผู้โจมตีตั้งค่าของช่องจำนวนเงินเป็น "30000" สลับหมายเลขบัญชีของผู้รับเป็นหมายเลข ส่งแบบฟอร์มเมื่อโหลดหน้าเว็บ และยังซ่อนช่องแบบฟอร์มจากผู้ใช้อีกด้วย

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

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

อีกทางหนึ่ง ผู้โจมตีสามารถร่างอีเมลแบบฝัง HTML ที่แจ้งให้คุณคลิกลิงก์เพื่อดำเนินการส่งแบบฟอร์มการโหลดหน้าเว็บแบบเดียวกัน

การดำเนินการอื่นที่เสี่ยงต่อการโจมตี CSRF คือชื่อผู้ใช้หรือรหัสผ่าน ตัวอย่างของคำขอ PUT ผู้โจมตีเลียนแบบแบบฟอร์มคำขอของคุณและแทนที่ที่อยู่อีเมลของคุณด้วยอีเมลของพวกเขา

จากนั้นพวกเขาจะขโมยเซสชันของคุณและเปลี่ยนเส้นทางคุณไปยังหน้าหรือส่งอีเมลที่แจ้งให้คุณคลิกลิงก์ที่น่าสนใจ

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

วิธีป้องกันการโจมตี CSRF ในฐานะนักพัฒนา

การโจมตี CSRF คืออะไรและคุณจะป้องกันได้อย่างไร?

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

ที่เกี่ยวข้อง: คำแนะนำฟรีเพื่อทำความเข้าใจความปลอดภัยดิจิทัลและปกป้องความเป็นส่วนตัวของคุณ

เฟรมเวิร์กแบ็กเอนด์สมัยใหม่จำนวนมากเสนอการรักษาความปลอดภัยจาก CSRF ดังนั้น หากคุณต้องการหลีกเลี่ยงเทคนิคในการเสริมความแข็งแกร่งให้กับ CSRF ด้วยตัวคุณเอง คุณสามารถจัดการกับมันได้อย่างง่ายดายโดยใช้เฟรมเวิร์กฝั่งเซิร์ฟเวอร์ที่มาพร้อมกับโทเค็นต่อต้าน CSRF ในตัว

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

การใช้ระบบการตรวจสอบสิทธิ์แบบสองปัจจัย (2FA) สำหรับการเรียกใช้ธุรกรรมบนเว็บแอปของคุณยังช่วยลดโอกาสของ CSRF

เป็นไปได้ที่จะเริ่มต้น CSRF ผ่าน cross-site scripting (XSS) ซึ่งเกี่ยวข้องกับการแทรกสคริปต์ลงในฟิลด์ผู้ใช้ เช่น แบบฟอร์มความคิดเห็น เพื่อป้องกันสิ่งนี้ เป็นการดีที่จะเปิดใช้งานการหลีกเลี่ยง HTML อัตโนมัติในช่องแบบฟอร์มผู้ใช้ทั้งหมดทั่วทั้งเว็บไซต์ของคุณ การดำเนินการดังกล่าวจะป้องกันไม่ให้ฟิลด์ในฟอร์มตีความองค์ประกอบ HTML

วิธีป้องกันการโจมตี CSRF ในฐานะผู้ใช้

ในฐานะผู้ใช้บริการเว็บที่เกี่ยวข้องกับการตรวจสอบสิทธิ์ คุณมีส่วนในการป้องกันผู้โจมตีจากการขโมยข้อมูลประจำตัวและเซสชันของคุณผ่าน CSRF เช่นกัน

ตรวจสอบให้แน่ใจว่าคุณใช้บริการเว็บที่เชื่อถือได้ระหว่างกิจกรรมที่เกี่ยวข้องกับการโอนเงิน

นอกจากนี้ ใช้  เว็บเบราว์เซอร์ที่ปลอดภัยซึ่งปกป้องผู้ใช้จากการเปิดเผยเซสชัน เช่นเดียวกับเครื่องมือค้นหาที่ปลอดภัยซึ่งป้องกันการรั่วไหลของข้อมูลการค้นหา

ที่เกี่ยวข้อง:  เครื่องมือค้นหาส่วนตัวที่ดีที่สุดที่เคารพข้อมูลของคุณ

ในฐานะผู้ใช้ คุณยังสามารถพึ่งพาผู้ตรวจสอบสิทธิ์บุคคลที่สาม เช่นGoogle Authenticator หรือทางเลือกอื่นในการยืนยันตัวตนของคุณทางเว็บ

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

เพิ่มความปลอดภัยให้กับเว็บของคุณ

นักพัฒนาซอฟต์แวร์จำเป็นต้องทดสอบเว็บแอปเป็นประจำเพื่อหาการละเมิดความปลอดภัยในระหว่างการพัฒนาและการปรับใช้

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


กรอบงานความปลอดภัยทางไซเบอร์ของ NIST คืออะไร?

กรอบงานความปลอดภัยทางไซเบอร์ของ NIST คืออะไร?

การจัดเก็บข้อมูลออนไลน์กลายเป็นเรื่องปกติ องค์กรจำนวนมากขึ้นกำลังลากส่วนนี้เพื่อให้มีความเกี่ยวข้องในยุคของการเชื่อมต่อถึงกันนี้

NordVPN กับ ExpressVPN: VPN ใดที่คุณควรใช้ในปี 2021

NordVPN กับ ExpressVPN: VPN ใดที่คุณควรใช้ในปี 2021

หากคุณต้องการลงทุนใน VPN NordVPN และ ExpressVPN เป็นตัวเลือกที่ชัดเจน ทั้งสองรุ่นมีความเร็วสูงและทั้งคู่ต่างก็มีประวัติการรีวิวจากลูกค้าในเชิงบวกมาอย่างยาวนาน

ปล. 1Password ให้คุณแชร์รหัสผ่านด้วยลิงก์เดียว

ปล. 1Password ให้คุณแชร์รหัสผ่านด้วยลิงก์เดียว

ตัวจัดการรหัสผ่านเป็นวิธีที่ยอดเยี่ยมในการจัดการกับข้อมูลการเข้าสู่ระบบจำนวนมากที่เราทุกคนต้องเผชิญในฐานะส่วนหนึ่งของชีวิตอินเทอร์เน็ตยุคใหม่

การทดสอบการเจาะระบบคืออะไรและจะปรับปรุงความปลอดภัยเครือข่ายได้อย่างไร

การทดสอบการเจาะระบบคืออะไรและจะปรับปรุงความปลอดภัยเครือข่ายได้อย่างไร

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

ZenMate VPN รีวิว: การทำสมาธิกับความเป็นส่วนตัวของคุณ

ZenMate VPN รีวิว: การทำสมาธิกับความเป็นส่วนตัวของคุณ

ZenMate VPN เป็นตัวเลือกยอดนิยมในหมู่ผู้ใช้ ซึ่งโฆษณานโยบายการไม่บันทึกข้อมูลการใช้งานและฟังก์ชันเพิ่มเติมผ่านส่วนขยายเบราว์เซอร์ หากคุณต้องการทราบว่ามันคุ้มค่ากับเวลาของคุณหรือไม่ โปรดอ่านรีวิว ZenMate VPN ฉบับเต็มเพื่อดูคำตัดสินของเรา

Endpoint Security คืออะไรและเหตุใดจึงสำคัญ

Endpoint Security คืออะไรและเหตุใดจึงสำคัญ

การโจมตีของมัลแวร์เพิ่มขึ้นและก้าวหน้ามากขึ้นในช่วงหลัง องค์กรต่างต้องแบกรับความท้าทายในการปกป้องเครือข่ายไอทีของตนจากภัยคุกคามทางไซเบอร์อย่างต่อเนื่อง

TikTok ถูกแบนในสหรัฐอเมริกาหรือไม่?

TikTok ถูกแบนในสหรัฐอเมริกาหรือไม่?

แอพแชร์วิดีโอ TikTok เป็นปรากฏการณ์ นับตั้งแต่ก่อตั้งขึ้นในปี 2560 โซเชียลเน็ตเวิร์กมีผู้ใช้งานเกือบ 90 ล้านคนในสหรัฐอเมริกา และมีการดาวน์โหลดแอปประมาณสองพันล้านครั้ง

Norton และ Avast Merge: สิ่งนี้หมายความว่าอย่างไรสำหรับความปลอดภัยออนไลน์

Norton และ Avast Merge: สิ่งนี้หมายความว่าอย่างไรสำหรับความปลอดภัยออนไลน์

ในเดือนสิงหาคม พ.ศ. 2564 มีการประกาศควบรวมกิจการระหว่าง NortonLifeLock และ Avast

ผลกระทบของการแฮ็ก SolarWinds คืออะไร?

ผลกระทบของการแฮ็ก SolarWinds คืออะไร?

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

VPN ใดบ้างที่รองรับ WireGuard

VPN ใดบ้างที่รองรับ WireGuard

WireGuard เป็นโปรโตคอล VPN ที่ค่อนข้างใหม่ซึ่งปกป้องกิจกรรมออนไลน์ของคุณโดยใช้การเข้ารหัสที่ล้ำสมัย มีจุดมุ่งหมายเพื่อให้ความเป็นส่วนตัวมากขึ้น ความเร็วในการเชื่อมต่อที่เร็วขึ้น และประหยัดพลังงานมากกว่าโปรโตคอลที่มีอยู่