본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Software Assurance Maturity Model; 소프트웨어 보증 성숙도 모델, SAMM
조직의 소프트웨어 보안 활동 수준을 5개 비즈니스 기능과 15개 보안 실무로 나누어 측정하고, 목표 수준과 개선 로드맵을 정하도록 돕는 OWASP의 개방형 성숙도 모델

SAMM은 "우리 조직의 소프트웨어 보안은 지금 어느 수준이고, 다음에 무엇을 해야 하는가"에 답하기 위한 도구이다. 원형은 프라비르 찬드라(Pravir Chandra)가 2009년에 쓴 OpenSAMM이며, 이후 OWASP 프로젝트로 관리되고 있다. 현행판은 SAMM 버전 2이다. 공식 사이트(owaspsamm.org)는 SAMM이 특정 기술과 프로세스에 매이지 않고 폭포수·반복형·애자일·데브옵스 어느 개발 방식에도 적용할 수 있도록 설계되었으며, 버전 2부터는 큰 판 교체 대신 작은 단위로 자주 갱신하는 방식을 택했다고 설명한다. 모델은 CC BY-SA 4.0 라이선스로 공개되어 있다.

SAMM은 스스로를 처방형(prescriptive) 모델이라고 부른다. 각 단계에서 해야 할 활동이 정의되어 있어 보안 전문가가 아닌 사람도 따라갈 수 있다는 뜻이다. 또한 모든 조직이 모든 실무에서 최고 수준에 도달할 필요는 없으며, 조직의 위험에 맞는 목표 수준을 실무별로 정하라고 한다. CISSP 출제 기준 8.1은 성숙도 모델의 예로 CMM과 SAMM을 든다.

SAMM은 비즈니스 기능 → 보안 실무 → 흐름(stream) → 활동의 계층으로 되어 있다.

  • 비즈니스 기능(business function): 소프트웨어를 만드는 조직이라면 어느 정도는 반드시 하는 활동 범주. 5개이다.
  • 보안 실무(security practice): 비즈니스 기능마다 3개씩, 모두 15개이다.
  • 흐름(stream): 각 보안 실무의 활동을 두 개의 흐름(A, B)으로 나누어, 흐름마다 목표를 두고 성숙도 수준을 따라 활동을 연결한다.
  • 성숙도 수준: 실무마다 3개 수준을 정의한다. 버전 2 발표문은 1단계를 초기 구현, 2단계를 구조화된 실현, 3단계를 최적화된 운영으로 설명한다. 평가 도구는 아무 활동도 하지 않은 상태를 0단계로 표시하므로 실제 점수는 0~3 범위가 된다.
비즈니스 기능 보안 실무 1 보안 실무 2 보안 실무 3
거버넌스(Governance) 전략과 지표(Strategy & Metrics) 정책과 컴플라이언스(Policy & Compliance) 교육과 지침(Education & Guidance)
설계(Design) 위협 평가(Threat Assessment) 보안 요구사항(Security Requirements) 보안 아키텍처(Secure Architecture)
구현(Implementation) 보안 빌드(Secure Build) 보안 배포(Secure Deployment) 결함 관리(Defect Management)
검증(Verification) 아키텍처 평가(Architecture Assessment) 요구사항 기반 테스트(Requirements-driven Testing) 보안 테스트(Security Testing)
운영(Operations) 사고 관리(Incident Management) 환경 관리(Environment Management) 운영 관리(Operational Management)

버전 2에서 바뀐 주요 사항은 다섯 번째 비즈니스 기능인 '구현'을 새로 넣고 결함 관리 실무를 추가한 것, 예전의 '구축(Construction)' 기능을 '설계'로 바꾼 것, 활동을 두 흐름으로 정리한 것, 활동마다 품질 기준을 두어 범위와 품질 양쪽으로 성숙도를 측정하게 한 것이다.

  1. 범위 정하기: 조직 전체, 사업부, 특정 제품 중 무엇을 평가할지 정한다. 팀마다 성숙도가 다르면 따로 평가한다.
  2. 자가 평가: 공식 SAMM 도구 상자(엑셀 또는 구글 스프레드시트)의 인터뷰 탭에서 활동별 질문에 답한다. 각 질문에는 품질 기준이 붙어 있고, 기준을 완전히 충족하지 못하면 '아니요'로 답한다. 답에 따라 점수표가 자동 계산된다. 자체 호스팅 온라인 도구(SAMMwise)도 있다.
  3. 목표 설정: 위험, 규제, 사업 목표를 고려해 실무별 목표 수준을 정한다.
  4. 로드맵: 현재 수준과 목표 사이를 여러 단계(phase)로 나누어 개선 계획을 세운다.
  5. 실행과 재평가: 계획대로 활동을 도입하고 주기적으로 다시 평가해 진척을 보여 준다. 평가 결과를 SAMM 벤치마크에 제공하면 비슷한 조직과 비교할 수 있다.

BSIMM(Building Security In Maturity Model)은 실제 여러 조직의 소프트웨어 보안 활동을 관찰해 정리한 모델로, 매년 갱신된다. 현재 운영사(Black Duck)는 BSIMM을 기술형(descriptive) 모델, 즉 실제로 하고 있는 일을 기록하는 모델이라고 설명한다.

구분 OWASP SAMM BSIMM
성격 처방형(prescriptive): 무엇을 해야 하는지 제시 기술형(descriptive): 다른 조직이 실제로 무엇을 하는지 관찰
질문 "다음 단계로 가려면 무엇을 해야 하나?" "비슷한 조직들은 무엇을 하고 있나?"
근거 커뮤니티가 정의한 모범 활동 참여 조직 평가에서 모은 관찰 데이터
운영 주체 OWASP 커뮤니티, 개방 라이선스 상업 기업이 운영하는 평가 서비스와 연간 보고서
평가 방식 자가 평가 중심, 도구 무료 주로 외부 평가자의 인터뷰 기반 평가
적합한 상황 보안 프로그램을 처음 만들거나 단계별 로드맵이 필요할 때 동종 업계와 비교(벤치마킹)해 투자 근거를 만들 때

두 모델은 경쟁 관계라기보다 보완 관계이다. SAMM으로 목표와 로드맵을 세우고 BSIMM 데이터로 업계 수준과 비교하는 방식으로 함께 쓸 수 있다.

CMM(능력 성숙도 모델)과 그 후속인 CMMi는 조직의 소프트웨어 개발 프로세스 전반의 성숙도를 초기(initial)부터 최적화(optimizing)까지의 단계로 평가한다. SAMM은 같은 성숙도 개념을 소프트웨어 보안 활동에 적용한 모델이다.

구분 CMM/CMMI SAMM
대상 개발 프로세스 전반(품질, 일정, 관리) 소프트웨어 보안 활동
단위 조직 전체의 성숙도 수준 15개 보안 실무별 성숙도(0~3)
목표 상위 수준 달성이 일반 목표 실무별로 위험에 맞는 목표를 따로 정함
쓰임 조달 시 개발사 역량 평가 조직 내부 보안 프로그램 개선, 공급업체 보안 수준 확인
  • SAMM은 5개 비즈니스 기능(거버넌스, 설계, 구현, 검증, 운영) × 3개 보안 실무 = 15개 실무, 실무별 3개 성숙도 수준이다.
  • SAMM은 처방형, BSIMM은 기술형이다. "업계가 실제로 하는 일을 관찰해 비교한다"면 BSIMM, "무엇을 해야 하는지 단계별로 제시한다"면 SAMM을 고른다.
  • 성숙도 모델의 첫 단계는 현재 수준 평가이다. 평가 없이 도구부터 도입하는 선택지는 순서가 틀렸다.
  • 모든 실무를 최고 수준으로 올리는 것이 목표가 아니다. 위험 기반으로 목표 수준을 정한다는 점이 CISSP식 정답이다.
  • CMM은 개발 프로세스 전반, SAMM은 보안 활동의 성숙도를 다룬다.