MS-SDL

From IT Wiki
Revision as of 11:07, 30 October 2019 by 211.106.38.3 (talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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
  • 사고 대응 계획을 준비하는 것은 시간이 지남에 따라 나타날 수 있는 새로운 위협요소를 해결하는 데 중요
  • 관련 담당자의 긴급 연락처 식별 및 조직 내 다른 그룹이나 타사에서 개발된 소프트웨어에 대한 보안서비스 계획 수립 등 포함
  • 수행 된 모든 보안활동 에 대한 검토를 통해 소프트웨어 배포 준비 상태를 보장
  • 배포 전에 소프트웨어 인증을 통해 보안 및 개인 정보 보호 요구 사항을 충족
  • 배포 이후 작업 수행을 위해 모든 관련 데이터를 보관

같이 보기

  1. KISA SW개발 보안 가이드