Apakah ada satu biner UAC?

27

Apakah ada biner (.exe) di folder System32 yang bertanggung jawab untuk fungsi Windows UAC? (misalnya, uac.exe). Apa yang akan terjadi jika file itu dihapus dengan paksa? Apakah Windows akan rusak atau gagal boot?

Tidak ada masalah XY di sini; Saya hanya ingin tahu apa yang akan terjadi jika UAC dihapus secara paksa dari PC.

Kathy
sumber
1
Anda dapat dengan mudah menonaktifkan UAC. UAC adalah fungsi dari kernel. Apa yang Anda inginkan tidak mungkin
Ramhound
Ada file win32k.sys technize.net/... dan ternyata file itu di windows pre patched, dapat dimanipulasi / diubah..untuk menonaktifkan UAC. Atau orang dapat menonaktifkan UAC dengan cara biasa, meskipun itu bukan file EXE
barlop
Anda dapat menonaktifkan UAC menggunakan berbagai metode, misalnya superuser.com/questions/1013702/… . Saya berpikir bahwa jika Anda menghapusnya dengan cara hack-ish lain, Anda akan mendapatkan sebagian besar efek yang sama, meskipun dengan kesalahan dalam jawaban di bawah ini tentang biner yang hilang.
YetAnotherRandomUser
@barlop, win32k.sys hanyalah sisi kernel dari subsistem Windows. Dengan kata lain, kode inti digunakan oleh segalanya. Saya tidak akan merekomendasikan mencoba mengubahnya. pasotech.altervista.org/windows_internals/Win32KSYS.pdf
Dark Falcon
@DarkFalcon Mungkin ada lebih ke "sisi kernel dari subsistem windows" dari itu. Dan saya tidak menyarankan yang "mengubahnya"! Menurut Anda apa yang akan dilakukan seseorang? Buka di notepad? Saya tidak pernah menyarankan hal seperti itu! Buka hex editor? lebih baik, tapi aku juga tidak menyarankan itu! Dan tidak ada yang akan melakukan itu dan mengubah apa pun kecuali mereka tahu apa yang ingin mereka ubah, yang akan membutuhkan tingkat keterampilan tertentu!
barlop

Jawaban:

56

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 :

masukkan deskripsi gambar di sini

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:

  1. Satu dengan akses administrator penuh, dan
  2. "Token yang difilter" kedua dengan akses pengguna standar

Seperti yang ditunjukkan di sini proses ini berbeda dari proses masuk pengguna standar:

masukkan deskripsi gambar di sini

Layanan subsistem LSA hidup dalam lsass.exeproses.

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:

masukkan deskripsi gambar di sini

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.exedan 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:

  1. UAC tidak diimplementasikan dalam satu biner.
  2. 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.

Saya katakan Reinstate Monica
sumber
1
FWIW technize.net/... berdasarkan tautan itu, tampaknya file win32k.sys tampaknya memainkan peran yang saya perhatikan bahwa file.exe mengidentifikasinya sebagai "PE32 + executable (asli) x86-64, untuk MS Windows"
barlop
win32k.sys - pada dasarnya - sebagian besar kernel. Tentu saja ini berperan dalam UAC. Itu adalah Windows.
Roger Lipscombe
25

Seperti dijelaskan Twisty dengan sangat baik , ada banyak komponen yang membantu mengimplementasikan UAC. Bagian dari UAC yang paling dikenal orang adalah dialog elevasi / persetujuan:

Ini disediakan oleh consent.exe, "UI Persetujuan untuk aplikasi administratif." Saya mencoba mengubah nama dalam VM dan melihat apa yang terjadi. Seperti yang diharapkan, tidak ada permintaan ketinggian yang muncul saat menggunakan "jalankan sebagai administrator" - sebagai gantinya, Anda mendapatkan kesalahan yang tidak ditemukan file yang menyalahkan hal yang Anda coba tingkatkan:

tidak ditemukan

Mencoba menggunakan elemen UI Panel Kontrol apa pun yang memerlukan ketinggian (yaitu memiliki ikon pelindung), bahkan jika masuk sebagai administrator, gagal dengan kesalahan serupa. Mencoba meluncurkan hal-hal administratif dari menu Mulai menghasilkan kesalahan yang sedikit berbeda:

tidak ada aplikasi yang terkait

Bergantung pada set ACL ketika melakukan penggantian nama yang merusak segalanya, bisa mustahil untuk memperbaikinya dari dalam OS, karena operasi file dapat memerlukan peningkatan (bahkan jika mereka biasanya tidak menghasilkan dialog persetujuan). Aktivitas normal-seperti-pengguna tampaknya tidak terdegradasi.

Ben N
sumber
3
@uru, saya kira persetujuan.exe tidak hanya mengembalikan benar atau salah, tetapi token untuk mengeksekusi di bawah. Yang berarti Anda tidak bisa mendapatkan dari pengguna biasa ke token administrator tanpa benar-benar mengotentikasi sebagai admin.
Joey
6
@muru Windows memverifikasi dan mengganti banyak file sistem, tidak yakin apakah ini termasuk atau tidak. Namun, dari sudut pandang keamanan, intinya adalah dapat diperdebatkan - untuk menggantikan consent.exe, Anda memerlukan hak administrator terlebih dahulu, sehingga tidak ada eskalasi hak istimewa bahkan jika mungkin untuk mengganti cara Anda bayangkan.
Luaan
3
Hanya untuk memasukkannya sejak pikiran itu muncul di benakku. Anda masih bisa mem-boot mesin ke Linux atau sesuatu untuk mengganti file. Tetapi itu membutuhkan akses fisik ke mesin, yang pada dasarnya juga merupakan akses administratif. Jadi itu masih bukan masalah keamanan
DeadChex
1
@EricTowers Ya, tetapi karena hak administratif diperlukan untuk berubah consent.exe, seorang penyerang yang dapat melakukan itu sudah berada di sisi lain dari lubang palka kedap udara dan memiliki cara yang lebih mudah dalam melakukan hal-hal buruk.
Ben N
1
@TwistyImpersonator Pertanyaan menarik! Peningkatan diam-diam tampaknya juga memicu menjalankan Persetujuan (per proses mulai pemantauan ) bila dilakukan di bawah akun admin normal. Akun Administrator bawaan tidak tunduk pada UAC, jadi semua programnya sudah meningkat dan Persetujuan tidak terlibat. Anda dapat mengubah perilaku itu menggunakan kebijakan keamanan ini .
Ben N