Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

MongoDB Security Best Practices: ปกป้องข้อมูลของคุณทันที

การเริ่มต้นใช้งาน MongoDB® นั้นง่าย แต่คุณอาจเจอปัญหาหลายอย่างกับฟีเจอร์ใหม่ๆ ที่ pojawิดเรื่อยๆ พื้นที่ที่น่ากังวลหนึ่งคือ Security ซึ่งเป็นหัวข้อหลักของบล็อกนี้

บทนำ

การรักษาความปลอดภัยกับแอปพลิเคชัน MongoDB มีความสำคัญสูงสุดสำหรับแอปพลิเคชันฐานข้อมูล คุณต้องสามารถระบุช่องโหว่และรู้ประเภทและวิธีการรักษาความปลอดภัยของฐานข้อมูลหรือแอปพลิเคชัน เพื่อปกป้องฐานข้อมูลจากภคุกขัย การปฏิบัติตาม Security Technical Implementation Guide (STIG) อย่างเคร่งครัดช่วยให้ MongoDB ปลอดภัยได้ในระดับมาก การตรวจสอบ (Auditing) เป็นประจำก็ช่วยระบุข้อบกพร่องสำคัญในระบบหรือฐานข้อมูล เพื่อให้คุณสามารถปกป้องระบบหรือฐานข้อมูลจากภัยคุกคามต่างๆ

บล็อกนี้ครอบคลุม 10 เคล็ดลับสำหรับการรักษาความปลอดภัย MongoDB ให้ปลอดภัยและมั่นคง

เคล็ดลับ 1: เปิดใช้งาน Authentication เสมอ

การเปิดใช้งาน Authentication เป็นแนวทางปฏิบัติที่ดีและวิธีง่ายที่สุดในการรักษาความปลอดภัย MongoDB จำไว้ว่า บางครั้งฟีเจอร์ความปลอดภัยที่ง่ายที่สุดที่เปิดใช้งานสามารถปกป้องระบบได้สูงสุด และช่วยประหยัดองค์กรจาก Data Breach ที่อาจเสียค่าใช้จ่ายหลายล้านดอลลาร์

เพิ่มบรรทัดต่อไปนี้ในไฟล์ config mongod.conf เพื่อเปิดใช้งาน Authentication ใน MongoDB:

Security: Authentication: on 

ภาพต่อไปนี้แสดง Security ระดับ Database:

MongoDB Security Best Practices: ปกป้องข้อมูลของคุณทันที

แหล่งที่มารูปภาพ: https://www.slideshare.net

เคล็ดลับ 2: ใช้รหัสผ่านที่ซับซ้อน

เคล็ดลับนี้เป็นเพียง Common Sense ในส่วนใหญ่ รหัสผ่านพื้นฐานที่ง่ายที่สุดที่ใช้สำหรับแอปพลิเคชันหรือฐานข้อมูลคือ 12345 หรือ ABC123 อย่างไรก็ตาม รหัสผ่านง่ายๆ นี้คืออาวุธ pilihanสำหรับการแฮ็กระบบและขโมยข้อมูลมีค่า

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

เคล็ดลับ 3: Authorize ผู้ใช้ด้วย Roles

MongoDB ไม่เปิดใช้งาน Access Control โดยค่าเริ่มต้น คุณสามารถเปิดใช้งาน Authorization โดยใช้คีย์เวิร์ด --auth เมื่อเริ่มต้น MongoDB Shell

ไม่ใช่ทุกคนที่ควรบริหารฐานข้อมูล แม้ฐานข้อมูลจะมี Authentication เปิดอยู่ อย่ามอบสิทธิ์ Admin ให้ทุกคน แทนที่จะเป็น Best Practice ควรสร้าง Roles บางอย่างเพื่อ Authorize ผู้ใช้

การตั้งค่า User Roles บางอย่างลดความซับซ้อนสำหรับแต่ละผู้ใช้และลดความเสี่ยงของการบุกรุกบัญชีที่ทำให้เกิดภัยภายหลังมาก

เพื่อสร้างผู้ใช้พร้อม Role ให้รันคำสั่งต่อไปนี้:

db.createUser({user:"admin", pwd:"X1eL#pM0C12", roles:[{role:"userAdminAnyDatabase", db:"admin"}]}) 

เคล็ดลับ 4: เพิ่ม Replication Keyfile

การเปิดใช้งาน Replication Keyfile จะเปิดใช้งาน Authentication ใน MongoDB อัตโนมัติ ด้วยฟีเจอร์นี้เปิดใช้งาน เฉพาะ Host ที่ติดตั้งไฟล์นี้เท่านั้นที่สามารถเข้าร่วม Replica Set ได้

Replication Keyfile ที่เปิดใช้งานยังรับประกันการเข้ารหัสข้อมูลใน MongoDB ซึ่งให้ชั้นการปกป้องเพิ่มเติม คุณสามารถสร้าง Keyfile ด้วยวิธีใดก็ได้ที่คุณเลือก คัดลอก Keyfile ไปยังสมาชิก Replica Set และเริ่ม Replica Set ด้วย Access Control ที่เปิดใช้งาน

เพิ่มบรรทัดต่อไปนี้ใน mongod.conf เพื่อเปิดใช้งาน Replication Keyfile:

Security: KeyFile: <Path to KeyFile> 

ภาพต่อไปนี้แสดง Keyfile Authentication:

MongoDB Security Best Practices: ปกป้องข้อมูลของคุณทันที

แหล่งที่มารูปภาพ: https://www.slideshare.net

เคล็ดลับ 5: อย่าใช้ Default Ports

อย่าใช้ Default Ports ใดๆ ในการเชื่อมต่อกับ MongoDB Instances ของคุณ แฮ็กเกอร์ส่วนใหญ่สแกนเฉพาะ Port หมายเลขมาตรฐานหรือ Default ก่อนจะโจมตี Ports Default ที่ MongoDB ใช้ได้แก่ 27017, 27018, 27019, 2700X และอื่นๆ

การเปลี่ยน Default Port Numbers ใน mongod.conf นั้นง่ายมาก

เคล็ดลับ 6: มีแนวทาง Backup ที่ดี

ตรวจสอบให้แน่ใจว่าคุณมีสำเนาข้อมูลล่าสุด เพื่อให้ Operations Log (Oplog) พร้อมสำหรับ Point-in-Time (PIT) Recovery จากเวลาที่เกิดการโจมตี

พร้อมกับ Disaster Recovery Setup ที่มั่นคงสำหรับการโจมตีทุกประเภท

เคล็ดลับ 7: ปิดการเข้าถึงสาธารณะไปยังฐานข้อมูลของคุณ

ตรวจสอบแอปพลิเคชันของคุณว่าต้องการการเข้าถึงฐานข้อมูลจากบัญชีภายนอกหรือไม่ หากมีบัญชีแบบนี้ ให้ตั้งค่าให้ใช้ Authentication และ Encryption

คุณสามารถปิดการเข้าถึงสาธารณะได้โดยการ Bind Host IP Addresses ใน mongod.conf

เคล็ดลับ 8: เปิดใช้งาน Firewall Rules ระดับ OS และใช้ VPN

Firewall ให้ชั้นความปลอดภัยเพิ่มเติมในการกรองและควบคุมการเข้าถึงระบบผ่านเครือข่าย บน MongoDB Servers ให้เปิดใช้งาน Firewall Rules บน Hosts หรือ Security Groups ใน Cloud Hosting

ตรวจสอบให้แน่ใจว่าคุณให้สิทธิ์เข้าถึง MongoDB Instances เฉพาะแหล่งที่เชื่อถือได้ บล็อก IP Addresses หรือ Port Ranges สำหรับ Servers เพื่อทำให้ Cloud Hosting ปลอดภัยขึ้น

ใช้ VPN เพื่อให้การเข้าถึงที่ได้รับการรับรองไปยังระบบฐานข้อมูลของคุณสำหรับระดับการเข้ารหัสต่างๆ การยืนยันตัวตนหลายระดับ และ Authorization สำหรับทุก Clients

เคล็ดลับ 9: ตรวจสอบ (Audit) ระบบฐานข้อมูลเป็นประจำเพื่อปัญหาด้านความปลอดภัย

Audit ฐานข้อมูลหรือระบบ Host เป็นประจำเพื่อดูว่ามีการบุกรุกหรือบัญชีผู้ใช้ใดได้รับสิทธิ์พิเศษมากกว่าที่จำเป็น ตาม Roles และ Privileges ของพวกเขาหรือไม่

หากมีการมอบสิทธิ์พิเศษเพื่อการทดสอบ ต้องแน่ใจว่าถูกเพิกถอนเพื่อรักษาความปลอดภัยระบบใหม่

เคล็ดลับ 10: ตรวจสอบและทดสอบการเข้าถึงฐานข้อมูลจากภายนอก

คุณหรือทีมของคุณควรทดสอบระบบฐานข้อมูลเพื่อปัญหาด้านความปลอดภัยโดยใช้ Penetration Testing หรือ SQL Injection เพื่อดูว่าพวกเขา Exploit ระบบได้หรือไม่ ตรวจสอบให้แน่ใจว่ ไม่มีสิ่งใดถูก Expose จากโลกภายนอกไปยังฐานข้อมูลของคุณ

คุณสามารถใช้เครื่องมือมากมายสำหรับการทดสอบนี้ เช่น nmap, telnet และอื่นๆ

สรุป

บล็อกนี้ช่วยให้คุณตั้งค่า Basic Security Practices บางอย่างสำหรับการบริหาร MongoDB ประจำวัน ใช้เคล็ดลับและเครื่องมือที่อธิบายไว้เพื่อรักษาความปลอดภัยฐานข้อมูล MongoDB แอปพลิเคชันของคุณ

คุณยังสามารถใช้ MongoDB Monitoring Service (MMS) เพื่อติดตามและตั้งค่าฟีเจอร์เกี่ยวกับความปลอดภัยส่วนใหญ่แทนการใช้ Mongo Shell

ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม

เรียนรู้เพิ่มเติมเกี่ยวกับ Database Administrators ที่ได้รับการรับรองและบริการฐานข้อมูลของเรา