SDL을 통해 Office 2010의 보안 강화한 방법

안녕하세요. 저는 Microsoft Security Engineering Center의 보안 프로그램 관리자인 Didier입니다. 이번에는 Office 팀을 비롯한 여러 팀에서 SDL(Security Development Lifecycle)의 최소 요구 사항을 충족하도록 지원하는 부분에 초점을 맞춰 보겠습니다. Office 2010의 경우 저는 Office TWC 팀원들과 함께 작업했습니다. Microsoft SDL은 소프트웨어 개발에 중점을 둔 보안 보증 프로세스입니다. SDL은 2004년부터 실시된 회사 차원의 이니셔티브이자 필수 정책으로, Microsoft의 소프트웨어 및 문화에 보안 및 개인 정보 보호 기능을 통합하는 데 결정적인 역할을 해 왔습니다. SDL은 포괄적이고 실용적인 접근 방식을 결합함으로써 소프트웨어 취약점의 수와 정도를 줄이는 것을 목표로 하고 있습니다. SDL은 개발 프로세스의 모든 단계에 보안 및 개인 정보 보호 기능을 도입합니다.

여기서는 고객의 보안을 유지하는 데 도움이 될 만한 Office 2010 개발 과정에서 얻은 몇 가지 성과를 중점적으로 소개하고자 합니다.

SDL에는 교육, 요구 사항, 디자인, 구현, 검증, 릴리스 및 대응(릴리스 후) 같은 개발 프로세스의 각 단계에 적용되는 50가지가 넘는 요구 사항이 있습니다. SDL의 요구 사항 및 권장 사항은 고정된 것이 아니며 등장하는 위협에 대해서는 물론 지원 인프라, 도구, 프로세스의 개선 사항에 따라서도 정기적으로 변경됩니다. 다음 그림에는 SDL 프로세스의 단계가 나와 있습니다.

clip_image002[4]

SDL 프로세스를 지원하는 데 사용되는 일부 도구 및 기법은 외부에 공개되어 있습니다. Microsoft SDL Tools Repository(http://www.microsoft.com/security/sdl/getstarted/tools.aspx(영문일 수 있음))에서는 이러한 도구를 비롯한 다른 여러 도구를 다운로드할 수 있습니다.

Office 2010 팀은 SDL 프로세스를 통해 의무화된 최종 보안 검토(Final Security Review)를 통과했을 뿐 아니라 개선된 정수 오버플로 라이브러리 통합, 향상된 GS 플래그를 활용한 컴파일 및 SDL 요구 사항을 훨씬 뛰어넘는 수많은 퍼징 반복 실행과 같이 추가로 발생하는 SDL 요구 사항까지 충족했습니다. 이는 Office 2010에서 준수하는 추가 SDL 요구 사항 중 가장 대표적인 것들입니다.

교육 단계

Office TWC 팀은 정수 오버플로 개선, 파일 퍼징 및 웹 보안(주로 XSS(Cross-Site Scripting) 및 XSRF(Cross-Site Request Forgery))에 관한 사용자 지정 방식의 교육을 개발했습니다. 이러한 교육 과정은 전 Office 사업부에서 의무적으로 이수해야 합니다. 또한 이번에 인수한 FAST 기술을 SDL에서 요구하는 다양한 도구 및 활동을 통해 학습하기 위한 보다 구체적인 교육 과정도 개발 및 보급되었습니다.

요구 사항 단계

Office TWC 및 MSEC는 보안 버그 바(Bug Bar) 및 보안 버그 분류 프로세스를 재정의하여 신종 공격을 감당할 수 있도록 하는 조치를 취했습니다. 이러한 프로세스의 하나로 Office 및 TWC 사업부의 전문 기술을 활용하여 보안상의 버그를 검토했습니다.

디자인 단계

디자인 단계에서는 여러 작업 항목을 식별하여 Office 문서의 신뢰성을 강화했습니다. 이러한 작업 항목을 통해 신뢰할 수 있는 문서(영문일 수 있음), 사용자가 열거나 네트워크에 저장할 파일을 선택할 수 있도록 하는 향상된 파일 차단 설정, Office 파일 유효성 검사 및 제한된 보기를 추가하여 보안 센터를 향상시켰습니다. 이러한 개선 노력으로 고객은 공격에 대한 우려를 덜고 Office 문서를 신뢰할 수 있게 됩니다. 또 다른 목표는 보안을 강화하는 동시에 프롬프트를 과도하게 남발하여 이러한 기능의 보안 가치를 훼손하는 불필요한 프롬프트를 줄이는 것입니다. 이러한 기능에 대한 자세한 내용은 http://blogs.technet.com/office2010/archive/2009/07/21/office-2010-application-security.aspx(영문일 수 있음)를 참조하십시오.

Office TWC는 500가지 이상의 위협 모델을 만들고 검토한 끝에 사업부 내에 대규모 위협 모델을 구현했습니다. 이 팀은 이러한 위협 모델 활동을 통해 1,000개 이상의 잠재적인 보안 문제를 발견하고 해결했습니다.

또 다른 개선 사항은 Office 2010의 암호화 지원입니다. 이와 관련하여 향상된 부분에는 Office 클라이언트 응용 프로그램이 운영 체제(Windows Vista 이상만 해당)에서 사용되는 암호화 알고리즘을 활용할 수 있도록 하여 응용 프로그램의 암호화를 강화하는 XAdES 디지털 서명 지원 및 암호 암호화를 위한 도메인 암호 정책(영문일 수 있음)을 사용하도록 설정하는 새로운 엔터프라이즈용 기능이 있습니다.

구현 단계

Office TWC에서는 OACR(Office Automated Code Review) 결과 보고 기능을 개선하기 위한 자동화된 솔루션을 구현하여 MSEC 및 Office TWC가 검증 단계 이전이나 침투 테스트를 수행하기 전에 코드 품질에 문제가 있는 Office 제품 팀을 식별할 수 있도록 했습니다. 이를 통해 여러 팀들은 보다 가치 있는 부분에 역량을 집중할 수 있게 되었습니다.

이전 버전의 Office에서 보고된 취약점에 대해 수행한 분석을 토대로 향상된 버전의 safeInt(영문일 수 있음)를 개발하여 Office 2010에서 사용했습니다.

Office 2010 개발 주기 동안 개선된 버전의 GS(Visual Studio 2010에서 제공되는 향상된 GS)를 도입하여 Office 2010의 세 가지 주요 구성 요소에서 시험 운영했지만 주목할 만한 퇴행 문제를 발견할 수 없었으므로 이 기능은 차기 버전의 Office에 통합할 예정입니다. Office 2010은 최초로 DEP(데이터 실행 방지) 기능을 구현했으며 Windows 7에 설치된 Office 2010에서는 SEHOP를 활용하여 구조적 예외 처리기가 남용되지 않도록 합니다(http://blogs.technet.com/srd/archive/2009/02/02/preventing-the-exploitation-of-seh-overwrites-with-sehop.aspx(영문일 수 있음)).

이 외에도 SharePoint 2010에서 다중 고객 지원 호스팅 및 사이트 간 스크립트 공격 완화 기능을 개선하기 위해 몇 가지 부분이 향상되었습니다. 가장 중요한 보안 개선 사항은 코드 액세스 보안과 사용자 지정 방식으로 개발된 샌드박스를 함께 사용하여 SharePoint 솔루션을 샌드박스로 처리한 것입니다. 사이트 간 스크립트에 대한 개선 사항은 브라우저 헤더를 사용하여 안전하지 않을 수 있는 콘텐츠의 다운로드를 강제로 실행하는 것으로, 이를 통해 스크립트를 작성하는 데 필요한 권한을 강화했습니다.

검증 단계

개발 주기 초반부터 사용 중인 퍼저(Fuzzer)를 지속적으로 다듬으면서 분산 퍼징을 실행했습니다. 이러한 지속적인 노력은 Office의 파서 보안을 개선하기 위해 Office 팀에서 중점적으로 시행한 부분 중 하나입니다. 분산 퍼징 프레임워크의 사용은 현재 회사 전체로 확장된 상태이며 다음 SDL 버전의 핵심 요소 중 하나가 될 것입니다. Office 2010에 대한 퍼징 반복은 400개 이상의 파일 형식에 대해 8억 번 이상 반복을 실시하여 1,800개 이상의 버그를 해결했습니다. 파일 형식 퍼징 외에도 분산 퍼징 프레임워크를 사용하여 Office 2010과 함께 제공되는 모든 ActiveX 컨트롤을 퍼징했습니다.

Office 2010 개발 기간 동안 SDL에 필요한 대부분의 검증 도구(예: BinScope)를 실행하는 자동화된 인프라가 빌드 프로세스의 일부로 구축되었습니다. 이를 통해 Office 팀은 검증 도구를 보다 자주 사용하여 문제를 제때 발견하고 신속하게 해결할 수 있게 되었습니다.

또한 Office 2010 개발 주기 동안에는 내/외부 침투 테스트를 모두 수행했습니다. 이 테스트는 디자인 단계에서 식별된 고위험 기능을 대상으로 했으며 클라이언트 및 서버 SKU의 여러 제품을 다루었습니다.

이러한 모든 노력을 바탕으로 Office 2010이 보다 견고한 제품이 되길 바라며 고객이 신뢰할 수 없는 원본에서 보낸 문서를 안심하고 수신할 수 있게 되길 희망합니다.

이 게시물 외에도 Microsoft에서는 두 달 전 SDL을 통해 2007 Microsoft Office System의 성능을 향상시키는 방법에 관한 백서를 게시했습니다. 이 백서는 http://go.microsoft.com/?linkid=9714223(영문일 수 있음)을 참조하십시오.

끝까지 읽어 주셔서 감사합니다.

Didier Vandenbroeck

수석 보안 프로그램 관리자

Microsoft Security Engineering Center

이 문서는 번역된 블로그 게시물입니다. 원본 문서는 SDL을 통해 Office 2010의 보안 강화한 방법을 참조하십시오.