정보처리기사/정보 시스템 구축 관리
소프트웨어 개발 보안 구출 및 방법론의 종류
jhwannabe
2023. 8. 19. 16:44
Secure SDLC(Software Development Life Cycle)
소프트웨어 개발 보안 방법론의 개념
- 기존의 소프트웨어 개발 방법론이 적용된 프로젝트에서 안전한 소프트웨어 개발에 요구되는 보안 활동들을 적용하는 개발 방법
- SDLC(소프트웨어 개발 생명주기)에 걸쳐 추가되는 보안 활동은 다음과 같음
요구사항 분석 | 요구사항 중 보안 항목 식별, 요구사항 명세서 |
설계 | - 위협원 도출을 위한 위협 모델링 - 보안 설계 검토 및 보안 설계서 작성, 보안 통제 수립 |
구현 | - 표준 코딩 정의서 및 소프트웨어 개발 보안 가이드를 준수해 개발 - 소스 코드 보안 약점 진단 및 개선 |
테스트 | 모의 침투 테스트 또는 동전 분석을 통한 보안 취약점 진단 및 개선 |
유지보수 | 지속적인 개선, 보안 패치 |
소프트웨어 개발 보안 방법론의 종류
MS-SDL(Microsoft-Secure Development Lifecycle)
- 마이크로소프트사에서 보안 수준이 높은 안전한 소프트웨어를 개발하기 위해 수행한 프로세스 개선 작업으로, 자체 수립한 SDL 방법론을 적용함
교육 | - 소프트웨어 개발 보안 교육 - 안전 설계, 위협 모델링, 시큐어 코딩, 보안 테스팅, 프라이버시 관련 보안 교육 |
계획/분석 | 소프트웨어의 질과 버그 경계 정의, 보안과 프라이버시 위험 분석 |
설계 | 공격 영역 분석, 위협 모델링 |
구현 | 도구 명세, 금지된 함수 사용 제한, 정적 분석 |
시험/검증 | 동적/퍼징 테스팅, 공격 영역/위협 모델 검증 |
배포/운영 | 사고 대응 계획, 최종 보안 검토, 기록 보관 |
대응 | 사고 대응 수행 |
Seven Touchpoints
- 소프트웨어 보안의 모범 사례를 SDLC에 통합한 개발 보안 방법론
- 공통 위험 요소를 파악하고 이해하며, 보안을 설계하고 모든 소프트웨어 산출물에 대해 처렂하고 객관적인 위험 분석 및 테스트를 거쳐 안전한 소프트웨어를 만들어내는 방법을 정의하고 있음
- SDLC의 각 단계에 7개의 보안 강화 활동을 집중적으로 관리하도록 개발자에게 요구함
SDLC 단계 \ 보안 강화 활동 |
요구사항 및 Use Cases |
구조 설계 | 테스트 계획 | 코드 | 테스트 및 테스트 결과 |
현장과의 피드백 |
악용 사례 | ● | |||||
보안 요구사항 | ● | |||||
위험 분석 | ● | ● | ● | |||
위험 기반 보안 테스트 |
● | |||||
코드 검토 | ● | |||||
침투 테스트 | ● | ● | ||||
보안 운영 | ● |
CLASP(Comprehensive, Lightweight Application Security Process)
- SDLC 초기 단계에 보안 강화를 목적으로 하는 정형화된 개발 보안 프로세스
- 활동 중심의 프로세스와 역할 기반의 프로세스로 구성된 집합체
- 안전한 소프트웨어를 개발하기 위해 개념 관점, 역할 기반 관점, 활동 평가 관점, 활동 구현 관점, 취약성 관점 등 5가지 관점에 따라 개발 보안 프로세스를 수행함
개념 관점 | - CLASP 구조와 CLASP 프로세스 컴포넌트 간의 종속성을 제공함 - CLASP 프로세스 컴포넌트들의 상호작ㄱ용 방법과 취약성 관점을 통ㅇ해서 역할 기반 관점에서 적용하는 방법을 기술함 |
역할 기반 관점 | 24개의 보안 관련 CLASP 활동들에 요구되는 각 역할을 창출하여 활동 평가 관점, 활동 구현 관점, 취약성 관점에서 사용함 |
활동 평가 관점 | 활동 평가관점, 활동 구현 관점, 취약성 관점에서의 적합성과 관련하여 보안 관련 CLASP 활동들에 대한 타당성을 평가함 |
활동 구현 관점 | 활동 평가 관점에서 선택한 24개의 보안 관련 CLASP 활동들을 수행함 |
취약성 관점 | 문제 타입에 대한 솔루션을 활동 평가 관점, 활동 구현 관점으로 통합함 |
정보 보안의 3대 요소
기밀성 (Confidentiality) |
- 인가된 사용자만 정보 자신에 접근할 수 있음 - 일반적인 보안의 의미와 가장 가까움 - 방화벽, 암호 패스워드 등이 대표적인 예 - 신분 위장(Masquerading) 등과 같은 공격에 의해 위협받을 수 있음 |
무결성 (Integrity) |
- 시스템 내의 정보는 오직 인가된 사용자가 인가된 방법으로만 수정할 수 있음 - 변경, 가장, 재전송 등과 같은 공격에 의해 위협받을 수 있음 |
가용성 (Availability) |
- 사용자가 필요할 때 데이터에 접근할 수 있는 능력을 말함 - 인가된 사용자가 조직의 정보 자산에 적시에 접근하여 업무를 수행할 수 있도록 유지하는 것을 목표로 함 - 가용성을 유지하기 위해 데이터 백업, 위협 요소 제거 등의 기술을 사용할 수 있음 - 서비스 거부(Denial of Service) 등과 같은 공격에 의해 위협받을 수 있음 |
OWASP(The Open Web Application Security Project)
- 오픈소스 웹 애플리케이션 보안 프로젝트로서 주로 웹을 통한 정보 유출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하는 곳
- 연구 결과에 따라 취약점 발생 빈도가 높은 10가지 취약점을 공개함
728x90
반응형