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