การเริ่มต้นใช้งาน MongoDB® เป็นเรื่องง่าย อย่างไรก็ตาม คุณสามารถพบเจอได้หลายอย่างอาการสะอึกกับคุณสมบัติใหม่ที่เกิดขึ้นอย่างต่อเนื่อง ประเด็นที่น่ากังวลอย่างหนึ่งคือความปลอดภัย ซึ่งเป็นจุดสนใจของบล็อกนี้
แนะนำตัว
การรักษาความปลอดภัยด้วยแอปพลิเคชัน MongoDB เป็นสิ่งสำคัญสำหรับแอปพลิเคชันฐานข้อมูล คุณต้องสามารถระบุช่องโหว่และรู้ประเภทและวิธีการรักษาความปลอดภัยฐานข้อมูลหรือแอปพลิเคชันเพื่อป้องกันฐานข้อมูลจากภัยคุกคาม ปฏิบัติตาม คู่มือการติดตั้งด้านเทคนิคด้านความปลอดภัย . อย่างเคร่งครัด (STIG) ช่วยรักษาความปลอดภัย MongoDB ในระดับที่ดี การตรวจสอบเป็นครั้งคราวยังช่วยในการระบุข้อบกพร่องที่สำคัญในระบบหรือฐานข้อมูล เพื่อให้คุณปกป้องระบบหรือฐานข้อมูลจากภัยคุกคามต่างๆ ได้
บล็อกนี้ครอบคลุมเคล็ดลับ 10 ข้อในการรักษาความปลอดภัย MongoDB เพื่อให้ปลอดภัย
เคล็ดลับที่ 1:เปิดใช้งานการตรวจสอบสิทธิ์เสมอ
การเปิดใช้งานการรับรองความถูกต้องเป็นแนวทางปฏิบัติที่ดีและเป็นวิธีที่ง่ายที่สุดในการรักษาความปลอดภัย MongoDB โปรดทราบว่าบางครั้งคุณลักษณะความปลอดภัยที่ง่ายที่สุดที่เปิดใช้งานสามารถปกป้องระบบได้ในระดับสูงสุด ดังนั้นจึงช่วยองค์กรจากการละเมิดข้อมูลที่อาจมีค่าใช้จ่ายหลายล้านดอลลาร์
เพิ่มบรรทัดต่อไปนี้ใน mongod.conf
ไฟล์การกำหนดค่าเพื่อเปิดใช้งานการตรวจสอบสิทธิ์ใน MongoDB:
Security:
Authentication: on
รูปภาพต่อไปนี้แสดงการรักษาความปลอดภัยระดับ DB:
ที่มาของภาพ:https://www.slideshare.net
เคล็ดลับที่ 2:ใช้รหัสผ่านที่ซับซ้อน
เคล็ดลับนี้เป็นเพียงสามัญสำนึก ในกรณีส่วนใหญ่ รหัสผ่านพื้นฐานและเรียบง่ายที่สุดที่ใช้สำหรับแอปพลิเคชันหรือฐานข้อมูลใดๆ คือ 12345
หรือ ABC123
. อย่างไรก็ตาม รหัสผ่านง่ายๆ เหล่านี้เป็นอาวุธทางเลือกในการถอดรหัสระบบและขโมยข้อมูลอันมีค่า
เนื่องจาก MongoDB ไม่มีตัวเลือกล็อกเอาต์สำหรับรหัสผ่าน จึงเป็นเรื่องง่ายสำหรับแฮกเกอร์ที่จะลองใช้รหัสผ่านที่ง่ายที่สุดในการถอดรหัสฐานข้อมูลหรือแอปพลิเคชันภายในไม่กี่นาทีเพื่อเข้าถึง
เคล็ดลับ 3:ให้สิทธิ์ผู้ใช้ตามบทบาท
MongoDB ไม่ได้เปิดใช้งานการควบคุมการเข้าถึงโดยค่าเริ่มต้น คุณสามารถเปิดใช้งานการให้สิทธิ์โดยใช้คำหลัก --auth
เมื่อคุณเริ่มต้นเชลล์ MongoDB
ไม่ใช่ทุกคนที่ควรดูแลฐานข้อมูล แม้ว่าฐานข้อมูลจะเปิดใช้งานการพิสูจน์ตัวตน อย่าให้สิทธิ์ผู้ดูแลระบบแก่ทุกคน ให้สร้างบทบาทบางอย่างเพื่ออนุญาตผู้ใช้แทน เพื่อเป็นแนวทางปฏิบัติที่ดีที่สุด
การตั้งค่าบทบาทของผู้ใช้บางอย่างช่วยลดความซับซ้อนสำหรับผู้ใช้แต่ละราย และลดความเสี่ยงของการละเมิดบัญชีที่ก่อให้เกิดภัยพิบัติในภายหลัง
ในการสร้างผู้ใช้ที่มีบทบาท ให้รันคำสั่งต่อไปนี้:
db.createUser({user:"admin", pwd:"X1eL#pM0C12", roles:[{role:"userAdminAnyDatabase", db:"admin"]})
เคล็ดลับที่ 4:เพิ่มไฟล์คีย์การจำลอง
การเปิดใช้งานไฟล์คีย์การจำลองจะเปิดใช้งานการตรวจสอบสิทธิ์ใน MongoDB โดยอัตโนมัติ เมื่อเปิดใช้งานคุณลักษณะนี้ เฉพาะโฮสต์ที่ติดตั้งไฟล์นี้เท่านั้นที่สามารถเข้าร่วมชุดเรพลิกาได้
คีย์ไฟล์การจำลองแบบที่เปิดใช้งานยังช่วยให้มั่นใจถึงการเข้ารหัสข้อมูลใน MongoDB ซึ่งให้การป้องกันอีกชั้นหนึ่ง คุณสามารถสร้างคีย์ไฟล์โดยใช้วิธีการใดก็ได้ที่คุณเลือก คัดลอกไฟล์คีย์ไปยังสมาชิกชุดเรพพลิกา จากนั้นเริ่มชุดเรพพลิกาโดยเปิดใช้งานการควบคุมการเข้าถึง
เพิ่มบรรทัดต่อไปนี้ใน mongod.conf
เพื่อเปิดใช้งานไฟล์คีย์การจำลอง:
Security:
KeyFile: <Path to KeyFile>
รูปภาพต่อไปนี้แสดงการรับรองความถูกต้องของไฟล์คีย์:
ที่มาของภาพ:https://www.slideshare.net
เคล็ดลับที่ 5:อย่าใช้พอร์ตเริ่มต้น
อย่าใช้พอร์ตเริ่มต้นใดๆ เพื่อเชื่อมต่อกับอินสแตนซ์ MongoDB ของคุณ โดยส่วนใหญ่ แฮกเกอร์จะสแกนเฉพาะหมายเลขพอร์ตเริ่มต้นหรือมาตรฐานก่อนที่จะโจมตี พอร์ตเริ่มต้นบางพอร์ตที่ MongoDB ใช้คือ 27017
, 27018
, 27019
,2700X
, และอื่นๆ
ง่ายต่อการเปลี่ยนหมายเลขพอร์ตเริ่มต้นใน mongod.conf
.
เคล็ดลับ 6:มีวิธีการสำรองข้อมูลที่ดี
ตรวจสอบให้แน่ใจเสมอว่าคุณมีสำเนาข้อมูลล่าสุดเพื่อให้แน่ใจว่า Operationlog (oplog) ของคุณพร้อมสำหรับการกู้คืนแบบ point-in-time (PIT) ตั้งแต่เกิดการโจมตี
เตรียมพร้อมกับการกู้คืนระบบจากภัยพิบัติที่ไว้ใจได้สำหรับการโจมตีทุกประเภท
เคล็ดลับ 7:ปิดการเข้าถึงฐานข้อมูลของคุณแบบสาธารณะ
ตรวจสอบใบสมัครของคุณเพื่อดูว่าต้องมีการเข้าถึงบัญชีภายนอกในฐานข้อมูลหรือไม่ หากมีบัญชีดังกล่าว ให้ตั้งค่าให้ใช้การตรวจสอบสิทธิ์และการเข้ารหัส
คุณยังสามารถปิดใช้งานการเข้าถึงสาธารณะโดยผูกที่อยู่อินเทอร์เน็ตโปรโตคอล (IP) ของโฮสต์ใน mongod.conf
.
เคล็ดลับ 8:เปิดใช้งานกฎไฟร์วอลล์ที่ระดับระบบปฏิบัติการและใช้ VPN
ไฟร์วอลล์มอบการรักษาความปลอดภัยอีกชั้นหนึ่งเพื่อกรองและควบคุมการเข้าถึงระบบผ่านเครือข่าย บนเซิร์ฟเวอร์ MongoDB ให้เปิดใช้งานกฎไฟร์วอลล์บนโฮสต์หรือกลุ่มความปลอดภัยของโฮสต์บนคลาวด์
ตรวจสอบให้แน่ใจว่าคุณให้สิทธิ์เข้าถึงเฉพาะอินสแตนซ์ mongod กับแหล่งที่มาที่เชื่อถือได้เท่านั้น ขัดขวางที่อยู่ IP หรือช่วงพอร์ตสำหรับเซิร์ฟเวอร์เพื่อทำให้การโฮสต์บนคลาวด์มีความปลอดภัยมากขึ้น
ใช้ VPN เพื่อรับรองการเข้าถึงระบบฐานข้อมูลของคุณสำหรับการเข้ารหัสระดับต่างๆ การรับรองความถูกต้องหลายระดับ และการอนุญาตสำหรับลูกค้าทั้งหมด
เคล็ดลับ 9:ตรวจสอบระบบฐานข้อมูลอย่างสม่ำเสมอสำหรับปัญหาด้านความปลอดภัย
ตรวจสอบฐานข้อมูลหรือระบบโฮสต์อย่างสม่ำเสมอเพื่อดูว่ามีการละเมิดหรือไม่ หรือบัญชีผู้ใช้ได้รับสิทธิ์ที่ยกระดับ นอกเหนือจากที่จำเป็น โดยพิจารณาจากบทบาทและสิทธิ์
หากให้สิทธิ์ระดับสูงเพื่อการทดสอบ ให้ยกเลิกสิทธิ์ดังกล่าวเพื่อรักษาความปลอดภัยให้กับระบบ
เคล็ดลับ 10:ตรวจสอบและทดสอบการเข้าถึงฐานข้อมูลจากภายนอก
คุณหรือทีมของคุณควรทดสอบระบบฐานข้อมูลสำหรับปัญหาด้านความปลอดภัยโดยใช้การทดสอบการเจาะระบบหรือการฉีด SQL เพื่อดูว่าพวกเขาใช้ประโยชน์จากระบบหรือไม่ ตรวจสอบให้แน่ใจว่าไม่มีสิ่งใดถูกเปิดเผยจากโลกภายนอกไปยังฐานข้อมูลของคุณ
คุณสามารถใช้เครื่องมือมากมายสำหรับการทดสอบนั้น เช่น nmap, telnet และอื่นๆ
บทสรุป
บล็อกนี้ช่วยให้คุณกำหนดค่าแนวทางปฏิบัติด้านความปลอดภัยขั้นพื้นฐานสำหรับการดูแลระบบ DailyMongoDB ใช้เคล็ดลับเหล่านี้และเครื่องมือที่อธิบายไว้เพื่อรักษาความปลอดภัยแอปพลิเคชันฐานข้อมูล MongoDB ของคุณ
คุณยังสามารถใช้ MongoDB Monitoring Service (MMS) เพื่อตรวจสอบและกำหนดค่าคุณลักษณะที่เกี่ยวข้องกับความปลอดภัยส่วนใหญ่แทนการใช้ mongo shell
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม
เรียนรู้เพิ่มเติมเกี่ยวกับผู้ดูแลระบบฐานข้อมูลและบริการฐานข้อมูลที่ผ่านการรับรองของเรา