อนุญาตให้ผู้ใช้ผู้ดูแลระบบเข้าสู่ระบบในฐานะผู้ใช้อื่น


11

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

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


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

1
+1 ถึง Mehrdad Afshari ฉันประจบประแจงทุกครั้งที่ได้ยินคนพูดถึงผู้ดูแลระบบเช่นนี้
Dan McGrath

2
@Mehrdad Afshari และ @Dan McG นั่นเป็นสิ่งที่ดีและเป็นความจริง แต่คุณจะทำอย่างไรเมื่อผู้ดูแลระบบต้องการเข้าถึงบัญชีผู้ใช้ในสถานการณ์ประจำวัน ถามผู้ใช้มากกว่าเพื่อป้อนข้อมูลประจำตัวของพวกเขา? มันเกิดขึ้นบ่อยครั้งมากในการตรวจสอบหรือทำให้เกิดปัญหาคุณต้องตรวจสอบกับการตั้งค่าของผู้ใช้โดยเฉพาะอย่างยิ่งเมื่อบัญชีเชื่อมโยงกับสิทธิ์ที่ซับซ้อนและการตั้งค่าอื่น ๆ ที่ไม่สามารถทำซ้ำได้ 1: 1 ด้วยบัญชีเป็นกลาง
Pekka

4
คุณมองมันผิดวิธี หากผู้ดูแลระบบต้องตรวจสอบการตั้งค่าผู้ใช้เราจำเป็นต้องพัฒนาเครื่องมือที่ดีกว่าเพื่อรับข้อมูลการวินิจฉัยนี้จากผู้ใช้ ตัวอย่างเช่น: หากแอปของคุณบน windows ล่มคุณต้องการให้ผู้ดูแลระบบ MS บางคนใน Redmond RDPing ลงในบัญชีผู้ใช้ของคุณเพื่อตรวจสอบข้อมูลหรือคุณต้องการวิธีอัตโนมัติในการส่งข้อมูลที่จำเป็นกลับไปที่พวกเขา (ขึ้นอยู่กับดุลยพินิจของผู้ใช้) ?
Dan McGrath

2
@ แดน: ลูกค้าอาจไม่เต็มใจที่จะจ่ายสำหรับสิ่งนั้น

คำตอบ:


15

ไม่เลย. การละเมิดนี้เป็นการแบ่งแยกหน้าที่

นอกจากนี้ยังทำให้เกิดความเสียหายโดยอาศัยการบันทึกเพื่อแสดงการกระทำของผู้ใช้

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

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

ลดการเปิดเผยของคุณให้น้อยที่สุดโดยลดการให้สิทธิ์ที่ไม่เหมาะสม ซึ่งควรรวมถึงผู้ดูแลระบบด้วย ...


2
ในขณะที่คุณมีคะแนนที่ถูกต้องฉันไม่คิดว่าคำตอบนั้นค่อนข้างชัดเจน - ในบางกรณีมันเป็นทางออกที่ดีที่สุด
sleske

11

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

สำหรับฉันการใช้งานตกลงจะต้องเป็นไปตามข้อกำหนดต่อไปนี้:

  • ระบบล็อกอินคุณในฐานะผู้ใช้ที่มีปัญหา แต่ข้ามการตรวจสอบสิทธิ์รหัสผ่านหากคุณเข้าสู่ระบบในฐานะผู้ดูแลระบบ

  • ระบบรับรู้ผ่านการตั้งค่าสถานะว่านี่ไม่ใช่ผู้ใช้ x แต่ผู้ดูแลระบบล็อกอินในฐานะผู้ใช้ x สิ่งอำนวยความสะดวกการบันทึกใด ๆ จะสะท้อนถึงความแตกต่าง

  • ไม่มีวิธี "หยุด" จากการเข้าสู่ระบบของผู้ใช้กลับไปที่ระดับผู้ดูแลระบบ

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


8

เช่นเคย ... มันขึ้นอยู่กับ ไม่มีคำตอบที่ง่ายและระบบทั้งสองถูกใช้ในทางปฏิบัติ (เช่น Windows: ผู้ดูแลระบบไม่สามารถเข้าสู่ระบบในฐานะผู้ใช้โดยไม่ต้องรีเซ็ตรหัสผ่านกับ Linux: ผู้ดูแลระบบสามารถเข้าสู่ระบบในฐานะผู้ใช้ท้องถิ่นsu)

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

หรือคุณสามารถใช้รูปแบบที่ Windows ใช้งานอยู่: ผู้ดูแลระบบไม่สามารถเข้าสู่ระบบในฐานะผู้ใช้รายอื่นได้ แต่ผู้ดูแลระบบสามารถรีเซ็ตรหัสผ่านของผู้ใช้ ด้วยวิธีนี้ผู้ดูแลระบบสามารถเข้าถึงได้ แต่ผู้ใช้จะรู้อยู่เสมอว่ามีคนเข้าถึงบัญชีของเขา


Nitpick: sudoไม่ได้ลงชื่อเข้าใช้ในฐานะผู้ใช้ท้องถิ่น แต่จะเรียกใช้กระบวนการเดียวในฐานะผู้ใช้ (a la Window ของ "Run as user") suเพื่อเข้าสู่ระบบในฐานะผู้ใช้ท้องถิ่นใช้ มิฉะนั้นฉันเห็นด้วย
sleske

@sleske: แน่นอนขอบคุณที่พบสิ่งนี้ แก้ไขแล้ว.

@sleske: sudo -iไม่จำเป็นต้องดูที่
liori

แนวคิดของ 'เชลล์การเข้าสู่ระบบ' นั้นเกี่ยวข้องกับวิธีการshทำงานของพฤติกรรมมากกว่าที่จะให้สิทธิ์การอนุญาต su - userและsudo -u user shให้สิทธิ์การเข้าถึงเดียวกัน ความแตกต่างคือการshเรียกใช้สคริปต์เริ่มต้นที่แตกต่างกัน
jpaugh

3

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

แต่จริงๆแล้วการเข้าสู่ระบบในขณะที่คนอื่นมาพร้อมกับปัญหาจำนวนมากตามที่คนอื่นพูดถึง


1

ใช่ฟังก์ชั่นดังกล่าวอาจมีปัญหา แต่บางครั้งก็ไม่มีวิธีอื่นดังนั้นจึงจำเป็น

ตัวอย่างบางส่วน:

  • บน Unix / Linux ฟังก์ชันนี้มีอยู่ ( su - <username>ซึ่งให้ผลเหมือนกับการเข้าสู่ระบบในฐานะผู้ใช้นั้น แต่ไม่ต้องใช้รหัสผ่านสำหรับรูท)
  • แอปพลิเคชันที่ฉันทำงานด้วยมีสิ่งนี้และเป็นสิ่งจำเป็นสำหรับการแก้ไขปัญหาการตั้งค่าส่วนตัวของผู้ใช้ (ซึ่งแอพของเรามีมากมาย)

ตามที่ระบุไว้หากการตั้งค่าที่ซับซ้อนขึ้นอยู่กับผู้ใช้ที่เข้าสู่ระบบ (vars สภาพแวดล้อม, เส้นทาง, การตั้งค่าส่วนบุคคลในแอปพลิเคชัน) มักจะไม่มีวิธีการอื่นในการแก้ปัญหาของผู้ใช้

สำหรับการบันทึก / การตรวจสอบ: การใช้ฟังก์ชั่นนี้ควรถูกบันทึกไว้แน่นอน นอกจากนั้นคุณจะต้องเชื่อใจผู้ดูแลระบบของคุณว่าจะไม่ละเมิด แต่นั่นใช้ได้สำหรับผู้ดูแลระบบโดยทั่วไป

หากคุณต้องการ จำกัด ผู้ดูแลระบบของคุณมากขึ้นคุณต้องมีระบบ MAC (การควบคุมการเข้าถึงที่จำเป็น), w / oa "true" admin เป็นไปได้ แต่มีความซับซ้อนมากขึ้นดังนั้นจึงเป็นการแลกกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.