Công Cụ Kiểm Thử Vượt Qua Cơ Chế Phòng Thủ User Account Control

Tài liệu nghiên cứu Công cụ kiểm thử vượt qua cơ chế phòng thủ user account control, tổng hợp lý thuyết và thực hành, cung cấp kiến thức chuyên sâu về .

Người đăng

Ẩn danh
87
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

LỜI CAM ĐOAN

1. CHƯƠNG 1: KIỂM SOÁT TRUY CẬP VÀ CƠ CHẾ KIỂM SOÁT TÀI KHOẢN NGƯỜI DÙNG

1.1. Xác định danh tính và quyền truy cập

1.2. Mã định danh bảo mật

1.3. Thẻ truy cập

1.4. Danh sách kiểm soát truy cập và bộ mô tả bảo mật

1.5. Cơ chế kiểm soát tài khoản người dùng

1.6. Nguồn gốc ra đời

1.7. Một số cơ chế đi kèm bảo vệ cơ chế kiểm soát người dùng

1.8. Kết chương

2. CHƯƠNG 2: PHƯƠNG PHÁP VƯỢT QUA CƠ CHẾ KIỂM SOÁT TÀI KHOẢN NGƯỜI DÙNG

2.1. Lỗ hổng trong API trạng thái quy trình và tác động

2.2. DLL sideloading với IFileOperation

2.3. Luồng thực thi

2.4. Thực trạng khai thác của mã độc

2.5. Mở rộng mục tiêu khai thác

2.6. Biện pháp phát hiện, phòng chống

2.7. Hijack SxS với IFileOperation. Mô tả kỹ thuật

2.8. Luồng thực thi

2.9. Mở rộng mục tiêu khai thác. Biện pháp phát hiện, phòng chống

2.10. Kết chương

3. CHƯƠNG 3: CÔNG CỤ KIỂM THỬ CƠ CHẾ KIỂM SOÁT TÀI KHOẢN NGƯỜI DÙNG

3.1. Phân tích thiết kế

3.2. Thử nghiệm và đánh giá

3.3. Đối tượng thử nghiệm

3.4. Thử nghiệm công cụ

3.5. Đánh giá kết quả

3.6. Phương hướng phát triển

PHỤ LỤC 1: GIẢ MẠO TIẾN TRÌNH

PHỤ LỤC 2: DANH SÁCH MỤC TIÊU KHAI THÁC DLL SIDELOADING VỚI IFILEOPERATION

PHỤ LỤC 3: GIẢ MẠO HÀM EXPORT CỦA DLL VỚI PE INJECTION

PHỤ LỤC 4: DANH SÁCH MỤC TIÊU KHAI THÁC HIJACK SXS VỚI IFILEOPERATION

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Giải Mã Cơ Chế User Account Control UAC Của Windows

Cơ chế User Account Control (UAC) là một thành phần bảo mật cốt lõi được Microsoft giới thiệu từ Windows Vista, nhằm mục đích giảm thiểu rủi ro từ các phần mềm độc hại và ngăn chặn những thay đổi trái phép trên hệ thống. UAC hoạt động dựa trên nguyên tắc giới hạn đặc quyền, đảm bảo rằng các ứng dụng và tác vụ chỉ chạy với quyền người dùng tiêu chuẩn, trừ khi được người dùng hoặc quản trị viên cấp phép một cách tường minh. Mục tiêu chính của UAC là thực thi một mô hình bảo mật Windows chặt chẽ hơn, tách biệt các tiến trình quản trị khỏi các tiến trình thông thường thông qua mức độ toàn vẹn (Integrity Levels). Khi một tác vụ yêu cầu quyền quản trị, UAC sẽ hiển thị một lời nhắc nâng cao (elevation prompt) trên một màn hình an toàn (Secure Desktop), ngăn chặn các ứng dụng khác can thiệp. Theo nghiên cứu của Nguyễn Đức Hoằng, kiến trúc UAC được thiết kế để giải quyết hai vấn đề lớn: (1) các ứng dụng cũ được lập trình với giả định chúng luôn có quyền quản trị, và (2) nhu cầu nâng quyền tạm thời của người dùng tiêu chuẩn để thực hiện các tác vụ hệ thống. Để giải quyết, UAC sử dụng các thẻ truy cập bị hạn chế (Restricted Token) và chế độ phê duyệt của quản trị viên (Admin Approval Mode), tạo ra hai thẻ truy cập riêng biệt cho quản trị viên: một thẻ đã lọc quyền quản trị cho tác vụ thông thường và một thẻ đầy đủ đặc quyền cho các tác vụ hệ thống. Cơ chế này là tuyến phòng thủ đầu tiên chống lại các kỹ thuật leo thang đặc quyền và là một phần quan trọng trong chiến lược ethical hackingkiểm thử thâm nhập.

1.1. Kiến trúc và nguyên tắc hoạt động cốt lõi của UAC

Kiến trúc của UAC xoay quanh việc sử dụng các thẻ truy cập (access tokens) đã được lọc quyền. Khi một quản trị viên đăng nhập, hệ thống sẽ tạo ra hai thẻ truy cập. Thẻ đầu tiên là thẻ truy cập tiêu chuẩn, tương tự như của một người dùng thông thường, được sử dụng để khởi chạy các ứng dụng không yêu cầu quyền quản trị. Thẻ thứ hai là thẻ truy cập với đầy đủ đặc quyền quản trị. Chỉ khi một ứng dụng yêu cầu quyền cao hơn, UAC mới kích hoạt lời nhắc để sử dụng thẻ truy cập đầy đủ quyền này. Nguyên tắc này được gọi là Chế độ Phê duyệt của Quản trị viên, giúp giảm thiểu bề mặt tấn công của hệ điều hành.

1.2. Mức độ toàn vẹn Integrity Levels và vai trò

Để tăng cường sự cô lập giữa các tiến trình, UAC tích hợp Cơ chế Kiểm soát Toàn vẹn Bắt buộc (Mandatory Integrity Control - MIC). MIC gán một mức độ toàn vẹn cho mỗi tiến trình và đối tượng. Có các mức chính như Low, Medium, High và System. Một tiến trình có mức độ toàn vẹn thấp hơn không thể ghi hoặc sửa đổi một đối tượng có mức độ toàn vẹn cao hơn. Ví dụ, một trình duyệt chạy ở mức Low không thể sửa đổi các tệp tin hệ thống ở mức High. Cơ chế này ngăn chặn hiệu quả các kỹ thuật như process injection từ các tiến trình độc hại có đặc quyền thấp.

1.3. Cơ chế tự động nâng cao đặc quyền auto elevate

Để cải thiện trải nghiệm người dùng, Microsoft đã tích hợp cơ chế tự động nâng cao đặc quyền (auto-elevate executables) cho một số tiến trình hệ thống đáng tin cậy. Các tiến trình này có thể nhận quyền quản trị mà không cần hiển thị lời nhắc UAC. Điều kiện để một tệp thực thi được auto-elevate bao gồm: phải được ký bởi Microsoft, nằm trong một thư mục an toàn (như System32), và có thuộc tính autoElevate được đặt thành true trong tệp kê khai (manifest). Chính cơ chế này, dù tiện lợi, lại tạo ra một bề mặt tấn công tiềm năng cho các UAC bypass techniques.

II. Thách Thức Khi Kiểm Thử Các Lỗ Hổng UAC Phổ Biến

Mặc dù là một lớp phòng thủ quan trọng, UAC không phải là bất khả xâm phạm. Các chuyên gia kiểm thử thâm nhập và các nhóm red team liên tục nghiên cứu và phát hiện ra các phương pháp để vượt qua (bypass) cơ chế này. Các kỹ thuật này không được Microsoft coi là lỗ hổng bảo mật truyền thống vì chúng không phá vỡ ranh giới bảo mật cốt lõi của kernel, mà thay vào đó, chúng lạm dụng các tính năng và logic được thiết kế sẵn trong Windows. Việc khai thác lỗ hổng UAC thường là một bước quan trọng trong chuỗi tấn công, cho phép kẻ tấn công thực hiện leo thang đặc quyền từ một người dùng tiêu chuẩn lên quản trị viên hệ thống. Một trong những điểm yếu nền tảng được tài liệu của Nguyễn Đức Hoằng chỉ ra là lỗ hổng trong API trạng thái quy trình (PSAPI). PSAPI được hệ thống sử dụng để xác thực tiến trình gọi các đối tượng COM, nhưng thông tin này có thể bị giả mạo từ không gian người dùng. Bằng cách giả mạo tiến trình của mình thành một tiến trình đáng tin cậy như explorer.exe, kẻ tấn công có thể lừa hệ thống cấp quyền nâng cao một cách âm thầm (silent elevation). Các phương pháp như DLL Hijacking và lạm dụng đối tượng COM đều dựa trên nguyên tắc lạm dụng lòng tin này, biến các tính năng hợp lệ thành vũ khí để vượt qua UAC.

2.1. Nguy cơ từ việc leo thang đặc quyền privilege escalation

Mục tiêu cuối cùng của việc bypass UAC là leo thang đặc quyền (privilege escalation windows). Khi một mã độc có được quyền quản trị, nó có thể vô hiệu hóa các phần mềm bảo mật, cài đặt các dịch vụ thường trú, đánh cắp thông tin nhạy cảm của tất cả người dùng trên hệ thống, và di chuyển ngang trong mạng nội bộ. Việc ngăn chặn các kỹ thuật UAC bypass là rất quan trọng để giới hạn tác động của một cuộc xâm nhập ban đầu, không cho phép nó leo thang thành một sự cố nghiêm trọng trên toàn hệ thống.

2.2. Điểm yếu trong API trạng thái quy trình PSAPI

Điểm yếu cốt lõi nằm ở việc hệ thống tin tưởng vào thông tin do Process Status API (PSAPI) cung cấp để xác định danh tính của một tiến trình. Cụ thể, hệ thống kiểm tra trường ImagePathName trong Process Environment Block (PEB) của tiến trình. Tuy nhiên, PEB là một cấu trúc dữ liệu trong không gian người dùng và có thể bị sửa đổi. Một tiến trình độc hại có thể ghi đè đường dẫn của nó trong PEB để giả mạo thành một tiến trình hợp lệ của Windows như explorer.exe. Khi đó, các lời gọi COM yêu cầu nâng quyền từ tiến trình này sẽ được tự động chấp thuận mà không cần lời nhắc UAC.

III. Phương Pháp Vượt UAC Qua DLL Hijacking SxS Hijack

Một trong những nhóm kỹ thuật UAC bypass techniques phổ biến nhất là lạm dụng cơ chế nạp thư viện liên kết động (DLL). Các phương pháp này tận dụng cách Windows tìm kiếm và nạp các tệp DLL khi một ứng dụng được thực thi. Bằng cách đặt một DLL độc hại vào đúng vị trí, kẻ tấn công có thể khiến một ứng dụng hợp lệ và có khả năng auto-elevate executables nạp và thực thi mã của chúng với đặc quyền cao. Tài liệu nghiên cứu đã phân tích sâu hai kỹ thuật chính: DLL Hijacking (hay DLL Sideloading) và Windows Side-by-Side Hijacking (COM Hijacking). Cả hai phương pháp đều lợi dụng đối tượng COM IFileOperation để sao chép DLL độc hại vào các thư mục hệ thống được bảo vệ mà không cần sự đồng ý của người dùng. Kỹ thuật này đặc biệt nguy hiểm vì nó không khai thác một lỗi phần mềm cụ thể, mà lạm dụng một chuỗi các hành vi hợp lệ của hệ điều hành. Các chuyên gia penetration testing thường sử dụng các công cụ như UACMe tool để tự động hóa việc tìm kiếm và khai thác các mục tiêu dễ bị tấn công này. Việc hiểu rõ cách thức hoạt động của các kỹ thuật này là điều cần thiết để xây dựng các biện pháp phát hiện và phòng chống hiệu quả.

3.1. Kỹ thuật DLL Sideloading với đối tượng IFileOperation

Kỹ thuật này hoạt động bằng cách sử dụng đối tượng COM IFileOperation (sau khi đã giả mạo tiến trình) để sao chép một DLL độc hại vào cùng thư mục với một tệp thực thi có khả năng auto-elevate (ví dụ: sysprep.exe). Khi tệp thực thi này được khởi chạy, Windows Loader sẽ ưu tiên nạp DLL từ thư mục cục bộ trước khi tìm kiếm trong các thư mục hệ thống. Kết quả là DLL độc hại được nạp và hàm DllMain của nó được thực thi với quyền quản trị, hoàn thành quá trình leo thang đặc quyền.

3.2. Khai thác Windows Side by Side SxS để bypass UAC

Windows Side-by-Side (WinSxS) là một cơ chế cho phép các ứng dụng chỉ định phiên bản DLL chính xác mà chúng cần. Tuy nhiên, cơ chế này có một đặc điểm: nó sẽ ưu tiên tìm kiếm DLL trong một thư mục có tên [tên_file_thực_thi].local nếu tồn tại. Kẻ tấn công lợi dụng điều này bằng cách sử dụng IFileOperation để tạo thư mục .local này bên trong System32 và sao chép DLL độc hại vào đó. Khi tệp thực thi auto-elevate tương ứng (ví dụ: dccw.exe) được chạy, nó sẽ nạp DLL độc hại từ thư mục .local, qua đó vượt qua UAC.

IV. Cách Bypass UAC Bằng Kỹ Thuật Lạm Dụng Đối Tượng COM

Bên cạnh các kỹ thuật dựa trên DLL, việc lạm dụng các đối tượng Component Object Model (COM) là một hướng tấn công mạnh mẽ khác để thực hiện silent elevation. Một số đối tượng COM được Microsoft đưa vào danh sách trắng (COMAutoApprovalList) và có thể được nâng quyền tự động nếu được gọi từ một tiến trình đáng tin cậy. Bằng cách kết hợp kỹ thuật giả mạo tiến trình với việc gọi các đối tượng COM này, kẻ tấn công có thể thực thi mã hoặc sửa đổi hệ thống với đặc quyền cao mà không gây ra bất kỳ cảnh báo nào cho người dùng. Đồ án của Nguyễn Đức Hoằng tập trung phân tích đối tượng COM CMSTPLUA (còn gọi là ICMLuaUtil), một đối tượng không được tài liệu hóa nhưng có sẵn trên hệ thống. Đối tượng này cung cấp các phương thức cho phép thực thi lệnh và chỉnh sửa registry. Ví dụ, phương thức ShellExec có thể được sử dụng để chạy một tệp thực thi bất kỳ với quyền quản trị. Tương tự, các phương pháp Fodhelper.exe bypass hay Eventvwr.exe bypass cũng hoạt động dựa trên nguyên tắc lạm dụng các tác vụ hoặc đối tượng COM được đăng ký sẵn để thực thi mã độc trong một ngữ cảnh đặc quyền cao. Những kỹ thuật này đòi hỏi sự hiểu biết sâu về registry và cơ chế hoạt động của COM trong bảo mật Windows.

4.1. Khai thác CMSTPLUA để thực thi lệnh ShellExec

Sau khi giả mạo tiến trình thành explorer.exe, mã độc có thể khởi tạo đối tượng COM CMSTPLUA và gọi phương thức ShellExec. Phương thức này nhận các tham số tương tự như hàm API ShellExecute, cho phép chỉ định một tệp tin để thực thi. Vì CMSTPLUA nằm trong danh sách được tự động phê duyệt, lệnh sẽ được thực thi với thẻ truy cập quản trị đầy đủ. Đây là một kỹ thuật UAC bypass rất tinh vi vì nó không để lại tệp tin nào trên đĩa và khó bị phát hiện bởi các giải pháp giám sát hành vi thông thường.

4.2. Sử dụng SetRegistryStringValue để chỉnh sửa Registry

Phương thức SetRegistryStringValue của CMSTPLUA cho phép ghi vào các khóa registry trong nhánh HKEY_LOCAL_MACHINE (HKLM), vốn yêu cầu quyền quản trị. Kẻ tấn công có thể lạm dụng tính năng này để thiết lập các cơ chế thường trú (persistence) hoặc tấn công gián tiếp. Ví dụ, chúng có thể sửa đổi một khóa registry được một dịch vụ hoặc một đối tượng COM khác sử dụng, chẳng hạn như IColorDataProxy, để khi đối tượng đó được kích hoạt, nó sẽ thực thi một lệnh độc hại đã được ghi sẵn trong registry, hoàn tất quá trình khai thác lỗ hổng UAC.

V. Công Cụ UAC Checker Ứng Dụng Kiểm Thử Thực Tiễn

Từ những phân tích lý thuyết về các kỹ thuật UAC bypass, nghiên cứu của Nguyễn Đức Hoằng đã tiến tới việc xây dựng một công cụ pentest thực tiễn mang tên "UAC Checker". Đây là công cụ kiểm thử bán tự động được thiết kế cho các chuyên gia an toàn thông tin và những người làm kiểm thử thâm nhập (penetration testing). Mục tiêu của công cụ là tự động hóa quá trình rà quét hệ thống để tìm kiếm tất cả các mục tiêu (tệp thực thi và DLL) có khả năng bị khai thác bởi các kỹ thuật đã phân tích. UAC Checker được phát triển bằng ngôn ngữ C cho phần lõi khai thác và Python cho các tác vụ tự động hóa, đảm bảo khả năng tương thích cao trên nhiều phiên bản Windows. Công cụ cung cấp hai chức năng chính: (1) Kiểm thử tự động để tìm kiếm và liệt kê các mục tiêu tiềm năng, và (2) Thử nghiệm tấn công để xác minh khả năng khai thác một mục tiêu cụ thể. Kết quả đầu ra rõ ràng, có thể được xuất dưới dạng danh sách hoặc hiển thị trực quan thông qua việc thực thi một lệnh (ví dụ: cmd.exe) với quyền quản trị. Sự ra đời của các công cụ pentest như UAC Checker cho thấy tầm quan trọng của việc kiểm tra và xác thực cấu hình bảo mật hệ thống một cách chủ động.

5.1. Phân tích và thiết kế công cụ kiểm thử thâm nhập

Công cụ được thiết kế với giao diện dòng lệnh, hướng đến đối tượng người dùng là các kỹ sư an toàn thông tin. Phần lõi khai thác được viết bằng C để tương tác trực tiếp với Windows API, thực hiện các kỹ thuật như giả mạo tiến trình và gọi COM. Phần kịch bản tự động hóa viết bằng Python sử dụng các thư viện như pefile để phân tích tệp thực thi và procmon_parser để phân tích log từ Process Monitor trong quá trình tìm kiếm động, giúp xác định các mục tiêu khai thác tiềm năng một cách hiệu quả.

5.2. Kết quả thử nghiệm và đánh giá hiệu quả thực tế

Công cụ đã được thử nghiệm trên các phiên bản Windows phổ biến như Windows 7 và Windows 10. Kết quả cho thấy UAC Checker hoạt động ổn định và phát hiện thành công hàng chục mục tiêu khai thác trên mỗi hệ điều hành, bao gồm cả các mục tiêu đã được biết đến và những mục tiêu mới chưa được công bố rộng rãi. Việc thử nghiệm tấn công cũng xác nhận rằng các mục tiêu được tìm thấy đều có thể bị khai thác để thực hiện leo thang đặc quyền thành công, chứng minh tính hiệu quả và giá trị thực tiễn của công cụ trong các hoạt động red team.

VI. Kết Luận Tương Lai Của Kỹ Thuật UAC Bypass Phòng Thủ

Nghiên cứu về các công cụ kiểm thử vượt qua cơ chế phòng thủ User Account Control đã cho thấy một bức tranh rõ ràng về cuộc chạy đua không ngừng nghỉ giữa tấn công và phòng thủ trong lĩnh vực bảo mật Windows. UAC, dù là một cơ chế phòng thủ quan trọng, vẫn có những điểm yếu trong logic thiết kế bị các nhóm tấn công và chuyên gia ethical hacking khai thác. Các kỹ thuật như DLL Hijacking, COM Hijacking, và lạm dụng các đối tượng COM đáng tin cậy vẫn còn hiệu quả trên nhiều phiên bản Windows. Sự tồn tại của các công cụ như Metasploit UAC bypass hay UACMe tool và giờ là UAC Checker khẳng định rằng việc kiểm thử và đánh giá khả năng bị vượt qua của UAC là một phần không thể thiếu trong quy trình kiểm thử thâm nhập. Về phía phòng thủ, Microsoft đã có những động thái vá lỗi bằng cách cài đặt cứng đường dẫn DLL cho một số ứng dụng. Tuy nhiên, các lỗ hổng nền tảng vẫn còn đó. Tương lai đòi hỏi các giải pháp giám sát hành vi nâng cao, có khả năng phát hiện các chuỗi hành động đáng ngờ, thay vì chỉ dựa vào chữ ký tĩnh. Đối với các đội red team, việc liên tục nghiên cứu và phát triển các kỹ thuật mới sẽ giúp các tổ chức hiểu rõ hơn về rủi ro và tăng cường khả năng phòng thủ của mình.

6.1. Tổng kết các kỹ thuật và kết quả nghiên cứu UAC

Nghiên cứu đã phân tích thành công các điểm yếu của UAC, đặc biệt là cơ chế auto-elevate và sự tin tưởng vào PSAPI. Các phương pháp tấn công được trình bày chi tiết, từ đó mở rộng danh sách các mục tiêu có thể bị khai thác. Việc xây dựng công cụ UAC Checker đã chứng minh tính khả thi của việc tự động hóa quá trình phát hiện các điểm yếu này, cung cấp một phương tiện hữu ích cho cộng đồng an toàn thông tin.

6.2. Hướng phát triển cho Red Team và Ethical Hacking

Trong tương lai, các kỹ thuật UAC bypass sẽ tiếp tục phát triển, có thể tập trung vào các đối tượng COM mới hoặc các cơ chế ít được biết đến hơn trong Windows. Các đội Red Team và chuyên gia ethical hacking cần mở rộng nghiên cứu sang các thành phần khác của hệ điều hành, đồng thời phát triển các phương pháp tấn công tinh vi hơn để tránh bị phát hiện. Về phía công cụ, việc tích hợp thêm nhiều kỹ thuật, thiết kế giao diện đồ họa và tự động hóa việc xuất báo cáo sẽ là những hướng phát triển tiềm năng để phục vụ một đối tượng người dùng rộng hơn.

10/07/2025
Công cụ kiểm thử vượt qua cơ chế phòng thủ user account control

Trích đoạn nội dung tài liệu

Chương 1: Kiểm soát truy cập va cơ chế kiểm soát tài khoản người dùng: Giới thiệu sơ bộ về cách thức Windows xác định quyền truy cập vào một đối tượng bất kì. Chỉ ra rủi ro khi mã độc tắn công vào tài khoản quyền quản trị và cách thức UAC giải quyết vẫn đề này. - _ Chương 2: Phương pháp vượt qua cơ chế kiểm soát tài khoản người dùng: Trình bày một số phương pháp thường được mã độc sử dụng trong quá trình khai thác, từ đó phân tích, làm rõ, mở rộng và chỉ ra nhiều mục tiêu tấn công khác chưa được khám phá, đưa ra các biện pháp phòng chống, phát hiện thích hợp. - - Chương 3: Công cụ kiểm thử cơ chế kiểm soát tài khoản người dùng: Trình bày về quá trình xây dựng công cụ kiểm thử.

Bắt đầu từ bước lên ý tưởng, phân tích yêu câu, thiết kế, phát triển,. cho tới khi hoàn thành và thử nghiệm. Ngoài ra còn có thêm 4 phụ lục bô sung thêm cho các nội dung chính của đô án: Nguyễn Đức Hoằng — B17DCA T084 2 Đô án tôt nghiệp Lời mở đâu Phụ lục 1: Giả mạo tiến trình. Phụ lục 2: Danh sách mục tiêu khai thác DLL sideloading với IFileOperation.

Phụ lục 3: Giả mạo ham Export cia DLL v6i PE Injection. Phụ lục 4: Danh sách mục tiêu khai thác Hijack SxS với IFileOperation. Chi tiết về nội dung của từng phụ lục sẽ được đề cập trong các chương liên quan. Nguyễn Đức Hoằng — B17DCA T084 3 Đồ án tốt nghiệp Chương l1: Kiểm soát truy cập và cơ chê kiêm soát tài khoản người dùng CHUONG 1: KIEM SOAT TRUY CAP VA CO CHE KIEM SOAT TAI KHOAN NGUOI DUNG Cơ chế kiểm soát tài khoản người dùng thuộc nhóm các cơ chế kiểm soát truy cập trên hệ điều hành Windows.

Cùng với Danh sách kiểm soát truy cập tuỳ ý (Discretionary Access Control List— DACL) và một số cơ chế khác hoạt động có móc nối với nhau, UAC đã góp phần tạo nên một bộ giải pháp kiểm soát truy cập khá toàn diện. Trong chương này, đồ án sẽ làm rõ: - _ Cách thức Windows xác định danh tính và quyền truy cập vào một đối tượng bất kì trên hệ thống. - _ Đặc quyên của tài khoản, các loại đặc quyền quan trọng trong Windows và tầm ảnh hưởng của chúng nếu mã độc sở hữu. - _ Nguôn gốc ra đời, các bài toán mà UAC phải đối mặt.

- _ Kiến trúc thiết kế của UAC và các cơ chế thành phần khác. Xác định danh tính và quyền truy cập 1. Ma dinh danh bao mat Thay vì sử dụng tên (có thể là duy nhất hoặc không duy nhất) để xác định các thực thể thực hiện các hành động trong hệ thống, Windows sử dung Ma dinh danh bao mat (Security identifiers — SID). Người dùng có SID cũng như các nhóm miễn và nhóm cục bộ, máy tính cục bộ, miền, thành viên miền và dịch vụ.

SID là một giá trị số có độ dài thay đổi bao gồm: - _ Một Revision: Số hiệu phiên bản SID. - Mo6t Identifier Authority: Gia tri dinh danh tác gia dai 48 bit xác định tác nhân đã cap SID, tac nhân này thường là một hệ thống cục bộ Windows hoặc một miễn. - _ Một vài Relative Identifier - RID: Được gọi là giá trị uỷ quyền phụ hay giá trị nhận dạng tương đối dài 32 bit. Các giá trị ủy quyền phụ có thể sử dụng để xác định nơi cấp hay chỉ đơn giản để tạo ra các SID duy nhất từ 1 SID cơ sở.

Vì SID có tập giá trị rất lớn và Windows quan tâm đến việc tạo các giá trị thực sự ngẫu nhiên trong mỗi SID, nên hầu như Windows không thê phát hành cùng một SID hai lần trên các máy hoặc miễn ở bất kỳ đâu trên thế giới. Khi được hiển thị dưới dạng văn bản, mỗi SID mang một tiền tổ S và các thành phân khác nhau của nó được phân tách bằng dấu gạch ngang như sau: S-1-5-21-1463437245-1224812800-863842198-1128 Trong SID nay, s6 hiéu phién ban 1, gia tri dinh danh tac gia la 5 (co quan bảo mật Windows) và năm giá trị uỷ quyền phụ khác tạo nên phần còn lại của SID. SID này là một SID miền, mỗi máy tính cục bộ trên miền sẽ có SID với cùng số hiệu phiên bản, giá trị định danh tác giả và số lượng giá trị ủy quyền phụ. Windows cũng định nghĩa một số SID cục bộ và miền được tích hợp san để đại diện cho các nhóm mặc định.

Ví dụ: SID xác định tất cả các tài khoản (ngoại trừ người dùng ân danh) Nguyễn Đức Hoằng — B17DCA T084 4 Đồ án tốt nghiệp Chương l1: Kiểm soát truy cập và cơ chê kiêm soát tài khoản người dùng la Everyone (S-1-1-0). Mot vi du khac về nhóm mà SID có thê dai dién 14 Network Group (S- 1-5-2) dai dién cho nhting nguoi dung da dang nhap vao mot may tt mang.1, dugc sao chép từ tài liệu Windows SDK [6] chứa một số SID cơ bản đã biết và cách sử dụng của chúng. Không giống như SID của người dùng, các SID này là các hằng số được xác định trước và có cùng giá trỊ trên mọi miền và hệ thống Windows trên thế giới. Do đó, một tệp mà các thành viên của nhóm EveryOne trên hệ thống nơi tệp được tạo ra cũng có thé truy cập được đối với EveryOne trên bất kỳ hệ thống hoặc miền nào khác.

Tắt nhiên, người dùng trên các hệ thống đó phải xác thực tài khoản trên các hệ thống đó trước khi trở thành thành viên của nhóm EveryOne.1: Một số SID thường gặp SID Tên mô tả Chức năng S-1-0-0 Nobody Dược sử dụng khi SID chưa được khai báo. S-1-1-0 Everyone Một nhóm chứa toàn, bộ người dùng ngoại trừ người dùng ân danh. Người dùng đăng nhập vào các thiết bị S-1-2-0 Local đầu cuối được kết nối cục bộ (vật lý) với hệ thống. S-1-5-18 NT Authority\S YSTEM Người dùng uỷ quyền của hệ điều hành S-1-5-80- Người dùng mặc định của hệ điều 956008885- hành, là chủ sở hữu của toàn bộ các tệp 3418522649- tin, mô-đun quan trọng trên hệ điều NT SERVICE\TrustedInstall ; 1831038044- AEDSSSEEE Í hành Windows.1 dưới đây thể 1853292631- hiện điều này.

2271478464 Chỉ tiết về SID và các vẫn đề liên quan tham khảo tại [7]. Nguyễn Đức Hoằng — B17DCA T084 5 Đồ án tốt nghiệp Chương l1: Kiểm soát truy cập và cơ chê kiêm soát tài khoản người dùng LỊ > ThisPC > Local DIsk(C:) >» Windows » System32 vy | & Ð Name ° Date modified Type Size Owner MCCSEngineShared.dll 06/10/2021 8:53 pm Application exten. 174KB Trustedlnstaller MCCSPal.dll 06/12/2019 11:35 pm Application exten. 31 KB Trustedlnstaller meiavi32.dll 07/12/2019 4:09 pm Application exten.

102KB Trustedlnstaller meicda.dll 07/12/2019 4:08 pm Application exten. 49KB Trustedlnstaller mrciqtz32.dll 07/12/2019 4:09 pm Application exten. 43KB Trustedlnstaller meiseq.dll 07/12/2019 4:08 pm Application exten. 31 KB Trustedlnstaller meiwave.dll 07/12/2019 4:08 pm Application exten.

31 KB Trustedlnstaller ©| MCRecvSrc.dll 06/10/2021 8:52 pm Application exten. 1,073 KB Trustedlnstaller mecupdate_AuthenticAMD.dll 07/12/2019 4:08 pm Application exten. 108 KB Trustedlnstaller mcupdate_Genuinelntel.dll 07/12/2019 4:08 pm Application exten. 2,569 KB Trustedlnstaller [8Ì MIDEServer.exe 06/10/2021 8:52 pm Application 444KB Trustedlnstaller [a=] MDMAgent.exe 06/10/2021 8:31 pm Application 154KB Trustedlnstaller [=] MDMAppinstaller.exe 06/10/2021 8:52 pm Application 152KB Trustedlnstaller MdmCommen.dll 06/10/2021 8:51 pm Application exten.

178KB Trustedlnstaller MdmDiagnostics.dll 19/12/2021 6:13 pm Application exten. 2,047 KB Trustedlnstaller [a=] MdmDiagnosticsTool.exe 19/12/2021 6:13 pm Application 532KB Trustedlnstaller mdminst.dll 07/12/2019 4:09 pm Application exten. 78KB Trustedlnstaller mdmlocalmanagement.dll 06/10/2021 8:51 pm Application exten. 62KB Trustedlnstaller mdmmigrator.dll 19/12/2021 6:13 pm Application exten.

149KB Trustedlnstaller mdmpostprocessevaluator.dll 06/10/2021 8:51 pm Application exten. 50 KB Trustedlnstaller mdmregistration.dll 19/12/2021 6:13 pm Application exten. 356KB Trustedlnstaller [ae] MdRes.exe 07/12/2019 4:09 pm Application 85KB Trustedlnstaller (ag) MdSched.exe 7/12/2019 4:09 pm Application 91 KB Trustedlnstaller Hình I.1: Quan sát chủ sở hữu của cdc mé-dun trong thu muc system32 Mỗi khi người dùng đăng nhập vào hệ théng, Winlogon tao mét SID dang nhap (logon SID) duy nhất cho mỗi phiên đăng nhập tương tác (Interactive logon). Giá trị SID này sẽ được sử dụng xuyên suốt trong quá trình xác định danh tính và cấp quyền của phiên đăng nhập đó.

SID cho một phiên đăng nhập có dạng S-1-5-5-X-Y, trong đó X và Y được tạo ngẫu nhiên. Nguyễn Đức Hoằng — B17DCAT084 6 Đồ án tốt nghiệp Chương l1: Kiểm soát truy cập và cơ chê kiêm soát tài khoản người dùng W% _explorer.exe:15920 Properties — O x Image Performance Performance Graph Disk and Network GPUGraph Threads TCP/IP Security Environment Strings | User: DESKTOP-8UKSH3F \hoang az SID: §-1-5-21-601148942-64330661-1659545711-1001 Session: 16 Logon Session: cc75f26 Virtualized: No Protected: No Group Flags BUILTIN‘ Administrators Deny BUILTIN‘ Performance Log Users Mandatory BUILTIN Users Mandatory CONSOLE LOGON Mandatory Everyone Mandatory LOCAL Mandatory Mandatory Label\Medium Mandatory Level Integrity Microsoft Account \hoangnguyenduc. Mandatory NT AUTHORITY Authenticated Users Mandatory NT AUTHORITY \Cloud Account Authentication § Mandatory NT AUTHORITYMINTERACTIVE Mandatory NT AUTHORITY\Local account Mandatory NT AUTHORITY*\Localaccount and member of. Deny v Group SID: nja eq Privilege Hags SeChangelntifyP'rivileqe Default Enabled Selncrease WorkingSetPrivilege Disabled Se ShutdownPrivilege Disabled Se TimeZone Privilege Disabled SeUndock Privilege Disabled Permiss Cancel Hinh 1.2: Quan sat SID dang nhdp théng qua Process Explorer LI1.

Thẻ truy cập Windows sử dụng một đối tượng có tên thẻ truy cập (access token, gọi tắt là token) nhằm mô tả ngữ cảnh bảo mật của một tiến trình hoặc luồng. Thông tin trong token bao gồm danh tính và đặc quyên của tài khoản người dùng được liên kết với tiên trình hoặc luồng. Khi người dùng đăng nhập, hệ thống sẽ xác minh mật khâu của người dùng bằng cách so sánh mật khâu đó với thông tin được lưu trữ trong cơ sở dữ liệu bảo mật. Nếu mật khẩu được xác thực, hệ thống sẽ tạo ra một thẻ truy cập.

Mọi tiễn trình được khởi chạy bởi người dùng đều có một bản sao của thẻ truy cập này. Các thẻ truy cập có kích thước khác nhau vì các tài khoản người dùng khác nhau có các bộ đặc quyên và tài khoản nhóm được liên kết khác nhau. Tuy nhiên, tất cả các thẻ truy cập đều Nguyễn Đức Hoằng — B17DCA T084 7 Đồ án tốt nghiệp Chương l1: Kiểm soát truy cập và cơ chê kiêm soát tài khoản người dùng chứa các loại thông tin giống nhau nhất định. Nội dung quan trọng nhất của thẻ truy cập được trình bày trong hình 2.3: Access Token Hệ thống sử dụng thẻ truy cập đề xác định người dùng khi một luồng tương tác với một đối tượng bảo mật hoặc cô găng thực hiện một tác vụ hệ thống yêu cầu đặc quyền.

Thẻ truy cập chứa tôi thiêu các thông tin sau: SID của tài khoản người dùng Danh sách SID của các nhóm mà người dùng này thuộc về Một logon SID xác định phiên đăng nhập hiện tại Danh sách các đặc quyền do người dùng hoặc các nhóm của người dùng năm giữ SID của chủ sở hữu SID của nhóm chính DACL mặc định mà hệ thống sử dụng khi người dùng tạo một đối tượng bảo mật mà không chỉ định bộ mô tả bảo mật cụ thể. Thông tin xác định token là mạo danh hay token chính.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ