Hay nhìn theo một quan điểm ôn hòa hơn, nó là một tính năng đôi lúc cũng tối cần thiết với Windows – một cách để kiểm soát quyền truy cập tài khoản người dùng quản trị để những chương tr
Trang 1“Thuần hóa” UAC của Microsoft Windows Vista
Liệu có tính năng nào của Microsoft Windows Vista gây bực tức trên toàn cầu hơn User Account Control, tức UAC viết rút gọn, hay không? Trong điều kiện cần thiết nó vô cùng hữu ích nhưng khi ngược lại nó trở thành sự bất tiện không thể chịu nổi Giải pháp hấp dẫn ở đây là tắt UAC đi và xem như xong, nhưng đây không phải là giải pháp xác đáng Sẽ có những lần bạn muốn sự bảo vệ của UAC và có nhiều cách bạn biến UAC thân thiện hơn là xâm chiếm Hợp tác với nó hơn là chống lại nó, và bạn sẽ thấy ngạc nhiên thú vị là nó dễ điều khiển đến mức nào Sau đây là 7 cách khiến UAC của Vista ít xâm phạm hơn mà vẫn tránh xa được hiểm nguy an ninh
Liệu có tính năng nào của Microsoft Windows Vista gây bực tức trên toàn cầu hơn User Account Control, tức UAC viết rút gọn, hay không? Trong điều kiện cần thiết nó vô cùng hữu ích nhưng khi ngược lại nó trở thành sự bất tiện không thể chịu nổi
Hay nhìn theo một quan điểm ôn hòa hơn, nó là một tính năng đôi lúc cũng tối cần thiết với Windows – một cách để kiểm soát quyền truy cập tài khoản người dùng quản trị để những chương trình không có quyền truy cập quản trị không nhận được nó
Chúng tôi theo quan điểm thứ 2, ngoài việc phá vỡ nhiều thói quen làm việc hiện hành, cũng có nhiều câu hỏi xung quanh cách hoạt động, hoặc phải hoạt động như thế nào, của nhiều chương trình dưới sự điều khiển của UAC
Giải pháp hấp dẫn ở đây là tắt UAC đi và xem như xong, nhưng đây không phải là giải pháp xác đáng Sẽ có những lần bạn muốn sự bảo vệ của UAC và có nhiều cách bạn biến UAC thân thiện hơn là xâm chiếm Hợp tác với nó hơn là chống lại nó, và bạn sẽ thấy ngạc nhiên thú vị là nó dễ điều khiển đến mức nào
1 Xung đột quyền quản trị
Điều quan trọng đầu tiên cần được nói đến là trong trường hợp nào hộp thoại của UAC nên và không nên xuất hiện Nhiều người than phiền rằng UAC quấy rầy họ ngay khi đó dường như chỉ là một hành động hệ thống hoàn toàn bình thường, như mở một file hoặc copy một thứ gì đó sang một nơi khác Đây không phải là cách làm việc hợp lý của UAC,
vì vậy sau đây là bài phân tích nhanh khi nào bạn nên và không nên nhận những câu lệnh của UAC
Trang 2UAC có thể khởi động không cần thiết nếu các điều khoản
của bạn được thiết lập không chính xác
Đầu tiên, UAC nên khởi sự bất cứ khi nào bạn click vào một biểu tượng hoặc hộp thoại Windows có biểu tượng hình cái khiên (shield) Logo này được tạo ra làm lời chú thích bằng hình ảnh rằng bất cứ hành động có liên quan đến nó sẽ phải có sự chấp thuận của UAC, một dạng cảnh báo trước cho người dùng Những hành động này bao gồm những thứ như bộ cài đặt ứng dụng, thứ rõ ràng cần phải có sự cho phép của quản trị (admin) để hoạt động Có lẽ giờ bạn sẽ thấy các biểu tượng cài đặt ứng dụng sẽ được trang trí thêm biểu tượng hình khiên; đó chính là chỉ thị cần sự chấp thuận của UAC để chạy chúng
UAC không nên bật ra khi bạn mở những tài liệu trong thư mục người dùng, khi truy cập vào những tài liệu trên một ổ đĩa khác mà bạn biết là của mình, hoặc khi chạy những chương trình bình thường như Office hoặc Firefox mà không cần quyền quản trị để hoạt động đúng Nếu điều này xảy ra, có khả năng cao là điều khiển sự cho phép trên những file đó bị hỏng hoặc thiết lập sai
Trường hợp này thường xảy ra khi làm việc với những file trên ổ cứng được di chuyển từ một máy tính khác, ví dụ như máy chạy Windows phiên bản trước đó Một ổ cứng định
Trang 3dạng FAT hoặc FAT32 thường không hiển thị những vấn đề đó vì những hệ thống file này không cần đến sự cho phép, nhưng ổ cứng định dạng NTFS có thể có quyền sở hữu trên file và thư mục thuộc về một user nào đó chứ không phải hệ thống hiện tại của bạn Kết quả là, bất kỳ hoạt động file nào trên ổ đấy cũng phải thực hiện dưới chế độ admin,
mà có khi vẫn thất bại
Giải pháp: thu lại quyền sở hữu
Giải pháp ở đây là lấy lại quyền sở hữu tất cả mọi thứ trên ổ, dù bạn là user hiện tại hay
là một quản trị viên Điều này có thể được thực hiện thông qua GUI, nhưng thường sẽ nhanh hơn và linh hoạt hơn nếu thực hiện thông qua cửa sổ lệnh Nếu ổ E: là ổ có vấn đề, bạn có thể dùng lệnh ICACLS, ví dụ như:
Icacls e:\* /setowner Administrators /T /C
Nên nhớ rằng lệnh này mất một lúc mới hoàn tất, vì nó lặp đi lặp lại trên từng đối tượng trong hệ thống file và áp dụng thay đổi về bảo mật Có thể bạn cũng sẽ muốn tự động gỡ
bỏ Recycle Bin ra khỏi ổ này sau khi thực hiện xong, vì nó sẽ không hoạt động chính xác sau khi thay đổi các điều khoản hoặc quyền sở hữu Điều này cũng thực hiện được từ cửa
sổ lệnh:
attrib -s -h e:\RECYCLER
rd /s e:\RECYCLER
(vẫn giả định thực hiện trên ổ e:)
Recycle Bin của ổ này sẽ được tái tạo tự động lần kế tiếp bạn khởi động lại hệ thống Có thể bạn cần phải gán các điều khoảncho ổ đĩa này để có thể truy cập vào tất cả mọi thứ trong nó, nhưng quyền sở hữu đã là mức cao nhất
2 Sử dụng Process Explorer
Bây giờ đến câu hỏi kế tiếp: Liệu có thể khởi động những chương trình nhất định mà không phải đối phó với các lệnh UAC không? Câu trả lời ngắn gọn là có, mặc dù có
“nhiều con đường dẫn đến thành Rome” Con đường chính xác mà bạn sẽ đi tùy thuộc vào thói quen làm việc và bạn muốn chỉnh sửa nó đến mức nào
Trang 4Chạy Process Explorer với quyền admin sẽ cho phép bạn khởi chạy
những chương trình khác với đặc quyền quản trị
Cách tránh UAC của chúng tôi là chạy chương trình Process Explorer của
Sysinternals.com thay thế cho Task Manager Khi bạn dùng PE với tùy chọn dòng lệnh
/T, nó sẽ tự khởi động chương trình với tư cách Administrator Đặt shortcut tới PE trong
trong nhóm Startup và sau khi đăng nhập bạn sẽ gặp nhắc nhở của UAC để chạy chương trình với quyền quản trị
Vậy giải pháp nằm ở đâu? Khi PE khởi động với quyền admin, một trong những điều bạn
có thể thực hiện là dùng nó để mở những chương trình khác cũng với quyền admin Hãy thực hiệnđiều này thông qua hộp thoại File/Run của chương trình, nó cũng có chức năng History và có thể được sử dụng để lưu những nhiệm vụ admin phổ biến, như mở một
phiên CMD hoặc chạy COMPMGMT.MSC /S (bảng điều khiển Computer
Management) Tất cả những chương trình đó sẽ chạy với quyền admin mà không vướng hộp thoại của UAC
Dĩ nhiên PE không phải là chương trình duy nhất có thể sử dụng theo hướng này để khởi chạy các chương trình khác cũng với quyền admin, mà nó là một trong những chương trình tốt hơn vì nhiều lý do – chí ít nó đã được viết để thay thế cho một thành phần của hệ thống, chính vì vậy nó là một phần mã tin cậy mà không ảnh hưởng gì đến bạn
Phương pháp này có một số hạn chế, phần lớn trong số này là những gì liên quan đến sự thoải mái cho người dùng Hạn chế lớn nhất là tốn nhiều công sức: muốn khởi chạy PE
bạn cần phải mở nó từ khay hệ thống (hoặc bằng cách nhấn Ctrl – Shift – Esc), sau đó
Trang 5mở menu Run (Ctrl – R) và gõ thứ bạn đang tìm kiếm hoặc kéo xuống để tìm Nó sẽ tốt
đẹp nếu (a) bạn để PE chạy liên tục; (b) bạn cần phải chạy một chương trình với quyền admin
Chính vì vậy bạn có thể cảm thấy hẳn phải có một cách tốt hơn để thực hiện điều này, và thực sự là có vài cách
3 Lên lịch cho một nhiệm vụ chạy với quyền quản trị
Cách duy nhất để tránh UAC là khởi động một chương trình với quyền admin thông qua Task Scheduler Vì bạn không thể khởi động Task Scheduler và thêm vào một nhiệm vụ quyền admin nếu không phải là admin (và không phải thông qua UAC) ngay từ ban đầu, tuy nhiên điều này không phải là lỗ hổng Những thông tin admin cần thiết được lưu cùng với bản thân nhiệm vụ
Khi được thiết lập, nó có thể được dùng để chạy những nhiệm vụ riêng lẻ (an toàn hơn) hoặc như một framework để khởi chạy những nhiệm vụ quản trị (hơi ít an toàn hơn, nhưng tiện lợi hơn)
Sau đây là một ví dụ cách tạo một nhắc lệnh quản trị theo cách này
Task Manager có thể tránh UAC Chỉ cần chọn “Run with highest privileges”
Trang 61 Truy cập với tài khoản quản trị và khởi động Task Scheduler Một cách nhanh chóng là
gõ sched trong menu Start, sau đó nhấn vào Task Scheduler khi nó xuất hiện Nó cũng
có sẵn trong Control Panel, dưới mục “Schedule tasks” ở bảng bên trái theo cách hiển thị chuẩn, hoặc trong Administrative Tools theo hiển thị Classic
2 Tạo một nhiệm vụ mới bằng cách nhấn “Create Task” trong bảng Actions (“Create
Basic Task” có thể không đưa ra hết các tùy chọn mà bạn cần.)
3 Trong thẻ General, đặt tên cho task “Admin” sẽ hoạt động tốt Bất kỳ tên nào cũng được miễn là bạn thấy dễ nhớ; vì bạn sẽ cần nó sau này Chọn hộp chọn “Run with
highest privileges”
4 Trong thẻ Actions, chọn “New” và chọn “Start a program” Đưa đường dẫn đến
chương trình bạn muốn chạy với quyền admin Trong trường hợp này là cmd.exe Chọn
OK và thêm hành động đó vào danh sách
5 Trong thẻ Conditions, bỏ chọn tất cả các tùy chọn đưa ra
6 Trong thẻ Settings, bỏ chọn tất cả các tùy chọn đưa ra, trừ “Allow task to be run on
demand”
Trang 77 Chọn OK và thêm vào nhiệm vụ được lên lịch
8 Để chạy nhiệm vụ, tạo một shortcut dẫn đến vị trí sau
C:\Windows\System32\schtasks.exe /run /tn ""
(tên nhiệm vụ) là tên bạn chọn trong bước 3 Cần phải có dấu trích dẫn (“”) xung quanh tên Bạn có thể đặt một icon để nhấn mạnh đây là một hoạt động quyền admin
9 Khởi động shortcut Bạn sẽ thấy xuất hiện một cửa sổ CMD với dòng chữ
Administrator: taskeng.exe ở thanh tiêu đề
Một trong những mẹo mà bạn nên làm trên cửa sổ CMD admin là đặt màu nền cửa sổ thành màu đỏ thẫm để có thể liếc qua mà vẫn phân biệt được liệu đang gõ vào một cửa sổ
lệnh admin hay cửa sổ thường Để thực hiện điều này, khởi động cửa sổ CMD, nhấn Alt
– Space để mở menu của cửa sổ, và chọn Properties Dưới mục “Colors”, chọn bộ màu
bạn muốn sử dụng cho cửa sổ admin, nhấn OK
Phương pháp tương tự cũng được sử dụng để khởi động trường hợp “nâng cao” của
Explorer Sử dụng explorer/separate để mở Explorer trong một trường hợp riêng– nếu
không nó sẽ khởi động như một cửa sổ lệnh thường khác chứ không phải “nâng cao” (Cẩn thận với những trường hợp Explorer nâng cao, vì bạn có khả năng làm rối tung hoàn toàn mọi thứ lên theo cách này.)
Trang 8Thêm nữa, nếu bạn khởi động trường hợp Explorer “nâng cao”, hãy nhớ rằng bạn không thể sao chép hoặc di chuyển file giữa các trường hợp “nâng cao” và không nâng cao của Explorer Ví dụ, nếu bạn thử sao chép vào hoặc ra khỏi thư mục Windows, khởi động
chương trình Explorer như trên và nhấn Ctrl-N để mở một cửa sổ thứ 2 từ trường hợp
trên để có thể sao chép giữa chúng với nhau
Một ứng dụng khác cho Task Scheduler
Cũng có thể dùng Task Scheduler để mở một ứng dụng với quyền quản trị Hơn nữa, vốn
đã có một ví dụ bằng chứng về việc thực hiện điều này như thế nào, và đó là bằng chứng điều đó tiện lợi như thế nào
Có một số hướng dẫn về cách sử dụng Task Scheduler để tạo ra một tập lệnh có thể được dùng để chạy bất cứ thứ gì mà không cần lệnh UAC, bằng một menu ngữ cảnh chuột phải
SkipUAC, đây là chương trình sử dụng cả nhiệm vụ lịch biểu và ứng dụng chạy trên nhiệm vụ để đạt được thành tích của nó Nên nhớ rằng bạn phải có khả năng chạy các nhiệm vụ với quyền admin để cài đặt chương trình này ngay từ bước đầu, và chất lượng của toàn bộ điều này là khá tốt – nó được dành cho những người thực sự biết họ đang làm
gì
Trang 94.Sử dụng “Chế độ im lặng” của UAC
Một trong những tính năng của UAC mà ít được ghi nhận rộng rãi là “quiet mode” (chế
độ im lặng), điều giúp cho sự nâng cao UAC có thể được cài đặt diễn ra câm lặng mà không cần sự đồng ý của người dùng Những chương trình cần “nâng cao” vẫn chạy trong tình trạng bảo mật riêng biệt, và người dùng vẫn chạy chế độ mặc định với quyền
ưu tiên giảm
TweakUAC có thể được dùng để bật/tắt UAC, hoặc khiến nó làm việc im lặng
Chế độ im lặng không được đặt sẵn mặc định qua bản điều khiển UAC Vista, có lẽ bởi vì
có khả năng nó sẽ bị lạm dụng Bật lên và những chương trình đòi quyền ưu tiên từ hệ thống có thể chạy mà không cần sự đồng ý đặc biệt của người dùng Tuy nhiên, nó vẫn là một cách hữu dụng để tạm thời tăng tốc một số hoạt động đòi quyền nâng cao nếu bạn không sử dụng trình tiện ích nâng cao
Để bật chế độ im lặng bằng tay, bạn sẽ cần chỉnh sửa Registry (một hành động UAC) Đặt các giá trị DWORD:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft (NSDQ: MSFT)\
Windows\CurrentVersion\Policies\System\
ConsentPromptBehaviorAdmin
và
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
CurrentVersion\Policies\System\ConsentPromptBehaviorUser
Trang 10Về 0 (mặc định là 2) Bạn có thể sẽ cần làm mới policy sau đó, bằng cách sử dụng lệnh gpupdate từ một nhắc lệnh nâng cao
Một cách khác để bật chế độ im lặng là sử dụng một phần mềm freeware của các hãng thứ ba, TweakUAC TweakUAC cho phép bạn tắt UAC hoàn toàn (đòi phải reboot), tái kích hoạt và đưa nó vào chế độ im lặng theo yêu cầu
5 Tắt Secure Desktop
Một trong những tính năng – hoặc nỗi phiền toái, tùy thuộc vào quan điểm – của UAC là cách UAC bật lên được khởi động trên một màn hình an toàn, và tách biệt hoàn toàn Đó
là lý do vì sao màn hình tối đi trong vòng một giây và lệnh của UAC xuất hiện trên phiên bản xám xịt của màn hình (nghĩa là bạn không thể thao tác được nữa) Điều này ngăn cản tất cả mọi thứ trừ bạn, người dùng, thao tác trực tiếp với lệnh của UAC, vì vậy một chương trình độc hại không thể kích hoạt UAC mạo danh bạn
Điều Secure Desktop làm phiền mọi người nhất là mất vài giây để quay trở lại, đặc biệt khi bạn đang sử dụng một máy tính không có phần cứng video nhanh nhất hoặc không sử dụng giao diện Aero
Có thể vô hiệu hóa Secure Desktop và khiến lệnh UAC biến mất nhanh hơn trên màn hình chính Để đối phó với Secure Desktop, chỉnh sửa Registry và đặt giá trị DWORD:
Trang 11\
System\PromptOnSecureDesktop
Đặt về 1 để bật Secure Desktop và 0 để tắt nó Bạn có lẽ sẽ cần chạy gpupdate/force sau khi thực hiện để chắc chắn thay đổi có hiệu lực
Nếu bạn không thoải mái với ý tưởng hy sinh về độ an toàn quá nhiều chỉ vì tốc độ nhanh hơn một chút, đừng tắt Secure Desktop; bạn có thể chọn một trong những cách được trình bày trong bài
6 Thắt chặt điều khiển của UAC
Cùng với tất cả các cách để việc sử dụng UAC dễ dàng hơn, chúng tôi cũng đưa vào một
số mẹo vặt có thể hữu dụng cho những ai muốn UAC an toàn hơn Ở chế độ mặc định, UAC bắt buộc người dùng không phải admin gõ mật khẩu admin, nhưng cho phép người
dùng admin chỉ cần đơn giản nhấn OK để đồng ý một hành động của UAC Có nghĩa là
có thể buộc UAC yêu cầu password cho tất cả các người dùng, bao gồm cả admin
Để thực hiện điều này, chỉnh sửa Registry, và cài đặt giá trị DWORD
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft (NSDQ: MSFT)\Windows\
CurrentVersion\Policies\System\ConsentPromptBehaviorAdmin
về 1 Giá trị mặc định là 2, tức là hành vi admin tiêu chuẩn
Trang 12Cài đặt ConsentPromptBehaviorAdmin để bắt buộc các admin cung cấp password khi
UAC xuất hiện
7 Thực thi chạy mã có xác thực
Sau đây là một cách tăng cường bảo mật có thể có ích với những người muốn chạy UAC
im lặng những vẫn muốn có thêm sự bảo vệ chống lại những đoạn mã giả tạo
UAC có thể được thiết lập để chạy chương trình với tư cách admin chỉ nếu khi chúng có chữ ký số hợp lệ, mặc dù theo mặc định tính năng này bị tắt đi Phần lớn các bộ cài chương trình có một số dạng chữ ký; bạn có thể tìm xem một ứng dụng có chữ ký hay
không bằng cách nhấn chuột phải lên biểu tượng chương trình, chọn Properties, tìm thẻ
Digital Signatures Đây là một dạng bảo hiểm rằng chương trình đang chạy không độc
hại và có nguồn gốc