MS‐SDL: Difference between revisions

From CS Wiki
(새 문서: ; Microsoft ‐ Secure Development Lifecycle ; 마이크로소프트에서 개발한 소프트웨어 개발 보안 방법론 * 윈도우 운영체제를 개발한 마이크...)
 
No edit summary
Line 12: Line 12:
== 계획·분석 단계 ==
== 계획·분석 단계 ==
* 안전한 소프트웨어를 구축하기 위한 기본 보안요구사항과 프라이버시 요구사항 정의
* 안전한 소프트웨어를 구축하기 위한 기본 보안요구사항과 프라이버시 요구사항 정의
* 필수 수행
* 필수 보안 활동
** SDL 방법론 적용 여부 결정
** SDL 방법론 적용 여부 결정
** 보안책임자(Security Advisor) 선정
** 보안책임자(Security Advisor) 선정
Line 19: Line 19:
** 보안 버그 경계(security bug bar) 정의
** 보안 버그 경계(security bug bar) 정의
** 보안 위험평가
** 보안 위험평가
* 권장 수행
* 권장 보안 활동
** 보안 계획서 작성
** 보안 계획서 작성
** 버그 추적 시스템 정의
** 버그 추적 시스템 정의
Line 25: Line 25:
== 설계 단계 ==  
== 설계 단계 ==  
* 구현에서 배포에 이르기까지 수행해야 하는 작업 계획 수립
* 구현에서 배포에 이르기까지 수행해야 하는 작업 계획 수립
* 필수 수행
* 필수 보안 활동
** 보안 설계검토
** 보안 설계검토
** 방화벽 정책 준수
** 방화벽 정책 준수
Line 31: Line 31:
** 위협모델 품질 보증
** 위협모델 품질 보증
** 위협모델 검토 및 승인
** 위협모델 검토 및 승인
* 권장 수행
* 권장 보안 활동
* 보안 설계서 작성, 보안 디폴트 인스톨 실행, 모든 샘플 소스코드의 보안검토 수행, 안전하지 않은 함수와 코딩 패턴 알림, 설계변화 요구에 관한 보안관련 사항 문서화, 위협모델을 통해 발견한 취약성 해결을 위한 작업목록 작성, 권장보안 활동을 수행한다.
** 보안 설계서 작성
** 보안 디폴트 인스톨 실행
** 모든 샘플 소스코드의 보안검토 수행
** 안전하지 않은 함수와 코딩 패턴 알림
** 설계변화 요구에 관한 보안관련 사항 문서화
** 위협모델을 통해 발견한 취약성 해결을 위한 작업목록 작성


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


== 같이 보기 ==
== 같이 보기 ==
* [https://www.microsoft.com/en-us/securityengineering/sdl 공식 홈페이지]
* [https://www.microsoft.com/en-us/securityengineering/sdl 공식 홈페이지]

Revision as of 00:39, 13 June 2019

Microsoft ‐ Secure Development Lifecycle
마이크로소프트에서 개발한 소프트웨어 개발 보안 방법론
  • 윈도우 운영체제를 개발한 마이크로소프트사는 자체수립한 SDL 방법론을 적용
  • SDL이 적용된 소프트웨어는 이전 버전에 비해 50% 이상 취약점이 감소하였다고 발표[1]

단계

교육 단계

  • 소프트웨어 개발팀의 구성원들을 대상으로 매년 한 번씩 보안의 기초와 최신 보안 동향에 대해 교육
  • 보안 교육은 안전설계, 위협모델링, 시큐어코딩, 보안테스팅, 프라이버시에 관한 내용 포함

계획·분석 단계

  • 안전한 소프트웨어를 구축하기 위한 기본 보안요구사항과 프라이버시 요구사항 정의
  • 필수 보안 활동
    • SDL 방법론 적용 여부 결정
    • 보안책임자(Security Advisor) 선정
    • 보안팀(Security Champion) 선정
    • 버그 리포팅 도구 정의
    • 보안 버그 경계(security bug bar) 정의
    • 보안 위험평가
  • 권장 보안 활동
    • 보안 계획서 작성
    • 버그 추적 시스템 정의

설계 단계

  • 구현에서 배포에 이르기까지 수행해야 하는 작업 계획 수립
  • 필수 보안 활동
    • 보안 설계검토
    • 방화벽 정책 준수
    • 위협모델링
    • 위협모델 품질 보증
    • 위협모델 검토 및 승인
  • 권장 보안 활동
    • 보안 설계서 작성
    • 보안 디폴트 인스톨 실행
    • 모든 샘플 소스코드의 보안검토 수행
    • 안전하지 않은 함수와 코딩 패턴 알림
    • 설계변화 요구에 관한 보안관련 사항 문서화
    • 위협모델을 통해 발견한 취약성 해결을 위한 작업목록 작성

구현 단계

  • 보안 및 프라이버시 문제점을 발견하고 제거하기 위해 개발시 최선의 방책을 수립
  • 필수 보안 활동
    • 최신 버전의 빌드 도구 사용
    • 금지된 API 사용 회피
    • Execute 허가를 통한 안전한 SQL 사용
    • 저장 프로시저에서 SQL 사용
  • 권장 보안 활동
  • 안전하게 소프트웨어를 사용하기 위해 필요한 사용자 정보 식별
  • 사용자 중심의 보안문서 계획
  • 보안 형상관리에 관한 정보 생성
  • 자동화된 금지 API 변환 실행
  • 프로젝트 팀 전체와 모든 모범사례와 정책에 대한 정의
  • 문서화, 토론 등

시험·검증 단계

  • 보안 및 프라이버시 테스팅과 보안 푸쉬(security push), 문서 리뷰를 통해, 코드가 이전 단계에서 설정한 보안과 프라이버시을 지키는지 확인
    • 보안 푸쉬는 팀 전체에 걸쳐 위협모델 갱신, 코드 리뷰, 테스팅에 초점을 맞춘 작업
  • 필수 보안 활동
    • 커널‐모드 드라이버를 위한 테스팅 완료
    • COM 객체 테스팅 수행
    • 인증된 사이트 크로스 도메인 스크립팅을 위한 테스팅
    • 애플리케이션 검증 테스트 수행
    • 파일 fuzzing 수행
    • 위협모델 검토 및 수정
  • 권장 보안 활동
    • 보안 테스팅 계획 완료
    • 침투 테스트 수행
    • 시큐어 코드 검토
    • 보안 푸쉬를 시작하기전 모든 코드에 대한 우선순위 결정
    • 보안문서 계획서 검토

배포·운영 단계

  • 사고 대응 계획을 준비하는 것은 시간이 지남에 따라 나타날 수 있는 새로운 위협요소를 해결하는 데 중요
  • 관련 담당자의 긴급 연락처 식별 및 조직 내 다른 그룹이나 타사에서 개발된 소프트웨어에 대한 보안서비스 계획 수립 등 포함
  • 수행 된 모든 보안활동 에 대한 검토를 통해 소프트웨어 배포 준비 상태를 보장
  • 배포 전에 소프트웨어 인증을 통해 보안 및 개인 정보 보호 요구 사항을 충족
  • 배포 이후 작업 수행을 위해 모든 관련 데이터를 보관

같이 보기

  1. KISA SW개발 보안 가이드