[SW공학] Secure SDLC

 

소프트웨어 개발 모델은 생명주기상 여러가지 방법론을 적용할 수 있는데, 기본적인 라이프 사이클에 보안 취약점을 분석하고 이를 대응할 방안의 활동을 강화한 보안SDLC 방법론이 있다. 여러모로 SW상 보안의 중요성은 개발전 설계단계에서 철저하게 수행하여야 추후 피해, 복구, 개선에 대한 비용절감을 최대로 할 수 있다고 한다.
주요 방법론에 대해서는 산업부분에서 MS, IBM등 주요기관에서 발표한 방법론이 있다. 이에 대해서 생소함을 없애기 위해 다시한번 짚고 넘어가야한다.

I. 정의 및 특징

정의: SDLC상에서 보안을 내재화한 개발 프로세스

 

II. 프로세스 및 단계별 주요 활동 (계분설구시)

출처: [정보보안 - Secure SDLC] : 네이버 블로그 (naver.com)

II. Secure SDLC 적용 개발방법론

  • OWASP CLASP

CLASP(Comprehensive, Lightweight Application Security Process)

  • MS SDL

MS‐SDL(Microsoft ‐ Secure Development Lifecycle)

  • FISMA

 

  • McGraw 7-터치포인트

Seven Touchpoints

 

III. 주요 활용

- 자동차, 첨단무기, 컴퓨팅

 

IV. 소프트웨어 개발보안 적용 효과

결함을 초기단계에 제거시 유지보수비용 30배 절감 가능

V. 역할별 보안활동

① 프로젝트 관리자(Project Manager)

• 프로젝트 관리자는 팀 구성원들에게 응용프로그램 보안전략을 알려야 한다.

• 프로젝트 일정과 보안위험의 상관관계 등과 같은 응용프로그램 보안영향을 이해시킨다.

• 조직의 상태를 모니터링 한다. 기본적인 비즈니스 매트릭스 조합을 정의하고 단계별로 적용한다.

② 요구사항 분석가(Requirement Specifier)

• 요구사항 분석가는 아키텍트가 고려해야 할 여러가지 보안관련 비즈니스 요구사항들을 자세히 설명할 수 있어야 한다

• 프로젝트 팀이 고려해야 할 구조를 정의한 뒤, 해당 구조에 존재하는 자원에 대한 보안요구사항 이 무엇인지 결정한다.

• 보안수준을 추상화할 때 다른 프로젝트에 적용되었던 보안요구사항을 재사용하여 시간을 절약할 수 있어야 한다.

• 유즈케이스에 대한 보안고려사항을 기반으로 오용사례를 정의할 수 있어야 한다.

③ 아키텍트(Architect)

• 아키텍트는 명백한 보안오류가 발생하지 않도록 충분하게 보안기술 문제를 이해할 수 있어야 한다.

• 시스템에 사용되는 모든 리소스를 가능한 자세하게 정의한다.

• 시스템에서 각각 리소스의 역할에 적절한 보안요구사항이 적용되도록 한다.

• 각 리소스가 시스템 라이프 사이클내에서 서로 간의 상호작용을 이해할 수 있게 해야 한다.

④ 설계자(Designer)

• 설계자는 특정 기술이 보안요구사항을 만족하는지 확인하고 그 기술이 적절히 사용될 수 있도록 방법을 터득해야 한다.

• 일반적으로 결과를 평가하고 최선의 문제해결 방법을 결정해야 한다.

• 애플리케이션 보안노력에 대한 품질측정을 지원해야 한다. 즉, 설계자는 기존의 모든 개발 역할의 보안 관련 작업을 수행할 수 있어야 한다.

• 식별되지 않은 보안위험을 가지고 있는 경우 요구사항 분석단계를 다시 수행해야 한다.

• 고가의 수정을 요구하는 위험을 최소화 하기 위한 로드맵을 제공해야 한다.

• 타사의 소프트웨어 통합시 발생가능한 보안위험을 이해하고 있어야 한다.

• 일반적인 소프트웨어에서 식별된 보안위협에 대응할 수 있어야 한다.

⑤ 구현개발자(Implementer)

• 구현개발자는 고도로 구조화된 개발 환경에서 프로그램을 구현하기 위해 시큐어코딩표준을 준 수하여 개발하여야 한다. • 제 3자가 소프트웨어 안전 여부를 쉽게 판단할 수 있도록 문서화해야 한다.

⑥ 테스트 분석가(Test Analyst)

• 테스트 분석가는 요구사항과 구현결과를 반복적으로 확인해야 한다. 테스트 그룹은 반드시 보안 전문가일 필요는 없으며, 테스트가 가능할 정도의 위험에 대한 학습이나 툴 사용방법을 숙지하 고 있으면 된다.

⑦ 보안감사자(Security Auditor)

• 프로젝트의 현재 상태의 보안을 보장한다.

• 요구사항을 검토할 때는 요구사항이 적합하고 완전한지 확인한다.

• 설계 단계에서는 일반적으로 취약성으로 이어질 수 있는 사항이 있는지 점검한다.

• 구현 단계에서는 보안 문제를 발견할 수 있도록 시도해야 한다.

• 보안감사자는 프로젝트의 전체 단계에서 활동하여야 한다.

 


출처:

 

 

[정보보안 - Secure SDLC] : 네이버 블로그 (naver.com)