레지스트리 키에 대한 추가 Windows 리소스 보호
플랫폼
클라이언트 - Windows 7
서버 - Windows Server 2008 R2
기능 영향
심각도 - 중간
빈도 - 낮음
설명
추가 시스템 리소스는 Windows 7에서 WRP(Windows 리소스 보호) 설정을 추가하여 읽기 전용 설정으로 만듭니다. 추가 보호를 받은 대부분의 리소스는 시스템 COM 서버 키이지만 일부 기능은 대상 리소스 보호를 추가했습니다. Microsoft는 시스템 및 다른 애플리케이션이 서로 끊어지는 것을 방지하고 애플리케이션을 안정적으로 실행할 수 있는 일관되고 안정적인 플랫폼을 제공하기 위해 이러한 리소스를 변경했습니다. 과거에 애플리케이션은 사용자 지정 파일을 제공하고 보호되지 않는 COM 등록을 사용하여 시스템을 변경할 수 있습니다. 이전 애플리케이션의 경우 시스템 런타임을 다운그레이드하거나 다른 애플리케이션이 제대로 작동하는 데 필요한 인터페이스를 변경할 수 있습니다. 최악의 경우 이러한 설치로 인해 시간이 지남에 따라 시스템 오류 또는 성능이 저하될 수 있습니다. 더 나은 환경과 보다 안정적인 애플리케이션 플랫폼을 제공하기 위해 Microsoft 업데이트만 시스템 구성 요소를 변경할 수 있도록 이러한 등록을 잠갔습니다.
변경된 대부분의 리소스는 시스템에서 사용하는 COM 키이므로 이 변경 내용은 대부분의 애플리케이션에 영향을 미치지 않습니다. 이러한 변경으로 인해 대부분의 애플리케이션이 Windows 7에서 더 나은 환경을 가질 것으로 예상하지만, 애플리케이션의 작은 하위 집합은 부정적인 영향을 받을 수 있습니다. 시스템의 애플리케이션 호환성 계층은 보호된 리소스로 인해 실패하더라도 설정을 변경하는 데 성공했다고 항상 애플리케이션에 알려 설정 문제를 자동으로 해결합니다. 이렇게 하면 애플리케이션 설정이 중단되지 않지만 애플리케이션이 제대로 작동하기 위해 설정을 변경해야 하는 경우 문제가 발생할 수 있습니다.
매니페스트
애플리케이션은 Windows 7 이전에 이러한 설정을 수정했을 수 있습니다. Windows 7에 설치할 때 설정에 애플리케이션이 예상한 내용이 반영되지 않아 애플리케이션에서 특정 기능이 더 이상 작동하지 않을 수 있습니다.
애플리케이션에서 이 추가된 보호와 관련된 문제가 발생할 수 있는 두 가지 시나리오가 있습니다.
- 현재 보호된 설정을 데이터 저장소로 사용했거나 드물거나 의도하지 않은 확장성 지점으로 사용했을 수 있는 애플리케이션
- 드물게 애플리케이션 설정을 식별하는 데 사용되는 검색 메커니즘이 특정 설정을 인식하지 못할 수 있으므로 애플리케이션 호환성 완화 계층이 적용되지 않을 수 있습니다.
완화 방법
완화의 기본 방법은 시스템의 애플리케이션 호환성 계층으로, 감지되면 애플리케이션 설정에 자동으로 적용됩니다. 애플리케이션 속성의 호환성 탭을 사용하여 애플리케이션에 수동으로 적용할 수도 있습니다.
이 계층은 레지스트리 작업을 가로채 문제를 해결합니다. 애플리케이션이 WRP(읽기 전용) 설정을 수정하려고 시도하는 경우 설정이 실제로 변경되지 않았더라도 계층은 항상 성공을 반환합니다. 대부분의 애플리케이션에서 문제가 발생하지 않습니다. 그러나 애플리케이션이 제대로 작동하기 위해 해당 설정을 변경해야 할 가능성이 있습니다. 이는 위에서 설명한 첫 번째 시나리오입니다.
솔루션
위에서 식별한 두 가지 시나리오의 경우:
- 애플리케이션에서 데이터 저장소를 작동하거나 사용하기 위해 키를 쓸 수 있어야 하는 경우 애플리케이션이 해당 위치에 더 이상 기록되지 않도록 애플리케이션을 변경하는 것 외에는 다른 솔루션이 없습니다.
- 호환성 계층이 설치에 적용되지 않은 경우 설치 실패를 검색하여 적용하고 다시 실행하도록 제공해야 합니다. 애플리케이션은 호환성 모드에서 실행할 수도 있습니다. 이 경우 완화 계층이 항상 적용됩니다.
호환성 테스트
애플리케이션에 WRP 완화가 적용되었는지 감지하는 방법:
- Windows Installer는 WRP를 알고 있습니다. 보호된 리소스를 작성하거나 수정하려는 시도를 자동으로 자동으로 무시합니다. Windows Installer를 사용하여 애플리케이션을 설치하고 로깅을 사용하도록 설정한 경우 WRP로 보호되는 리소스로 인해 무시된 각 레지스트리 키 쓰기 작업에 대한 경고가 기록됩니다.
- Windows 리소스 보호 API는 SfCIsKeyProtected를 통합하여 레지스트리 키가 현재 시스템에서 WRP로 보호되는지 쿼리할 수 있습니다.