เหตุใดการรับรองความถูกต้องของ OS จึงถือว่าความปลอดภัยต่ำสำหรับฐานข้อมูล Oracle


29

Oracle กำลังลดการรับรองความถูกต้องของระบบปฏิบัติการตามคำแนะนำของOracle Database Securityซึ่งระบุว่า

โปรดทราบว่าพารามิเตอร์ REMOTE_OS_AUTHENT นั้นเลิกใช้แล้วใน Oracle Database 11g รีลีส 1 (11.1) และจะถูกเก็บไว้สำหรับความเข้ากันได้แบบย้อนหลังเท่านั้น

นอกจากนี้ข้อมูลและเครื่องมือความปลอดภัยส่วนใหญ่พิจารณาว่าการ รับรองความถูกต้องของ OS (ภายนอก)เป็นปัญหาด้านความปลอดภัย ฉันพยายามที่จะเข้าใจว่าทำไมถึงเป็นเช่นนี้ นี่คือข้อดีบางอย่างที่ฉันเห็นของการตรวจสอบ OS:

  1. หากไม่มีแอพพลิเคชั่นรับรองความถูกต้องของ OS จะต้องจัดเก็บรหัสผ่านไว้ในแอปพลิเคชันที่หลากหลายแต่ละแบบมีรูปแบบความปลอดภัยและช่องโหว่ของตนเอง
  2. การรับรองความถูกต้องของโดเมนนั้นจะต้องมีความปลอดภัยเพราะหากไม่ใช่ความปลอดภัยของฐานข้อมูลก็จะทำให้การเข้าถึงฐานข้อมูลช้าลง แต่ไม่สามารถป้องกันได้
  3. ผู้ใช้ที่ต้องจำรหัสผ่านโดเมนเพียงรหัสเดียวสามารถสร้างรหัสผ่านโดเมนที่ปลอดภัยได้ง่ายกว่าที่พวกเขาสามารถสร้างรหัสผ่านฐานข้อมูลที่มีความปลอดภัยน้อยลงได้เนื่องจากจำนวนฐานข้อมูลที่แตกต่างกันที่พวกเขาต้องเชื่อมต่อเพื่อเพิ่ม

คุณเห็นว่า Oracle ถูกปฏิเสธการรับรองความถูกต้องภายนอกหรือไม่
Justin Cave

1
@Justin Cave ฉันจะอัพเดทคำถามด้วยข้อมูลนั้น
Leigh Riffel

2
ขอบคุณสำหรับการอัพเดท. เพียงเพื่อความกระจ่างแม้ว่า Oracle จะไม่ลดค่าการรับรองความถูกต้องภายนอก แต่ก็เป็นการลดการรับรองความถูกต้องภายนอกระยะไกลซึ่งโดยทั่วไปแล้วจะปลอดภัยน้อยกว่ามาก (ตามที่ Gaius กล่าวถึงด้านล่าง)
Justin Cave

คำตอบ:


16

พิจารณาสถานการณ์สมมติต่อไปนี้:

  1. มีผู้ใช้ระบบปฏิบัติการยูนิกซ์ชื่อเป็นgaiusบนเซิร์ฟเวอร์ของออราเคิลมีการตรวจสอบจากภายนอกดังนั้นใน Oracle ops$gaiusมีผู้ใช้ที่สอดคล้องกันเรียกว่า เมื่อล็อกอินเข้าสู่เชลล์ฉันยังสามารถล็อกอินเข้าสู่ Oracle schema ของฉันได้โดยตรงและงาน cron ของฉันไม่จำเป็นต้องใช้รหัสผ่านในสคริปต์
  2. อนุญาตให้มีการตรวจสอบสิทธิ์ระบบปฏิบัติการระยะไกลบนสมมติฐานว่า LAN มีความปลอดภัย 100% และลูกค้าสามารถเชื่อถือได้ (เหมือนกับrlogin/ rshเคยได้รับอนุญาตตามปกติ)
  3. ผู้โจมตีนำแล็ปท็อปของตนเข้าสู่ LAN ด้วยวิธีการใดก็ตามรู้ว่าฉันทำงานที่นั่นและสร้างผู้ใช้ภายในเครื่องบนแล็ปท็อปที่เรียกใช้gaiusและเรียกใช้ SQL * Plus ในฐานะผู้ใช้รายนั้น
  4. Oracle เห็น (เช่นOSUSERในV$SESSION) เป็นgaiusและบันทึกผู้ใช้ระยะไกลเป็นops$gaius

นั่นไม่เพียง แต่จะหลอกง่าย ๆ เท่านั้น แต่ใส่หมวก cynic ของฉันออราเคิลไม่สามารถทำเงินได้อีกต่อไปสำหรับการขายผลิตภัณฑ์การลงชื่อเพียงครั้งเดียวที่เป็นแฟนซีของคุณ... ซึ่งวิธีใดบ้างที่จะเติมเต็มทุกจุดที่คุณยกเป็นข้อดีของระบบปฏิบัติการ ระดับการรับรองความถูกต้อง รหัสผ่านสองอันที่ดีกว่าหนึ่งรหัสปลอม คนส่วนใหญ่จะตั้งค่าให้เหมือนกันอยู่แล้ว (ไม่มีกลไกใน Oracle เพื่อป้องกันสิ่งนี้)

หลักการทั่วไปคือมันเป็นเรื่องยากมากที่จะป้องกันในซอฟต์แวร์เมื่อผู้โจมตีมีการเข้าถึงทางกายภาพ และไม่เคยเชื่อใจลูกค้า


2
มันยิ่งแย่ไปกว่านั้น ดูorafaq ของ 'เหตุใด OPS $ จึงมีความเสี่ยงด้านความปลอดภัยในสภาพแวดล้อมของลูกค้า / เซิร์ฟเวอร์' (พวกเขาตำหนิหน้าต่าง แต่คุณขวามันอะไรบนเครือข่าย)
โจ

3
เซิร์ฟเวอร์อยู่บนปัจจัยโดเมน windows อย่างไร เช่นผู้โจมตีต้องเข้าร่วมคอมพิวเตอร์กับโดเมนเพื่อให้มีบัญชีที่มีโดเมนหรือผู้โจมตีสามารถจำลองสถานะของโดเมนโดยไม่ต้องเข้าร่วมคอมพิวเตอร์จริงหรือ
ลีห์ Riffel

ฉันเดาว่าถูกเขียนเดิมในช่วงเวลาที่เซิร์ฟเวอร์ทั้งหมดเป็น Unix และเดสก์ท็ทุกคนของ Windows
ออกุสตุ

3
@Leigh - คุณสามารถทำให้การรับรองความถูกต้องของระบบปฏิบัติการระยะไกลปลอดภัยยิ่งขึ้นด้วยไคลเอนต์ Windows โดยการตั้งค่า OS_AUTHENT_PREFIX ให้เป็นโดเมน Windows ที่เชื่อถือได้ ต้องมีไคลเอ็นต์ระยะไกล (หรือดูเหมือนว่าเป็น) ในโดเมนที่เชื่อถือได้นั้น ที่เพิ่มแถบเหนือคอมพิวเตอร์ปลั๊กขนาดเล็กไปยังพอร์ตสำรองเพิ่มผู้ใช้ในพื้นที่และคุณกำลังถูกโจมตี แต่ก็ยังสามารถเอาชนะได้
Justin Cave

1
เปรียบเทียบและเปรียบเทียบกับการตรวจสอบ AD / Kerberos จริงและรับตั๋วจากผู้ใช้และตรวจสอบกับ KDC ซึ่งฉันเดาว่า SqlServer ทำอะไรเมื่อตั้งค่าให้ใช้การรับรองความถูกต้องของ Windows
araqnid

8

เพิ่มความล้มเหลวเพียงจุดเดียวและขยายขอบเขตความเสี่ยงของข้อมูลของคุณ

ผู้โจมตีที่สามารถเข้าถึงระบบได้ด้วยการพิสูจน์ตัวจริงของระบบปฏิบัติการจะสามารถเข้าถึงฐานข้อมูลได้ โดยต้องการการเข้าถึงฐานข้อมูลที่ปลอดภัยยิ่งขึ้นผู้โจมตีที่อาจเกิดขึ้นจะต้องเพิ่มสิทธิ์ของตนในระบบที่ถูกบุกรุกเพื่อให้สามารถเข้าถึงรูทหรือ oracle ได้มากกว่าผู้ใช้รายอื่น

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

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


ฉันเข้าใจแล้วดังนั้นเพื่อให้ง่ายเกินความจริง - ข้อกำหนดของชื่อผู้ใช้ / รหัสผ่านสองชุดนั้นปลอดภัยกว่าหนึ่งข้อ - คะแนนของคุณฟังดูสมเหตุสมผล
Leigh Riffel

นี่เป็นคำตอบที่ไม่ถูกต้องอย่างละเอียด - ปัญหาไม่ใช่การรับรองความถูกต้องภายนอก แต่เป็นการรับรองความถูกต้องภายนอกระยะไกล ฉันจะอธิบายด้านล่าง
ออกุสตุส

@Gaius การรับรองความถูกต้องของระบบปฏิบัติการภายนอกจะไม่ถูก จำกัด อย่างมากจนเกือบจะไร้ค่าหากไม่ได้อยู่ในระยะไกลใช่ไหม คุณกำลังบอกว่า Oracle ไม่ได้ลดการรับรองความถูกต้องโดยใช้ระบบปฏิบัติการ แต่เพียงคัดค้านการรับรองความถูกต้อง OS จากคอมพิวเตอร์ระยะไกล?
Leigh Riffel

@Leigh - กรณีการใช้งานที่สำคัญสำหรับการรับรองความถูกต้องของระบบปฏิบัติการของบัญชีภายในสำหรับงานประเภท DBA ที่คุณมีเชลล์สคริปต์จำนวนมากที่ทำงานบนเซิร์ฟเวอร์ฐานข้อมูลที่จำเป็นต้องเข้าถึงบัญชีที่มีประสิทธิภาพมากบนเซิร์ฟเวอร์ฐานข้อมูล การพิสูจน์ตัวตนระบบปฏิบัติการช่วยให้คุณหลีกเลี่ยงการมีรหัสผ่านระดับ DBA ที่ไม่ได้เข้ารหัสในเชลล์สคริปต์เหล่านั้น
Justin Cave

งาน @Justin ชุดทั่วไปนำมาใช้เป็นเชลล์สคริปต์หรืออะไรก็ตามใน crons บุคคล
ออกุสตุ

4

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

ฉันคาดหวังว่า Oracle กำลังเคลื่อนไปในทิศทางนี้เพราะต้องการกระตุ้นให้ผู้ใช้องค์กร (หรือชุดการจัดการข้อมูลประจำตัว) เต็มรูปแบบมากกว่าที่จะรับรองผู้ใช้ระบบปฏิบัติการระยะไกล ผู้ใช้ระดับองค์กรมีข้อได้เปรียบเช่นเดียวกับผู้ใช้ที่ได้รับการรับรองความถูกต้องของระบบปฏิบัติการระยะไกล แต่จริงๆแล้วออราเคิลกำลังจะออกไปข้างนอกและกดปุ่มเซิร์ฟเวอร์ Active Directory ของคุณเพื่อตรวจสอบสิทธิ์ผู้ใช้ คุณจะได้รับสิทธิประโยชน์การลงชื่อเพียงครั้งเดียวโดยไม่ต้องออกจากการตรวจสอบความปลอดภัยกับเครื่องไคลเอนต์


การตรวจสอบสิทธิ์ LDAP สามารถเปิดเวิร์มอื่นได้ ... ฉันจะโพสต์คำตอบนานกว่านี้
Joe

+1 ขอบคุณที่ชี้ให้เห็นความปลอดภัยของผู้ใช้ระดับองค์กร เราได้รับการพิจารณาความปลอดภัยขั้นสูงแล้วและสิ่งนี้ทำให้น่าสนใจยิ่งขึ้น
Leigh Riffel

4

คุณชี้ไปที่การรับรองความถูกต้องแบบระบุตัวตนโดยเฉพาะ แต่ฉันอยากจะชี้ให้เห็นว่าวิธีการผูกฐานข้อมูลอื่น ๆ หรือการเข้าสู่ระบบอื่น ๆ ของการเข้าสู่ระบบของ OS นั้นไม่ดี (ไม่ว่าจะเป็นไฟล์รหัสผ่านท้องถิ่น LDAP หรืออะไรก็ตามสำหรับการจัดเก็บข้อมูลรับรองจริง)

หากคุณอนุญาตให้มีการเชื่อมต่อระยะไกลไปยังฐานข้อมูล (หรือเว็บเซิร์ฟเวอร์หรือสิ่งใดก็ตามที่กำลังทำการตรวจสอบความถูกต้อง) ระบบปฏิบัติการบางระบบจะไม่สนใจกฎที่อาจตั้งค่าเพื่อทำให้บัญชีเดรัจฉานบังคับได้ยาก ผู้ใช้เป็นระยะเวลาหลังจากกำหนดจำนวน falures ฯลฯ ) โดยทั่วไปกฎเหล่านี้จะเชื่อมโยงเข้าsshdด้วยกันและไม่ใช่ระบบการรับรองความถูกต้องโดยรวม

ดังนั้นหากใครบางคนสามารถเชื่อมต่อกับฐานข้อมูล / เว็บเซิร์ฟเวอร์ / อะไรก็ได้จากระยะไกลพวกเขาสามารถเดรัจฉานบังคับใช้รหัสผ่านเนื่องจากฐานข้อมูลมักจะไม่ได้มีกลไกที่เหมือนกันในการพยายามชะลอตัว


2
ฉันไม่แน่ใจว่าฉันทำตามเหตุผลที่นี่ หากคุณมี Oracle รับรองความถูกต้องกับ LDAP คุณจะต้องทำลาย LDAP เพื่อรับรหัสผ่าน - จะไม่มีการแฮชรหัสผ่านในเครื่องเพื่อให้เดรัจฉานบังคับเหมือนจะมีสำหรับผู้ใช้ Oracle ปกติ หากคุณกังวลเกี่ยวกับผู้โจมตีที่ใช้การพิสูจน์ตัวตน LDAP คุณอาจมีปัญหาใหญ่กว่าวิธีตรวจสอบสิทธิ์ผู้ใช้ Oracle และมันก็ง่ายพอที่จะกำหนดค่า Oracle ให้ล็อคบัญชีหลังจากความพยายามที่ล้มเหลวหลายครั้ง จำกัด ที่อยู่ IP ที่อนุญาตและอื่น ๆ ที่จริงแล้วสิ่งเหล่านี้เป็นพฤติกรรมเริ่มต้นใน 11g
Justin Cave

@Justin: มันเป็นปัญหาเฉพาะถ้าคุณผูกมันเพื่อให้ข้อมูลประจำตัวสำหรับการเข้าสู่ระบบปฏิบัติการเป็นเช่นเดียวกับข้อมูลประจำตัวสำหรับการเข้าสู่ระบบฐานข้อมูล (หรือเว็บเซิร์ฟเวอร์ ฯลฯ ) และดูเหมือนว่า Oracle ได้รับการรับรองความถูกต้องดีกว่าเมื่อก่อนที่ฉันใช้มัน แต่ฐานข้อมูลส่วนใหญ่ไม่ได้ (และ Apache ไม่ได้อย่างใดอย่างหนึ่งเพื่อให้ผู้ใช้ MacOS X เซิร์ฟเวอร์ควรสลับออกmod_auth_appleและmod_auth_digest_appleสำหรับรุ่นเริ่มต้นถึงแม้ว่าฉันไม่ได้ทดสอบว่าปัญหายังคงมีอยู่ใน 10.6)
โจ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.