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

เคล็ดลับความปลอดภัยของ MongoDB

การเริ่มต้นใช้งาน MongoDB® เป็นเรื่องง่าย อย่างไรก็ตาม คุณสามารถพบเจอได้หลายอย่างอาการสะอึกกับคุณสมบัติใหม่ที่เกิดขึ้นอย่างต่อเนื่อง ประเด็นที่น่ากังวลอย่างหนึ่งคือความปลอดภัย ซึ่งเป็นจุดสนใจของบล็อกนี้

แนะนำตัว

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

บล็อกนี้ครอบคลุมเคล็ดลับ 10 ข้อในการรักษาความปลอดภัย MongoDB เพื่อให้ปลอดภัย

เคล็ดลับที่ 1:เปิดใช้งานการตรวจสอบสิทธิ์เสมอ

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

เพิ่มบรรทัดต่อไปนี้ใน mongod.conf ไฟล์การกำหนดค่าเพื่อเปิดใช้งานการตรวจสอบสิทธิ์ใน MongoDB:

Security:
        Authentication: on

รูปภาพต่อไปนี้แสดงการรักษาความปลอดภัยระดับ DB:

เคล็ดลับความปลอดภัยของ MongoDB

ที่มาของภาพ: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>

รูปภาพต่อไปนี้แสดงการรับรองความถูกต้องของไฟล์คีย์:

เคล็ดลับความปลอดภัยของ MongoDB

ที่มาของภาพ: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

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

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