Apa yang dilakukan pengaturan registri EnableLinkedConnections pada tingkat teknis?

15

Catatan: masalah dasar bagi saya adalah untuk dapat mengakses jaringan berbagi yang saya (Win 7 admin user) telah mengatur ketika saya menjalankan program yang ditinggikan. Biasanya program yang ditinggikan tidak akan memiliki akses ke jaringan berbagi saya yang tidak ditinggikan.

Menurut Microsoft , pengaturan registri EnableLinkedConnections akan memungkinkan proses yang ditinggikan untuk mengakses pangsa jaringan dari proses penjelajah yang saat ini masuk (tidak ditinggikan).

Penjelasan ini masuk akal:

[...] Saat Anda menjadi anggota grup Administrators dan masuk, akun Anda akan dirusak oleh pengguna yang tidak memiliki hak istimewa oleh UAC. Konteks yang berjalan ini benar-benar terpisah dari konteks yang Anda dapatkan ketika Anda mengklik kanan Prompt Perintah dan meluncurkan sebagai administrator. Seperti yang mungkin Anda perhatikan, drive jaringan yang terhubung dalam satu konteks tidak terlihat di yang lain. [...]

Utas forum ini menanyakan tentang kerentanan yang dibuka oleh pengaturan ini. Jawaban yang diberikan tautan ke artikel tentang menonaktifkan UAC meminta (atau jadi saya mengerti).

Pertanyaannya sekarang adalah, apa yang dilakukan atau diizinkan oleh pengaturan registri EnableLinkedConnections pada sistem Windows 7, mengingat bahwa kita tidak berjalan dalam lingkungan domain .


Sunting: Satu hal yang secara khusus saya minati adalah apakah pengaturan ini hanya memengaruhi (visibilitas) drive jaringan atau apakah ia memiliki implikasi lain.

Martin
sumber
Terkait adalah pertanyaan lain tentang ELC ini yang tidak berfungsi dalam beberapa kasus: serverfault.com/questions/780639/...
UuDdLrLrSs

Jawaban:

18

Tidak memiliki akses sumber ke Windows, sulit untuk mengatakan apa pun yang tidak spekulasi. Di samping penafian itu, inilah yang saya dapat kumpulkan dengan membaca ini:

UAC membuat dua token keamanan saat masuk: token tinggi yang berisi keanggotaan grup lengkap pengguna, dan token terbatas yang memiliki keanggotaan grup "Administrator" dilucuti. Setiap token berisi ID unik unik lokal (LUID) yang mengidentifikasi sesi masuk. Mereka adalah dua sesi log masuk yang terpisah dan berbeda.

Mulai di Windows 2000 Server SP2, drive yang dipetakan (yang direpresentasikan sebagai symlink di namespace manajer objek) ditandai dengan LUID token yang membuatnya (Anda dapat menemukan beberapa referensi Microsoft untuk perilaku ini dalam artikel KBase ini , dan Anda bisa pelajari lebih lanjut tentang mekanisme fitur dalam posting blog ini ). Inti dari fitur ini adalah bahwa drive yang dipetakan yang dibuat oleh satu sesi masuk tidak dapat diakses ke sesi masuk lainnya.

Mengatur nilai EnableLinkedConnections memicu perilaku di layanan LanmanWorkstation dan subsistem keamanan LSA (LSASS.EXE) untuk menyebabkan LSA menyalin drive yang dipetakan dari salah satu token pengguna ke dalam konteks token lainnya. Ini memungkinkan drive yang dipetakan dengan token yang ditinggikan terlihat oleh token terbatas dan sebaliknya. Tidak ada kekhasan perilaku fitur ini dengan menghormati lingkungan domain versus non-domain. Jika pengguna Anda menjalankan dengan akun "Administrator" di lingkungan non-domain, token terbatas dan token mereka, secara default, akan memiliki pemetaan drive independen.

Dalam hal kerentanan, dokumentasi resmi dari Microsoft tampaknya kurang. Saya memang menemukan komentar dan tanggapan dari seorang karyawan Microsoft yang bertanya tentang potensi kerentanan dalam percakapan tentang UAC dari 2007. Mengingat bahwa jawabannya berasal dari Jon Schwartz, yang, pada waktu itu, berjudul "Arsitek UAC", saya akan cenderung menganggap jawabannya memiliki kredibilitas. Inilah inti jawabannya untuk pertanyaan berikut: "... Saya belum menemukan informasi untuk menggambarkan apa yang sebenarnya terjadi secara teknis atau jika ini membuka celah UAC apa pun. Bisakah Anda berkomentar?"

Secara teknis, ini membuka celah kecil karena malware yang tidak ditinggikan sekarang dapat "mem-seeded" huruf drive + pemetaan ke dalam konteks yang ditinggikan - yang seharusnya berisiko rendah kecuali jika Anda berakhir dengan sesuatu yang khusus dirancang untuk lingkungan Anda.

Secara pribadi, saya tidak bisa memikirkan cara untuk "mengeksploitasi" celah ini, sejauh "menyemai" token yang ditinggikan dengan pemetaan drive masih akan mengharuskan pengguna untuk benar-benar mengangkat dan menjalankan sesuatu yang berbahaya dari pemetaan drive yang "diunggah" itu. Namun, saya bukan peneliti keamanan, dan saya mungkin tidak mendekati ini dengan pola pikir yang baik untuk menghasilkan potensi eksploitasi.

Saya telah menghindari menggunakan nilai EnableLinkedConnections di situs Pelanggan saya dengan melanjutkan tren yang kami mulai ketika Pelanggan mulai menggunakan Windows NT 4.0 - meminta pengguna masuk dengan akun pengguna terbatas. Itu bekerja dengan baik untuk kami selama bertahun-tahun dan terus bekerja dengan baik di Windows 7.

Evan Anderson
sumber
RE: "Saya telah menghindari menggunakan nilai EnableLinkedConnections ... [dengan] memiliki pengguna masuk dengan akun pengguna terbatas." - dapatkah akun pengguna terbatas menjalankan aplikasi sebagai administrator? Saya pikir mereka tidak bisa. (Jika mereka tidak bisa maka saya tidak melihat bagaimana ini menghindari masalah - Maksud saya, jika saya mengeluh kepada seorang mekanik bahwa mesin mobil saya menjerit ketika saya mengemudi 80 mph, saya tidak akan menerima perbaikannya meratakan ban saya [sementara itu tidak memungkinkan untuk mengemudi 80 mph, itu tidak akan memperbaiki masalah yang sebenarnya].)
BrainSlugs83
1
@ BrainSlugs83 - Anda terpaku pada komentar dalam paragraf kecil dari jawaban yang panjang. Jawabannya memberi OP apa yang mereka inginkan (saya berasumsi, sejak mereka menerima): deskripsi tentang apa nilai registri. Saya membuat komentar begitu saja untuk memberi tahu OP bahwa ada cara untuk menghindari keharusan menggunakan EnableLinkedConnections - tapi jangan beri pengguna akun Administrator dan kebutuhannya dikurangi. Ini 2013-- akun pengguna terbatas telah menjadi saran dari Microsoft selama hampir 10 tahun. Analogi mobil / mekanik Anda tegang, IMO. Ini bukan "masalah" dengan sistem operasi - ini adalah fitur keamanan.
Evan Anderson
Oh, saya benar-benar memperbaiki; juga kalau-kalau ada kebingungan: Saya tidak berpendapat jawaban Anda salah. Itu sangat bagus, saya bahkan menaikkannya! - Tetapi saya sedang memperbaiki masalah yang sangat nyata yang saya alami - karenanya, pertanyaan yang saya ajukan kepada Anda untuk menentukan apakah solusi alternatif ini akan bekerja untuk saya atau tidak: "dapatkah akun pengguna yang terbatas menjalankan aplikasi sebagai administrator?" ; Saya mengambilnya dari jawaban Anda bahwa asumsi awal saya benar.
BrainSlugs83
Juga, saya sangat tidak setuju bahwa analoginya adalah peregangan. Mengambil kemampuan untuk menjalankan aplikasi sebagai administrator akan sangat mirip dengan memberi komputer saya ban kempes. Saya memiliki proyek Microsoft Visual Studio yang gagal dikompilasi selama fase penandatanganan kode jika Visual Studio tidak diluncurkan dengan "Run as Administrator". Saya sudah mencoba memecahkan masalah ini, tetapi belum menemukan solusi, baik di google, blog, atau stack overflow (ini bukan insiden yang terisolasi). Kemampuan untuk menjalankan aplikasi sebagai admin adalah keharusan bagi sebagian pengguna (bahkan ketika hanya menggunakan perangkat lunak Microsoft).
BrainSlugs83
3
Jika Anda perlu menjalankan aplikasi sebagai Administrator, saya sarankan untuk memiliki akun pengguna kedua dan menggunakannya untuk menjalankan aplikasi yang ditingkatkan dengan "Run As Administrator". Itulah satu-satunya pilihan yang saya lihat. Jika aplikasi tidak akan berfungsi dengan baik dengan "Run As" maka aplikasi tersebut rusak. (Saya juga berpendapat bahwa aplikasi apa pun yang memerlukan hak Administrator dan bukan aplikasi jaringan atau administrasi komputer juga rusak - perangkat lunak MSFT atau tidak.) Saya menemukan perangkat lunak yang rusak salah satu aspek yang paling membuat frustrasi pekerjaan saya, jadi saya dapat memahami frustrasi Anda juga. Saya berharap ada solusi yang bagus.
Evan Anderson
1

Sederhananya, itu menautkan kredensial pengguna super Anda dengan kredensial normal Anda. Ini tentu saja lebih kompleks, tetapi pada dasarnya, bahkan akun "administrator" Anda di windows 7 bukan admin, tetapi perlu melakukan yang setara dengan SUDO di linux untuk melakukan banyak operasi. Saat Anda memetakan drive jaringan, Anda perlu melakukan ini, tetapi drive jaringan hanya dipetakan untuk pengguna super, bukan pengguna normal. Pengaturan registri ini menautkan kredensial pengguna super dengan yang standar Anda untuk tujuan drive yang dipetakan. Dengan cara ini, keduanya dapat mengakses drive yang dipetakan, bukan hanya pengguna super.

MaQleod
sumber
Bisakah Anda mengklarifikasi jika pengaturan ini hanya mempengaruhi drive jaringan? Atau apakah ada efek lain? (lihat q edit)
Martin