เป็นไปได้หรือไม่ที่จะป้องกันไม่ให้โปรแกรมบางโปรแกรมเข้าถึงรีจิสทรีของ Windows? ฉันรู้ว่ามี ACLs ที่จะล็อคผู้ใช้ แต่สิ่งที่เกี่ยวกับการควบคุมต่อปฏิบัติการ?
เป็นไปได้หรือไม่ที่จะป้องกันไม่ให้โปรแกรมบางโปรแกรมเข้าถึงรีจิสทรีของ Windows? ฉันรู้ว่ามี ACLs ที่จะล็อคผู้ใช้ แต่สิ่งที่เกี่ยวกับการควบคุมต่อปฏิบัติการ?
คำตอบ:
ขออภัยที่เป็นไปไม่ได้อย่างน้อยไม่เท่าที่คุณต้องการ ตามที่ระบุในข้อคิดเห็นโดย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.
คำสั่งนั้นใช้งานได้ในพร้อมท์คำสั่งปกติ แต่ไม่ใช่คำสั่งที่ถูกล็อคแบบนี้