Replicated

MS-SDL 본문

소프트웨어 보안개발방법론

MS-SDL

라구넹 2025. 6. 12. 13:51

보안 개발 방법론 적용 사례

MS-SDL ( Microsoft - Secure Development Lifecycle )

- 소프트웨어 개발의 모든 단계에 보안 및 정보보호 사항을 통합한 프로세스

- 2000년대 초반에 설계, 보안 지침을 내재화하여 안전한 소프트웨어 개발 및 유지 보수 진행 목적

- 전체 7단계.. 5개의 핵심 단계, 2개의 지원 단계로 구분

- 새로운 기술과 진화하는 보안 위혐에 맞게 지속적으로 업그레이드

 

Training(지원) ->

Requirements -> Design -> Implementation -> Verification -> Release ->

Response(지원)

 

Training (교육)

- 모든 구성원은 자신의 직무와 관련된 특정 교육과 일반 보안 및 개인 정보 보호 인식 교육을 함께 진행

- 개발자 및 엔지니어는 보안 기본 사항 및 보안 개발의 최근 트렌드에 대한 교육 진행

- 모든 교육은 지속적으로 진행됨

 

Requirements (요구사항)

- 모든 제품, 서비스 및 기능은 명확하게 정의된 보안 및 개인 정보 요구 사항부터 명세화

- 개발팀은 기능 외에도 제품에서 처리할 데이터 형식, 알려진 위협, 모범 사례, 규정에 따라 요구 사항을 명세화

 

Design (설계)

- 보안, 개인 정보 보호 및 요구 사항 명세화 후 이를 기반으로 설계 시작

- 보안 설계 지침 준수 확인

- 설계 프로세스의 일부로 위협 모델링 진행

 

* Design 단계의 위협 모델링

Define: 범위 정의

- 자산 파악: 보호해야 할 항목 확인

- 어플리케이션 / 서비스 이해: 시스템의 목적, 기능, 경계를 정의

- 의존성 식별: 상호작용하는 서비스 또는 외부 구성 요소 확인

 

Diagram: 시각화

- DFD 등을 이용한 데이터 흐름 시각화

- 신뢰 경계 식별: 신뢰 수준이 변경되는 시점 시각화

 

Identify: 위협 식별 및 평가

- STRIDE 모델을 이용한 위협 식별

- 발생 가능성 및 영향도를 이용한 위험 평가

 

Mitigate: 위협 완화

- 설계 수정: 데이터 암호화, 입력 값 유효성, 로깅 구현

- 보안 제어: 인증, 접근제어 메커니즘 추가

 

Validate: 검증

- 리뷰 및 검증 작업을 통한 확인

 

Implementation (구현)

- 개발자가 이전 단계에서 나온 가이드를 준수하여 코드 구현

- 개발자에게 보안, 개인 정보 및 기능 요구사항을 효과적으로 구현할 수 있는 개발 도구 제공

 

Verification (검증)

- 코드 리뷰 수행을 통해 요구 사항 충족 및 코딩 오류를 확인

- 정적 코드 분석을 이용한 코드 결함 확인

- 모의 해킹, 침투 테스트 등을 이용해 보안 결함 확인

 

Release (배포)

- 실제 운영 환경에 배포되기 전 최종적인 보안 검증 수행

- 배포 이후 대응 계획 수립

 

Response (대응)

- 지속적인 보안 취약점 모니터링 수행

- 식별된 보안 위협에 대한 보안 업데이트 배포