레지스트리 설정 EnableLinkedConnections는 기술 수준에서 어떤 기능을 수행합니까?


15

참고 : 나를위한 기본 문제는 내가 상승 된 프로그램을 실행할 때 내가 (Win 7 관리자) 설정 한 네트워크 공유에 액세스 할 수 있다는 것입니다. 일반적으로 상승 된 프로그램은 상승하지 않은 네트워크 공유에 액세스 할 수 없습니다.

Microsoft 에 따르면 레지스트리 설정 EnableLinkedConnections를 사용하면 상승 된 프로세스가 현재 로그인 한 (높지 않은) 탐색기 프로세스의 네트워크 공유에 액세스 할 수 있습니다.

이 설명 은 의미가 있습니다.

[...] 관리자 그룹의 구성원이고 로그인하면 UAC에 의해 권한이없는 사용자에게 계정이 중지됩니다. 이 실행중인 컨텍스트는 명령 프롬프트를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 시작할 때 얻는 컨텍스트와 완전히 별개입니다. 아시다시피 한 컨텍스트에서 연결된 네트워크 드라이브는 다른 컨텍스트에서 보이지 않습니다. [...]

이 포럼 스레드 는이 설정으로 열린 취약점에 대해 묻습니다. 주어진 답변 은 UAC 프롬프트 비활성화 에 대한 기사로 연결 됩니다 (또는 이해합니다).

문제 는 도메인 환경에서 실행되고 있지 않다면 Windows 7 시스템에서 EnableLinkedConnections 레지스트리 설정이 수행 하거나 허용 하는 작업 입니다 .


편집 : 내가 특별히 관심있는 것은이 설정이 네트워크 드라이브의 가시성에만 영향을 미치는지 또는 다른 영향을 미치는지입니다.


ELC가 작동하지 않는 경우에 대한이 다른 질문과 관련이 있습니다. serverfault.com/questions/780639/…
UuDdLrLrSs

답변:


18

Windows에 대한 소스 액세스 권한이 없으면 추측이 아닌 것을 말하기가 어렵습니다. 그 면책 조항을 제쳐두고, 이것에 대해 읽음으로써 얻을 수 있었던 것은 다음과 같습니다.

UAC는 로그온시 사용자의 전체 그룹 구성원을 포함 하는 상승 된 토큰 과 "관리자"그룹의 구성원이 제거 된 제한된 토큰 이라는 두 가지 보안 토큰을 만듭니다 . 각 토큰에는 로그온 세션을 식별하는 고유 한 로컬 고유 ID (LUID)가 포함되어 있습니다. 두 개의 분리 된 별개의 로그온 세션입니다.

Windows 2000 Server SP2부터는 객체 관리자 네임 스페이스에서 심볼릭 링크로 표시되는 매핑 된 드라이브에 해당 토큰을 생성 한 토큰의 LUID로 태그가 지정됩니다 ( 이 KBase 기사 에서이 동작 대한 일부 Microsoft 참조를 찾을 수 있음). 이 블로그 게시물에서이 기능의 메커니즘에 대해 자세히 알아보십시오 . 이 기능의 요점은 한 로그온 세션으로 만든 매핑 된 드라이브가 다른 로그온 세션에 액세스 할 수 없다는 것입니다.

EnableLinkedConnections 값을 설정하면 LanmanWorkstation 서비스 및 LSA 보안 하위 시스템 (LSASS.EXE)에서 동작이 트리거되어 LSA가 사용자 토큰 중 하나에서 매핑 된 드라이브를 다른 토큰의 컨텍스트로 복사합니다. 이를 통해 상승 된 토큰으로 매핑 된 드라이브를 제한된 토큰과 대화에 볼 수 있습니다. 도메인 대 비 도메인 환경과 관련하여이 기능의 동작에는 고유 한 특성이 없습니다. 도메인이 아닌 환경에서 사용자가 "관리자"계정으로 실행중인 경우 기본적으로 제한된 토큰과 높은 토큰은 독립적 인 드라이브 매핑을 갖습니다.

취약점 측면에서 Microsoft의 공식 문서는 부족한 것 같습니다. 2007 년부터 UAC에 대한 대화에서 잠재적 인 취약점에 대해 묻는 Microsoft 직원 의 의견답변을 찾았 습니다 . 그 대답은 당시 "UAC Architect"라는 제목의 Jon Schwartz의 답변입니다. 그의 대답이 신뢰할만한 것이라고 생각하는 경향이있다. 다음 질문에 대한 그의 대답은 다음과 같습니다. "... 실제로 어떤 일이 일어나고 있는지 또는 이것이 어떤 종류의 UAC 허점을 열 었는지 설명하는 정보를 찾지 못했습니다. 의견이 있으십니까?"

기술적으로, 이것은 높지 않은 멀웨어가 이제 드라이브 문자를 미리 미리 설정하여 높은 컨텍스트에 매핑 할 수 있기 때문에 환경에 맞게 조정 된 것이 아니라면 위험이 적어야합니다.

개인적으로, 드라이브 매핑을 사용하여 높은 토큰을 "시드"하는 데 여전히 "시드 된"드라이브 매핑에서 악의적 인 것을 실제로 높이고 실행해야하는 한,이 허점을 "탐색"하는 방법을 생각할 수 없습니다. 나는 보안 연구원이 아니며 잠재적 인 악용을 생각해 내기 위해 좋은 사고 방식으로 접근하지 않을 수 있습니다.

고객이 제한된 사용자 계정으로 로그온하게하여 Windows NT 4.0 배포를 시작했을 때 시작된 경향을 계속 유지함으로써 고객 사이트에서 EnableLinkedConnections 값을 사용 했습니다. 그것은 수년간 우리에게 잘 작동했으며 Windows 7에서도 계속 잘 작동합니다.


RE : "제한된 사용자 계정으로 사용자가 로그온하도록하여 EnableLinkedConnections 값을 사용하여 회피했습니다." 제한된 사용자 계정으로 응용 프로그램을 관리자로 실행할 수 있습니까? 나는 그들이 할 수 없다고 생각했다. (그들이 그렇게 할 수 없다면, 이것이 어떻게 문제를 피하는지 알지 못합니다. 내가 80mph를 운전할 때 내 차의 엔진이 삐걱 거리는 기계공에게 불평한다면, 나는 그의 고침을 받아들이지 않을 것입니다. 내 타이어를 평평하게하다 [80mph를 운전하는 것은 불가능하지만 실제 문제는 해결하지 못할 것이다].)
BrainSlugs83

1
@ BrainSlugs83-당신은 긴 답변의 작은 단락에서 의견을 고치고 있습니다. 그 대답은 OP에게 그들이 원하는 것을 주었다. OP에 EnableLinkedConnections를 사용하지 않아도되는 방법이 있다는 의견을 내놓았습니다. 사용자에게 관리자 계정을 제공하지 않아도되므로 그 필요성이 완화됩니다. 2013 년, 제한된 사용자 계정은 거의 10 년 동안 Microsoft의 조언이었습니다. 당신의 자동차 / 기계적 비유는 IMO입니다. 이것은 운영 체제의 "문제"가 아니라 보안 기능입니다.
Evan Anderson

아, 나는 절대적으로 고치고있다. 또한 혼란이있는 경우 : 귀하의 답변이 틀렸다는 주장은 아닙니다. 매우 좋았고 심지어 찬성했습니다! -그러나 나는 지금 가지고있는 매우 실제적인 문제를 고치고 있습니다. 따라서이 대체 솔루션이 저에게 도움이 될지 여부를 결정하기 위해 제기 한 질문 : "제한된 사용자 계정으로 응용 프로그램을 관리자로 실행할 수 있습니까?" ; 나는 나의 초기 가정이 옳았다는 당신의 대답에서 가져옵니다.
BrainSlugs83

또한 나는 유추가 스트레칭이라는 것에 동의하지 않는다. 관리자 권한으로 앱을 실행할 수있는 기능을 없애는 것은 컴퓨터에 타이어를 바르는 것과 완전히 유사합니다. "관리자 권한으로 실행"으로 Visual Studio를 시작하지 않으면 코드 서명 단계에서 컴파일하지 못하는 Microsoft Visual Studio 프로젝트가 있습니다. 이 문제를 해결하려고 시도했지만 Google, 블로그 또는 스택 오버플로에서 해결책을 찾지 못했습니다 (단독 된 사건이 ​​아닙니다). 관리자 권한으로 앱을 실행하는 기능은 일부 사용자에게는 필수입니다 (Microsoft 소프트웨어 만 사용하는 경우에도).
BrainSlugs83

3
관리자 권한으로 앱을 실행해야하는 경우 두 번째 사용자 계정을 사용하고 "관리자 권한으로 실행"을 사용하여 응용 프로그램을 실행하는 것이 좋습니다. 그것이 내가 보는 유일한 선택입니다. "Run As"로 응용 프로그램이 제대로 작동하지 않으면 응용 프로그램에 결함이있는 것입니다. (또한 관리자 권한이 필요하고 네트워크 또는 컴퓨터 관리 응용 프로그램이 아닌 응용 프로그램에도 결함이 있다고 주장합니다. MSFT 소프트웨어인지 여부입니다.) 결함이있는 소프트웨어는 내 업무에서 가장 실망스러운 부분 중 하나입니다. 좌절감도 이해할 수 있습니다. 좋은 해결책이 있었으면 좋겠다.
Evan Anderson

1

간단히 말해 슈퍼 사용자 자격 증명을 일반 자격 증명과 연결합니다. 물론 더 복잡하지만 기본적으로 Windows 7의 "관리자"계정조차도 관리자가 아니지만 Linux에서 SUDO와 동등한 작업을 수행하여 여러 작업을 수행해야합니다. 네트워크 드라이브를 매핑 할 때는이 작업을 수행해야하지만 네트워크 드라이브는 일반 사용자가 아닌 슈퍼 유저에 대해서만 매핑됩니다. 이 레지스트리 설정은 매핑 된 드라이브를 위해 수퍼 유저 자격 증명을 표준 자격 증명과 연결합니다. 이렇게하면 둘 다 수퍼 유저 대신 매핑 된 드라이브에 액세스 할 수 있습니다.


이 설정이 실제로 네트워크 드라이브에만 영향을 미치는지 명확히 할 수 있습니까? 아니면 다른 효과가 있습니까? (q 편집 참조)
Martin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.