MS‐SDL
- Microsoft ‐ Secure Development Lifecycle
- 마이크로소프트에서 개발한 소프트웨어 개발 보안 방법론
단계
교육 단계
- 소프트웨어 개발팀의 구성원들을 대상으로 매년 한 번씩 보안의 기초와 최신 보안 동향에 대해 교육
- 보안 교육은 안전설계, 위협모델링, 시큐어코딩, 보안테스팅, 프라이버시에 관한 내용 포함
계획·분석 단계
- 안전한 소프트웨어를 구축하기 위한 기본 보안요구사항과 프라이버시 요구사항 정의
- 필수 수행
- SDL 방법론 적용 여부 결정
- 보안책임자(Security Advisor) 선정
- 보안팀(Security Champion) 선정
- 버그 리포팅 도구 정의
- 보안 버그 경계(security bug bar) 정의
- 보안 위험평가
- 권장 수행
- 보안 계획서 작성
- 버그 추적 시스템 정의
설계 단계
- 구현에서 배포에 이르기까지 수행해야 하는 작업 계획 수립
- 필수 수행
- 보안 설계검토
- 방화벽 정책 준수
- 위협모델링
- 위협모델 품질 보증
- 위협모델 검토 및 승인
- 권장 수행
- 보안 설계서 작성, 보안 디폴트 인스톨 실행, 모든 샘플 소스코드의 보안검토 수행, 안전하지 않은 함수와 코딩 패턴 알림, 설계변화 요구에 관한 보안관련 사항 문서화, 위협모델을 통해 발견한 취약성 해결을 위한 작업목록 작성, 권장보안 활동을 수행한다.
구현 단계 : 보안 및 프라이버시 문제점을 발견하고 제거하기 위해 개발시 최선의 방책을 수립하고 따 르도록 한다. ‘최신 버전의 빌드 도구 사용, 금지된 API 사용 회피, Execute 허가를 통한 안전한 SQL 사용, 저장 프로시저에서 SQL 사용’과 같은 필수 보안활동과, ‘안전하게 소프트웨어를 사용하기 위해 필요한 사용자 정보 식별, 사용자 중심의 보안문서 계획, 보안 형상관리에 관한 정보 생성, 자동화 된 금지 API 변환 실행, 프로젝트 팀 전체와 모든 모범사례와 정책에 대한 정의, 문서화, 토론 등’과 같은 권장 보안활동을 수행한다. 시험·검증 단계 : 보안 및 프라이버시 테스팅과 보안 푸쉬(security push), 문서 리뷰를 통해, 코드가 이전 단계에서 설정한 보안과 프라이버시을 지키는지 확인한다. 보안 푸쉬는 팀 전체에 걸쳐 위협모 델 갱신, 코드 리뷰, 테스팅에 초점을 맞춘 작업이다. 커널‐모드 드라이버를 위한 테스팅 완료, COM 객체 테스팅 수행, 인증된 사이트 크로스 도메인 스크립팅을 위한 테스팅, 애플리케이션 검증 테스트 수행, 파일 fuzzing 수행, 위협모델 검토 및 수정 등 필수 보안 활동과 보안 테스팅 계획 완료, 침투테 스트 수행, 시큐어 코드 검토, 보안 푸쉬를 시작하기전 모든 코드에 대한 우선순위 결정, 보안문서 계 획서 검토 등과 같은 권장 보안 활동을 수행한다. 배포·운영 단계 : 사고 대응 계획을 준비하는 것은 시간이 지남에 따라 나타날 수 있는 새로운 위협 요소를 해결하는 데 중요하다. 관련 담당자의 긴급 연락처 식별 및 조직 내 다른 그룹이나 타사에서 개발된 소프트웨어에 대한 보안서비스 계획 수립등이 포함되어야 한다. 수행 된 모든 보안활동 에 대 한 검토를 통해 소프트웨어 배포 준비 상태를 보장할 수 있으며, 배포 전에 소프트웨어 인증을 통해 보안 및 개인 정보 보호 요구 사항을 충족시킬 수 있다. 모든 관련 데이터를 보관하여 배포 이후 작업을 수행하는데 도움이 되도록 하며 장기적으로 비용을 낮추는 데도 도움이 되도록 한다. 대응 단계 : 배포 단계에서 만들어진 사고 대응 계획을 구현할 수 있다는 것은 소프트웨어 보안 또는 개인 정보 보호 취약성으로부터 고객을 보호하는 데 필수적이다.
같이 보기
- ↑ KISA SW개발 보안 가이드