Co robi ustawienie rejestru EnableLinkedConnections na poziomie technicznym?

15

Uwaga: podstawowym problemem jest dla mnie dostęp do udziału sieciowego, który ja (administrator systemu Win 7) skonfigurowałem po uruchomieniu podwyższonego programu. Zwykle podniesiony program nie będzie miał dostępu do moich nie podwyższonych udziałów sieciowych.

Według Microsoft ustawienie rejestru EnableLinkedConnections pozwoli podwyższonym procesom uzyskać dostęp do udziału sieciowego aktualnie zalogowanego (nie podwyższonego) procesu eksploratora.

To wyjaśnienie ma sens:

[...] Gdy jesteś członkiem grupy Administratorzy i logujesz się, Twoje konto zostaje zablokowane przez użytkownika nieuprzywilejowanego przez UAC. Ten działający kontekst jest całkowicie oddzielony od kontekstu, który otrzymujesz po kliknięciu Wiersza polecenia prawym przyciskiem myszy i uruchomieniu jako administrator. Jak zapewne zauważyłeś, dyski sieciowe podłączone w jednym kontekście nie są widoczne w drugim. [...]

W tym wątku na forum jest mowa o lukach otwartych przez to ustawienie. Odpowiedź zawiera linki do artykułu na temat wyłączania monitów UAC (a przynajmniej tak rozumiem).

Teraz powstaje pytanie, co robi EnableLinkedConnections ustawienie rejestru nie lub zezwolić na systemie Windows 7, biorąc pod uwagę, że jesteśmy nie działa w środowisku domeny .


Edycja: Jedną z rzeczy, które szczególnie mnie interesują, jest to, czy to ustawienie wpływa tylko na (widoczność) dysków sieciowych, czy też ma inne konsekwencje.

Jaskółka oknówka
źródło
Powiązane jest to inne pytanie o ELC, które nie działa w niektórych przypadkach: serverfault.com/questions/780639/…
UuDdLrLrSs

Odpowiedzi:

18

Nie mając dostępu do źródła systemu Windows trudno jest powiedzieć coś, co nie jest spekulacją. Poza tym zastrzeżeniem, oto, co udało mi się zebrać, czytając o tym:

Kontrola konta użytkownika tworzy dwa tokeny bezpieczeństwa podczas logowania: token z podwyższonym poziomem zawierający pełne członkostwo w grupie użytkownika i token ograniczony, do którego należy członkostwo w grupie „Administratorzy”. Każdy token zawiera odrębny lokalnie unikalny identyfikator (LUID), który identyfikuje sesję logowania. Są to dwie osobne i odrębne sesje logowania.

Począwszy od systemu Windows 2000 Server SP2, zamapowane dyski (które są reprezentowane jako dowiązania symboliczne w przestrzeni nazw menedżera obiektów) są oznaczane LUID tokenu, który je utworzył (niektóre odniesienia Microsoft do tego zachowania można znaleźć w tym artykule KBase , i można to zrobić dowiedz się więcej o mechanice tej funkcji w tym blogu ). Istotą tej funkcji jest to, że zamapowane dyski utworzone przez jedną sesję logowania nie są dostępne dla innej sesji logowania.

Ustawienie wartości EnableLinkedConnections wyzwala zachowanie w usłudze LanmanWorkstation i podsystemie bezpieczeństwa LSA (LSASS.EXE) w celu spowodowania przez LSA kopiowania dysków zmapowanych z jednego z tokenów użytkownika do kontekstu drugiego tokena. Dzięki temu dyski zmapowane z podniesionym tokenem będą widoczne dla tokena z ograniczeniami i odwrotnie. Nie ma osobliwości w zachowaniu tej funkcji w odniesieniu do środowiska w porównaniu do środowiska innego niż domena. Jeśli użytkownicy korzystają z kont „Administrator” w środowisku innym niż domena, ich tokeny zastrzeżone i podwyższone będą domyślnie miały niezależne mapowania dysków.

Pod względem podatności wydaje się, że brakuje oficjalnej dokumentacji firmy Microsoft. Znalazłem komentarz i odpowiedź pracownika Microsoftu pytającego o potencjalne luki w rozmowie na temat UAC z 2007 roku. Biorąc pod uwagę, że odpowiedź pochodzi od Jona Schwartza, który w tym czasie nosił tytuł „Architekt UAC”, zwykle uważają swoją odpowiedź za wiarygodną. Oto sedno jego odpowiedzi na następujące zapytanie: „... Nie znalazłem żadnych informacji, które mogłyby opisać, co faktycznie dzieje się technicznie lub czy powoduje to jakiekolwiek luki w UAC. Czy możesz to skomentować?”

Z technicznego punktu widzenia, otwiera to małą lukę, ponieważ złośliwe oprogramowanie bez podniesienia poziomu uprawnień może teraz „wstępnie zaszczepić” literę dysku + mapowanie w podwyższonym kontekście - powinno to być niewielkie ryzyko, chyba że skończysz z czymś, co jest specjalnie dostosowane do twojego środowiska.

Osobiście nie mogę wymyślić sposobu na „wykorzystanie” tej luki, ponieważ „wysiewanie” podniesionego tokena za pomocą mapowania dysku nadal wymagałoby od użytkownika podniesienia i wykonania czegoś złośliwego z tego „zaszczepionego” mapowania dysku. Nie jestem jednak badaczem bezpieczeństwa i być może nie podchodzę do tego z dobrym nastawieniem, aby wymyślić potencjalne exploity.

Mam uniknął pomocą EnableLinkedConnections wartości w moich stron klientowi przez kontynuując trend, który rozpoczęliśmy, gdy klienci zaczęli wdrażania systemu Windows NT 4.0-- konieczności logowania użytkowników o ograniczonych kontach użytkowników. To działało dla nas dobrze od lat i nadal działa dobrze w systemie Windows 7.

Evan Anderson
źródło
RE: „Unikałem używania wartości EnableLinkedConnections ... [poprzez] logowanie użytkowników przy użyciu ograniczonych kont użytkowników.” - czy ograniczone konta użytkowników mogą uruchamiać aplikacje jako administrator? Myślałem, że nie mogą. (Jeśli nie mogą, to nie rozumiem, jak to uchyla się od problemu - mam na myśli, że gdybym skarżył się mechanikowi, że silnik mojego samochodu piszczę, kiedy jadę z prędkością 80 km / h, nie zaakceptowałbym jego rozwiązania) spłaszczanie opon [chociaż uniemożliwiałoby to jazdę z prędkością 80 km / h, nie rozwiązałoby to rzeczywistego problemu])
BrainSlugs83
1
@ BrainSlugs83 - Naprawiasz komentarz w małym akapicie długiej odpowiedzi. Odpowiedź dała OP to, czego chcieli (zakładam, ponieważ zaakceptowali): opis tego, co robi wartość rejestru. Zrobiłem ten odręczny komentarz, aby poinformować OP, że istnieje sposób na uniknięcie konieczności korzystania z EnableLinkedConnections - po prostu nie dawaj użytkownikom kont administratora, a potrzeba zostanie zmniejszona. Jest rok 2013 - ograniczone konta użytkowników są doradztwem Microsoft od prawie 10 lat. Analogia twojego samochodu / mechanika jest napięta, IMO. To nie jest „problem” z systemem operacyjnym - to funkcja bezpieczeństwa.
Evan Anderson
Och, absolutnie to utrwalam; również w przypadku pomyłki: nie twierdzę, że twoja odpowiedź jest nieprawidłowa. To było bardzo dobre, nawet go głosowałem! - Ale naprawiam bardzo poważny problem, który mam - stąd pytanie, które zadałem, aby ustalić, czy to alternatywne rozwiązanie będzie dla mnie działać, czy nie: „czy na ograniczonych kontach użytkowników można uruchamiać aplikacje jako administrator?” ; Biorę z twojej odpowiedzi, że moje początkowe założenie było prawidłowe.
BrainSlugs83
Ponadto zdecydowanie nie zgadzam się z tym, że analogia jest rozciągnięta. Odebranie możliwości uruchamiania aplikacji jako administrator byłoby całkowicie podobne do zepsucia komputera. Mam projekt Microsoft Visual Studio, który nie kompiluje się podczas fazy podpisywania kodu, jeśli Visual Studio nie zostanie uruchomiony z opcją „Uruchom jako administrator”. Próbowałem rozwiązać ten problem, ale nie znalazłem rozwiązania ani w Google, blogach, ani w przepełnieniu stosu (to nie jest pojedyncze zdarzenie). Zdolność do uruchamiania aplikacji jako administrator jest niezbędna dla niektórych użytkowników (nawet przy użyciu wyłącznie oprogramowania Microsoft).
BrainSlugs83
3
Jeśli chcesz uruchomić aplikacje jako Administrator, zalecam posiadanie drugiego konta użytkownika i używanie go do uruchamiania aplikacji z podwyższonym poziomem uprawnień w „Uruchom jako administrator”. To jedyny wybór, jaki widzę. Jeśli aplikacja nie będzie działać poprawnie z „Uruchom jako”, oznacza to, że aplikacja jest uszkodzona. (Twierdzę również, że każda aplikacja, która wymaga uprawnień administratora i nie jest aplikacją do administrowania siecią lub komputerem, jest również wadliwa - oprogramowanie MSFT lub nie.) Uważam, że wadliwe oprogramowanie jest jednym z najbardziej frustrujących aspektów mojej pracy, więc rozumiem również twoją frustrację. Chciałbym, żeby było dobre rozwiązanie.
Evan Anderson
1

Mówiąc najprościej, łączy on poświadczenia superużytkownika z normalnymi poświadczeniami. Jest to oczywiście bardziej złożone, ale w zasadzie nawet twoje konto „administratora” w systemie Windows 7 nie jest administratorem, ale musi wykonać odpowiednik SUDO w systemie Linux, aby wykonać wiele operacji. Podczas mapowania dysku sieciowego należy to zrobić, ale dysk sieciowy zostanie zamapowany tylko dla superużytkownika, a nie dla zwykłego użytkownika. To ustawienie rejestru łączy poświadczenia superużytkownika ze standardowymi na potrzeby mapowanych dysków. W ten sposób oboje mogą uzyskać dostęp do zamapowanego dysku zamiast tylko superużytkownika.

MaQleod
źródło
Czy możesz wyjaśnić, czy to ustawienie faktycznie wpływa tylko na dyski sieciowe? Czy ma to jakikolwiek inny efekt? (patrz q edit)
Martin