การ จำกัด การเข้าถึงโปรแกรมของรีจิสทรี Windows


2

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


2
ไม่เพราะเป็นบัญชีที่กระบวนการของโปรแกรมทำงานตามที่เขียนไปยังรีจิสทรีในนามของมัน คุณกำลังพยายามบล็อกโปรแกรมใดอยู่ รีจิสตรีคีย์ใดที่คุณพยายามจะหยุดเขียน ขึ้นอยู่กับส่วนของรีจิสตรีที่คุณพยายามป้องกันการเขียนคุณอาจปฏิเสธทุกคนได้ แต่การที่จะฉันนี้มีกลิ่นเหมือนปัญหา XY ; ปัญหาจริงที่คุณพยายามแก้ไขโดยการบล็อกการเขียนรีจิสทรีคืออะไร
Ƭᴇcʜιᴇ007

ใน linux คุณสามารถใช้กลไก Mandatory Access Control กับแอพผ่านระบบเช่น SeLinux และ AppArmour แต่ใน windows ทุกอย่างขึ้นอยู่กับผู้ใช้ ดูที่นี่สำหรับรายละเอียดเพิ่มเติม: msdn.microsoft.com/en-us/library/windows/desktop/…
Frank Thomas

@ Ƭᴇcʜιᴇ007จริง มีการควบคุมการเข้าถึงที่จำเป็นใน Windows เช่นกันและความถูกต้องต่ำอาจเป็นประโยชน์ที่นี่
เบ็น N

คำตอบ:


3

ขออภัยที่เป็นไปไม่ได้อย่างน้อยไม่เท่าที่คุณต้องการ ตามที่ระบุในข้อคิดเห็นโดยbycƬᴇ007การควบคุมการเข้าถึงของ Windows ทั้งหมดขึ้นอยู่กับผู้ใช้ ทุกขั้นตอนจะมีโทเค็นติดอยู่ซึ่งจะกำหนดว่าผู้ใช้รายใดกำลังทำงานอะไรอยู่ ไม่มีความแตกต่างระหว่างคุณดำเนินการกับโปรแกรมที่ทำงานภายใต้บัญชีของคุณในการดำเนินการดังกล่าวเนื่องจากคุณทำทุกอย่างผ่านกระบวนการหนึ่งหรือกระบวนการอื่น "โปรแกรมไม่โจมตีผู้ใช้ผู้ใช้โจมตีผู้ใช้"

นอกจากนี้แทบทุกกระบวนการเข้าถึง Registry แม้ว่าตัวโปรแกรมเองจะไม่ทำการเข้าถึงรีจิสทรีอย่างชัดเจน แต่การตรวจสอบด้วยProcess Monitor ก็แสดงให้เห็นว่าแอพ GUI ทุกตัวเริ่มต้นด้วย boatload ของ Registry เพื่ออ่านวิธีการตั้งค่าการควบคุมแบบกราฟิก เรียกใช้การตรวจสอบกระบวนการในแอพที่คุณคิดว่าไม่ต้องการ Registry คุณจะประหลาดใจ

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

psexec -l -i cmd

-lสวิทช์ชุดสมบูรณ์ต่ำ; -iสวิทช์ทำให้กระบวนการโต้ตอบ พรอมต์คำสั่งที่ได้จะสามารถเขียนไปยังสถานที่ที่มีเครื่องหมายว่า Low integrity เท่านั้น

C:\Users\Ben>reg add HKCU\Test
ERROR: Access is denied.

คำสั่งนั้นใช้งานได้ในพร้อมท์คำสั่งปกติ แต่ไม่ใช่คำสั่งที่ถูกล็อคแบบนี้


1

ทางออกก็คือการใช้Sandboxie โปรแกรมนี้สามารถดำเนินการกระบวนการใด ๆ ภายในแซนด์บ็อกซ์เพื่อให้การเปลี่ยนแปลงใด ๆ ในระบบที่ทำโดยกระบวนการนั้นสามารถยกเลิกได้

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