ป้องกันไม่ให้แอปพลิเคชันเฉพาะทำงานในฐานะผู้ดูแลระบบ


13

พื้นหลัง

ชุดเครื่องมือการติดตั้งส่วนใหญ่มีความสามารถในการเปิดใช้งานโปรแกรมภายนอกโดยอัตโนมัติหรือมิฉะนั้นหลังจากการติดตั้ง มักจะปรากฏในโปรแกรมติดตั้งผ่านตัวเลือกเช่น "แสดง readme" หรือ "เริ่มโปรแกรม"

ปัญหา

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

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

(นี่คือเหตุผลที่ฉันไม่แนะนำให้เลือกตัวเลือกเปิดใช้อัตโนมัติเมื่อติดตั้งซอฟต์แวร์)

คำถาม

มีวิธีในการป้องกันแอปพลิเคชันบางอย่าง (เช่นเว็บเบราว์เซอร์) ไม่ให้เปิดใช้งานด้วยสิทธิ์ระดับผู้ดูแลระบบหรือไม่เช่นใช้สิทธิ์แบบดรอปดาวน์อัตโนมัติตามชื่อกระบวนการ

windows  uac 

2
ฉันชอบคำถามนี้มาก มีผลิตภัณฑ์ที่จะเพิ่มสิทธิ์สำหรับกระบวนการโดยยึดตามเส้นทางแฮช ฯลฯ ฉันชอบที่จะเห็นบางสิ่งบางอย่างที่ทำให้สิทธิ์ลดลงโดยอัตโนมัติสำหรับการพูด iexplore.exe, firefox.exe, chrome.exe และอื่น ๆ
Patrick Seymour

1
หากโปรแกรมการวางไข่มีสิทธิ์ของผู้ดูแลระบบมันจะไม่สามารถยกเลิกสิ่งที่คุณคิดและรันมันได้หรือไม่? :)
Ƭᴇcʜιᴇ007

1
ฉันเดาได้ แต่ฉันจะแปลกใจหากตัวติดตั้งเป็นเช่น "เฮ้คุณจะเรียกดูหน้าแรกของเราในฐานะผู้ดูแลระบบเพื่อน!" และบังคับใช้สิทธิ์เหล่านั้นอย่างต่อเนื่อง ฉันไม่คิดว่าฉันจะซื้อซอฟต์แวร์จาก บริษัท เช่นนั้นหากฉันสามารถหาข้อมูลได้
Patrick Seymour

คำตอบ:


2

โดยหลักการฉันเห็นด้วยกับคำตอบ "RUNAS"

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

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

แสดงเฉพาะวิธีการหนึ่งเท่านั้นเว้นแต่จะมีการร้องขอเพิ่มเติม :

สำหรับแต่ละแอปพลิเคชันที่คุณต้องการ จำกัด :

right click the executable and go to **PROPERTIES**
go to the **SECURITY** tab
click **ADVANCED** at the bottom
click **ADD** at the bottom
type **ADMINISTRATORS** for the name. if you have a domain then adjust appropriately
press **OK** to get the custom settings for the administrator's group
check the **DENY** checkbox next to "TRAVERSE FOLDER/ EXECUTE FILE" permission (2nd on the list)
hit OK and so-on until you've closed the properties entry for that file.

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

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

นี่คือรูปภาพของการทำสิ่งนี้บน windows 7:

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่


1

คุณควรจะสามารถบรรลุระดับสิทธิ์ที่ต่ำกว่าด้วย dropmyrights หรือ psexec

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

เพื่อที่ฉันสงสัยว่าอย่างน้อยคุณจะต้องปรับแต่งความสัมพันธ์ของไฟล์สำหรับประเภทไฟล์ที่เกี่ยวข้องทั้งหมดและสำหรับ URL ด้วยเช่นกันการเตรียมคำสั่งที่มีอยู่ของคุณด้วยคำสั่ง psexec

ซึ่งจะทำงานได้ตราบใดที่ตัวติดตั้งพยายามเปิดไฟล์ / url ด้วยแอปพลิเคชันที่เกี่ยวข้องแทนที่จะระบุไฟล์ที่เรียกใช้เพื่อให้ทำงานได้ หากมีการระบุพา ธ ที่สามารถใช้งานได้อย่างชัดเจนฉันคิดว่าคุณจะต้องแทนที่ไฟล์ปฏิบัติการมาตรฐานด้วย shim executable ซึ่งรันคำสั่งที่คุณต้องการ


1

สิ่งหนึ่งที่ขาดหายไปคือ Internet Explorer และ Windows Explorer ไม่สามารถยกระดับสิทธิ์ของตนได้ (เว้นแต่คุณจะทำการแฮกรีจิสทรี) ฉันไม่รู้เกี่ยวกับ Firefox, Chrome, ฯลฯ แต่ถ้าคุณพยายามเรียกใช้ Internet Explorer ในฐานะผู้ดูแลระบบจะยอมรับข้อมูลประจำตัวของคุณอย่างมีความสุข แต่จะไม่ยกระดับสิทธิ์จริง ๆ นี่เป็นคุณลักษณะด้านความปลอดภัยของ Windows Vista ขึ้นไป และนอกจากนั้นวิธีเดียวที่ UAC ไม่ได้มีผลบังคับใช้ (เว้นแต่คุณจะปิด) คือหากคุณลงชื่อเข้าใช้บัญชีผู้ดูแลระบบในตัว เพียงเพราะบางสิ่งได้รับการติดตั้งด้วยสิทธิ์ที่เพิ่มขึ้นจึงไม่ได้หมายความว่าผู้ติดตั้งสามารถให้สิทธิ์ในการยกระดับโปรแกรมนั้นได้ สิทธิ์ถูกกำหนดโดยบัญชีที่โปรแกรมทำงานภายใต้ วิธีเดียวที่โปรแกรมสามารถทำงานด้วยสิทธิ์ระดับสูงโดยที่คุณไม่รู้ตัวว่าเป็นถ้า


1
RUNAS /trustlevel:<TrustLevel> program

/trustlevel       <Level> should be one of levels enumerated
                  in /showtrustlevels.
/showtrustlevels  displays the trust levels that can be used
                  as arguments to /trustlevel.

This requires an elevated command prompt.

คำอธิบาย / ทีละขั้นตอน

  1. เปิดเมนูเริ่มและพิมพ์ cmd บนแถบค้นหา
  2. คลิกขวาที่พรอมต์คำสั่งแล้วเลือก run as administrator ประเภท:

    RUNAS /showtrustlevels
    
  3. เลือกระดับความน่าเชื่อถือที่เหมาะสมสำหรับแอปพลิเคชันของคุณเพื่อทำงานในXระดับความน่าเชื่อถือที่คุณต้องการใช้และพิมพ์:

    RUNAS /trustlevel:X "Application target"
    

ฉันไม่คิดว่ามันจะใช้ได้ ในการใช้ RunAs เพื่อให้หน้าต่างเบราว์เซอร์แสดงผลทำงานโดยมีสิทธิ์น้อยคุณจะต้องเรียกใช้โปรแกรมติดตั้ง (ผ่าน RunAs) ด้วยสิทธิ์ระดับต่ำ การทำเช่นนั้นอาจทำให้ตัวติดตั้งไม่ทำงาน
Patrick Seymour

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

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

0

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

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

นี้บทความอธิบายวิธีที่คุณทำให้ exe ทำงานเสมอที่ "ระดับความสมบูรณ์ต่ำ"

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


2
คุณสามารถเพิกเฉยต่อคำตอบของฉันได้ฉันลองใช้วิธีนี้แล้ว แต่ก็ไม่ได้ผล :(
weberik

0

คุณสามารถใช้ AppLocker

ฉันเชื่อว่านี่มีใน Windows 7 Enterprise, Ultimate และ Server 2K8 ขึ้นไป ไม่แน่ใจเกี่ยวกับ Windows 8 แต่จะถือว่าเหมือนกัน (Enterprise and Ultimate)

คุณสามารถตั้งค่า AppLocker โดยไปที่นโยบายกลุ่ม:

การกำหนดค่าคอมพิวเตอร์ -> การตั้งค่า Windows -> การตั้งค่าความปลอดภัย -> นโยบายการควบคุมแอปพลิเคชัน -> AppLocker -> กฎปฏิบัติการ

คลิกขวาและ "สร้างกฎใหม่ ... "

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

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