보관: Windows 데스크톱 앱 v 1.1에 대 한 인증 요구 사항

문서 버전: 1.1

문서 날짜: 1 월 26 일 2012

이 문서에는 데스크톱 앱이 Windows 8 데스크톱 앱 인증 프로그램에 참여 하기 위해 충족 해야 하는 기술 요구 사항 및 자격 자격이 포함 되어 있습니다. Windows 7의 경우이 프로그램을 Windows 소프트웨어 로고 프로그램 이라고 합니다.

환영합니다!

Windows 플랫폼은 제품과 파트너의 광범위 한 에코 시스템을 지원 합니다. 제품에 Windows 로고를 표시 하는 것은 Microsoft와 회사의 품질에 대 한 관계 및 공유 약정을 나타냅니다. 고객은 호환성 표준을 충족 하 고 Windows 플랫폼에서 잘 작동 하는지 확인 하기 때문에 제품의 Windows 브랜드를 신뢰 합니다. Windows 앱 인증을 성공적으로 통과 하면 앱이 Windows 호환성 센터에서 전시 수 있으며, Windows 저장소에 데스크톱 앱 참조를 나열 하는 데 필요한 단계 이기도 합니다.

Windows 앱 인증 프로그램은 Windows 브랜드를 운반 하는 타사 앱이 Windows를 실행 하는 pc에 쉽게 설치 하 고 신뢰할 수 있도록 하기 위해 프로그램 및 기술 요구 사항으로 구성 됩니다. 고객은 구매한 시스템의 안정성, 호환성, 안정성, 성능 및 품질을 보장 합니다. Microsoft는 pc 용 Windows 플랫폼에서 실행 되도록 설계 된 소프트웨어 앱에 대 한 이러한 요구 사항을 충족 하기 위한 투자를 중심으로 합니다. 이러한 활동에는 Windows 소프트웨어를 실행 하는 pc에서 환경의 일관성, 향상 된 성능 및 향상 된 보안에 대 한 호환성 테스트가 포함 됩니다. Microsoft 호환성 테스트는 업계 파트너와 공동 작업으로 설계 되었으며 업계 개발 및 소비자 요구에 대 한 응답으로 지속적으로 개선 되 고 있습니다.

Windows 앱 인증 키트는 이러한 요구 사항을 준수 하는지 확인 하 고 Windows 7 소프트웨어 로고 프로그램의 유효성 검사에 사용 되는 WSLK를 대체 하는 데 사용 됩니다. Windows 앱 인증 키트는 Windows SDK (소프트웨어 개발 키트)에 포함 된 구성 요소 중 하나입니다.

앱 자격

앱이 Windows 8 데스크톱 앱 인증을 받으려면이 문서에 나열 된 모든 기술 요구 사항 및 다음 조건을 충족 해야 합니다.

  • 독립 실행형 앱 이어야 합니다.
  • 로컬 Windows 8.1 컴퓨터에서 실행 해야 합니다.
  • 인증 된 Windows 서버 앱의 클라이언트 구성 요소가 될 수 있습니다.
  • 코드 및 기능 완료 여야 합니다.

1. 앱이 호환 되 고 복원 가능 합니다.

앱이 충돌 하거나 응답을 중지 하는 경우에는 사용자의 불만을 많이 일으킵니다. 앱은 탄력적이 고 안정적이 고 이러한 오류를 제거 하 여 소프트웨어를 보다 예측 가능 하 고, 유지 관리 가능 하며, 성능과 신뢰성 있게 합니다.

1.1 앱이 Windows 호환성 모드, AppHelp 메시지 및 기타 호환성 수정 사항에 대 한 종속성을 사용 하지 않아야 함
1.2 앱이 VB6 런타임에 종속성을 사용 하지 않아야 함
1.3 HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows appinit dll _ 을 사용 하 여 Win32 API 호출을 가로채기 위해 앱에서 임의의 dll을 로드 해서는 안 됩니다.

2. 앱은 Windows 보안 모범 사례를 준수 해야 합니다.

Windows 보안 모범 사례를 사용 하면 Windows 공격에 노출 되지 않도록 방지 하는 데 도움이 됩니다. 공격 표면은 악의적인 공격자가 대상 소프트웨어의 취약성을 활용 하 여 운영 체제를 악용 하는 데 사용할 수 있는 진입점입니다. 가장 최악의 보안 취약점 중 하나는 권한 상승입니다.

2.1 실행 파일을 보호 하려면 앱에서 강력 하 고 적절 한 acl 을 사용 해야 합니다. 2.2 응용 프로그램에서 강력 하 고 적절 한 acl 을 사용 하 여 디렉터리를 보호 해야 합니다. 2.3 앱에서 강력 하 고 적절 한 acl 을 사용 하 여 레지스트리 키를 보호 해야 합니다. 2.4 응용 프로그램은 강력 하 고 적절 한 acl 을 사용 하 여 개체가 포함 된 디렉터리를 보호 해야 합니다. 2.5 앱이 변조에 취약 한 서비스에 대 한 비관리자 액세스를 줄여야 함 2.6 응용 프로그램에서 24 시간 마다 두 번 이상 다시 시작 하는 서비스를 방지 해야 합니다.
**참고: 액세스를 요구 하는 엔터티에만 액세스 권한을 부여 해야 합니다.**

Windows 앱 인증 프로그램은 Windows 시스템을 위험에 노출 하지 않는 방식으로 acl 및 서비스가 구현 되는지 확인 하 여 Windows 공격 표면이 노출 되지 않는지 확인 합니다.

3. 앱이 Windows 보안 기능을 지원 합니다.

Windows 운영 체제에는 시스템 보안과 개인 정보 보호를 지 원하는 많은 기능이 있습니다. 응용 프로그램은 운영 체제의 무결성을 유지 하기 위해 이러한 기능을 지원 해야 합니다. 부적절 하 게 컴파일된 앱을 사용 하면 서비스 거부를 발생 시키거나 악의적인 코드 실행을 허용할 수 있는 버퍼 오버런이 발생할 수 있습니다.

3.1 강력한 이름의 어셈블리에 대 한 보안 액세스를 보장 하려면 앱에서 AllowPartiallyTrustedCallersAttribute (APTCA)를 사용 하지 않아야 합니다.
3.2 안전한 예외 처리를 위해/SafeSEH 플래그를 사용 하 여 앱을 컴파일해야 합니다.
3.3 데이터 실행을 방지 하려면/NXCOMPAT 플래그를 사용 하 여 앱을 컴파일해야 합니다.
3.4 응용 프로그램은 ASLR (주소 공간 레이아웃 임의 지정)에 대 한/DYNAMICBASE 플래그를 사용 하 여 컴파일해야 합니다.
3.5 앱은 공유 PE 섹션을 읽거나 쓰지 않아야 합니다.

4. 앱은 시스템 다시 시작 관리자 메시지를 준수 해야 함

사용자가 종료를 시작 하면 일반적으로 종료가 성공 하는 것을 볼 수 있습니다. office를 종료 하 고 컴퓨터를 꺼야 할 수 있습니다. 앱은 종료를 차단 하지 않고 이러한 요구를 준수 해야 합니다. 대부분의 경우에는 종료가 중요 하지 않을 수 있지만 중요 한 종료의 가능성을 위해 앱을 준비 해야 합니다.

4.1 앱이 적절 한 종료를 적절 하 게 처리 해야 함
중요 한 종료에서 wm queryendsession에 대해 FALSE를 반환 하는 앱 _ 은 wm _ endsession으로 전송 되 고 종결 된 후에는 wm queryendsession에 대 한 응답으로 시간이 초과 되는 앱이 _ 종료 됩니다.

4.2 A GUI app must return TRUE immediately in preparation for a restart
\_LPARAM을 사용 하는 WM queryendsession = endsession \_ closeapp (0x1). 콘솔 앱은 SetConsoleCtrlHandler를 호출 하 여 종료 알림을 처리할 함수를 지정할 수 있습니다. 서비스 앱은 RegisterServiceCtrlHandlerEx를 호출 하 여 종료 알림을 받는 함수를 지정할 수 있습니다.
4.3 Your app must return 0 within 30 seconds and shut down
\_LPARAM을 사용 하는 WM endsession = endsession \_ closeapp (0x1). 최소한 앱은 모든 사용자 데이터를 저장 하 고 다시 시작한 후 필요한 정보를 저장 하 여 준비 해야 합니다.
4.4 Console apps that receive the CTRL\_C\_EVENT notification should shut down immediately 4.5 Drivers must not veto a system shutdown event
**Note: Apps that must block shutdown because of an operation that cannot be interrupted should explain the reason to the user.** Use ShutdownBlockReasonCreate to register a string that explains the reason to the user. When the operation has completed, the app should call ShutdownBlockReasonDestroy to indicate that the system can be shut down.

5. 앱이 깨끗 하 고 되돌릴 수 있는 설치를 지원 해야 함

깨끗 하 고 되돌릴 수 있는 설치를 통해 사용자는 자신의 시스템에서 앱을 성공적으로 관리 (배포 및 제거) 할 수 있습니다.

5.1 앱이 깨끗 하 고 해독 가능한 설치를 올바르게 구현 해야 함
설치에 실패 하면 앱에서 해당 컴퓨터를 롤백하고 이전 상태로 복원할 수 있어야 합니다.

5.2 Your app must never force the user to restart the computer immediately
설치 또는 업데이트를 마칠 때 컴퓨터를 다시 시작 하는 것은 유일한 옵션 일 수 없습니다. 사용자는 나중에 다시 시작할 수 있어야 합니다.
5.3 Your app must never be dependent on 8.3 short file names (SFN) 5.4 Your app must never block silent install/uninstall 5.5 Your app installer must create the correct registry entries to allow successful detection and uninstalls
인벤토리 도구 및 원격 분석 도구를 Windows 설치 된 앱에 대 한 전체 정보가 필요 합니다. MSI 기반 설치 관리자를 사용 하는 경우 MSI는 아래에 레지스트리 항목을 자동으로 만듭니다. MSI 설치 관리자를 사용 하지 않는 경우 설치 모듈은 설치 중에 다음 레지스트리 항목을 만들어야 합니다.
  • DisplayName
  • InstallLocation
  • Publisher
  • UninstallString
  • VersionMajor 또는 MajorVersion
  • VersionMinor 또는 MinorVersion

6. 앱은 파일 및 드라이버에 디지털 서명 해야 합니다.

Authenticode 디지털 서명을 통해 사용자는 소프트웨어가 정품 임을 확인할 수 있습니다. 또한 바이러스에 감염 된 경우와 같이 파일이 변조 되었는지 여부를 검색할 수 있습니다. 커널 모드 코드 서명 적용은 CI (코드 무결성) 라고 하는 Windows 기능으로, 파일의 이미지가 메모리에 로드 될 때마다 파일의 무결성을 확인 하 여 운영 체제의 보안을 향상 시킵니다. CI는 악성 코드가 시스템 이진 파일을 수정 했는지 여부를 검색 합니다. 는 커널 모듈의 서명이 제대로 확인 되지 않을 때 진단 및 시스템 감사 로그 이벤트도 생성 합니다.

6.1 모든 실행 파일 (.exe, .dll, .ocx, .sys, .cpl, winspool.drv, .scr)은 Authenticode 인증서를 사용 하 여 서명 해야 합니다.
6.2 앱에서 설치한 모든 커널 모드 드라이버에는 Windows 하드웨어 인증 프로그램을 통해 가져온 Microsoft 서명이 있어야 합니다. 모든 파일 시스템 필터 드라이버는 Microsoft에서 서명 해야 합니다.
6.3 예외 및 면제
면제는 드라이버를 제외 하 고 서명 되지 않은 타사 재배포 가능 패키지에 대해서만 고려 됩니다. 이 포기를 허용 하려면 서명 된 버전의 재배포 가능 패키지를 요청 하는 통신 증명이 필요 합니다.

7. 운영 체제 버전 검사에 따라 앱이 설치 또는 앱 실행을 차단 하지 않음

기술적 제한이 없는 경우 고객이 응용 프로그램을 설치 하거나 실행할 때 인위적으로 차단 되지 않는 것이 중요 합니다. 일반적으로 Windows Vista 이상 버전의 Windows 용으로 작성 된 앱은 운영 체제 버전을 확인 하지 않아도 됩니다.

7.1 앱이 동일한 버전 검사를 수행 하지 않아야 함
특정 기능이 필요한 경우 기능을 사용할 수 있는지 여부를 확인 합니다. Windows xp가 필요한 경우 xp 이상 Windows (>= 5.1)를 확인 합니다. 이러한 방식으로 검색 코드는 Windows의 이후 버전에서 계속 작동 합니다. 드라이버 설치 관리자 및 제거 모듈은 운영 체제 버전을 확인 하지 않아야 합니다.

7.2 Exceptions and Waivers will be considered for apps meeting the criteria below:
  • Windows XP, Windows Vista 및 Windows 7에서 실행 되는 하나의 패키지로 제공 되는 앱으로, 운영 체제 버전을 확인 하 여 지정 된 운영 체제에 설치할 구성 요소를 결정 해야 합니다.
  • 승인 된 API 호출만 사용 하 여 최소 버전의 운영 체제를 확인 하 고 응용 프로그램 매니페스트에 최소 버전 요구 사항을 올바르게 나열 하는 앱입니다.
  • 승인 된 API 호출만 사용 하 여 운영 체제 버전을 확인 하는 보안 앱 (바이러스 백신, 방화벽 등), 시스템 유틸리티 (예: 조각 모음, 백업 및 진단 도구)

8. 앱이 안전 모드에서 서비스 또는 드라이버를 로드 하지 않습니다.

금고 모드에서는 사용자가 Windows를 진단 하 고 문제를 해결할 수 있습니다. 드라이버와 서비스는 저장 장치 드라이버와 같은 기본 시스템 작업 또는 바이러스 백신 스캐너와 같은 진단 및 복구 목적에 필요한 경우가 아니면 안전 모드에서 로드 되도록 설정 해서는 안 됩니다. 기본적으로 Windows 안전 모드에 있으면 Windows와 함께 미리 설치 된 드라이버 및 서비스만 시작 됩니다.

  • 8.1 예외 및 면제
    안전 모드에서 시작 해야 하는 드라이버 및 서비스에는 포기가 필요 합니다. 면제 요청은 SafeBoot 레지스트리 키에 적용 가능한 각 드라이버 또는 서비스를 포함 해야 하며, 응용 프로그램 또는 서비스가 안전 모드에서 실행 되어야 하는 기술적인 이유를 설명 해야 합니다. 앱 설치 관리자는 이러한 레지스트리 키를 사용 하 여 이러한 모든 드라이버와 서비스를 등록 해야 합니다.
    - HKLM/System/CurrentControlSet/Control/SafeBoot/Minimal - HKLM/System/CurrentControlSet/Control/SafeBoot/Network

참고: 이러한 드라이버와 서비스를 테스트 하 여 오류 없이 안전 모드로 작동 하는지 확인 해야 합니다.

9. 앱은 사용자 계정 컨트롤 지침을 따라야 합니다.

일부 Windows 앱은 관리자 계정의 보안 컨텍스트에서 실행 되며 앱은 종종 과도 한 사용자 권한 및 Windows 권한을 요청 합니다. 사용자는 리소스에 대 한 액세스를 제어 하 여 사용자의 시스템을 제어 하 고 원치 않는 변경 으로부터 보호할 수 있습니다. 원치 않는 변경은 컴퓨터를 제어 하는 루트킷, 권한이 제한 된 사용자가 수행한 작업의 결과일 수 있습니다. 리소스에 대 한 액세스를 제어 하는 가장 중요 한 규칙은 사용자가 필요한 작업을 수행 하는 데 필요한 최소 수준의 액세스 표준 사용자 컨텍스트를 제공 하는 것입니다. 다음 UAC (사용자 계정 컨트롤) 지침에 따라 응용 프로그램에 필요한 사용 권한을 앱에 제공할 수 있습니다 .이 경우 시스템은 계속 해 서 보안 위험에 노출 됩니다. 대부분의 앱은 런타임에 관리자 권한이 필요 하지 않으며 표준 사용자로만 실행 하면 됩니다.

9.1 응용 프로그램에 실행 수준을 정의 하는 매니페스트가 있어야 하 고 운영 체제에 앱이 실행 되는 데 필요한 권한을 알려 줍니다.
응용 프로그램 매니페스트 표시는 Dll이 아닌 Exe에만 적용 됩니다. 이는 UAC에서 프로세스를 만드는 동안 Dll을 검사 하지 않기 때문입니다. UAC 규칙도 Windows Services에 적용 되지 않습니다. 매니페스트는 포함 되거나 외부에 있을 수 있습니다.
매니페스트를 만들려면 <앱 이름 # C1.exe 이름으로 파일을 만들고 _ EXE와 동일한 디렉터리에 저장 합니다. 앱에 내부 매니페스트가 있으면 외부 매니페스트는 무시 됩니다. 예를 들면 다음과 같습니다.
<Requestedexecutionlevel 태그가 없습니다 level = "" asInvoker | highestAvailable | requireAdministrator "" uiAccess = "" true | false ""/>

9.2 Your app s main process must be run as a standard user (asInvoker).
관리 기능은 관리자 권한으로 실행 되는 별도의 프로세스로 이동 해야 합니다. 시작 메뉴의 프로그램 그룹을 통해 액세스할 수 있고 권한 상승이 필요한 사용자 연결 앱은 Authenticode로 서명 되어야 합니다.
9.3 Exceptions and Waivers
상승 된 권한 (requireAdministrator 또는 highestAvailable)을 사용 하 여 기본 프로세스를 실행 하는 앱에는 면제가 필요 합니다. 주 프로세스는 앱에 대 한 사용자 진입점으로 식별 됩니다. 면제는 다음과 같은 시나리오에서 고려 됩니다.
  • 실행 수준이 highestAvailable 및/또는 requireAdministrator로 설정 된 관리 또는 시스템 도구
  • 내게 필요한 옵션 또는 UI 자동화 프레임 워크 앱만 uiAccess 플래그를 true로 설정 하 여 사용자 인터페이스 권한 격리 (UIPI)를 무시 합니다. 앱 사용률을 제대로 시작 하려면이 플래그를 Authenticode로 서명 해야 하며 파일 시스템의 보호 된 위치 (프로그램 파일)에 있어야 합니다.

10. 앱은 기본적으로 올바른 폴더에 설치 해야 합니다.

사용자가 선택한 위치에 앱을 설치 하는 옵션을 유지 하면서 파일의 기본 설치 위치에 대해 일관 되 고 안전한 환경을 제공 해야 합니다. 여러 사용자가 서로의 데이터와 설정을 손상 시키거나 덮어쓰지 않고 동일한 컴퓨터를 사용할 수 있도록 올바른 위치에 앱 데이터를 저장 하는 것도 필요 합니다. Windows은 파일 시스템에서 프로그램 및 소프트웨어 구성 요소, 공유 앱 데이터, 사용자 전용 앱 데이터를 저장 하는 특정 위치를 제공 합니다.

10.1 응용 프로그램은 기본적으로 Program Files 폴더에 설치 해야 합니다.
% ProgramFiles%의 기본 32 비트 및 64 비트 앱의 경우 x 64에서 실행 되는 32 비트 앱의 경우% ProgramFiles (x86)%입니다. 이 폴더에 대해 구성 된 보안 권한 때문에이 위치에 사용자 데이터 또는 앱 데이터를 저장 해서는 안 됩니다.

10.2 Your app must avoid starting automatically on startup
예를 들어 앱은 다음을 설정 하지 않아야 합니다.
  • Software \ Microsoft \ Windows \ CurrentVersion에서 레지스트리 실행 키 HKLM 및 또는 HKCU
  • Software \ Wow6432Node \ Microsoft \ windows \ CurrentVersion에서 레지스트리 실행 키 HKLM, 및 또는 HKCU
  • 시작 메뉴 AllPrograms > 시작
10.3 Your app data, which must be shared among users on the computer, should be stored within ProgramData 10.4 Your app s data that is exclusive to a specific user and that is not to be shared with other users of the computer, must be stored in Users\\<username>\\AppData 10.5 Your app must never write directly to the "Windows" directory and or subdirectories
글꼴 또는 드라이버와 같은 파일을 설치 하는 데 올바른 방법을 사용 합니다.
10.6 Your app must write user data at first run and not during the installation in per-machine installations
앱이 설치 되 면 데이터를 저장할 올바른 사용자 위치가 없습니다. 설치 후에 앱이 컴퓨터 수준에서 기본 연결 동작을 수정 하려고 시도 하면 실패 합니다. 대신, 기본값은 사용자 단위 수준에서 요청 해야 하므로 여러 사용자가 서로의 기본값을 덮어쓰지 않습니다.
10.7 Exceptions and Waivers
GAC (전역 어셈블리 캐시)를 작성 하는 앱의 경우 .NET 앱에서 어셈블리 종속성을 비공개로 유지 하 고 어셈블리 공유가 명시적으로 필요 하지 않는 한 응용 프로그램 디렉터리에 저장 하는 앱에 대 한 포기를 수행 해야 합니다.

11. 앱은 다중 사용자 세션을 지원 해야 함

Windows 사용자는 충돌 또는 중단 없이 동시 세션을 실행할 수 있어야 합니다.

11.1 응용 프로그램은 로컬 또는 원격으로 여러 세션에서 실행 되는 경우 앱의 정상적인 기능에 부정적인 영향을 주지 않도록 해야 합니다.
11.2 앱 설정 및 데이터 파일은 사용자 간에 유지 되지 않아야 함
11.3 사용자의 개인 정보 및 기본 설정은 사용자 세션에 격리 되어야 합니다.
11.4 앱의 인스턴스는 서로 격리 되어야 합니다.
즉, 한 인스턴스의 사용자 데이터가 앱의 다른 인스턴스에 표시 되지 않습니다. 비활성 사용자 세션의 소리는 활성 사용자 세션에서 듣지 않아야 합니다. 여러 응용 프로그램 인스턴스가 공유 리소스를 사용 하는 경우에는 앱에서 충돌이 발생 하지 않는지 확인 해야 합니다.

11.5 Apps that are installed for multiple users must store data in the correct folder(s) and registry locations
UAC 요구 사항을 참조 하세요.
11.6 User apps must be able to run in multiple user sessions (Fast User Switching) for both local and remote access 11.7 Your app must check other terminal service (TS) sessions for existing instances of the app
**Note:** If an app does not support multiple user sessions or remote access, it must clearly state this when launched from this kind of session.

12. 앱은 x64 버전의 Windows을 지원 해야 합니다.

64 비트 하드웨어가 보다 일반적으로 사용 되는 경우 사용자는 앱 개발자가 응용 프로그램을 64 비트로 마이그레이션하여 64 비트 아키텍처의 장점을 활용 하거나, Windows의 64 비트 버전에서 앱이 정상적으로 실행 32 되도록 할 것입니다.

12.1 응용 프로그램은 기본적으로 64 비트를 지원 하거나 32, 비트 시스템 64에서 Windows 기반 앱을 원활 하 게 실행 하 여 64 비트 버전과의 호환성을 유지 해야 Windows
12.2 응용 프로그램 및 해당 설치 관리자가 16 비트 코드를 포함 하지 않거나 16 비트 구성 요소를 사용 하지 않아야 함
12.3 앱 설치 프로그램에서 64 비트 아키텍처용 적절 한 드라이버 및 구성 요소를 검색 하 고 설치 해야 합니다.
12.4 Windows의 모든 셸 플러그 인은 64 비트 버전의에서 실행 되어야 합니다.
12.5 WoW64 에뮬레이터에서 실행 되는 앱은 Wow64 가상화 메커니즘을 방해할 하거나 무시 해서는 안 됩니다.
앱이 WoW64 에뮬레이터에서 실행 되는지 여부를 검색 해야 하는 특정 시나리오가 있는 경우 IsWow64Process를 호출 하 여이 작업을 수행 해야 합니다.

결론

이러한 요구 사항이 발전 함에 따라 아래의 수정 기록에 변경 내용이 기록 됩니다. 안정적인 요구 사항은 최상의 작업을 수행 하는 데 중요 하므로 변경 내용이 유지 되 고 계속 해 서 앱을 보호 하 고 향상 시킬 수 있도록 해야 합니다.

뛰어난 고객 경험을 제공 하기 위해 최선을 다 해 주셔서 감사 합니다.

수정 기록

Date 버전 수정 버전 설명 문서에 연결
12 월 20 일, 2011 1.0 미리 보기용 문서의 초기 초안입니다.
1 월 26 일 2012 1.1 섹션 2로 업데이트 # 합니다. 1.1

데스크톱 앱 인증에 대 한 자세한 정보

요구 사항 Description 자세한 내용
호환성 및 복원 력 작동 중단 & 중단은 사용자에 게 심각한 영향을 주는 것으로, 불만을 일으킬 수 있습니다. 앱은 탄력적이 고 안정적 이어야 하며, 이러한 오류를 제거 하면 소프트웨어가 더 예측 가능 하 고, 유지 관리 가능 하며, 성능과 신뢰성을 보장 하는 데 도움이 됩니다. Windows Vista, Windows 7 및 Windows 8 운영 체제
응용 프로그램 검증 도구
AppInit Dll
Windows 보안 모범 사례 준수 Windows 보안 모범 사례를 사용 하면 Windows 공격에 노출 되지 않도록 방지 하는 데 도움이 됩니다. 공격 표면은 악의적인 공격자가 대상 소프트웨어의 취약성을 활용 하 여 운영 체제를 악용 하는 데 사용할 수 있는 진입점입니다. 가장 최악의 보안 취약점 중 하나는 권한 상승입니다. Attack Surface Analyzer
Access Control 목록
Windows 보안 기능 지원 Windows 운영 체제는 시스템 보안 및 개인 정보를 지원하기 위해 많은 조치를 구현했습니다. 애플리케이션은 OS의 무결성을 유지하려면 이러한 조치를 지원해야 합니다. 잘못 컴파일된 애플리케이션으로 인해 버퍼 오버런이 발생할 수 있으며 이로 인해 서비스 거부 또는 악성 코드 실행이 발생할 수 있습니다. BinScope 도구 참조
시스템 다시 시작 관리자 메시지 준수 사용자가 종료를 시작할 때 대부분의 경우 종료가 성공하는 것을 확인하려고 합니다. 사무실 퇴사하고 컴퓨터를 끄려고 할 수도 있습니다. 앱은 종료를 차단하지 않음으로써 이러한 희망에 따라야 합니다. 대부분의 경우 종료는 중요하지 않을 수 있지만 중요한 종료가 발생할 수 있는 앱을 준비해야 합니다. Windows Vista의 애플리케이션 종료 변경 내용
관리자 개발 다시 시작
취소 가능한 정리 설치 되돌릴 수 있는 정리된 설치를 통해 사용자는 자신의 시스템에서 앱을 성공적으로 관리(배포 및 제거)할 수 있습니다. 방법: ClickOnce 애플리케이션의 필수 구성 요소 설치
64비트 시스템에 애플리케이션 설치
파일 및 드라이버 디지털 서명 Authenticode 디지털 서명을 사용하면 사용자가 소프트웨어가 정품임을 확인할 수 있습니다. 또한 파일이 변조되었는지 여부(예: 바이러스에 감염된 경우)를 검색할 수 있습니다. 커널 모드 코드 서명 적용은 CI(코드 무결성)라고 하는 Windows 기능으로, 파일 이미지가 메모리에 로드될 때마다 파일의 무결성을 확인하여 운영 체제의 보안을 향상시킵니다. CI는 악성 코드가 시스템 이진 파일을 수정했는지 여부를 검색합니다. 커널 모듈의 서명이 올바르게 확인되지 않으면 진단 및 시스템 감사 로그 이벤트도 생성됩니다. Windows 커널 모듈의 디지털 서명
운영 체제 버전 검사에 따라 설치 또는 앱 시작 차단 안 하세요. 기술적 제한이 없는 경우 고객이 앱을 설치하거나 실행하는 것을 인위적으로 차단하지 않는 것이 중요합니다. 일반적으로 Windows Vista 이상 릴리스용으로 작성된 앱은 운영 체제 버전을 확인할 이유가 없습니다. 운영 체제 버전
금고 모드에서 서비스 및 드라이버를 로드하지 마십시오. 금고 모드를 사용하면 사용자가 Windows 진단하고 문제를 해결할 수 있습니다. 시스템의 기본 작업(예: 스토리지 디바이스 드라이버) 또는 진단 및 복구 목적(예: 바이러스 백신 스캐너)에 필요한 경우가 아니면 드라이버와 서비스는 안전 모드에서 로드하도록 설정되지 않아야 합니다. 기본적으로 안전 모드는 Windows 함께 미리 설치되지 않은 대부분의 드라이버 및 서비스를 시작하지 않습니다. 시스템에서 기본 작업 또는 진단 및 복구용으로 요구하지 않는 한 사용하지 않도록 설정해야 합니다. 운영 체제가 금고 모드에서 실행 중인지 확인
디바이스 드라이버에서 시스템이 금고 모드로 실행되고 있는지 확인하는 방법
UAC(사용자 계정 컨트롤) 지침을 따릅니다. 일부 Windows 앱은 관리자 계정의 보안 컨텍스트에서 실행되며, 많은 앱에는 과도한 사용자 권한과 Windows 권한이 필요합니다. 리소스에 대한 액세스를 제어하면 사용자가 원치 않는 변경으로부터 시스템을 제어할 수 있습니다(원치 않는 변경은 컴퓨터를 은밀하게 인수하는 루트 키트 또는 제한된 권한이 있는 사용자의 작업(예: 회사 컴퓨터에 금지된 소프트웨어를 설치하는 직원)과 같은 악의적인 변경일 수 있습니다.) 리소스에 대한 액세스를 제어하는 가장 중요한 규칙은 사용자가 필요한 작업을 수행하는 데 필요한 최소한의 액세스 표준 사용자 컨텍스트를 제공하는 것입니다. 다음 UAC 지침은 시스템이 보안 위험에 지속적으로 노출되지 않고 필요한 경우 앱에 필요한 권한을 제공합니다. 사용자 계정 컨트롤
UAC: 애플리케이션 업데이트 지침
기본적으로 올바른 폴더에 설치 사용자는 선택한 위치에 앱을 설치하는 옵션을 유지하면서 파일의 기본 설치 위치와 일관되고 안전한 환경을 갖출 수 있어야 합니다. 또한 여러 사람이 서로의 데이터와 설정을 손상시키거나 덮어쓰지 않고 동일한 컴퓨터를 사용할 수 있도록 앱 데이터를 올바른 위치에 저장해야 합니다. 설치/제거 요구 사항 요약
다중 사용자 세션 지원 Windows 사용자는 충돌 또는 중단 없이 동시 세션을 실행할 수 있어야 합니다. 원격 데스크톱 서비스 프로그래밍 지침
x64 버전의 Windows 지원 64비트 하드웨어가 더 많이 사용됨에 따라 사용자는 앱 개발자가 앱을 64비트로 마이그레이션하여 64비트 아키텍처의 이점을 활용하거나 32비트 버전의 앱이 64비트 버전의 Windows 잘 실행될 것으로 기대합니다. 애플리케이션 호환성: Windows Vista 64비트

참고 항목