CSRF และการป้องกัน

CSRF protection ในโปรแกรมคลินิก kksEHR

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

CSRF

CSRF ย่อมาจาก Cross-Site Request Forgery (บางทีเรียกว่า “XSRF”) คือการโจมตีทางไซเบอร์ที่แฮกเกอร์ “หลอก” ให้เบราว์เซอร์ของคุณ ส่งคำสั่งในนามของคุณไปยังเว็บไซต์ที่คุณล็อกอินอยู่ โดยที่คุณไม่รู้ตัวเลย ถ้าไม่มีระบบป้องกัน Application server หรือโปรแกรมคลินิก ไม่สามารถแยกแยะระหว่างคำขอที่ได้รับอนุญาตอย่างถูกต้องและคำขอที่ปลอมแปลง

พูดง่าย ๆ คือ: แฮกเกอร์ใช้ “ความน่าเชื่อถือ” ที่เว็บไซต์มีต่อเบราว์เซอร์ของคุณ เพื่อทำสิ่งที่ตัวเองต้องการ

     ยกตัวอย่างการทำธุรกรรม

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

ระบบป้องกัน CSRF Token ทำงานอย่างไร?

I. เมื่อคุณเปิดหน้าเว็บ เซิร์ฟเวอร์สร้าง Token ลับเฉพาะสำหรับเซสชันนั้น

   Token คือรหัสแบบสุ่มที่ไม่ซ้ำกัน เดาไม่ได้

II. Token ถูกฝังอยู่ในฟอร์มหรือคำขอทุกครั้งที่คุณกดปุ่ม

   Jakarta Token: xgNC89/GJXsF/PtetEB8aQZVc0c8F30R61j...

   Session ID: ada48704c852f14035b160e5...

III. เซิร์ฟเวอร์ตรวจสอบว่า Token ที่ส่งมาตรงกับที่สร้างไว้หรือไม่

   หากไม่ตรง คำสั่งนั้นจะถูกปฏิเสธทันที

IV. เว็บไซต์อื่นไม่มีทางรู้ Token ลับนี้ได้

   ทำให้การโจมตีแบบ CSRF ไม่สามารถสำเร็จได้

อธิบายตามแสดงในรูปข้างล่างนี้

CSRF protection in kksEHR

สิ่งที่ผู้ใช้ควรทำเพิ่มเติม

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

นอกจากนี้ ผู้ใช้สามารถเพิ่มความปลอดภัยมากขึ้นด้วย การใช้ 2FA ซึ่งมาพร้อมกับระบบ kksEHR

สรุป

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