วิธีใดที่ปลอดภัยที่สุดในการรับสิทธิ์รูท: sudo, su หรือ login


120

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

บน Ubuntu คุณสามารถใช้ sudo ได้เฉพาะ "เหตุผลด้านความปลอดภัย" เท่านั้น อย่างไรก็ตามฉันไม่แน่ใจว่ามันปลอดภัยกว่าแค่ใช้ล็อกอินบนคอนโซลโหมดข้อความ มีหลายสิ่งหลายอย่างที่อาจผิดปกติได้หากผู้โจมตีสามารถเรียกใช้รหัสในฐานะผู้ใช้ปกติของฉันได้ ตัวอย่างเช่นการเพิ่มชื่อแทนการเพิ่มสิ่งต่างๆลงใน PATH ของฉันการตั้งค่าคีย์ล็อกเกอร์ LD_PRELOAD และ X11 เพื่อพูดถึงบางอย่าง ข้อได้เปรียบเดียวที่ฉันเห็นคือหมดเวลาดังนั้นฉันจึงไม่ลืมที่จะออกจากระบบ

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

การลงชื่อเข้าใช้บนคอนโซลโหมดข้อความนั้นปลอดภัยที่สุด เนื่องจากมันเริ่มต้นโดย init หากผู้โจมตีสามารถควบคุม PATH หรือ LD_PRELOAD ได้ กิจกรรม keypress ไม่สามารถดักจับโดยโปรแกรมที่ทำงานบน X ฉันไม่รู้ว่าโปรแกรมที่ทำงานบน X สามารถดักจับ [ctrl] + [alt] + [f1] (และเปิดหน้าต่างเต็มหน้าจอที่ดูเหมือนคอนโซล) หรือ มันปลอดภัยเหมือน [ctrl] + [alt] + [del] บน Windows นอกจากนั้นปัญหาเดียวที่ฉันเห็นคือขาดเวลา

ดังนั้นฉันจึงขาดอะไรไป ทำไมพวก Ubuntu จึงตัดสินใจอนุญาต sudo เท่านั้น? ฉันจะทำอย่างไรเพื่อปรับปรุงความปลอดภัยของวิธีการใด ๆ

แล้ว SSH ล่ะ? ตามธรรมเนียมแล้วไม่สามารถเข้าสู่ระบบผ่าน SSH ได้ แต่การใช้ตรรกะข้างต้นจะไม่เป็นสิ่งที่ปลอดภัยที่สุดที่จะทำ:

  • อนุญาตให้รูทผ่าน SSH
  • เปลี่ยนเป็นโหมดข้อความ
  • เข้าสู่ระบบในฐานะ root
  • ssh ไปยังเครื่องอื่น
  • เข้าสู่ระบบด้วย root

ในโซลูชัน ssh ของคุณคุณหมายถึงว่าคุณต้องการ ssh ลงในกล่องที่อาจประกอบด้วยจากกล่องอื่นหรือไม่? 1 / ถ้าใช่ดังนั้นเพื่อติดตามความคิดของคุณคุณต้องแน่ใจว่ากล่องอื่น ๆ ของคุณไม่ได้ถูกบุกรุกก่อนที่คุณจะออกจากมัน 2 / ถ้าไม่ใช่คุณมีปัญหาเดียวกัน
asoundmove

@asoundmove: มีผู้ใช้ 4 คนที่มีสถานการณ์ ssh ของฉัน: root @ hosta, root @ hostb, stribika @ hosta, stribika @ hostb สมมติว่าผู้โจมตีสามารถเรียกใช้รหัสโดยพลการเนื่องจากทั้งคู่ stribikas (หลังจากพวกเขาใช้ flashplugin และอะไรก็ตาม) ฉันยังต้องการการเข้าถึงรูทที่ปลอดภัย ดังนั้นกล่องทั้งสองสามารถถูกบุกรุกได้บางส่วน
stribika

คำตอบ:


105

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

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

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

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

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

ในระบบที่บ้านของคุณฉันคิดว่ามันเป็นเรื่องของความสะดวกที่ไม่ต้องจำรหัสผ่านสองตัว มีความเป็นไปได้ที่คนจำนวนมากเพียง แต่ตั้งค่าให้เหมือนกัน - หรือแย่กว่านั้นตั้งค่าให้เหมือนกันในตอนแรกแล้วปล่อยให้พวกเขาหลุดพ้นจากการซิงค์

การใช้รหัสผ่านทั้งหมดสำหรับ SSH นั้นเป็นสิ่งที่อันตรายเนื่องจาก ssh daemons โทรจันในการดมรหัสผ่านถูกนำไปใช้ในบางสิ่งเช่น 90% ของระบบโลกแห่งความเป็นจริงที่ฉันได้เห็น เป็นการดีกว่ามากที่จะใช้คีย์ SSH และนี่อาจเป็นระบบที่ใช้การได้สำหรับการเข้าถึงรูทระยะไกลเช่นกัน

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

การรักษาความปลอดภัยสูงสุดกำลังจะผ่านคีย์แบบครั้งเดียวหรือโทเค็นการเข้ารหัสแบบอิงตามเวลา / ตามเคาน์เตอร์ สิ่งเหล่านี้สามารถทำได้ในซอฟต์แวร์ แต่ฮาร์ดแวร์ที่ทนทานต่อการงัดแงะจะดีกว่า ในโลกที่มาเปิดมีWikid , YubikeyหรือLinOTPและแน่นอนนอกจากนี้ยังมีที่เป็นกรรมสิทธิ์ของเฮฟวี่เวทRSA SecurID หากคุณอยู่ในองค์กรขนาดกลางถึงใหญ่หรือแม้แต่องค์กรเล็ก ๆ ที่ใส่ใจเรื่องความปลอดภัยฉันขอแนะนำให้มองหาหนึ่งในวิธีการเหล่านี้สำหรับการเข้าถึงระดับผู้ดูแลระบบ

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


ฉันจะยอมรับสิ่งนี้เป็นคำตอบเนื่องจากมันจะล้างข้อมูลเกี่ยวกับสิ่งที่นักพัฒนา Ubuntu คิดเมื่อทำ sudo เป็นวิธีเริ่มต้น การบันทึกจากระยะไกลดูเหมือนว่าเป็นความคิดที่ยอดเยี่ยมและเนื่องจากฉันใช้ syslog-ng อยู่แล้วจึงไม่ควรตั้งค่ายากเกินไปดังนั้นคอมพิวเตอร์ของฉันทุกคนจึงบันทึกข้อมูลอื่น ๆ ทั้งหมด ฉันจะยึดติดกับแนวปฏิบัติปัจจุบันของฉันในการเปลี่ยนไปใช้โหมดข้อความและเข้าสู่ระบบจากที่นั่นเพื่อการเข้าถึงรูทแบบสมบูรณ์ การมอบหมายสิทธิย่อยเป็นวิธีที่ดีในการใช้ sudo และฉันไม่เคยพิจารณามาก่อน
stribika

7
sudoคล้ายกับการควบคุมบัญชีผู้ใช้ใน Windows Vista ทั้งสองได้รับการออกแบบไม่ได้เพิ่มความปลอดภัย แต่จริงๆแล้วเพื่อให้ง่ายขึ้นในการลดลงในวิธีการควบคุม แต่เนื่องจากพวกเขาทำให้ง่ายขึ้นในการยกระดับสิทธิ์ของคุณชั่วคราวในลักษณะที่มีแรงเสียดทานต่ำคุณจึงไม่จำเป็นต้องทำงานด้วยสิทธิ์ยกระดับเป็นระยะเวลานานซึ่งจะเป็นการเพิ่มความปลอดภัย (นี่คือไม่ว่าใหญ่ของปัญหาในระบบปฏิบัติการยูนิกซ์ แต่ใน Windows ผมจำได้ว่าทำงานเป็นผู้ดูแลระบบสำหรับวันที่สิ้นสุดเพียงเพราะเปลี่ยนเป็นเพื่อให้เจ็บปวด.)
Jörg W Mittag

การดมรหัสผ่านโทรจัน ssh daemons? หากพวกเขาสามารถแทนที่ ssh daemon พวกเขามีรูตแล้ว
psusi

@psusi: ใช่บนที่ระบบ ในสภาพแวดล้อมที่ใช้รหัสผ่านร่วมกัน (โดยบริการไดเรกทอรี) ระหว่างหลาย ๆ ระบบจึงเป็นเรื่องง่ายที่จะมีการแพร่กระจายในลักษณะนี้ แม้จะเป็นระบบเดียวก็เป็นความยุ่งยากในการทำซ้ำรหัสผ่านของทุกคนหลังจากติดตั้งใหม่หลังจากตรวจพบการประนีประนอม
mattdm

1
ปัญหาที่อาจเกิดขึ้นจากการเปลี่ยนrootรหัสผ่านทั้งหมดของ บริษัท ของคุณจะถูกกล่าวถึงเป็นรายการสุดท้ายในOps Report Cardซึ่งเป็นสิ่งที่ควรค่าแก่การอ่าน
สัญลักษณ์ตัวแทน

30

นี่เป็นคำถามที่ซับซ้อนมาก mattdm ได้ครอบคลุมหลายจุดแล้ว

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

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

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

Linux ไม่มีคีย์ความสนใจที่ปลอดภัยหรืออินเทอร์เฟซผู้ใช้ที่ปลอดภัยอื่น ๆ สำหรับการรับรองความถูกต้อง เท่าที่ฉันรู้แม้แต่ OpenBSD ยังไม่มี หากคุณกังวลเกี่ยวกับการเข้าถึงรูทคุณสามารถปิดใช้งานการเข้าถึงรูทจากระบบที่รันอยู่ทั้งหมด: หากคุณต้องการรูทคุณจะต้องพิมพ์อะไรบางอย่างที่พรอมต์ bootloader เห็นได้ชัดว่าไม่เหมาะสำหรับทุกกรณีการใช้งาน (* securelevelของ BSD ทำงานเช่นนี้: ที่ securelevel สูงมีสิ่งที่คุณไม่สามารถทำได้โดยไม่ต้องรีบูตเครื่องเช่นการลด securelevel หรือการเข้าถึงอุปกรณ์ดิบที่ติดตั้งโดยตรง)

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


หากพวกเขาสามารถค้นหารหัสผ่านของคุณพวกเขาสามารถค้นหารหัสผ่านรูทได้อย่างง่ายดายหากไม่สะดวก นอกจากนี้คุณสามารถใช้ sysrq-k เป็นลำดับความสนใจที่ปลอดภัย
psusi

Linux มีคีย์ความสนใจด้านความปลอดภัยดูที่เอกสารเคอร์เนล
btshengsheng

@btshengsheng Linux สามารถมี "คีย์ความปลอดภัย" แต่เนื่องจากสามารถกำหนดค่าได้คุณจึงไม่สามารถมั่นใจได้ว่าจะทำงานกับเครื่องใด ๆ นอกจากนี้ยังขึ้นอยู่กับรูปแบบแป้นพิมพ์ด้วยดังนั้นจึงสามารถข้ามได้โดยการกำหนดปุ่มใดปุ่มหนึ่งใหม่ มันเรียกว่า "คีย์ความสนใจที่ปลอดภัย" แต่มันไม่ค่อยเหมาะกับใบเสร็จ
Gilles

9

นักออกแบบของการรักษาความปลอดภัย distro Openwall GNU / * / ลินุกซ์ยังได้แสดงความคิดเห็นที่สำคัญในsu(สำหรับการเป็น root) sudoและ คุณอาจสนใจอ่านหัวข้อนี้:

... น่าเสียดายที่ทั้ง su และ sudo นั้นบอบบาง แต่มีข้อบกพร่อง

นอกเหนือจากการพูดคุยถึงข้อบกพร่องsuและสิ่งอื่น ๆ แล้ว Solar Designer ยังตั้งเป้าหมายเฉพาะเหตุผลหนึ่งที่จะใช้su:

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

ใน distro พวกเขามี"กำจัด SUID root โปรแกรมอย่างสมบูรณ์ในการติดตั้งเริ่มต้น" (เช่นรวมถึงsu; และพวกเขาไม่ได้ใช้ความสามารถนี้):

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

http://www.openwall.com/lists/owl-users/2004/10/20/6

(สำหรับความรับผิดชอบของ sysadmins หลายระบบจำเป็นต้องรองรับการมีบัญชีที่มีสิทธิ์ใช้งานหลายบัญชีเช่นเดียวกับ Owl)

(สำหรับเดสก์ท็อปที่มี X จะทำให้มีเล่ห์เหลี่ยมมากขึ้น)

คุณต้องจัดการกับ ...

BTW พวกเขาจะถูกแทนที่suloginด้วยmsuloginเพื่อให้การติดตั้งด้วยหลายบัญชีรูท: msuloginอนุญาตให้พิมพ์ชื่อผู้ใช้เมื่อเข้าสู่โหมดผู้ใช้คนเดียว (และรักษา "ความรับผิดชอบ") (ข้อมูลนี้มาจากการสนทนานี้ในรัสเซีย ) .


1
สำหรับระบบที่โดยทั่วไปแล้วหมายถึงเป็นไฟร์วอลล์และไม่มากไปกว่านี้เป็นสิ่งที่ดี แต่ถ้าคุณตั้งใจที่จะใช้เป็นตัวอย่างสุ่ม mysql / postgresql / bind / powerdns / apache และอะไรก็ตามในระบบการผลิตคุณเริ่ม พบปัญหามากเท่าที่พวกเขาอธิบายด้วย X โดยพื้นฐานแล้วพวกเขาได้แลกเปลี่ยนการใช้งานจำนวนมากเพื่อความปลอดภัยระดับหนึ่ง มันขึ้นอยู่กับผู้ดูแลระบบเพื่อตัดสินใจว่ามันเป็นการแลกเปลี่ยนที่ยุติธรรมหรือไม่ โดยส่วนตัวฉันจะติด Debian
Shadur

4

ดูเหมือนว่าคุณจะสมมติว่าการใช้sudoเก็บรักษาตัวแปรสภาพแวดล้อมอยู่เสมอ แต่นี่อาจไม่ใช่ทุกกรณี นี่คือข้อความที่ตัดตอนมาจาก manpage sudo:

มีสองวิธีที่แตกต่างในการจัดการกับตัวแปรสภาพแวดล้อม โดยค่าเริ่มต้นตัวเลือก env_reset sudoers ถูกเปิดใช้งาน สิ่งนี้ทำให้คำสั่งถูกเรียกใช้งานด้วยสภาพแวดล้อมที่น้อยที่สุดซึ่งประกอบด้วย TERM, PATH, HOME, SHELL, LOGNAME, USER และ USERNAME นอกเหนือจากตัวแปรจากกระบวนการเรียกใช้ที่อนุญาตโดยตัวเลือก env_check และ env_keep sudoers มีรายการที่อนุญาตสำหรับตัวแปรสภาพแวดล้อมได้อย่างมีประสิทธิภาพ

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

ในทุกกรณีตัวแปรสภาพแวดล้อมที่มีค่าเริ่มต้นด้วย () จะถูกลบออกเนื่องจากสามารถตีความได้ว่าเป็นฟังก์ชันทุบตี รายการตัวแปรสภาพแวดล้อมที่ sudo อนุญาตหรือปฏิเสธนั้นมีอยู่ในเอาต์พุตของ sudo -V เมื่อรันเป็นรูท

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


1
ฉันหมายความว่าหากผู้โจมตีสามารถควบคุมเส้นทางของฉันเขาสามารถทำให้ฉันทำงานอะไรก็ได้แทนที่จะเป็น / usr / bin / sudo จริง ตัวอย่างเช่น / tmp / sudo ที่พิมพ์Password: ไม่แสดงอะไรเลยเมื่อฉันพิมพ์ส่งสิ่งที่ฉันพิมพ์ให้เขาบอกว่ารหัสผ่านไม่ถูกต้องจากนั้นเรียกใช้ sudo จริง
stribika

อืมฉันเดาว่าในกรณีนี้คุณสามารถรัน / usr / bin / sudo ได้โดยตรงแทนที่จะใช้เชลล์เพื่อค้นหามันให้คุณ แต่คุณพูดถูกมันเป็นปัญหาที่ฉันไม่ได้คิด
เซดริก

1
@CedricStaub: เท่าที่ฉันสามารถบอกได้ว่าไม่มีใครคิดว่าเรื่องนี้ ฉันสามารถให้เส้นทางแบบเต็ม แต่ลองทำสิ่งนี้: alias /usr/bin/sudo="echo pwned"นอกจากนั้นยังมีโปรแกรมมากมายที่เกี่ยวข้อง (X, xterm, shell) สิ่งใดก็ตามที่สามารถขโมยรหัสผ่านได้ นั่นเป็นเหตุผลที่ฉันพูดว่ามีปัญหามากเกินไปกับการเปลี่ยนอย่างปลอดภัย
stribika

1
คุณลองแล้วหรือยัง ฉันทำ:bash: alias: `/usr/bin/sudo': invalid alias name
maaartinus

@maaartinus: น่าสนใจ มันทำงานได้ใน ZSH
stribika

4

วิธีที่ปลอดภัยที่สุดคือการเข้าสู่ระบบโดยใช้ ssh (อย่างน้อย) 2048 รหัสยาว (ปิดการใช้งานรหัสผ่าน) โดยใช้อุปกรณ์ทางกายภาพในการจัดเก็บคีย์


1
แน่นอน แต่รูตเอาต์รูทหรือ unprivileged-to-unpriviliged จากนั้นเปลี่ยนเป็นรูท? (จริง ๆ แล้วฉันใช้ปุ่ม 4096 บิตเพียงเพื่อความปลอดภัยไม่มีการรองรับปุ่มขนาดใหญ่กว่าทุกหนทุกแห่ง)
stribika

@stribika เอ่อทั้งคู่ หากเครื่องของคุณถูกบุกรุกคุณยังคงไม่หลวมกุญแจของคุณ ที่ป้องกันการแพร่กระจาย (ปัญหาที่ใหญ่ที่สุดกับรหัสผ่าน)
Let_Me_Be

3

ฉันแค่ต้องการเพิ่มบางสิ่งบางอย่างออกนอกหัวข้อ (สำหรับหัวข้อที่หนึ่งให้ตรวจสอบ '/ bin / su -' ที่นี่หลังจาก)

ฉันคิดว่า "ความปลอดภัย" ข้างต้นควรเชื่อมโยงกับข้อมูลจริงที่เราต้องการรักษาความปลอดภัยด้วย

มันจะและควรจะแตกต่างกันถ้าเราต้องการความปลอดภัย: my_data, my_company_data, my_company_network

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

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

เป้าหมายของ Ubuntu คือและส่วนใหญ่ยังคงเป็นผู้ใช้ขั้นสุดท้าย: Sudo เป็นค่าเริ่มต้น

Fedora เป็นรุ่นฟรีของ RedHat ซึ่งจะเน้นไปที่เซิร์ฟเวอร์มากกว่าเดิม: Sudo เคยถูกปิดการใช้งาน

สำหรับดิสทริบิวชันอื่น ๆ ฉันไม่มีข้อมูลโดยตรง

ฉันใช้ตอนนี้ส่วนใหญ่เป็น fedora และในฐานะผู้ใช้แบบเก่าฉันไม่เคยพิมพ์ 'su' แต่ฉันสามารถพิมพ์ "/ bin / su -" ในเวลาอันสั้นแม้ว่าฉันจะไม่ใช่คนพิมพ์ดีด ตัวแปร PATH .. ไม่ควรมีปัญหา (ฉันพิมพ์เส้นทาง) ด้วยหลักการ "-" (ลบ) ในหลักการควรลบตัวแปรสภาพแวดล้อมผู้ใช้ของฉันและโหลดเฉพาะราก คือการหลีกเลี่ยงปัญหาที่อาจเกิดขึ้นเป็นพิเศษ อาจเป็น LS_PRELOAD

สำหรับส่วนที่เหลือฉันเดาว่า @mattdm นั้นค่อนข้างแม่นยำ

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

ในภาพผู้ใช้คนเดียวสถานการณ์ที่เลวร้ายที่สุดสองสถานการณ์คือ: - เด็กลบข้อมูลทั้งหมดของฉัน: เพื่อความสนุกหรือโดยไม่ได้ตั้งใจ - เด็กใช้เครื่องของฉันเพื่อสร้างการโจมตีต่อไปยังหน่วยงานอื่น หรือเป้าหมายที่คล้ายกัน

สำหรับกรณีแรกที่ฉันกล่าวถึงข้างต้นควรใช้ความพยายามในการสำรองข้อมูลมากกว่าความปลอดภัยของเครือข่าย ใช่คุณกำลังบันทึก ฉันหมายถึงความผิดพลาดของฮาร์ดแวร์ไม่แตกต่างกัน

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

ฉันจะข้ามสถานการณ์อื่น ๆ

ไชโย


2

ถ้ากังวลก็คือว่าบัญชีผู้ใช้ที่ถูกบุกรุกสามารถใช้ในการสูดอากาศรหัสผ่านที่ใช้สำหรับการsudoหรือsuแล้วใช้รหัสผ่านครั้งเดียวสำหรับและ sudosu

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


0

นอกจากนี้คุณยังสามารถดูที่privacyIDEAซึ่งไม่เพียงให้ความเป็นไปได้ในการใช้ OTP เพื่อเข้าสู่ระบบของเครื่อง (หรือทำ su / sudo) แต่ยังสามารถทำ OTP ออฟไลน์

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

แน่นอนว่ามีภารกิจขององค์กรและเวิร์กโฟลว์เพื่อรักษาความปลอดภัยของระบบ

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