
บทความนี้ได้นำเนื้อหามาจาก Mendix Blog มาแปลเพื่อให้ทุกท่านที่ใช้งาน Mendix ในประเทศไทยได้อ่านและทำความเข้าใจ แนวทางในการนำ Mendix ไปใช้ได้อย่างปลอดภัย
การดูแลให้แอปพลิเคชัน Mendix ของคุณมีความปลอดภัย เป็นความรับผิดชอบร่วมกันระหว่าง Mendix และลูกค้าที่ใช้งานแพลตฟอร์มนี้
Mendix มีหน้าที่รับผิดชอบด้านความปลอดภัยของแพลตฟอร์มและเนื้อหาที่รองรับโดยแพลตฟอร์ม Mendix Runtime จะปกป้องแอปพลิเคชันและข้อมูลของคุณตามโมเดลที่คุณกำหนดไว้ ส่วน Mendix Cloud ดูแลด้านความปลอดภัยในระดับโครงสร้างพื้นฐาน (Infrastructure Level)
ในฐานะลูกค้า พาร์ตเนอร์ หรือผู้พัฒนา (Mendix Maker) คุณมีหน้าที่รับผิดชอบ ด้านความปลอดภัยของแอปพลิเคชันที่คุณสร้างและดูแลบนแพลตฟอร์ม Mendix เรารวบรวม 5 แนวทางปฏิบัติที่คุณสามารถนำไปใช้ เพื่อเพิ่มความปลอดภัยให้กับระบบแอปพลิเคชันของคุณ
#1 เปิดการใช้งาน Single Sign On (SSO)
Identity providers เช่น Entra Id (ก่อนหน้านี้เรียก Azure AD) เป็นตัวกลางในการยืนยันตัวตน และตัวกำหนดสิทธิ์ในการเข้าใช้งาน มีความปลอดภัยมากกว่า มีการใช้งานที่ง่าย และมีความถูกต้องมากกว่าการใช้งาน Username และ Password แบบเดิมเป็นอย่างมาก ไม่ให้เรารักในการใช้ SSO ได้อย่างไร ในเมื่อเราไม่ต้องจำ Password หลาย ๆ ที่ ไม่ต้องกังวลว่าถ้าพนักงานเก่ายังเข้าระบบได้หรือไม่ และไม่ต้องกำหนด Password Policies เอง ดังนั้นอย่ารอช้า เปิดใช้งาน SSO ด้วย Mendix กันเลย!
โดยการ ไปตั้งค่า Single Sign-On ใน Control Center คุณสามารถเปลี่ยนการเช้าใช้งานด้วยการ Login ปกติไปใช้งาน Identity Provider ของคุณ โดยการเข้าไปที่ Control Center → Security → Single Sign On แท็ป และเชื่อมต่อไปยัง Identiy Provider ด้วย Mendix ทำตามคำแนะนำเพียง 3 ขั้นตอนเพียงเท่านี้ก็เรียบร้อย ไม่เพียงแค่เข้าใช้งานที่มีความปลอดภัยและยังมีความง่ายต่อผู้ใช้งานด้วย มันจะเป็นมาตรฐานหลักในการใช้งานในระดับองค์กรของคุณ Enterprise Policies เช่น การทำ 2FA และการเปลี่ยน Password เป็นประจำ โดยที่ไปกำหนดที่ Identity Provider ก็จะมีผลอัตโนมัติในการเข้าใช้งาน Mendix ไปด้วย มันเป็นทางเลือกที่แสนง่ายในการทำให้การใช้งานมีความปลอดภัยในแพลตฟอร์มของคุณ อ่านรายละเอียดเพิ่มเติมได้ที่นี่

#2 ใช้ Modules เช่น SSO, SCIM, อื่น ๆ
นอกจากผู้ใช้งานแพลตฟอร์ม (เราเรียก makers เหล่านี้ว่าผู้สร้างและผู้จัดการแอปพลิเคชั่น) ก็ยังมี End Users ซึ่งเป็นผู้ใช้งานในแอปพลิเคชั่นของคุณ ต้องการประสบการณ์ในเรื่องของความปลอดภัย ราบรื่น และความต่อเนื่องในการใช้งานนั้นก็สำคัญเป็นอย่างมากกับ End Users ไม่แพ้กับผู้ใช้งานแพลตฟอร์มเช่นกัน เราจะทำแบบนั้นได้อย่างไร?
มันง่ายมาก Mendix ได้เตรียมสิ่งเหล่านี้ให้อยู่ใน marketplace module ซึ่ง Mendix มี SAML และ OIDC SSO module ที่จะช่วยให้การยืนยันตัวตนด้วย SAML 2.0 และ Open Id Connect ไว้ให้ โมดูลเหล่านี้เปิดให้ apps สามารถเข้าใช้งานผ่าน Identity Provider และรับประสบการณ์ในการใช้ SSO
หากต้องการยกระดับมากขึ้น คุณสามารถจัดการการเพิ่มและลบผู้ใช้งาน (onboard/offboard) ให้สอดคล้องกับระบบ Identity Provider ขององค์กร โดยใช้โมดูล LDAP หรือ SCIM เลือกกลไกการล็อกอินและการจัดการผู้ใช้งานให้เหมาะสมกับนโยบายขององค์กร และแนะนำให้ผู้พัฒนา (makers) ทุกคนใช้โมดูลเหล่านี้ในแอป Mendix ของตน คุณยังสามารถตั้งค่าให้โมดูลที่องค์กรเลือกใช้เป็น ‘แนะนำ’ (Recommended) ได้ผ่านฟีเจอร์ Marketplace Curation ใน Control Center เพื่อให้ makers ทุกคนทราบแนวทางที่องค์กรเลือกใช้
#3 สมัครรับการแจ้งเตือนด้านความปลอดภัย และกำหนดผู้ติดต่อด้านความปลอดภัย
แพลตฟอร์ม Low-code ใช้ “บล็อกประกอบ” (building blocks) ที่นำกลับมาใช้ซ้ำได้ เพื่อเร่งการพัฒนาแอปพลิเคชัน เช่น คอนเทนต์จาก Marketplace แต่เมื่อเวลาผ่านไป บล็อกหรือคอมโพเนนต์เหล่านี้อาจได้รับผลกระทบจากช่องโหว่ด้านความปลอดภัย ซึ่งอาจกระทบถึงความปลอดภัยของแอปคุณได้ แล้วคุณจะรักษาความปลอดภัยได้อย่างไร? ไม่ต้องกังวล – Mendix ดูแลเรื่องนี้ให้คุณแล้ว
Mendix มีการตรวจสอบความปลอดภัยของแพลตฟอร์มและคอมโพเนนต์ที่รองรับโดยแพลตฟอร์มอย่างต่อเนื่อง หากพบช่องโหว่ใด ๆ Mendix จะเผยแพร่ Security Advisory โดยจะระบุคะแนน CVSS (Common Vulnerability Scoring System) และแนวทางแก้ไข โดยทั่วไป วิธีการแก้ไขคือการ อัปเกรดคอมโพเนนต์ไปยังเวอร์ชันที่มีการอุดช่องโหว่แล้ว
การแจ้งเตือนด้านความปลอดภัย (Security Advisories) จะถูกเผยแพร่ผ่าน อกสารอย่างเป็นทางการของ Mendix ใน Community Slack (ช่อง #securityadvisories) RSS Feed แนะนำให้สมัครรับการแจ้งเตือนเหล่านี้ เพื่อจะได้ทราบทันทีเมื่อมีช่องโหว่ใหม่ถูกค้นพบ
นอกจากนี้ ควรตั้งกระบวนการจัดการช่องโหว่ต่าง ๆ ในทีมของคุณ ซึ่งมักจะประกอบด้วย:
- การตรวจพบช่องโหว่ – ระบุว่าคอมโพเนนต์ใดมีปัญหา
- การวิเคราะห์ – แอปใดได้รับผลกระทบ และมีความรุนแรงมากน้อยแค่ไหน
- การแก้ไข – จะลดความเสี่ยงได้อย่างไร โดยอยู่ภายใต้ SLA (Service Level Agreement) ที่ทีม Security ขององค์กรกำหนดไว้
ประสานงานกับทีม IT และ SecOps เพื่อกำหนดกระบวนการที่เหมาะสม และสุดท้าย คุณสามารถตั้ง Security Contact ไว้ใน Control Center เพื่อให้บุคคลนั้นได้รับอีเมลแจ้งเตือนทันทีเมื่อมีช่องโหว่ร้ายแรงถูกตรวจพบ

#4 ใช้ Software Composition
วันหนึ่ง คุณได้รับการแจ้งเตือนเกี่ยวกับช่องโหว่ด้านความปลอดภัยของคอมโพเนนต์จาก Marketplace โดยมีคะแนนความรุนแรงสูงถึง 9 จาก 10 ขั้นตอนถัดไปของคุณคือ: ตรวจสอบว่าแอป Mendix ของคุณมีการใช้คอมโพเนนต์ตัวนี้หรือไม่? ถ้ามี — มีกี่แอป? และแอปไหนบ้าง?
เพื่อทำการวิเคราะห์ผลกระทบ (Impact Analysis) นี้ คุณสามารถใช้ฟีเจอร์ใหม่ล่าสุดที่ชื่อว่า Software Composition ไปที่ Control Center > Software Composition > แท็บ All Components ที่นั่น คุณจะเห็นรายการ คอมโพเนนต์ทั้งหมดที่ถูกใช้งานในระบบแอปพลิเคชันของคุณ พร้อมข้อมูลว่าแต่ละคอมโพเนนต์ถูกใช้ในแอปไหนบ้าง

จากนั้นเข้าไปดูรายละเอียดของคอมโพเนนต์ต่าง ๆ ดูผลกระทบของแอปพลิเคชั่นต่าง ๆ และแจ้งเตือนไปให้ Technical Contacts ทราบเพื่อทำการอัพเกรดที่จำเป็น เพื่อลดความเสี่ยงด้านความปลอดภัยจากช่องโหว่นั้น ฟีเจอร์ Software Composition ยังมีให้ใช้ใน Mendix Portal เพื่อให้ผู้พัฒนาสามารถเห็นในส่วนนี้ด้วย
เพียงไม่กี่ขั้นตอนง่าย ๆ ที่จะช่วยให้คุณปกป้องระบบแอปพลิเคชันของคุณให้ปลอดภัยยิ่งขึ้น ลองใช้งานวันนี้เลย!
#5 ปฏิบัติตามแนวทางที่ดีที่สุด (Best Practices) ด้านความปลอดภัยของแอปพลิเคชัน และการจัดการความปลอดภัยของผู้ใช้งานแบบไม่ระบุตัวตน (Anonymous Users)
ความปลอดภัยของแอปพลิเคชัน และความปลอดภัยของผู้ใช้งานแบบไม่ระบุตัวตน (Anonymous Users) เป็นสองประเด็นสำคัญที่ควรคำนึงถึงเมื่อคุณพัฒนาแอปพลิเคชันใน Studio Pro ในเรื่องของความปลอดภัยของแอป เรามี รายการแนวปฏิบัติที่ดีที่สุด (Best Practices) อย่างครบถ้วนให้ศึกษาเพิ่มเติม ซึ่งมีบางข้อที่อยากขอเน้นเป็นพิเศษ ดังนี้:
- การกำหนด Access Rules: นี่คือปัจจัยพื้นฐานด้านความปลอดภัยที่ขาดไม่ได้ Access Rules จะตรวจสอบว่า User Role นั้นมีสิทธิ์เข้าถึงข้อมูลที่ร้องขอหรือไม่
- การใช้ Constants ในแอปของคุณ: หากมีข้อมูลสำคัญ เช่น รหัสผ่าน หรือคีย์ที่ต้องใช้ภายในแอป ควรจัดเก็บไว้ใน Constants เพื่อ ควบคุมการเข้าถึง โดยสามารถกำหนดค่าได้แยกตามแต่ละ Environment (Dev, Test, Prod)
- การลบคอมโพเนนต์และ Microflow ที่ไม่ได้ใช้งานออกจากแอป: อีกหนึ่งปัจจัยพื้นฐานที่ควรใส่ใจ ควรล้าง (clean up) องค์ประกอบของโมเดลที่ไม่ได้ใช้งานแล้วเป็นระยะ ๆ สิ่งนี้จะช่วยให้แอปของคุณดูแลรักษาได้ง่ายขึ้น และ ลดความเสี่ยง จากช่องโหว่ที่อาจหลงเหลืออยู่โดยไม่รู้ตัว
ต่อไป เรามาพูดถึง ผู้ใช้งานแบบไม่ระบุตัวตน (Anonymous Users) กันบ้าง — หมายถึง ผู้ใช้ ที่สามารถเข้าถึงแอปพลิเคชัน Mendix ของคุณได้ โดยไม่ต้องล็อกอินหรือใส่รหัสผ่าน ลองจินตนาการดูว่า หากคุณเปิดให้ anonymous users เข้าถึงหลาย ๆ entity ใน Domain Model ของคุณ การตั้งค่านี้เท่ากับคุณ เปิดความเสี่ยง ให้ผู้ไม่หวังดีสามารถเข้าถึงข้อมูลสำคัญในแอปได้โดยไม่ตั้งใจ ดังนั้น หลักการสำคัญคือ ให้สิทธิ์ anonymous users น้อยที่สุดเท่าที่จำเป็น เรามี แนวทางแนะนำ (Guidelines) ที่ครบถ้วนไว้ให้ศึกษาเพิ่มเติมแล้วที่นี่
อย่ารอช้า!
ทำความเข้าใจในการมีความรับผิดชอบร่วมกันของคุณ ในการสร้างระบบแอปที่ปลอดภัย และนำเคล็ดลับเชิงปฏิบัติข้างต้นไปใช้งาน หากยังไม่ได้ดำเนินการไว้แล้ว
นี่จะเป็นข้อมูลที่จะช่วยคุณได้:
- Mendix Academy Course – Configure advanced security
- Mendix certifications & more – Mendix Platform Security & Compliance | Mendix