Cong Cu Kiem Thu Vuot Qua Co Che Phong Thu User Account ControlCong Cu Kiem Thu Vuot Qua Co Che Phong Thu User Account ControlCong Cu Kiem Thu Vuot Qua Co Che Phong Thu User Account Cont
Trang 1
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIÊN THÔNG
KHOA CONG NGHE THONG TIN I
PTA
—¬—
ĐỎ ÁN TÓT NGHIỆP
Đề tài: Công cụ kiểm thử vượt qua cơ chế
phong thu User Account Control
Giảng viên hướng dẫn : TS Nguyễn Ngọc Điệp Sinh viên thực hiện : Nguyễn Đức Hoằng
Hà Nội, tháng 12 nam 2021
Trang 2
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIÊN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN I
ĐỎ ÁN TÓT NGHIỆP
Đề tài: Công cụ kiểm thử vượt qua cơ chế
phòng thủ User Account Control
Giảng viên hướng dẫn : TS Nguyễn Ngọc Điệp Sinh viên thực hiện : Nguyễn Đức Hoằng
Trang 3SS
LOI CAM ON
Lời đầu tiên, em xin gửi lời biết ơn sâu sắc tới Thầy giáo TS Nguyễn Ngọc Điệp đã tận tình chỉ bảo, hướng dẫn em trong không chỉ quá trình thực hiện đồ án này, nhờ sự giúp đỡ và những chia sẻ của Thầy, em đã có những định hướng riêng cho tương lai của mình
Em xin chân thành cảm on cac Thay, C6 trong Khoa Công nghệ Thông tin l nói riêng và toàn thê các cán bộ của Học viện Công nghệ Bưu chính Viễn thông nói chung đã tạo điều kiện
để em có thể học tập và phát triển bản thân trong một môi trường rất tốt Cảm ơn các Thầy Cô
đã cung cấp cho em không chỉ kiến thức mà còn là kỹ năng sống, đó là những hành trang hữu ích cho em trên chặng đường dài phía trước của cuộc đời
Em cũng xin gửi lời cảm ơn đến những người anh, người bạn, người đồng nghiệp trong bộ phận Rà soát và Xử lý Sự cố mã độc thuộc Trung tâm Phân tích và Chia sẻ nguy cơ An ninh mạng, công ty An ninh mạng Viettel đã cung cấp cho em những kiến thức về lập trình, hệ điều
hành, kiểm thử xâm nhập và tạo điều kiện cho em hoàn thiện đồ án này
Cuối cùng, em xin cảm ơn gia đình, bạn bè, những người đã luôn ở cạnh, quan tâm, giúp
đỡ và ủng hộ đề bản thân em có thê hoàn thành được đồ án này
Em xin chân thành cảm ơn!
Hà Nội, ngày 31 tháng 12 năm 2021
Sinh viên thực hiện
Nguyễn Đức Hoằng
Trang 4
LỜI CAM ĐOAN
Em xin cam đoan răng đồ án tốt nghiệp “Công cụ kiểm thử vượt qua cơ chế phòng thủ User Account Control” là công trình nghiên cứu của bản thân Những phần có sử dụng tài liệu
tham khảo có trong đồ án đã được liệt kê và nêu rõ ra tại phần tài liệu tham khảo Đồng thời
những số liệu hay kết quả trình bày trong đồ án đều mang tính chất trung thực, không sao chép, đạo nhái
Em cũng xin cam đoan giữ vững và tôn trọng vẫn đề đạo đức của người nghiên cứu bảo mật Không phát tán mã khai thác, mã nguồn hay tài liệu hướng dẫn khai thác dưới mọi hình
thức Không đề cá nhân, tổ chức khác lợi dụng làm điều xấu ảnh hưởng tới bất kì cá nhân, tổ
chức nào khác
Em xin hoàn toàn chịu trách nhiệm về tính trung thực và pháp lý của đồ án trước hội đồng
và pháp luật
Hà Nội, ngày 3l tháng 12 năm 2021
Sinh viên cam kêt
Nguyễn Đức Hoăng
Trang 5NHẬN XÉT ĐÁNH GIÁ CHO ĐIÊM
(Của Người hướng dẫn)
¬
9 9099000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090009000000609009609009606009009960°66
+ HH2 000000000000400000040004000400040004060040004000400040004000400040004000400000000000000000000000000004000400040004000400040004000400040004000000000000000000000009060900e06066 ¬
¬ ẻ
¬
¬
9 00000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000900090000900090090900090009060e900®ee°66 POO meee ee eee eee eee EEE TEETH EEE EEE EEE EEE EE EEE EE EEE EE TEESE EEE EEE EE TEESE TEESE ESET EE EEE TESTES EEE EE EEE EE EEE EE EEE EE EEE EE SEES EEE E EEE EEE HEED POO e mmm e meee eee eee eee HEHEHE EEE HH EHH EEO TEETH EEE HEHE EEE EEE EEE EEE EOE EEE EEE EEE EEE EEE EEE EEE EEE EEE EEE EEE EEE EEE EEE EEE EEE EEE HEE HEHEHE EEE EEE EEE EEED POO e Ome e meee meee eee eee EEE HEE HEE HE EEE EH EEE O SEES EEE EEE EEE TEESE OE EEE EEE EEE EEE EEE ESSE EE EEE HEE HEE HEE HEE EE EEE EEE EEE EEE EE EEE EEE EHE THEE HEE EE EEE EEES DiGME ooo eeececccccccceseceescssescsscsesesecsvsseseseesesvees (bang CHO: veces esecsesessesessesesesessesesseseseseeeen ) Đồng ý / Không đồng ý cho sinh viên bảo vệ trước hội đồng chấm tốt nghiệp? Hà Nội, ngày tháng năm
CÁN BỘ - GIẢNG VIÊN HƯỚNG DẪN
(ký và ghi rõ họ tên)
Trang 6
NHAN XET DANH GIA CHO DIEM
(Của Người phan biện)
kerrrrrrrrrrrrrrrrrrrerrk4lOG2RGE-=-File bt-lorxin-lienhe:-leth+kim34079.@ hotmail.com
Điêm: -G HH ng re (băng chữ: -. -c SH re )
Hà Nội, ngày tháng năm
CÁN BỘ - GIẢNG VIÊN PHẢN BIỆN
(ký và ghi rõ họ tên)
Trang 7MỤC LỤC DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮTT SE St St St SESESESEEE+E2E+EEEEEEEEEEEEEEEEEEEEEEEEEEEEEErErkrkes vi
M.9:8/00/9:79 c1 vii M.9I:8)/00/95)0)12A/ẺB viii LOI MO DAU pune cessesssesssesssesssesssecssecssecsnecsnecsnecsnecsuecsnscenscsuscsuscsssesusssusesssesssessucssueesuecsnecsueesuecsnecsneesneestess 1 CHUONG |: KIEM SOAT TRUY CAP VA CO CHE KIEM SOAT TAI KHOAN NGUOI DUNG 4
1.1 Xác định danh tính và quyền truy cập c.cecccecccscscsesescscssssesesscsessssesesscstsvssesesesesstssatsteasevseaeaees 4 1.1.1 Mã định danh bảO mật - - << << < << << << 2 33 8181881111111 11 11111 ke 4 1.1.2 Thẻ truy CẬP Go nọ nọ 7 1.1.3 \J'bT19Nt;ìiìSGHĂ đa 9 1.1.4 Danh sách kiểm soát truy cập và bộ mô tả bảo mậtt << «+ ***+++ssseseveesss 9
1.2 Cơ chế kiểm soát tài khoản người dùng - - 2 ¿2 + +E+E£E£EE£EEEEEEEEEEEEEEErkerxrrerrrrerree 14
1.2.1 Nguồn gốc ra đời :- E5 St+k SE EEE1E1111015 1111111111111 1151111 11111111 11 Lee 14
"5 8" 0v :ddda ILImnHnananInIi 1ÿDd a 31
2.2.2 Luông thực thi 6-5-5 St E3 EEk SE E11 T1 1 E111 1111x111 Tre 32
2.2.3 Thực trạng khai thác của mã đỘC - + + 2c 13322113331 18E3£2 EEEEEEEEEEEEEEEEerrrreeres 32 2.2.4 Mở rộng mục tiêu khai thác - - - - - - << 1663310101101 8138 333111111111 9 9 0v ng re 33 2.2.5 Biện pháp phát hiện, phòng chống ¿- - ¿2k £SE+k£EEEE+E£EEEE+EeEEEEEEEEEEEeEerxrkrrerkd 37 2.3 Hijack SxS với IFIleOeratIOT - - 2010000 nọ re 38 2.3.1 Mô tả kỹ thuật Ă HH HH ng kh 38
2.3.2 Luồng thực thi - - 5< 2E SE2EE SE 1E 12111117111 211111 1111111111111 1E 40
2.3.3 Mở rộng mục tiêu khai thác - - - - - << E63 010101 811 8311111 ng re 40 2.3.4 Biện pháp phát hiện, phòng chống - ¿2 + SE ££+E+E£EE+E£EE+E£EeE£EzEerezxrrered 41 2.4 CMSTPLUA 0.0 4] 2.4.1 N35 2 (-(Ÿ 42 2.4.2 SetRegiIstryStringValUe cọ TT re 43 2.5 KẾt chương - St SE 111 1111111151111 11 1111111111111 1111 1111111111111 111111111111 crrkg 45
Trang 8
CHUONG 3: CONG CU KIEM THU CO CHE KIEM SOAT TÀI KHOẢN NGƯỜI DÙNG 46
Trang 9DANH MUC KY HIEU VA TU VIET TAT
PSAPI Process Status Application Programming Interface
Trang 10
DANH MUC BANG
Bang 1.1: Một s6 SID thurOng gap voces csccscsescsscscscscescscscsscscsessscecsvssscscsvssasstsvsesacavseesees 5
Bảng 1.2: Một số đặc quyền mặc định được cấp trên WindOwWs -ccccssssccccccxs 12
Bảng 1.3: Mô tả tuỳ chọn kiểm soát hành vi của cơ chế kiểm soát tài khoản người dùng 24
Bảng 1.4: Các mức độ toàn vẹn trên W1ndOWS - - - c1 3221011113333 1111111188 1111 1g vkg 25 Bảng l.5: Chính sách kiểm soát tính toàn vẹn bắt ĐuUỘC . - 7c S55 Sa 27
Bảng 2.1: So sánh Process injection và Masquerading process khi khai thác lỗ hồng PSAPI30 Bảng 2.2: Một số mục tiêu đã bị mã độc khai thác DLL sideloading với IFIleOperation 32
Trang 11DANH MỤC HÌNH VÉ
Hình 1.1: Quan sát chủ sở hữu của các mô-đun trong thư mục system32 - - «- 6 Hình 1.2: Quan sat SID dang nhap thong qua Process Explorer . << «<< <sss+2 7 Hình 1.3: Access TOK€T c1 11300 nọ re 8 Hinh 1.4: Vi du vé DACL va kiém tra quy6én truy Cap c.cscecsccscscsscsescsssscsesescsesssessescsesseseseees 10 Hình 1.5: TrustedInstaller ACE và LocalAdmimistrators AC << « «+ ++sssxs2 II Hình 1.6: Liệt kê các đặc quyên thông qua câu lệnh whoaii 2- - 2 + 2 s+£+£+zE£zzx2 12 Hình 1.7: Quá trình đăng nhẬp - - . c 1110011133111 1139 111 9 1v ve 16 Hình 1.8: Các đặc quyền trên thẻ truy cập đã lọc quyền quản trị . - - 2 s+s+s+ss+x+ss+£ 16 Hình 1.9: Các đặc quyền trên thẻ truy cập quyền quản trỊ - - ¿2 2 + +£+k+Ee£x+Ee£zxexezxd 17
Hình 1.10: Lời nhắc đồng ý . - - 2E £+EESE+E£EE£EEEEEEEEEEEEEEEEEEE211152111 1111111112 18
Hình 1.11: Lời nhắc thông tin xác thực . - - 2 SE EEE+E£EE+E#EEEEEEEEEEEEEErEEEErkererkrrees 18 Hình 1.12: Khởi chạy ứng dụng quản trị với tư cách là người dùng tiêu chuẩn 19 Hinh 1.13: Chit ky s6 cla Microsoft WindOWS ccccccccccscsscsesesesssscsesescsesesesescsesescsesesseseseseees 20 Hình 1.14: Mã nguồn dịch ngược appinfo.dll kiểm tra thư mục an toàn + 21 Hình 1.15: Mã nguồn dịch ngược appinfo.dIl kiểm tra thuộc tính autoElevate 21
Hình 1.16: Mẫu manifest chứa thuộc tính autoEleVate - ¿+ xxx k+£vE+E+e£eEeEzeeeexsi 22
Hinh 1.17: Khoa registry COM ElevatIOIn - - -< 11H ng ve 22 Hinh 1.18: COMAutoApprovalList trén Windows 10 build 19041 - 555552 23 Hinh 1.19: Ctra s6 User Account Control Settings ccccccscsssssssscssssesesssssssessassestsscessesssesseees 23
Hình 1.20: Quan sát mức độ toàn vẹn trên Process EXpÏOT€T .- «+5 ++S<s*+++*svx+2 26
Hình 2.1: Sao chép tệp tin vào thư mục system32 thông qua mspaInf.eXe ‹‹ - 29 Hình 2.2: ImagePathName trong Process Environment BÌÏocK - «<< «««ss++<sss2 30 Hình 2.3: Ví dụ luồng thực thi DLL sideloading với IFileOperation -. 5-5: 32
Hình 2.4: Mau manifest cài đặt cứng đường dẫn tới DL/L - - + +£+£+£+E+E+E+EzEzxzezsd 34
Hình 2.5: Sơ đồ tổng quan phương thức tìm kiếm DLL tĩnh ¿5 2 s2 2 + £z£x2 5z: 35 Hình 2.6: Sơ đồ tổng quan phương thức tìm kiếm DLL động - - 2 + 2 s+s+£szsz£zzs4 36
Hình 2.7: Bộ lọc Process Monitor tìm kiếm DLL động ¿- - - 2 2s s2 £££E+£+£z£szxzS+£ 37
Hình 2.8: Cơ chế hoạt động của Windows SXS ¿5-5 k ST EE E111 1111111 errkd 38 Hình 2.9: Mẫu Manifest chứa assemblylÏdentity - + 2 26k E2 +E£E£E£EE+E£E+EeEeEeEerererees 38
Trang 12
Hình 2.10: dccw.exe tìm kiếm và tải lên gdiplus.dÏl ¿2-2 2 2 2+E+££+E+E££xzEe£szEezszxe 39
Hình 2.11: Câu trúc thư mục dccw.exe.local chứa DLL - 2+2 +s+s£+E+E+E+E+E£E££eE+z+zzsz: 39
Hình 2.12: Luồng thực thi Hijack SxS với IFileOperation - ¿2 + 25s £££sz£e£zxezzxd 40
Hình 2.13: Bộ lọc Process Monitor tìm kiếm DLL SxS - - + +E+E+E+E+E+E+E+E+EeEsEzEsesed 4]
Hình 2.14: Thông tin về COM CMSTPILLUA - - + 2E 2S SE£EE£EE£E£E£E£EEEE£E£EEEEEEeEeErkrkesee 42
Hình 2.15: Hai phương thức bị khai thác trên interface CMS'TPLUA . - 42 Hình 2.16: Luồng thực thi ShellExec trên COM CMSTPLUA 2-5 2 s+s+£z+szsz>s2 43
Hình 2.17: Thực thi câu lệnh độc hại với IcolorDataPrOXV << 5553333 ++++*ssss2 44
Hình 2.18: Luông thực thi SetRegistryStringValue trên COM CMSTPLUA - 44 Hinh 3.1: Cong cu kiém thtt UAC Checker vc cececcccsccscssescsscsessssesscsesssscsesscsesssscsseacseesesessesesvees 46
Hinh 3.2: So dé hoat động CỦa CÔNØ CỤ .- 1113321111191 0111 11 ngờ 47
Hình 3.3: Tải công cụ UAC Checker từ Github - - G 5322001111183 1111 9 1 ng vn 48
Hình 3.4: Đối tượng thử nghiệm . - - 2 ¿+ SE E£SE+E£EE#EE£E£EEEEEEEEEEEEEEEEE12121712 1111 xe 49
Hình 3.5: Cài đặt công cụ UAC ChecKer - - - - ¿c1 3331111333251 EEEexsrre 49
Hình 3.7: Kết quả kiểm thử theo thời gian thực - - 2+ 2+ E2 E£EEzEeEvzEeEerkrxerxrkerered 50
Hình 3.8: Kết quả kiểm thử tự động nằm trong thư mục r€pOr . - - 25 2 s+s+cezxezzzx4 50
Hình 3.9: Kết quả kiểm thử tự động chỉ tiẾt - ¿2 SE EE2E+EEEE2E£EEEEeEEEEeErErkererkerered 51 Hình 3.10: Thử nghiệm tấn công . ¿+ - + £EE+EEEE+E+E£EEEE£E£EEEEEEEEEEEEEEEEEEEEEEEEEEEEErkrkrree 51
Hình 3.11: Thử nghiệm tấn công SxS hijack với IEileOperation . - 2-5-5 52552552 52
Hình 3.12: Cấu hình thử nghiệm tấn công SxS hijack với IFileOperation - 52
Hình 3.13: Thử nghiệm tan công thành công - - - 9999 99999999 33 33v 11k vv 53
Trang 13LOI MO DAU
Máy tính đã bước vào cuộc sống của chúng ta từ những năm 1980, tao nén nhiéu thay déi lớn cho thế giới và giới hạn của loài người Đây là một thiết bị công nghệ cao có tầm ảnh hưởng rất lớn tới con người từ học tập, lao động cho đến giải trí Trong thời đại 4.0 hiện nay, máy tính
là một phần không thể thiếu trong quá trình phát triển của mọi cá nhân, tổ chức và doanh nghiép
Tuy nhiên song song với quá trình phát triển của máy tính điện tử là sự phát triển và gia
tăng chóng mặt của các nhóm tấn công, các dòng mã độc độc hại Tại Việt Nam, theo báo cáo
thường kỳ 6 tháng đầu năm 2021 của công ty An ninh mạng Viettel [1], Việt Nam là một trong những điểm nóng về tần công mã độc Báo cáo ghi nhận hàng trăm cuộc tấn công có chủ đích
(APT), hàng nghìn máy chủ, tên miền độc hại được sử dụng làm máy chủ điều khiển mã độc
Dữ liệu cá nhân của hàng triệu người dùng được hacker rao bán công khai trên các trang mạng Mục tiêu của chiến dịch chủ yếu nhăm vào chính phủ, tài chính ngân hàng Đặt ra yêu cầu cấp
bách về việc bảo vệ an toàn thông tin nước nhà
Ké từ những mẫu mã độc đơn giản đầu tiên như Elk Cloner, ILOVEYOU cho tới các mẫu mã độc APT, mã độc đảo tiền ảo phức tạp ngày nay, chúng luôn được vũ trang gia tăng khả năng lây nhiễm, ân náu, khai thác và phá hoại Hãng bảo mật MITRE trong ma trận các kỹ
thuật tấn công ATT&€CK [2|] đã liệt kê 218 kỹ thuật khác nhau thường được sử dụng bởi mã
độc, con số này vẫn đang tăng dần theo thời gian
Cơ chế kiểm soát tài khoản người dùng được Microsoft giới thiệu cùng Windows Vista vào năm 2007 trong nỗ lực giảm thiểu khả năng lây nhiễm và tác động xấu của mã độc Với cơ chế kiểm soát tài khoản người dùng, các ứng dụng và tác vụ luôn chạy trong ngữ cảnh bảo mật bị giới hạn, trừ khi người dùng cho phép quyền thông qua một cửa số xác nhận Cơ chế kiểm soát tài khoản người dùng có thể chặn cài đặt tự động các ứng dụng trái phép và ngăn các thay đổi
vô tình hay có tình đối với cài đặt hệ thống Qua đó giảm thiểu tác động của các phần mềm độc hại và bảo vệ dữ liệu nhạy cảm của người dùng
Trong quá trình tan công một máy tính cá nhân sử dụng hệ điều hành Windows, kẻ tấn công phải vượt qua cơ chế kiêm soát tài khoản người dùng để có thê nâng cao đặc quyên Khi bị cơ chế kiểm soát tài khoản người dùng ngăn chặn, các đặc quyền và khả năng khai thác của kẻ tấn công bị giới hạn tới mức tối đa, không gây ảnh hưởng tới hệ thông Ngược lại, nếu cơ chế kiểm soát tài khoản người dùng bị khai thác, kẻ tấn công có thể leo quyên lên mức cao nhất, qua đó làm tiền đề cho các pha tiếp theo của cuộc tân công như đánh cắp thông tin xác thực, khám phá
hệ thống mạng, leo thang tân công lên máy chủ Domain Controller, thu thập thông tin mật, Vượt qua cơ chế kiểm soát tài khoản người dùng được hãng bảo mật MITRE xếp vào nhóm
các kỹ thuật lạm dụng cơ chế kiểm soát nang cao (Abuse elevation control mechanism) thudc
hai mục tiêu chiến thuật lớn là Nâng cấp đặc quyền (Privilege Escalation) và Né tránh phòng
thu (Defense Evasion) [3] Day đều là hai mục tiêu lớn cần phải đạt được của mọi chiến dịch
tân công mã độc
Trang 14
Microsoft đã đánh đổi khả năng bảo mật lấy sự tiện lợi trong việc cho phép một số ứng dụng quan trọng có tần xuất sử dụng cao tự vượt qua cơ chế kiểm soát tài khoản người dùng Điều này đã được các nhóm tấn công khai thác triệt đề thông qua rất nhiều kỹ thuật và biến thé khác nhau Tham chiếu theo bộ “7¡êu chí đánh giá hệ thống máy tính đáng tin cậy” (Trusted Computer System Evaluation Criteria) hay con dugc goi 1a “sach cam” [4], việc vượt qua cơ chế kiểm soát tài khoản người dùng không vượt qua ranh giới bảo mật mà một hệ điều hành phải có Chính vì vậy, các kỹ thuật vượt qua cơ chế kiểm soát tài khoản người dùng không
được coi là lỗ hồng bảo mật, Microsoft hiém khi có động thái chính sửa Windows khắc phục
các kỹ thuật này
Từ năm 2007 tới nay, số lượng các kỹ thuật vượt qua cơ kiểm soát tài khoản người dùng không ngừng gia tăng và được triển khai trong các cuộc tân công thực tế Các tô chức, nhóm tấn công luôn luôn vũ trang các kỹ thuật này vào mã độc, ví dụ như BlackEnergy, Empire,
FEinEFisher, Tại Việt Nam ghi nhận rất nhiều mẫu mã độc có sử dụng các kỹ thuật vượt qua
cơ chế kiêm soát tài khoản người dùng trong các chiến dịch tấn công của APT32, Gobin Panda,
Mustang Panda, Song song với đó, rất nhiều mã khai thác, bài viết được công bố rộng rãi trên Internet ví dụ như UACME của hfirefOx [Š] Tuy nhiên tới nay vẫn chưa có một tài liệu
hay công cụ chính thống nào phục vụ mục đích kiểm thử khả năng vượt qua cơ chế kiểm soát tài khoản người dùng này, đặt ra bài toán lớn trong việc thống kê, tài liệu hoá, đưa ra phương
án phòng chống và nhận diện thích hợp
Đó là một thách thức rất lớn đối với mọi kỹ sư an toàn thông tin nói riêng và toàn nhóm ngành bảo mật nói chung Là một sinh viên ngành an toàn thông tin, bản thân em cũng đã
nghiên cứu và có được cho mình vốn kiến thức về hệ điều hành, mã độc và cách thức hoạt động
của chúng Em quyết định chọn đề tài “Công cụ kiểm thử vượt qua cơ chế User Account Control” mong mu6n đóng góp một phần nhỏ bé vào nền an toàn thông tin nước nhà
Trong phạm vị đô án của mình, em xin trình bày một sô thông tin cơ bản vê bảo mật trên
hệ điêu hành Windows, cơ chê kiêm soát tài khoản người dùng và các cơ chê vượt qua thường gặp, từ đó phát triên xây dựng công cụ kiêm thử
Theo đó, đô án của em sẽ bao gôm 3 chương theo câu trúc:
- - 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:
Trang 15Phụ 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
Trang 16
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
1.1 Xác định danh tính và quyền truy cập
1.1.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)
Trang 17la 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 Bang 2.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
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
1831038044- AEDSSSEEE Í hành Windows Hình 2.1 dưới đây thể
Trang 18Hình I.1: Quan sát chủ sở hữu của cdc mé-dun trong thu muc system32
LỊ > ThisPC > Local DIsk(C:) >» Windows » System32 vy | & Ð
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
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
Trang 19
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
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.1101@gmail Mandatory
NT AUTHORITY Authenticated Users Mandatory
NT AUTHORITY \Cloud Account Authentication § Mandatory
NT AUTHORITYMINTERACTIVE Mandatory
NT AUTHORITY\Local account Mandatory
NT AUTHORITY*\Local account 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.2 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
Trang 20
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
Hinh 1.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
Thông tin mạo danh (nếu có)
Đề đảm bảo an ninh hệ thống, các trường trong thẻ truy cập là bất biến (vì chúng nằm trong
bộ nhớ nhân) Ngoại trừ các trường có thể được sửa đổi thông qua Windows API AdjustTokenPrivileges (gia sử người gọi có quyền truy cập thích hợp vào đối tượng mã thông
báo), dữ liệu như đặc quyên và SID trong thẻ truy cập không bao giờ có thể được sửa đổi từ
chế độ người dùng
Trang 211.13 Mạo danh
Mạo danh (Impersonation) là khả năng của một luồng thực thi bang cách sử dụng thông
tin bảo mật khác với tiến trình sở hữu luồng đó Thông thường, một luông trong ứng dụng máy chủ đóng giả một máy khách Điều này cho phép luồng máy chủ thay mặt cho máy khách đó truy cập các đối tượng trên máy chủ hoặc xác thực quyền truy cập vào các đối tượng của chính máy khách
Ví dụ, một ứng dụng máy chủ có thể cung cấp quyên truy cập vào các tài nguyên như tệp, máy in và cơ sở dữ liệu Máy khách muốn truy cập một tài nguyên gửi yêu cầu đến máy chủ Khi máy chủ nhận được yêu cầu, nó phải đảm bảo rằng máy khách có quyên thực hiện các hoạt động mong muốn trên tài nguyên Ví dụ: nếu người dùng trên máy từ xa cố gắng xóa tệp trên chia sẻ NTFS, máy chủ xuất chia sẻ phải xác định xem người dùng có được phép xóa tệp hay không Cách rõ ràng đề xác định xem người dùng có quyên hay không là để máy chủ thông qua SID người dùng, SID nhóm và quét các thuộc tính bảo mật trên tệp Cách tiếp cận này khá
tẻ nhạt đối với chương trình, dễ xảy ra lỗi và sẽ không cho phép các tính năng bảo mật mới
được hỗ trợ một cách minh bạch Do đó, Windows cung cấp dịch vụ mạo danh đề đơn giản hóa
công việc của máy chủ
Mạo danh cho phép máy chủ thông báo cho Windows rằng máy chủ đang tạm thời chấp
nhận hồ sơ bảo mật của một máy khách đưa ra yêu cầu tài nguyên Sau đó, máy chủ có thê truy cập tài nguyên thay mặt cho máy khách và Windows thực hiện xác thực quyên truy cập, nhưng
nó làm như vậy dựa trên bối cảnh bảo mật máy khách mạo danh Thông thường, một máy chủ
có quyền truy cập vào nhiều tài nguyên hơn một máy khách và việc mạo danh khiến một số
thông tin xác thực bảo mật trở nên mơ hồ, khó kiểm soát
Máy chủ chỉ mạo danh một máy khách trong chuỗi thực hiện yêu cầu mạo danh Cấu trúc
kiểm soát dữ liệu của luỗng chứa rất nhiều mục nhập tuỳ chọn cho token mạo danh Tuy nhiên, token chính của luồng, đại diện cho thông tin xác thực bảo mật thực của luồng luôn có thể truy
cập được trong cấu trúc kiểm soát của tiến trình
Đề ngăn chặn các tình huống giả mạo trong đó tiến trình có mức độ toàn vẹn thấp tạo giao diện người dùng thu thập thông tin đăng nhập và sau đó sử dụng LogonUser để lấy token của
người dùng đó, một chính sách toàn vẹn đặc biệt áp dụng cho các trường hợp mạo danh: một
luồng không thê mạo danh token có mức độ toàn vẹn cao hơn sở hữu Ví dụ: một ứng dụng có mức độ toàn vẹn thấp không thể giả mạo hộp thoại truy vẫn thông tin xác thực quản trị và sau
đó cô găng khởi chạy một tiến trình ở cấp đặc quyền cao hơn Chính sách cơ chế toàn vẹn đối
với các token mạo danh là mức độ toàn vẹn của token được trả về bởi LsaLogonUser không
được cao hơn mức độ toàn vẹn của tiến trình gol
1.1.4 Danh sách kiểm soát truy cập và bộ mô tả bảo mật
Danh sách kiểm soát truy cập (Access Control Lists— ACL) gồm danh sách các mục kiểm
soát truy cập (Access Control Entries— ACE) Mỗi ACE trong ACL xác định một người được
ủy thác và chỉ định các quyền truy cập được phép, bỊ từ chối hoặc được kiểm toán đối với người được ủy thác đó Trên hệ điều hành Windows tổn tại ít nhất hai dạng ACL: Danh sách kiểm
Trang 22
soát truy cập tùy ý (Discretionary Access Control List— DACL) và Danh sách kiểm soát truy
cập hệ thống (System Access Control List— SACL)
DACL xác định những người được ủy thác được phép hoặc bị từ chối quyên truy cập vào
một đối tượng bảo mật Khi một tiễn trình cố găng truy cập vào một đối tượng bảo mật, hệ
thống sẽ kiểm tra các ACE trong DACL của đối tượng để xác định xem có cấp quyên truy cập cho nó hay không Nếu đối tượng không có DACL, hệ thống sẽ cấp toàn quyên truy cập cho tat cả mọi người Nếu DACL của đối tượng không có ACE, hệ thống sẽ từ chối mọi nỗ lực truy cập đối tượng vì DACL không cho phép bất kỳ quyên truy cập nào Hệ thống kiêm tra các ACE theo trình tự cho đến khi tìm thấy một hoặc nhiều ACE cho phép tất cả các quyền truy cập được yêu cầu hoặc cho đến khi bất kỳ quyên truy cập nào được yêu câu bị từ chối, vì vậy thứ tự sắp
xếp các ACE rất quan trọng
Hình minh họa sau đây cho thấy một DACL từ chối quyền truy cập cho một người dùng
và cấp quyên truy cập cho hai nhóm Các thành viên của Group A có quyền truy cập đọc, ghi
và thực thi băng cách tích lũy các quyền được phép cho Group A và các quyên được phép cho Everyone Ngoại lệ là Andrew, người bị ACE từ chối quyên truy cập mặc dù là thành viên của
Access denied
ACE Andreim Sroup BH
Wi rite
Ï Access allowed Access token ACE
3 Eự err ñne Jane
Read, execute Group A
Hình 1.4: Ví dụ về DACL và kiểm tra quyển truy cập Danh sách kiểm soát truy cập hệ thống (System Access Control List— SACL) cho phép quản trị viên ghi nhật ký các nỗ lực truy cập vào một đối tượng được bảo mật Mỗi ACE chỉ
định các loại nỗ lực truy cập của một người được ủy thác cụ thể khiến hệ thống tạo một bản
ghi trong nhật ký sự kiện bảo mật Một ACE trong SACL có thể tạo hồ sơ đánh giá (audit
record) khi một nỗ lực truy cập không thành công, khi nó thành công hoặc cả hai
Bộ mô tả bảo mật (Security Descriptor) chứa thông tin bảo mật được liên kết với một đối
tượng bảo mật Bộ mô tả bảo mật bao gồm cấu trúc SECURITY_DESCRIPTOR và thông tin
bảo mật liên quan của nó Bộ mô tả bảo mật có thể bao gồm các trường thông tin sau:
Trang 23- _ SID của chủ sở hữu và nhóm chính của đối tượng
- _ Một DACL xác định quyên truy cập được phép hoặc bị từ chối đối với người dùng hoặc
nhóm cu thé
- Một SAC(L chỉ định các loại nỗ lực truy cập sẽ tạo ra các bản ghi kiểm tra cho đối tượng
- - Một tập hợp các bịt điều khiển xác định ý nghĩa của một bộ mô tả bảo mật hoặc các
thành phân riêng lẻ của nó
Object name: C:\Windows\\System32\ARP.EXE Object name: C:\Windows\\System32\ARP.EXE
Group or user names: Group or user names:
S2 Administrators (DESKTOP-8UKSH3F\Administrators) Administrators (DESKTOP-8UKSH3F\Administrators)
S2 Users (DESKTOP-8UKSH3F\Users) S2 Users (DESKTOP-8UKSH3F\Users)
< > < >
To change permissions, click Edit Eii To change penissions, click Edit S Edit
Pennissions for Trusted|nstaller Allow Deny Pennissions for Administrators Allow Deny
Full control Av Full control
Read & execute v Read & execute v
Special permissions Special permissions
For special permissions or advanced settings, << For special permissions or advanced settings, eet
Hinh 1.5: TrustedInstaller ACE va LocalAdministrators ACE
Quan sát hình 4 bên trên, có thê thấy răng các tệp tin quan trọng của hệ thống thuộc chủ
sở hữu TrustedInstaller với tất cả quyền kiểm soát, ngược lại mọi người dùng khác trên hệ
thống đều chỉ có quyền đọc và thực thi Việc cấu hình các ACE như vậy khiến cho các chương
trình độc hại, kể cả quản trị viên hệ thống không thê tuỳ ý sửa đổi một cách trái phép các tệp tin hệ thống này Tương tự với hệ thống tệp, các đối tượng được bảo vệ khác (ví dụ như registry) cũng sử dụng cơ chế kiểm soát ACL này Tuy nhiên, một số đặc quyên khác có thê giúp quản trị viên hệ thống tác động vào các đối tượng được bảo vệ Đặc quyền và khả năng của nó sẽ được trình bày ngay trong phần dưới đây
1.1.5 Đặc quyền của tài khoản
Đặc quyên của tài khoản (Account privileges) là quyền của tài khoản cho phép thực hiện
các hoạt động khác nhau liên quan đến hệ thống trên máy tính cục bộ, chăng hạn như tắt máy,
tải trình điều khiến thiết bị hoặc thay đổi thời gian hệ thống Đặc quyền khác với quyên truy cập theo ở hai điểm lớn:
Trang 24
- _ Đặc quyền kiểm soát quyền truy cập vào tài nguyên hệ thống và các tác vụ liên quan đến hệ thống, trong khi quyền truy cập kiêm soát việc truy cập vào các đối tượng bảo
mật
- _ Người quản trị hệ thống chỉ định đặc quyên cho tài khoản người dùng và tài khoản nhóm, trong khi hệ thống cấp hoặc từ chối quyền truy cập vào đối tượng bảo mật dựa
trên mức độ toàn vẹn và quyền truy cập được cấp trong DACL cua đối tượng
Hình 1.6: Liệt kê các đặc quyền thông qua câu lệnh whoami
Mỗi hệ thông có một cơ sở dữ liệu tài khoản lưu trữ các đặc quyền của tài khoản người
dùng và tài khoản nhóm Khi người dùng đăng nhập, hệ thống tạo ra một thẻ truy cập (access token) chứa danh sách các đặc quyên của người dùng, bao gồm những đặc quyền được cấp cho người dùng hoặc cho các nhóm mà người dùng thuộc về Lưu ý rằng các đặc quyên chỉ áp dụng cho máy tính cục bộ: tài khoản miễn có thể có các đặc quyền khác nhau trên các máy tính khác
nhau
Khi người dùng cô găng thực hiện một thao tác đặc quyên, hệ thông sẽ kiểm tra thẻ truy cập của người dùng để xác định xem người dùng có các đặc quyên cần thiết hay không và nếu
có, hệ thông sẽ kiểm tra xem các đặc quyên đó có được bật hay không Nếu người dùng không
đạt các điều kiện này, hệ thống sẽ không thực hiện hoạt động
Bảng 1.2 dưới đây mô tả một số đặc quyền mặc định được cấp trên Windows
Bang 1.2: Mot số đặc quyển mặc định được cấp trên Windows
Trang 25
SeUndockPrivilege Sử dụng bởi trình quản lí Plug and Play để ngắt kết
nối khỏi các thiết bị khác
SeIncrease WorkingSetPrivilege Gián tiếp cho phép các tiến trình có thể tăng giá trị
giới hạn dưới các tài nguyên được cung cấp
SeTimeZonePrivilege Thay đổi thời gian, vùng miền của hệ thống
Ngoài ra còn có một sô đặc quyên quan trọng, có sự ảnh hưởng lớn với hệ thông sau:
Gỡ lỗi chương trình (SeDebugPrivilege): Người dùng có đặc quyền này có thể mở bất
kỳ tiến trình nào trên hệ thống thông qua Windows API OpenProcess (ngoại trừ tiễn
trình được bảo vệ) mà không cần quan tâm đến bộ mô tả bảo mật có trong tiễn trình Ví
dụ: người dùng có thể triển khai một chương trình mở tiến trình Lsass, sao chép mã thực thi vào không gian địa chỉ của nó, sau đó chèn một luồng với API Windows CreateRemoteThread đề thực thi mã được đưa vào trong ngữ cảnh bảo mật đặc quyền hơn Thông qua đó có thể cấp cho người dùng các đặc quyên bồ sung và tư cách thành viên nhóm
Lấy quyền sở hữu (SeTakeOwnershipPrivilege): Đặc quyền này cho phép chủ sở hữu quyền có khả năng sở hữu bắt kỳ đối tượng bảo mật nào (ngay cả các tiến trình và luồng
được bảo vệ) băng cách ghi SID của chính mình vào trường chủ sở hữu của bộ mô tả
bảo mật của đối tượng Nhớ lại rằng chủ sở hữu luôn được cấp quyên đọc và sửa đôi
DACL cua bộ mô tả bảo mật, do đó, một tiến trình với đặc quyên này có thê sửa đổi
DACL để tự cấp quyên truy cập đầy đủ vào đối tượng, sau đó đóng và mở lại đối tượng với quyên truy cập đầy đủ Điều này sẽ cho phép chủ sở hữu quyền xem dữ liệu nhạy
cảm và thậm chí thay thế các tệp hệ thống thực thi như một phan của hoạt động hệ
thống bình thường, chăng hạn như Lsass băng các chương trình riêng
Khôi phục tệp và thư mục (SeRestorePrivilege): Người dùng được chỉ định đặc quyền này có thê thay thế bất kỳ tệp nào trên hệ thống bằng tệp của riêng họ Chủ sở hữu quyên có thê khai thác bằng cách thay thế các tệp hệ thống tương tự bên trên
Tải và gỡ trình điều khiến thiết bị (SeLoadDriverPrivilege): Người dùng độc hại có
thê sử dụng đặc quyên này để tải trình điều khiển thiết bị vào hệ thông Trình điều khiển
thiết bị được coi là một phân đáng tin cậy của hệ điều hành Trình điều khiển luôn được
khởi chạy với quyền và đặc quyền ở mức SYSTEM Thông qua trình điều khiến, mã
độc có toàn quyền điều khiến hệ thống, thậm chí chỉ định quyền và đặc quyền cho người
dùng khác
Tạo một đối tượng thẻ truy cập (SeCreateTokenPrivilese): Đặc quyền này có thé được sử dụng để tạo thẻ truy cập cho các tài khoản người dùng tùy ý với thành viên nhóm tùy ý và chỉ định đặc quyên
Hoạt động như một phần của hệ điều hành (SeTcbPrivilege): Người dùng có thể sử dụng tên người dùng và mật khẩu của riêng mình đề tạo phiên đăng nhập mới bao gồm SID của nhiều nhóm hoặc người dùng đặc quyền hơn trong mã thông báo kết quả
Trang 26
116 Tiểu kết
Qua năm đề mục bên trên, ta có thê nhận thấy rằng một chương trình độc hại thông thường khi được chạy với thẻ truy cập quyền quản trị có thể gây ảnh hưởng rất lớn tới hệ thông Thông qua một số đặc quyền quan trọng được cung cấp, các chương trình độc hại có thể cài đặt mã
độc với quyền SYSTEM, giả mạo, thay thế các tệp tin của hệ thống
1.2 Cơ chế kiểm soát tài khoản người dùng
Đề giải quyết vấn đề được đề cập tới trong phần tiểu kết bên trên Microsoft đã cho ra đười
cơ chế kiểm soát tài khoản người dùng Trong phân này, đồ án sẽ trình bày nguồn gốc ra đời,
các bài toán mà UAC cần phải giải quyết Sau đó mô tả kiến trúc, chỉ ra các thành phần của
UAC giải quyết từng vấn đề ra sao
1.2.1 Nguon gốc ra đời
UAC cho phép người dùng chạy với quyền người dùng tiêu chuẩn, trái ngược với quyền quản trị Quyền quản trị cung cấp cho người dùng khả năng đọc và sửa đối bất kì thành phần nào của hệ điều hành, bao gồm cả của người dùng khác Không có quyền quản trị, người dùng không thê vô ý (hoặc cô ý) sửa đổi cài đặt hệ thống, phần mềm độc hại cũng không thê từ đó
xâm nhiễm vào sâu bên trong hệ thống Đặc biệt một người dùng tiêu chuẩn thông thường
không thê sử dụng quyền SeTakeOwnership đề xâm phạm thông tin nhạy cảm của người dùng khác Do đó, việc chạy với quyền của người dùng tiêu chuẩn có thể giảm bớt rủi ro cho các doanh nghiệp hay người dùng cá nhân, giảm thiểu tác động của các phần mềm độc hại, giữ cho
thiết bị hoạt động ổn định và bảo vệ dữ liệu của mỗi người dùng Kê từ khi ra đời, UAC đã
phải đối mặt với hai vẫn đề sau:
- - Trước Windows Vista (Windows XP trở về trước), các nhà phát triền phần mềm đều
mặc định các chương trình của họ được chạy với tài khoản quản trị Họ cho răng các
chương trình của họ có thể truy cập và sửa đổi bất kì tệp, registry hoặc câu hình hệ
thống Ngay cả khi Windows NT giới thiệu về khả năng bảo mật và sự khác biệt giữa
2 loại tài khoản, người dùng vẫn được hướng dẫn cài đặt các phần mềm với tài khoản quản trị viên dựng sẵn (built-in Administrator) hoặc bất kì tài khoản nào có quyên quản
trỊ
- Đôi khi người dùng tiêu chuẩn cần quyên quản trị dé thực hiện một số thao tác như cài đặt phần mềm, thay đổi thời gian hệ thống, mở cổng trong tường lửa, Việc nâng quyền hoặc chạy với quyền quản trị sẽ diễn ra như thế nào?
Microsoft đã giải quyết hai bài toán trên như sau:
- Tách biệt các tiễn trình cần quyền quản trị khỏi các tiến trình thông thường sử dụng cơ chế kiểm soát toàn vẹn bắt buộc, cách ly đặc quyền giao diện người dùng
- Phân tách thành từng vùng riêng biệt cho từng người dùng, khiến các chương trình vẫn
có thể tiếp tục sử dụng mà không cần phải sửa đôi, đồng thời đem lại hiệu quả bảo mật
cao hơn sử dụng cơ chế ảo hoá
- Nâng quyên quản trị cho các tiễn trình thông thường khi cần thiết sử dụng cơ chế nâng cao đặc quyền UAC
Trang 2712.2 Mô tả kiến trúc
1.2.2.1 Thé truy cap bi han ché
Thẻ truy cập bị hạn chế (Restricted Token) chế được tạo từ token chính hoặc mạo danh
băng cách sử dụng chức năng CreateRestrictedToken Restricted Token là một bản sao của
token mà nó có được, với các sửa đổi có thể có sau:
- _ Các đặc quyên có thể bị xóa khỏi mảng đặc quyên của token
- _ SID trong thẻ truy cập có thể được đánh dấu là deny-only (chỉ từ chối)
- _ SID tong thẻ truy cập có thê được đánh dau là bị hạn chế Các SID này phải tuân theo
luồng thứ hai của thuật toán kiêm tra quyên truy cập, thuật toán này sẽ chỉ phân tích cú pháp các SID bị hạn chế trong token Kết quả của cả luồng thứ nhất và luồng thứ hai phải cấp quyên truy cập vào tài nguyên hoặc không có quyên truy cập nào được cấp cho đối tượng
Thẻ truy cập bị hạn chế chế rất hữu ích khi một ứng dụng muốn mạo danh máy khách ở
mức độ bảo mật thấp hơn, chủ yếu vì lý do an toàn khi chạy mã không đáng tin cậy Ví dụ: Thẻ
truy cập bị hạn chế có thể được xóa đặc quyền tắt hệ thống (SeShutdownPrivilege) khỏi thẻ
chính để ngăn mã thực thi độc hại từ phía khách
Thẻ truy cập đã lọc quyền quản trị
Thẻ truy cập bị hạn chế cũng được UAC sử dụng đề tạo thẻ truy cập đã lọc quyền quản trị
mà tất cả các ứng dụng người dùng sẽ kế thừa Thẻ truy cập đã lọc quyên quản trị có các đặc điểm sau:
- Mức độ toàn vẹn được đặt thành Medium
- _ Các SID quyền quản trị viên được đề cập trước đây được đánh dấu là “chỉ từ chối” để
ngăn chặn các rủi ro bảo mật nếu nhóm bị xóa hoàn toàn Ví dụ: nếu một tệp có danh
sách kiểm soát truy cập (ACL) từ chối tất cả quyền truy cập của nhóm Administrator nhưng đã cấp một số quyền truy cập cho một nhóm khác mà người dùng thuộc về, thì người dùng sẽ được cấp quyên truy cập nếu nhóm Administrator không tôn tại trong token
- - Tất cả các đặc quyền đều bị tước bỏ ngoại trừ Change Notify, Shutdown, Undock,
Increase Working Set, and Time Zone
1.2.2.2 Chế độ phê duyệt của quản trị viên
Thẻ truy cập đã lọc quyên quản trị được ứng dụng triệt đề trong chế độ phê duyệt của quản trị viên (Admin Approval Mode) trong UAC Theo đó, khi quản trị viên đăng nhập, hai thẻ truy
cập riêng biệt được tạo cho người dùng Một thẻ thẻ truy cập đã lọc quyên quan tri su dung cho các chương trình thông thường như explorer.exe, notepad.exe, word.exe, Ngược lại, một thẻ
Trang 28
truy cập khác chứa đây đủ các đặc quyên quan tri sử dụng cho các chương trình hệ thông như
LSASS
Người dùng quản trị viên hệ thống
Hình 1.8: Các đặc quyên trên thẻ truy cập đã lọc quyển quản trị
Trang 29
BE Administrator: Command Prompt
Hình 1.9: Các đặc quyền trên thẻ truy cập quyển quan tri
Khi người dùng cân thực thi một tác vụ sử dụng thẻ truy cập quản trị, Windows sẽ hiện thi lên một cửa số xác nhận Cửa số này được gọi là lời nhắc nâng cao (elevation promt), các cơ
chê liên quan sẽ được trình bày trong phân dưới đây
1.2.2.3 Lời nhắc nâng cao đặc quyền
Khi UAC được bật, Windows sẽ nhắc nhở người dùng đồng ý hoặc đăng nhập tài khoản
quản trị viên hợp lệ trước khi bắt đầu một chương trình hoặc tác vụ yêu cầu thẻ truy cập quyền
quản trị viên Lời nhắc này đảm bảo rằng không có chương trình độc hại nào có thê cài đặt âm thầm
Khi một tệp tin được thực thi yêu cầu quyền quản trị viên hệ thống sẽ khiến dịch vụ thông
tin ing dung (Application Information Service — AIS) nam tại %SystemRoot%\System32\ Appinfo.dll chay bên trong tiến trình lưu trit dich vu tiéu chuan (Standard service Host process
— SvcHost.exe) khoi chay %SystemRoot%\System32\ Consent.exe Consent áp dụng hiệu ứng
mo cho man hinh, chuyén sang chế độ Secure Desktop và hiền thị hộp thoại nâng cao đặc
quyên chứa thông tin về tệp tin thực thi Việc hiền thị hộp thoại này trên một màn hình riêng
biệt ngăn không cho bất kì một ứng dụng nào đang thực thi với tài khoản người dùng sửa đổi
giao diện của hộp thoại
a Loi nhac dong y
Lời nhắc đồng ý được hiền thị khi người dùng tài khoản quyền quản trị cô găng thực hiện một tác vụ yêu cầu thẻ truy cập quyền quản trị Dưới đây là một hình ảnh về lời nhắc đồng ý cua UAC
Trang 30
b Lời nhắc thông tin xác thực
Lời nhắc thông tin xác thực được hiển thị khi người dùng tiêu chuẩn cô găng thực hiện một
tác vụ yêu cầu thẻ truy cập quản trị của người dùng
SỔ
Windows Command Processor
Verified publisher: Microsoft Windows
Show more details
To continue, enter an admin user name and password
định nhà sản xuất, chia thành ba loại: Tệp tin của hệ điều hành, nhà sản xuất đã xác minh (đã
ký số) và nhà sản xuất chưa xác minh (chưa được ký số) Màu sắc của từng loại được mô tả như sau:
- - Nền màu đỏ với biểu tượng chiếc khiên màu đỏ: Ứng dụng bị chặn bởi Chính sách
nhóm (Group Policy) hoặc của một nhà sản xuất bị chặn
Trang 31
- _ Nền xanh dương với biểu tượng chiếc khiên màu xanh và vàng: Ứng dụng này là ứng
dung quan tri Windows, vi du nh Control Panel
- Nén xanh lam với biểu tượng chiếc khiên màu xanh lam: Ứng dung được ký và được
máy tính cục bộ tin cậy
- _ Nền màu vàng với biểu tượng chiếc khiên màu vàng: Ứng dụng chưa được ký hoặc đã
được ký nhưng chưa được máy tính cục bộ tin cậy
Nếu người dùng từ chối nâng cao đặc quyền, Windows sẽ trả về lỗi từ chối truy cập (access- denied) cho tiến trình bắt đầu khởi chạy Khi người dùng đồng ý nâng cao đặc quyên băng cách nhập thông tin đăng nhập của quản trị viên hoặc nhấp vào đồng ý trong chế độ phê duyệt của quản trị viên, AIS gọi hàm CreateProcessAsUser để khởi chạy tiến trình với thẻ truy cập quản trị thích hợp Mặc dù về mặt kỹ thuật AIS là cha của tiên trình được nâng cao, AIS gán PID
của tiến trình thực tế thực hiện lời gọi cho PPID của tiến trình mới được khởi chạy Hình 2.12
chỉ ra các bước khi thực thi một tiễn trình từ một tài khoản người dùng tiêu chuẩn
_ Thẻ truy cập ; quyên người dùng tiêu chuan
Fe Thẻ truy cập
quyên quản trị
App exe
Hình 1.12: Khởi chạy ứng dụng quản trị với tư cách là người dùng tiêu chuẩn
1.2.2.4 Tự động nâng cao đặc quyển
Trong Windows Vista khi UAC được giới thiệu, mọi tiến trình hệ thông mặc định thông
thường cần quyền quản trị đều yêu cầu xác nhận thông qua cửa số lời nhắc nâng cao đặc quyên Điều này dẫn tới một sự phiền toái không nhỏ cho người dùng quản trị viên Chính vì vậy, cơ chế tự động nâng cao đặc quyền được ra đời
Trang 32
Với câu hình mặc định (sẽ được tình bày trong phần tiếp theo) hầu hết các tiễn trình hệ
thống của Windows và ứng dụng điều khiến (Control Pannel, ) không dẫn đến lời nhắc nâng cao cho người dùng quản trị, ngay cả khi họ cần quyền quản trị để chạy Điều này là do một cơ
chế có gọi tự động nâng cao đặc quyền (auto-elevate)
Hai điều kiện cơ bản sau giúp một tệp tin thực thi được tự động nâng cao đặc quyền, các điều kiện này sẽ được kiểm tra bởi dịch vụ thông tin ứng dụng:
- Tệp tin thực thi phải được ký bởi Microsoft Windows
4=“ | This digital signature is OK
Signer information
Name: Microsoft Windows
E-mail: Not available
Signing time: \Thursday, 5 November 2020 11:25:47 pm
- Duoc lưu trữ/thực thi trong một thư mục “an toàn”, ví du nhu %systemroot%\system32,
%SystemRoot%\Ehome, một số thư mục con của %ProgramFiles% (Windows Defender, Windows Journal, ),
Trang 33L SEPT = J
call cs;Rt1PrefixUnicodeString test al, al
Hình 1.14: Mã nguồn dịch ngược appinƒfo.dll kiểm tra thư mục an toàn
- _ Một số yêu cầu bổ sung khác:
©_ Với tệp tin thực thi (PE): Phải có trường autoElevate nhận giá tri true trong
manifest thudc section resource (.rsrc)
mov [rsp+13@h+pcbData], rbx ; pdwWrittenOrRequired
lea rax, [rbp+4Fh+pvBuffer ]
mov [rsp+130h+pvData], 8 ; dwBuffer lea r9, settingName ; " h xor r8d, r8d ; settingsNameSpace mov [rsp+130h+pdwType], rax ; pvBuffer mov rdx, r15 ; hActCtx
xor ecx, ecx ; dwFlags
call cs:QueryActCtxSettingsw test eax, eax
jnz loc_7FF815B572D3
Hình 1.15: Mã nguồn dịch ngược appinƒfo.dll kiểm tra thuộc tính autoElevate
Trang 34
— - HHO "MUI" <l— ight (c Corporation >
tì C]Rle: sysprep.exe — l3Ì Dos Header ØI-C3 'WEVT_TEMPLATE" ||“2ssembly ï - xmins="urn:schemas-microsoft-com:asm v1"
(3 Nt Headers HHO Icons xmins:asmv3="urn:schemas-microsoft-com:asm.v3"
@ File Head (9 Icon Groups manifestVersion="1,0"
+— (Export Directory processor Architecture="amd64"
L— |") Import Directory type="win32" -
= (2 Resource Directory version="5.1.0.0
F— (Cd Exception Directory <description>System Preparation Tool</description >
L— |) Relocation Directory <trustinfo xmins="urn:schemas-microsoft-com:asm.v3" >
L— |) Debug Directory <security >
Hình 1.16: Mẫu manifest chứa thuộc tính autoElevate
o Voi COM Object: Khoá Registry đăng ký CƠOM có Elevation nhận giá trị Enable
Trang 35BH Resist
Ngoai ra, ké tir phién ban Windows 10 RS1, Windows bồ sung thêm một danh sách
tự động nâng cao đặc quyền có tên gọi COMAutoApprovalList nằm tại registry HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\UAC\
~ Tl tine cou #3)(9200689A-F979-deea-8830-0E1D6B74821F} REG_DWORD
: | Repssand #!È\(9df523b0-a6c0-4ea9-b5f1-f4565c3ac8b8] REG_DWORD
$ [i Facing is} ADADDAEC-SBD3-4f70-A47B-07797A45C6 _ REG_DWORD
v | UAC i}{A25SC6E4-B539-45A8-B8B3-6E99D901F 183} REG_DWORD
COMAutoApprovalList #!\(A2582185-F310-41BD-806F-5864CC441878)_REG_DWORD
> || UnattendSettings #!È)(A2D75874-6750-4931-94C1-C99D3BC9D0 REG_DWORD
> | Update 3) (A2D8CFE7-7BA4-4bad-B96B-851376B5913 REG_DWORD
VersionsList f3) (A4B07E49-6567-4FB8-8D39-01920E3B2357} REG_DWORD
› _ ##È)(a4c31131-ff70-4984-afd6-0609ced53ad6] — REG_DWORD
VolatileNotifications #)(A4E118DF-B9E5-4B42-889C-065CEAF8DD REG_DWORD WbemPerf $3) (ASEAES4D-9896-4B8D-AA7S-EAFF38D011 REG_DWORD
Z WIDweotA' ti) (A6BFEA43-501F-456F-A845-983D3AD7B8F REG_DWORD
> Bm Windows $18) {ATA63E5C-3877-4840-8727-C1EASD7A4D REG_DWORD
>i Winlogon $18) (A9710FBS-1840-4224-BD42-86831E28E43A} REG_OWORD
> Bcc if) (BO19E3BF-E7E5-453C-A2E4-D2C18C A086 REG_DWORD
, WirelessDocking #3){BA126F01-2166-11D1-B1D0-00805FC1270E) REG_OWORD
© wor iể\(BB2D41DF-7E34-4F06-8F51-007CCAD36 REG_DWORD
› LÍ WUDE #!È\(BBD8C065-5E6C-4e88-BFD7-BE3E6D1C06 REG_DWORD
» | Windows Performance Toolkit $3}(BCEA735B-4DAC-4871-9C47-1D560AFD2 REG_DWORD
Data 0x00000001 (1)
0x00000001 (1) 0x00000001 (1)
0x00000001 (1)
0x00000001 (1) 0x00000001 (1)
0x00000001 (1) 0x00000001 (1) 0x00000001 (1)
0x00000001 (1) 0x00000001 (1)
0x00000001 (1) 0x00000001 (1) 0x00000001 (1)
0x00000001 (1)
0x00000001 (1) 0x00000001 (1)
Hinh 1.18: COMAutoApprovalList trén Windows 10 build 19041 1.2.2.5 Kiém sodt hanh vi kiểm soát người dùng
Cách UAC tác động tới các Windows có thê được điều chỉnh bằng cửa số tuỳ chọn Change User Account Control Settings Hình 2.19 dưới đây hiển thị cửa số tuỳ chọn này ở chế độ mặc
định
User Account Control Settings
Choose when to be notified about changes to your computer
User Account Control helps prevent potentially harmful programs from making changes to your computer
Trang 36Tương ứng với 4 tuỳ chọn bên trên là 4 mức được mô tả như sau:
Bảng 1.3: Mô tả tuỳ chọn kiểm soát hành vì của cơ chế kiểm soát tài khoản người dùng
Lời nhắc nâng cao ¬ ẻ Loa og
- ` Lo Loi nhac nang cao dac | Cau hinh mac dinh
trong Secure
Desktop Notify me only
Ưng dụng được nâng | Lời nhac nâng cao đặc | Câu hình mặc định
cao đặc quyên mà quyên xuât hiện trong | của Windows 7 tới
when programs try | Ưng dụng được nâng
: NÓ ˆ quyên xuât hiện trong Không được
my computer (Don’t | khéng can théng qua `
thường dim the desktop)
UAC bị tắt, mọi ứng |_ UAC bị tắt, mọi ứng
Never notif V i dụng luôn chạy với | dụng luôn chạy với mã Không được
° mã truy cập quyên | truy cập quyên quản khuyên nghị
1.2.3 Một số cơ chế đi kèm bảo vệ cơ chế kiểm soát người dùng
1.2.3.1 Kiểm soát toàn vẹn bắt buộc
Giả sử một người dùng quản trị sau khi đăng nhập thành công vào hệ thống, các ứng dụng độc hại khi chạy với thẻ truy cập đã lọc quyên quản trị vẫn có thể sửa đổi một số tệp tin của người dùng Thông qua một số kỹ thuật như process injection nhằm một số tiến trình, dịch vụ được thực thi với thẻ truy cập quyền quản trị, chúng có thê leo thang đặc quyên và thực thi mã độc hại với quyên quản trị
Cơ chế kiểm soát toàn vẹn bắt buộc (Mandatory Integrity Control — MIC) được ra đời dé ngan chan van dé này MIC sử dụng các mức độ toàn vẹn và chính sách bắt buộc đề đánh giá
quyền truy cập Các nguyên tắc bảo mật và các đối tượng bảo mật được ấn định các mức toàn
vẹn đề xác định mức độ bảo vệ hoặc quyền truy cập của chúng Do vẫn đề về tốc độ, MIC luôn kiểm tra trước DACL khi một yêu cầu truy cập được tiếp nhận Mặc dù các mức toàn vẹn có
thé là các giá trị tùy ý, hệ thống sử dụng sáu mức chính để tách các mức đặc quyên, được mô
tả trong bảng 2.4
Trang 37Bảng T.4: Các mức độ toàn vẹn trên Windows
SID (Mức độ) Mot i
Được sử dụng bởi tiến trình khởi chạy bởi
S-1-16-0x0 Untrusted Anonymous Tại mức dộ Untrusted, hầu hết mọi thao
tác phi đều bị chặn
Được sử dụng bởi các tiễn trình AppContainer S-1-16-0x1000 Low (UWP) va Protected Mode Internet Explorer Muc độ
Low bị chặn quyên ghi vào hâu hêt các đôi tượng (ví
dụ như tệp và khoá registry) trên hệ thông
Được sử dụng bởi các ứng dụng thông thường trên
Được sử dụng bởi các ứng dụng trên hệ thống trong
l các trường hợp sau:
- Khi UAC bat: Ung dung duoc khoi chay boi
S-1-16-0x3000 High quản trị viên hệ thống khi đã nâng mức độ toàn
vẹn lên từ Medium
- Khi UAC tat: Ung dung được khởi chạy bởi
quan tri viên hệ thống
thong (Vi du nhu Wininit, Winlogon, Smss, v.v.)
cho thấy thuộc tính của mức Low kèm thêm một số thông tin khác cho biết rằng tiến trình hiện
tại chạy bên trong một AppContaIner
Trang 38
Process _ €PU _ Pvate Byles Working Set PID Description Company Name Integrity
1.656 K 7,540 K 15324 Host Process for Windows S Microsoft Corporation System
9.176 K 24,028K 744 Local Security Authority Proc Microsoft Corporation System 1,844 K 4,432K 892 Usermode Font Driver Host Microsoft Corporation AppContainer
5,824 K 14,512K 468 Usermode Font Driver Host Microsoft Corporation AppContainer
2,544 K 10,408 K 5424 igfx HK Module Intel Corporation Medium 2,984 K 12,000K 5844 Medium
ll <0.01 193,692 K 297,700 K 9096 Microsoft Word Microsoft Corporation Medium FoxitPDFReader.exe <0.01 103,572 K 160,620 K 4544 Foxit PDF Reader 11.1 Foxit Software Inc Medium
SecurityHealth Systray.exe 1,756 K 9,520 K 9332 Windows Security notificatio Microsoft Corporation Medium
@® One Drive exe 60,992 K 103,208 K 9444 Microsoft OneDrive Microsoft Corporation Medium
5 Q@ghub exe 32.104 K 64.316K 7644 LGHUB Logitech, Inc Medium
Ighub_agent.exe 0.37 43,112 K 59,552K 8856 LGHUB Agent Logitech, Inc Medium
Ighub.exe 33.136 K 50,.592K 7732 LGHUB Logitech, Inc Low
lghub exe 11.316K 34,544K 10124 LGHUB Logitech, Inc Medium
=) @) wgc.exe <0.01 49,040 K 84,416K 10468 Wargaming.net Game Center Wargaming.net Medium
[=] wgc_renderer_host.exe 1.86 39,500 K 53,052 K 13200 Wargaming.net Game Center Wargaming.net Medium
iy Vpn.exe 12,388 K 31,408 K 12128 Privax HMA VPN Privax Limited Medium
Vpn.exe 9,988 K 27,720K 11980 Privax HMA VPN Privax Limited Medium
[jj ONENOTEM.EXE 2,424 K 832K 11964 Send to OneNote Tool Microsoft Corporation Medium
© Telegram.exe 242,312 K 245,388 K 12252 Telegram Desktop Telegram FZ-LLC Medium
msedge.exe 2,012 K 7,680 K 13816 Microsoft Edge Microsoft Corporation Medium
msedge.exe 130.376 K 164,188 K 14040 Microsoft Edge Microsoft Corporation Low
msedge.exe 0.75 18,340 K 42,876 K 14048 Microsoft Edge Microsoft Corporation Medium
Hình 1.20: Quan sát mức độ toàn ven trén Process Explorer Mọi tiên trình đêu có mức độ toàn vẹn được thê hiện trong thẻ truy cập của nó và được sử
dụng theo các quy tặc sau:
- Một tiến trình thông thường sẽ kế thừa mức độ toàn vẹn của tiến trình cha
- Nếu tệp tin thực thi của tiễn trình con có mức độ toàn vẹn A và mức độ toàn vẹn của
tiễn trình cha là B, tiến trình con sẽ kế thừa mức độ toàn vẹn thấp hơn giữa A và B
- Một tiến trình cha có thể tạo một tiễn trình con có mức độ toàn vẹn thấp hơn chính nó
Đề làm điều này, sử dụng API DuplicateTokenEx để tạo một bản sao thẻ truy cập, sau
đó sử dụng API SetTokenInformation để thay đổi mức độ toàn vẹn trong thẻ truy cập bản sao, cuối cùng sử dụng API ProcessAsUser đề khởi chạy tiến trình con từ thẻ truy cập trên
Bảng 2.4 bên trên đã trình bày về mức độ toàn vẹn của một tiến trình, vậy còn với một đôi
tượng bât kì khác thì sao? Các đôi tượng cũng sở hữu mức độ toàn vẹn được lưu trữ như một
phần của bộ mô tả bảo mật, trong một cầu trúc có tên “nhãn bắt buộc” (mandatory label)
Đề hỗ trợ di chuyền từ các phiên bản Windows cũ hơn (registry và tệp không có thông tin
về mức độ toàn vẹn) và hỗ trợ các nhà phát triển ứng dụng một cách đơn giản hơn, tất cả mọi đối tượng đều có mức độ toàn vẹn ngâm định là Medium Đây là một phần của Chính sách bắt buộc đối với các đối tượng, đặc biệt là khi nó được truy cập từ các đối tượng có mức độ toàn
Trang 39Các đối tượng được tạo bởi các tiễn trình có mức độ toàn vẹn System hoặc High có mức
độ toàn vẹn Medium đề người dùng có thé tat và bật UAC Nếu các mức độ toàn vẹn của đối tượng luôn kế thừa mức độ toàn vẹn của người tạo, các ứng dụng của quản tri vién tắt UAC và
sau đó kích hoạt lại nó có thể không thành công vì quản trị viên sẽ không thể sửa đổi bất kỳ khoá registry hoặc tệp nào do chúng được tạo khi chạy ở mức độ High Các đối tượng cũng có
thể có một mức độ toàn vẹn rõ ràng được đặt bởi hệ thống hoặc bởi người tạo ra đối tượng Ví dụ: các tiến trình, luồng, token và Job được cấp cho một mức toàn vẹn rõ ràng khi nó được tạo
ra Lý do gán mức độ toàn vẹn cho các đối tượng này là để ngăn chặn một tiến trình chạy ở
mức độ toàn vẹn thấp, truy cập các đối tượng có mức độ toàn vẹn cao hơn và sửa đôi nội dung hoặc hành vi của chúng (ví dụ: DLL injection hoac Code modification)
Chính sách kiểm soát tính toàn vẹn bắt buộc, xác định cấp độ bảo vệ thực tế được áp dụng
dựa trên việc kiểm tra mức độ toàn vẹn Gồm ba loại, được trình bày trong Bảng 4 Mức độ toàn vẹn và chính sách bắt buộc của một đối tượng được lưu trữ cùng nhau trong cùng một
mức độ toàn vẹn thâp hơn đôi tượng
Được sử dụng để hạn chế quyền truy cập đọc đến từ tiến
Lo trình có mức độ toàn vẹn thấp hơn đối tượng Việc này No-Read-Up Tiên trình v , SA "1 - ,
nhăm chông rò rỉ thông tin băng cách chặn thao tác đọc không gian địa chỉ từ một tiến trình bên ngoài
ca Được sử dụng đề hạn chế quyền thực thi đến từ tiến trình
Các tệp thực thị COM có mức độ toàn vẹn thấp hơn đối tượng do các lớp COM
No-Execute-Up
luôn được chạy với mức độ toàn vẹn System
1.2.3.2 Cách ly đặc quyên giao diện người dùng
Một cơ chế cùng được giới thiệu với kiêm soát toàn vẹn bắt buộc đó là cách ly đặc quyền giao diện người dùng (User Interface Privilege Isolation — UIPI) UIPI là một cơ chế giúp ngăn
một tiễn trình gui Windows message đến các tiễn trình có mức toàn vẹn cao hơn, trừ một số
Windows message sau:
Trang 40- WM_GETRENDERFORMAT
- WM_DRAWCLIPBOARD
- WM_CHANGECBCHAIN
- WM_THEMECHANGED
Việc sử dụng UIPI ngăn không cho các tiến trình mã truy cập người dùng tiêu chuẩn có thê
điều khiến cửa số của các tiến trình có thẻ truy cập quyền quản trỊ hoặc thực hiện một cuộc tân
công phá vỡ (chăng hạn như gửi Windows message không đúng định dạng gây ra lỗi tràn bộ
đệm nội bộ, có thể dẫn đến việc thực thi mã) UIPI cũng chặn các hành vi hook (thông qua API SetWindowsHookEx) ảnh hưởng đến cửa số của các tiến trình có mức độ toàn vẹn cao hơn đề
tiễn trình người dùng tiêu chuẩn không thê ghi các tô hợp phím mà người dùng nhập vào một ứng dụng quyền quản trị Các biện pháp journal hook cũng bị chặn theo cách tương tự đề ngăn các tiến trình mức toàn vẹn thấp giám sát hành vi của các tiến trình mức toàn vẹn cao hơn 1.3 Kết chương
Thẻ truy cập được tạo ra mỗi khi người dùng đăng nhập vào hệ thống là một đối tượng chứa thông tin định danh của người dùng hoặc nhóm người dùng, thông tin về quyền và đặc quyên trên hệ thống Mỗi khi người dùng yêu cầu truy cập vào một đối tượng bất kì, Windows
sẽ so sánh SID của người dùng với DACL của đối tượng, từ đó cấp quyền truy cập tương ứng hoặc từ chối truy cập Tuy nhiên, một người quản trỊ với một số đặc quyền SeDebugPrivilege, SeTakeOwnershipPrivilege, có thé toàn quyền điều khiển, chiếm quyền kiểm soát tới toàn
bộ dữ liệu trên hệ thống, đặt ra vẫn đề lớn nếu tài khoản này bị kiểm soát bởi mã độc UAC đã
được ra đời nhằm giải quyết bài toán kề trên Ta sẽ nhìn UAC tổng thể từ hai góc độ:
Nhìn từ góc độ kỹ thuật, Windows phân tách hai thẻ truy cập riêng biệt từ khi người dùng quản trị đăng nhập: một thẻ đã lọc quyền quản trị sử dụng cho các tác vụ thông thường, một thẻ khác có đầy đủ quyền quản trị sử dụng cho các tác vụ hệ thống Ngoài ra UAC còn đi kèm với hai cơ chế khác:
- _ Kiểm soát toàn vẹn bắt buộc: Sử dụng mức độ toàn vẹn đề kiểm soát việc truy cập, sửa
đổi các đối tượng cần bảo vệ (tệp, registry, bộ nhớ tiến trình, ) bởi các chương trình không đáng tin cậy
- _ Cách ly đặc quyền giao diện người dùng: Ngăn chặn các tiến trình có mức độ toàn vẹn thấp thực thi các kỹ thuật hook, gửi Windows message điều khiến các tiến trình có mức
độ toàn vẹn cao hơn
Nhìn từ góc độ người dùng, UAC là một cơ chế giúp quản trị viên phát hiện chương trình
không tin cậy thực thi các hành vi thay đôi đến cài đặt hệ thống thông qua việc hiện thị lời nhắc
nâng cao đặc quyên Quản trị viên cũng có thê thay đổi cách thức UAC hoạt động thông qua 4 mức kiêm soát riêng biệt