보안 개발 및 운영 개요

Microsoft는 보안 개발 사례를 어떻게 구현하나요?

Microsoft의 SDL(Security Development Lifecycle)은 보안 소프트웨어 개발 및 운영에 초점을 맞춘 보안 보증 프로세스입니다. SDL은 Microsoft의 개발자와 엔지니어에게 상세하고 측정 가능한 보안 요구 사항을 제공하여 제품 및 서비스의 취약성 수와 심각도를 줄입니다. 모든 Microsoft 소프트웨어 개발 팀은 SDL 요구 사항을 따라야 하며, 변화하는 위협 환경, 업계 모범 사례 및 규정 준수에 대한 규정 표준을 반영하도록 SDL을 지속적으로 업데이트합니다.

Microsoft의 SDL은 애플리케이션 보안을 어떻게 개선하나요?

Microsoft의 SDL 프로세스는 요구 사항, 디자인, 구현, 확인 및 릴리스의 다섯 가지 개발 단계로 생각할 수 있습니다. 첫 단계는 보안을 염두에 두고 소프트웨어 요구 사항을 정의하는 것입니다. 이 목표를 달성하기 위해 애플리케이션이 수행해야 하는 사항에 대한 보안 관련 질문을 합니다. 애플리케이션에서 중요한 데이터를 수집해야 할까요? 애플리케이션이 민감하거나 중요한 작업을 수행하게 될까요? 애플리케이션이 신뢰할 수 없는 원본의 입력을 수락해야 할까요?

관련 보안 요구 사항이 확인되면 이러한 요구 사항을 충족하는 보안 기능을 통합하도록 소프트웨어를 설계합니다. 개발자는 코드에 SDL과 설계 요구 사항을 구현하고, 이를 Microsoft가 수동 코드 검토, 자동화된 보안 도구 및 침투 테스트를 통해 확인합니다. 마지막으로 코드를 릴리스하기 전에 새로운 기능과 중대한 변경 내용이 최종 보안 및 개인 정보 검토를 거쳐 모든 요구 사항이 충족되도록 합니다.

Microsoft는 일반적인 취약성에 대한 소스 코드를 어떻게 테스트하나요?

개발자가 코드 개발 중 및 릴리스 후에 보안 요구 사항을 구현하도록 지원하기 위해 Microsoft는 보안 결함 및 취약성에 대해 소스 코드를 자동으로 검사하는 보안 개발 도구 제품군을 제공합니다. Microsoft는 Microsoft 빌드 파이프라인 내에서 자동으로 실행되는 기본 제공 보안 검사와 함께 컴파일러 및 개발 환경과 같이 개발자가 사용할 승인된 도구 목록을 정의하고 게시합니다. Microsoft의 개발자는 최신 버전의 승인된 도구를 사용하여 새로운 보안 기능을 활용합니다.

릴리스 분기에 코드를 체크 인하려면 SDL에 별도의 검토자가 수동으로 코드를 검토해야 합니다. 코드 검토자는 코딩 오류를 확인하고 코드 변경 사항이 SDL 및 설계 요구 사항을 충족하는지 확인하고 기능 및 보안 테스트를 통과하고 안정적으로 수행합니다. 또한 관련 문서, 구성 및 종속성을 검토하여 코드 변경 사항이 적절하게 문서화되고 의도하지 않은 부작용이 발생하지 않도록 합니다. 검토자가 코드 검토 중에 문제를 발견하면 제출자에게 제안된 변경 사항 및 추가 테스트와 함께 코드를 다시 제출하도록 요청할 수 있습니다. 코드 검토자는 요구 사항을 충족하지 않는 코드에 대한 체크인을 완전히 차단하기로 결정할 수도 있습니다. 검토자가 코드를 만족스럽게 간주하면 검토자는 승인을 제공하며, 이 승인은 코드가 다음 배포 단계로 진행하기 전에 필요합니다.

Microsoft는 보안 개발 도구 및 수동 코드 검토 외에도 자동화된 보안 도구를 사용하여 SDL 요구 사항을 적용합니다. 이러한 도구의 대부분은 커밋 파이프라인에 기본 제공되며 체크 인되고 새 빌드가 컴파일될 때 보안 결함에 대한 코드를 자동으로 분석합니다. 예를 들어 일반적인 보안 결함에 대한 정적 코드 분석 및 포함된 비밀에 대한 코드를 분석하는 자격 증명 스캐너가 있습니다. 새 빌드가 보안 검토를 통과하고 릴리스를 승인하려면 먼저 자동화된 보안 도구에서 발견한 문제를 해결해야 합니다.

Microsoft는 오픈 소스 소프트웨어를 어떻게 관리하나요?

Microsoft는 다음을 위해 설계된 도구와 워크플로를 사용하는 오픈 소스 보안을 관리하기 위한 고급 전략을 채택했습니다.

  • 당사 제품 및 서비스에서 사용되는 오픈 소스 구성 요소를 이해합니다.
  • 이러한 구성 요소가 사용되는 위치와 방법을 추적합니다.
  • 해당 구성 요소에 취약점이 있는지 확인합니다.
  • 해당 구성 요소에 영향을 주는 취약점이 발견되면 적절하게 대응합니다.

Microsoft 엔지니어링 팀은 제품 또는 서비스에 포함된 모든 오픈 소스 소프트웨어의 보안에 대한 책임을 유지합니다. 이 보안을 대규모로 달성하기 위해 Microsoft는 오픈 소스 검색, 법적 요구 사항 워크플로 및 취약한 구성 요소에 대한 경고를 자동화하는 CG(구성 요소 거버넌스)를 통해 엔지니어링 시스템에 필수적인 기능을 구축했습니다. 자동화된 CG 도구는 Microsoft의 빌드에서 오픈 소스 구성 요소 및 관련 보안 취약성 또는 법적 의무를 검사합니다. 검색된 구성 요소는 등록되고 비즈니스 및 보안 검토를 위해 해당 팀에 제출됩니다. 이러한 검토는 오픈 소스 구성 요소와 관련된 법적 의무 또는 보안 취약성을 평가하고 구성 요소 배포를 승인하기 전에 해결하도록 설계되었습니다.

Microsoft의 온라인 서비스 외부 규정 및 인증 준수에 대해 정기적으로 감사됩니다. 보안 개발 및 작업과 관련된 컨트롤의 유효성 검사는 다음 표를 참조하세요.

Azure 및 Dynamics 365

외부 감사 섹션 최신 보고서 날짜
ISO 27001/27002

적용 가능성 설명
인증서
A.12.1.2: 관리 컨트롤 변경
A.14.2: 개발 및 지원 프로세스의 보안
2023년 11월 6일
ISO 27017

적용 가능성 설명
인증서
A.12.1.2: 관리 컨트롤 변경
A.14.2: 개발 및 지원 프로세스의 보안
2023년 11월 6일
SOC 1
SOC 2
SOC 3
SDL-1: SDL(보안 개발 수명 주기) 방법론
SDL-2: 릴리스에 설명된 보안 제어 요구 사항
SDL-4: 테스트 및 프로덕션 환경 분리
SDL-6: 소스 코드 빌드에서 맬웨어 검사
SDL7: 반기 SDL 검토
2023년 11월 17일

Microsoft 365

외부 감사 섹션 최신 보고서 날짜
FedRAMP(Office 365) SA-3: 시스템 개발 수명 주기 2023년 7월 31일
ISO 27001/27002/27017

적용 가능성 설명
인증(27001/27002)
인증(27017)
A.12.1.2: 관리 컨트롤 변경
A.14.2: 개발 및 지원 프로세스의 보안
2024년 3월
SOC 1
SOC 2
CA-03: 위험 관리
CA-18: 변경 관리
CA-19: 모니터링 변경
CA-21: 테스트 변경
CA-38: 기준 구성
CA-46: 보안 검토
2024년 1월 23일

리소스