728x90
MS-SDL (마이크로소프트 보안개발라이프사이클)
- 보안 개발 방법론의 대표적인 사례
- 안전한 소프트웨어 개발을 위해 소프트웨어 생명주기에 적용할 각 단계별 보안활동을 정의
SD3 + C
- Secure by Design
- Secure by Default
- Secure in Deployment
- Communications
순서
- 교육 (Training)
- 소프트웨어 개발 보안 교육 (core training)
- 계획/분석 (Requirement)
- 보안요구사항 수립
- 소프트웨어의 질과 버그 경계 정의 (Define quality gates/bug bar)
- 보안과 프라이버스 위험 분석 (Analyze security and privacy risk)
- 설계 (Design)
- 공격 영역 분석 (Attack surface analysis)
- 위협 모델링 (Threat Modeling)
- 구현 (Implementation)
- 도구 명세 (Specify Tool)
- 금지된 함수 사용 제한 (Enforce banned functions)
- 정적 분석 (Static analysis)
- 코드를 실행하지 않고 시행하는 분석 방법
- 코드를 읽어서 하는 것인데 사람이 직접 읽기보단 효율을 위해 정적 분석 툴을 사용함
- 시험/검증 (Verification)
- 동적/퍼징 테스팅 (Dynamic/fuzz testing)
- 공격 영역/위협 모델 검증 (Verify threat models/attack surface)
- 배포/운영 (Release)
⇒ 애플리케이션의 출시 후 보안 계획
-
- 사고 대응 계획 (Response plan)
- 최종 보안 검토 (Final security)
- 기록 보관 (Release archive)
7. 대응 (Response)
- 사고 대응 수행 (Response execution)
위협 분류 (STRIDE)
- 신분 위장 (Spoofing identity)
- 거짓된 identity로 시스템 접근 권한을 획득한다
- 데이터 변조 (Tampering with data)
- 불법적인 데이터를 수정한다
- 부인 (Repudiation)
- 사용자가 자신이 수행한 특정 액션이나 트랜잭션을 부인한다
- 정보 유출 (Information disclosure)
- 유출되지 말아야 하는 개인정보가 유출된다
- 서비스 거부 (Denial of Service, DoS)
- 시스템 또는 애플리케이션이 정상적으로 수행되지 않도록 한다
- 권한 상승 (Elevation of Privilege)
- 제한된 권한을 가진 사용자가 권한 있는 사용자의 권한을 습득해 원하는 기능을 수행한다
위험도 계산 (DREAD)
낮은 위험도 ~ 높은 위험도 : 0 ~ 10
총 5가지 항목에 대해 50점 만점
- 예상 피해 (Damage potential)
- 피해가 얼마나 클 것인가?
- 재현 확률 (Reproducibility)
- 공격이 성공할 확률은 얼마인가?
- 공격 용이도 (Exploitability)
- 공격을 위해 얼마나 많은 노력과 기술이 필요한가?
- 영향을 받는 사용자 (Affected users)
- 위협이 악용되어 공격이 이뤄졌다고 할 때 얼마나 많은 사람이 영향을 받는가?
- 발견 용이성 (Discoverability)
- 얼마나 쉽게 취약성이 발견되는가?
728x90
'ETC' 카테고리의 다른 글
[Markdown] 기본적인 마크다운 활용법 1 (제목, 줄 띄기, 이탈릭/볼드/선긋기, 블록쿼트, 핀포인트, 화살표) (0) | 2021.09.04 |
---|---|
[코딩 스타일/명명법] Camel case(카멜 케이스) vs. Snake case(스네이크 케이스) (0) | 2021.09.01 |