|
|
Line 1: |
Line 1: |
| [[분류:소프트웨어 공학]][[분류:보안]] | | #넘겨주기 [[MS-SDL]] |
| ; Microsoft ‐ Secure Development Lifecycle
| |
| ; 마이크로소프트에서 개발한 소프트웨어 개발 보안 방법론
| |
| | |
| * [[윈도우]] [[운영체제]]를 개발한 마이크로소프트사는 자체수립한 SDL 방법론을 적용
| |
| * SDL이 적용된 소프트웨어는 이전 버전에 비해 50% 이상 취약점이 감소하였다고 발표<ref>KISA SW개발 보안 가이드</ref>
| |
| | |
| = 단계 =
| |
| == 교육 단계 ==
| |
| ; 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
| |
| * 사고 대응 계획을 준비하는 것은 시간이 지남에 따라 나타날 수 있는 새로운 위협요소를 해결하는 데 중요
| |
| * 관련 담당자의 긴급 연락처 식별 및 조직 내 다른 그룹이나 타사에서 개발된 소프트웨어에 대한 보안서비스 계획 수립 등 포함
| |
| * 수행 된 모든 보안활동 에 대한 검토를 통해 소프트웨어 배포 준비 상태를 보장
| |
| * 배포 전에 소프트웨어 인증을 통해 보안 및 개인 정보 보호 요구 사항을 충족
| |
| * 배포 이후 작업 수행을 위해 모든 관련 데이터를 보관
| |
| | |
| == 같이 보기 ==
| |
| * [https://www.microsoft.com/en-us/securityengineering/sdl 공식 홈페이지]
| |