2013-02-01 59 views
2

是否可以使用DACL字符串選擇此類安全描述符,以便文件只能由Windows服務,打開,但不能由普通進程打開如果該進程由本地管理員帳戶運行?創建只能通過Windows服務打開的文件

要澄清,我只需要使其相當困難讓非技術用戶在記事本中打開它並篡改它。它不需要與願意投入一個月生命的程序員一起工作來逆向工程並破解它。

我更喜歡用DACL來實現這一點,而不是鎖定文件,因爲那時我的Windows服務並不需要爲了保護文件而一直運行。

+3

呃,用戶可以輕鬆創建一個Windows服務來克服這種保護? – Etherealone

+0

如果用戶具有管理權限,他們可以繞過文件權限。 – Luke

回答

3

本地管理員帳戶=上帝(至少在盒子上)。沒有辦法做到這一點。

您可以爲要在其下運行的服務定義一個特權帳戶,並使受保護文件上的ACL僅允許該用戶(以及所有機器管理員)訪問。您可以禁止使用該服務帳戶進行交互式登錄。

如果您的主要擔心是交互式用戶篡改,那麼您可能需要一個策略,使本地用戶不會默認使用本地管理員權限運行。不幸的是,你不能允許「部分」本地管理員權限 - 這是全部或沒有。

1

我不知道DACL是否或如何完成你想要的。我能想到的有兩件事情可以做,以使其更難有人與文件篡改,除了它限制在本地管理員帳戶:

  1. 讓服務自動啓動,並立即打開該文件沒有分享選項。只要你的服務已經打開,另一個進程將無法打開它。
  2. 計算文件內容以及硬編碼到服務中的鹽的散列,並將其存儲在其他地方,例如另一個文件,註冊表中或甚至聯機。下次打開文件時,請驗證散列,它會告訴您是否有人在上次打開文件後篡改了該文件。

這些都是不是任何伸展都很簡單,但它聽起來像你的目標只是讓它更難。有沒有萬無一失的方法來阻止具有管理員權限的用戶。