다음을 통해 공유


WPF 보안 전략 - 보안 엔지니어링

신뢰할 수 있는 컴퓨팅은 보안 코드 생성을 보장하기 위한 Microsoft 이니셔티브입니다. 신뢰할 수 있는 컴퓨팅 이니셔티브의 핵심 요소는 Microsoft SDL(Security Development Lifecycle)입니다. SDL은 보안 코드 전달이 용이하도록 표준 엔지니어링 프로세스와 함께 사용되는 엔지니어링 방법입니다. SDL은 형식화, 측정 가능성 및 다음을 비롯한 추가 구조와 모범 사례를 결합하는 10단계로 이루어져 있습니다.

  • 보안 디자인 분석

  • 도구 기반 품질 검사

  • 침투 테스트

  • 최종 보안 검토

  • 릴리스 후 제품 보안 관리

WPF 고유 정보

WPF 엔지니어링 팀은 SDL을 적용하고 확장하는데, SDL의 조합에는 다음과 같은 주요 측면이 포함됩니다.

위협 모델링

보안 분석 및 편집 도구

테스트 기술

중요한 코드 관리

위협 모델링

위협 모델링은 SDL의 핵심 구성 요소이며, 잠재적인 보안 취약성을 확인하기 위해 시스템을 프로파일링하는 데 사용됩니다. 취약상이 식별되면 위협 모델링은 적절한 완화가 적용되었는지도 확인합니다.

높은 수준에서 위협 모델링은 식품점을 예로 들어 다음과 같은 주요 단계를 포함합니다.

  1. 자산 식별 식품점의 자산에는 직원, 금고, 현금 등록기 및 재고가 포함될 수 있습니다.

  2. 진입점 열거 식품점의 진입점에는 앞문과 뒷문, 창, 하역장 및 에어컨 장치가 포함될 수 있습니다.

  3. 진입점을 통한 자산 공격 조사 한 가지 가능한 공격은 에어컨 진입점을 통해 식품점의 금고 자산을 대상으로 할 수 있습니다. 에어컨 장치의 나사를 풀어 금고를 상점 외부로 끌고 나갈 수 있습니다.

위협 모델링은 WPF 전체에 적용되며 다음을 포함합니다.

  • XAML 파서가 파일을 읽고, 텍스트를 해당 개체 모델 클래스에 매핑하고, 실제 코드를 만드는 방법

  • 창 핸들(hWnd)이 만들어지고, 메시지를 보내고, 창의 내용을 렌더링하는 데 사용되는 방법

  • 데이터 바인딩이 리소스를 가져오고 시스템과 상호 작용하는 방법

이러한 위협 모델은 개발 프로세스 중 보안 디자인 요구 사항과 위협 완화를 식별하는 데 중요합니다.

소스 분석 및 편집 도구

SDL의 수동 보안 코드 검토 요소 외에도 WPF 팀은 소스 분석 및 관련된 편집 작업에 여러 가지 도구를 사용하여 보안 취약성을 줄입니다. 다음을 포함하여 다양한 소스 도구가 사용됩니다.

  • FXCop: 상속 규칙에서 코드 액세스 보안 사용 및 비관리 코드와 안전하게 상호 운용하는 방법에 이르기까지 관리 코드에서 일반적인 보안 문제를 찾습니다. FXCop을 참조하세요.

  • Prefix/Prefast: 비관리 코드에서 버퍼 오버런, 형식 문자열 문제 및 오류 검사와 같은 보안 취약성 및 일반적인 보안 문제를 찾습니다.

  • 금지된 API: 소스 코드를 검색하여 strcpy와 같이 보안 문제가 발생하는 것으로 잘 알려진 함수가 실수로 사용되었는지 식별합니다. 이러한 함수는 식별된 후 더 안전한 대체 항목으로 바뀝니다.

테스트 기술

WPF는 다음을 포함하는 다양한 보안 테스트 기술을 사용합니다.

  • Whitebox 테스트: 테스터가 소스 코드를 본 다음, 익스플로이트 테스트를 빌드합니다.

  • Blackbox 테스트: 테스터가 API 및 기능을 검사하여 보안 익스플로이트를 찾은 다음 제품을 공격하려고 합니다.

  • 다른 제품의 보안 문제 재발: 해당하는 경우 관련 제품의 보안 문제를 테스트합니다. 예를 들어, Internet Explorer를 위한 약 60개의 보안 문제의 적절한 변형이 WPF에 적용되기 위해 식별 및 시도되었습니다.

  • 파일 퍼지 테스트를 통한 도구 기반 침투 테스트: 파일 퍼지 테스트는 다양한 입력을 통해 파일 판독기의 입력 범위를 악용합니다. 이 기술이 사용되는 WPF의 한 가지 예는 이미지 디코딩 코드의 오류 검사입니다.

중요한 코드 관리

XBAP(XAML 브라우저 애플리케이션)의 경우 WPF는 권한을 높이는 보안 중요 코드를 표시하고 추적하기 위해 .NET Framework 지원을 사용하여 보안 샌드박스를 빌드합니다(WPF 보안 전략 - 플랫폼 보안보안-중요 방법론 참조). 보안에 중요한 코드의 높은 보안 품질 요구 사항을 감안하여 이러한 코드는 추가 수준의 소스 관리 제어 및 보안 감사를 받습니다. WPF의 약 5%-10%는 전담 검토팀이 검토하는 보안에 중요한 코드로 구성됩니다. 소스 코드 및 체크 인 프로세스는 보안에 중요한 코드를 추적하고 중요한 엔터티(예: 중요한 코드가 포함된 메서드)를 사인오프 상태로 매핑하여 관리합니다. 사인오프 상태에는 하나 이상의 검토자 이름이 포함됩니다. WPF의 각 일별 빌드는 중요한 코드를 이전 빌드의 코드와 비교하여 승인되지 않은 변경 내용을 확인합니다. 엔지니어가 검토팀의 승인 없이 중요한 코드를 수정하는 경우 식별되어 즉시 수정됩니다. 이 프로세스를 통해 WPF 샌드박스 코드에 특히 높은 수준의 감시를 적용하고 유지할 수 있습니다.

Warning

XBAP를 사용하려면 Internet Explorer, 이전 버전 Firefox와 같은 레거시 브라우저가 작동해야 합니다. 이러한 구형 브라우저는 일반적으로 Windows 10과 Windows 11에서 지원되지 않습니다. 최신 브라우저는 보안 위험으로 인해 XBAP 앱에 필요한 기술을 더 이상 지원하지 않습니다. XBAP를 사용하도록 설정하는 플러그 인은 더 이상 지원되지 않습니다. 자세한 내용은 WPF XBAP(브라우저 호스팅 애플리케이션)에 대한 질문과 대답을 참조하세요.

참고 항목