UAC adalah arsitektur multi-komponen yang diimplementasikan oleh banyak binari
User Account Control (UAC) mengacu pada beberapa komponen yang bersama-sama membentuk arsitektur UAC . Saya akan meninjau secara singkat beberapa dari mereka bersama dengan binari yang bertanggung jawab untuk implementasi mereka, tetapi pertama-tama inilah gambaran umum arsitektur UAC dari artikel Microsoft Docs Bagaimana Kontrol Akun Pengguna Bekerja :
Otoritas Keamanan Lokal (LSA) / Token Difilter
Secara konseptual komponen "pertama" UAC diimplementasikan oleh subsistem Otoritas Keamanan Lokal yang menangani pembuatan Token Akses pengguna selama proses masuk. Dimulai dengan Windows Vista, proses logon diubah sehingga ketika Administrator logon dengan UAC diaktifkan, subsistem LSA menghasilkan dua token akses terpisah untuk pengguna:
- Satu dengan akses administrator penuh, dan
- "Token yang difilter" kedua dengan akses pengguna standar
Seperti yang ditunjukkan di sini proses ini berbeda dari proses masuk pengguna standar:
Layanan subsistem LSA hidup dalam lsass.exe
proses.
Virtualisasi
Ditambahkan pada Windows 7, Virtualisasi File dan Registri adalah komponen UAC yang mem - shims aplikasi yang lebih lama yang tidak memenuhi UAC tetapi hanya memerlukan hak administratif untuk mengakses area yang dilindungi tertentu dari sistem file atau Registry:
Ketika aplikasi administratif yang tidak sesuai dengan UAC mencoba untuk menulis ke direktori yang dilindungi, seperti Program Files, UAC memberikan aplikasi itu sendiri tampilan tervirtualisasi dari sumber daya yang ia coba ubah. Salinan tervirtualisasi dipertahankan di profil pengguna.
Sumber
Dengan pengalihan upaya akses ini ke area yang tidak memerlukan izin admin, aplikasi ini terus berfungsi meskipun UAC diaktifkan pada sistem.
Virtualisasi ini diimplementasikan dalam Kernel .
Layanan Informasi Aplikasi
Layanan Informasi Aplikasi (AIS) membaca manifes aplikasi dan bekerja dengan UAC Consent Prompt untuk menentukan apakah suatu aplikasi diizinkan untuk dieksekusi dengan hak yang lebih tinggi (yaitu mulai dalam konteks token akses tingkat administratif yang tidak disaring yang dibuat pada saat masuk) . Posting blog ini memberikan gambaran yang baik tentang perannya dalam proses UAC:
AIS Memfasilitasi jalannya aplikasi interaktif dengan hak administratif tambahan. Jika layanan ini dihentikan, pengguna tidak akan dapat meluncurkan aplikasi dengan hak administratif tambahan yang mungkin mereka butuhkan .... Shell memeriksa layanan ini ketika meluncurkan aplikasi. AIS adalah yang membaca manifes dan bagian xml 'trustInfo' yang memiliki persyaratan untuk 'RequestExecutionLevel' ...
Berikut ini adalah grafik yang mengikuti kutipan di atas yang merinci peran AIS dalam proses Konfirmasi Izin UAC:
AIS diimplementasikan dalam DLLappinfo.dll
yang dijalankan oleh svchost.exe
.
Prompt Persetujuan
@ Benn ini jawabannya menjelaskan peran kunci (dalam) terkenal UAC Persetujuan Prompt. Ini diimplementasikan dalam consent.exe
dan bertanggung jawab untuk mendapatkan persetujuan pengguna atau kredensial pengguna administratif untuk memungkinkan peluncuran aplikasi yang membutuhkan hak admin.
Desktop yang Aman
Secure Desktop adalah tempat Konfirmasi Izin UAC ditampilkan secara default. Microsoft UACBlog memberi tahu kami apa yang unik tentang Desktop ini dibandingkan dengan Desktop Pengguna:
Anda paling sering berinteraksi dengan [Desktop Aman] ketika Anda masuk ke Windows karena UI Logon berjalan di Desktop Aman. Perbedaan utama Secure Desktop dari Desktop Pengguna adalah bahwa hanya proses tepercaya yang berjalan karena SISTEM diizinkan untuk berjalan di sini (yaitu tidak ada yang berjalan sebagai tingkat privilege Pengguna) dan jalur untuk sampai ke Desktop Aman dari Desktop Pengguna juga harus dipercaya melalui seluruh rantai.
Gagasan di balik menggunakannya ketika meminta persetujuan pengguna untuk menjalankan aplikasi dengan izin yang ditinggikan adalah bahwa malware tidak dapat meniru Desktop Aman kecuali jika sudah memiliki hak administratif, dalam hal ini menipu pengguna untuk memberikannya adalah hal yang perlu diperdebatkan.
Kesimpulan: UAC bukan hanya satu biner. Ini adalah jalinan subsistem terjalin.
Masih ada aspek lain dari arsitektur UAC yang tidak dibahas di sini, tetapi ini harus memberikan bukti yang cukup untuk fakta-fakta yang:
- UAC tidak diimplementasikan dalam satu biner.
- Jika diaktifkan, ini merupakan bagian integral dari melakukan tugas administratif.
Sejak diperkenalkan di Windows Vista, ia telah diintegrasikan secara mendalam ke bagian-bagian penting dari sistem operasi, membuatnya tidak mungkin menghapus semua kode yang bertanggung jawab untuk UAC tanpa merusak hal-hal lain (seperti kemampuan Anda untuk masuk!)
Saya pikir aman untuk mengatakan bahwa jika Anda "dengan paksa menghapus" UAC, Anda akan merusak Windows.