Bảo vệ file hệ thống bằng UAC Virtualization - Phần 1

Derek Melber

Quản trị mạng - Khi một người dùng chuẩn đăng nhập vào máy tính chạy hệ điều hành Windows, đó cũng là lúc có một số hành động cần phải được bảo vệ. Sự bảo vệ này không phải lúc nào cũng thành công vì một số phiên bản Windows không bảo vệ hệ thống tốt như mọi người hằng mong đợi. Các hành động cần được bảo vệ là sự thay đổi hoặc việc ghi vào các thư mục hệ thống và các location trong Registry. Điều này hoàn toàn cần thiết để bảo vệ sự ổn định cũng như độ bảo mật của toàn hệ điều hành. Về vấn đề này Windows Vista đã cung cấp một giải pháp tuyệt vời để giúp chúng ta có thể bảo vệ các vùng hệ thống này. Vista sử dụng User Account Control và Virtualization để thực hiện. Trong bài này, chúng tôi sẽ giới thiệu cho các bạn cách UAC sử dụng Virtualization để bảo vệ hệ thống.

Lược lại lịch sử của hành vi ứng dụng doanh nghiệp

Thư mục Program Files (được đăt tại C:\Program Files, hay vẫn được viết là %ProgramFiles%) là nơi hầu hết các ứng dụng LOB (dòng doanh nghiệp) lưu các file thực thi cho các ứng dụng. Trong hầu hết các trường hợp, các thiết lập cho ứng dụng LOB được lưu trong HKEY_LOCAL_MACHINE\Software trong Registry. Cả hai location này đều được bảo vệ bởi hệ điều hành bằng cách chỉ cho phép hệ thống và các quản trị viên mới có quyền truy cập và ghi, còn người dùng có thể đọc và truy cập ở mức thực thi.

Các ứng dụng dòng doanh nghiệp cần được thiết kế để có thể ghi vào các thư mục dữ liệu ứng dụng cụ thể của người dùng, các thư mục này sẽ được đặt trong user profile. Thường vẫn là C:\Users\<username>\AppData hay %AppData%. Nếu có thiết lập nào cần thiết phải được lưu, thì các thiết lập này cần được đặt trong Registry tại HKEY_CURRENT_USER\Software. Cả hai location này đều được tạo trên một người dùng và được bảo vệ bằng cách chỉ cho phép người dùng có quyền truy cập đến dữ liệu mới có thể ghi và thay đổi.

Mặc dù vậy nhiều ứng dụng doanh nghiệp lại không được thiết kế để làm việc theo cách đó mà thay vì đó chúng lại được thiết kế để lưu dữ liệu của người dùng trong %ProgramFiles%HKEY_LOCAL_MACHINE\Software. Tuy nhiên, những nguời dùng chuẩn không có quyền truy cập ở mức ghi vào các location này, location có thể làm cho nhiều công ty có thể bổ sung thêm người dùng chuẩn vào nhóm quản trị nội bộ để chạy các ứng dụng này. Rõ ràng, điều đó thực sự không hề an toàn chút nào, vì người dùng có thể thay đổi bất cứ thứ gì trên máy tính của họ.

UAC Virtualization

Do các ứng dụng dòng doanh nghiệp không thể bị thay đổi một cách dễ dàng và người dùng vẫn phải chạy các ứng dụng này, chính vì lẽ đó Vista đã sử dụng một phương pháp khác để khắc phục vấn đề này. Bên trong Vista, UAC có bổ sung thêm tính năng ảo hóa hệ thống file và không gian tên của Registry. UAC sẽ ảo hóa các ứng dụng mang tính kế thừa và cho phép các người dùng chuẩn giữ một “standard user”, nhưng vẫn có thể chạy ứng dụng. Định nghĩa tính kế thừa trong trường hợp này gồm có các xử lý 32-bit, không chạy với các đặc quyền quản trị viên, không gồm các file manifest của Windows Vista. Nếu một xử lý nào đó hoặt một hành đông nào đó không hội tụ đủ các điều kiện cần thiết sẽ không được xử lý ảo. Thêm vào đó là các xử lý và các hoạt động dưới đây cũng không:

  • Các ứng dụng Vista mặc định
  • Các file thực thi với các đuôi mở rộng như .EXE, .BAT, .VBS và .SCR. Có thể bổ sung thêm các ngoại lệ về đuôi mở rộng trong HKLM\System\CurrentControlSet\Services\Luafv\Parameters\ExcludedExtensionsAdd.
  • Các ứng dụng và các quá trình 64-bit
  • Các ứng dụng với chỉ thị Execution Level trong manifest thực thi của họ, giống như hầu hết các thực thi của Vista.
  • Các quá trình hoặc các ứng dụng đang chạy với quyền quản trị viên.
  • Các ứng dụng chạy trong chế độ Kernel
  • Các hoạt động không bắt nguồn từ một session đăng nhập mang tính tương tác, giống như việc chia sẻ file.
  • Các ứng dụng thay đổi registry key đã được đánh dấu cờ “Don't_Virtualize registry

Virtualization của hệ thống file và Registry không được thực hiện một cách rộng rãi. Nó bị hạn chế ở một số location, điều đó là cần thiết cho hệ điều hành chạy và giữ cho chúng được an toàn. Đây là danh sách gần như hoàn tất của các location được ảo hóa:

  • \Program Files and subfolders
  • \Program Files (x86) on 64-bit systems
  • \Windows and all subfolders, including System32
  • \Users\%AllUsersProfile%\ProgramData
  • \Documents and Settings (symbolic link)
  • HKLM\Software

Thẩm định UAC Virtualization

Khi một hành động nào đó được ảo hóa, nội dung của nó sẽ được lưu vào trong profile người dùng như chúng ta đã đề cập ở trên. Mặc dù vậy, bạn có biết cách các thông tin được ảo hóa như thế nào? Phụ thuộc vào những nội dung gì được ảo hóa, sẽ có các chỉ thị bên trong các giao diện khác nhau để giúp bạn thấy được điều này.

Chỉ thị đầu tiên mà chúng tôi giới thiệu cho các bạn là bên trong Windows Explorer. Phụ thuộc vào thư mục và các file nào được ảo hóa, bạn sẽ thấy các tùy chọn menu bổ sung vào bên trong Windows Explorer. Hình 1 thể hiện những gì về Windows Explorer và khi nào bạn có các file ảo hóa trong thư mục C:\Windows.


Hình 1: Hộp đỏ được đánh dấu chỉ thị rằng đó là các file đã được xử lý ảo

Tùy chọn các file tương thích “Compatibility Files” trong Windows Explorer chỉ xuất hiện khi có các file được xử lý ảo hóa và tùy chọn menu mới này sẽ xuất hiện chỉ cho các thư mục có các file ảo và các thư mục ảo đó.

Khi tùy chọn Compatibility Files được chọn, nó sẽ hướng cửa sổ Windows Explorer vào các file được ảo hóa và thư mục chứa nó. Hình 2 sẽ thể hiện những gì bên trong vấn đề ảo hóa các file này cũng như các thư mục trong đó.


Hình 2: Tùy chọn menu các file tương thích được lưu trong thư mục VirtuaStore

Như những gì các bạn đã thấy, tùy chọn menu các file tương thích mở ở thư mục VirtualStore, đây là thư mục được đặt trong profile của người dùng. Như bạn thấy trong hình 2, tên của nó là <username>\AppData\VirtualStore.

Kết luận

Có lẽ trong số chúng ta đều biết rằng, các ứng dụng được xây dựng để chạy trên các máy tính Windows cũng rất khó khăn. Lý do chính cho điều đó là các ứng dụng đó ghi vào các file hệ thống được bảo vệ, các thư mục và các location của Registry. Tuy nhiên đối với Windows thì điều đó yêu cầu người dùng phải có được đặc quyền quản trị viên nội bộ hoặc phải được đặt một cách thích hợp. Việc đặt các tài khoản người dùng vào nhóm quản trị viên nội bộ để cho phép người dùng chạy thành công các ứng dụng của họ là một giải pháp không hề tốt chút nào. Phụ thuộc vào cách ứng dụng đó được thiết kế, UAC virtualization của các file và Registry là một giải pháp tuyệt vời. Các file và các entry của Registry sẽ được ảo hóa, bằng cách đặt vào chính profile cá nhân của người dùng. Cách thức này giúp Windows có thể bảo vệ được hệ thống, mạng mà vẫn cho phép người dùng chạy ứng dụng của họ.

Thứ Bảy, 06/12/2008 16:04
21 👨 3.204
0 Bình luận
Sắp xếp theo
    ❖ Kiến thức cơ bản