[소프트웨어공학] Secure SDLC

·2021년 4월 28일
0

Secure SDLC

보안상 안전한 소프트웨어를 개발하기 위해 SDLC(Software Development Life Cycle)에 보안 강화를 위한 프로세스를 포함한 것.

소프트웨어의 유지보수 단계에서 보안 이슈를 해결하기 위해 소모되는 비용을 최소화하기 위해 등장했다.

요구사항 분석, 설계, 구현, 테스트, 유지보수 등 SDLC 전체 단계에 걸쳐 수행되어야 할 보안 활동들을 제시한다.

대표적 방법론들 -

  • CLASP
    SDLC의 초기 단계에서 보안을 강화하기 위해 개발된 방법론.
    활동 중심, 역할 기반의 프로세스로 구성되어 있음.
    현재 운용중인 시스템에 적용하기에 적합함.
  • SDL
    MS사에서 안전한 소프트웨어 개발을 위해 기존의 SDLC를 개선한 방법론.
    전통적인 Spiral 모델을 기반으로 함.
  • Seven Touchpoints
    소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론.
    설계, 개발 과정의 모든 산출물에 대해 위험 분석 및 테스트를 수행한다.
    SDLC의 각 단계에 관련된 7개의 보안 강화 활동을 수행한다.

이제 SDLC의 각 단계별 보안 활동을 자세히 알아보쟈

요구사항 분석 단계

보안 항목에 해당하는 요구사항을 식별하는 작업을 수행한다.

전산화되는 정보가 가지고 있는 보안 수준을 보안 요소별로 등급을 구분하여 분류한다.
조직의 정보보호 관련 보안 정책을 참고하여 소프트웨어 개발에 적용할 수 있는 보안 정책 항목들의 출처, 요구 수준(필수?선택?), 세부 내용 등을 문서화한다.

설계 단계

식별된 보안 요구사항들을 소프트웨어 설계서에 반영하고, 보안 설계서를 작성한다.

발생 가능한 위험들을 식별하여 보안 대책, 소요 예산, 사고 발생 시 영향 범위, 대응책 등을 수립한다.
네트워크, 서버, 물리적 보안, 개발 프로그램 등 환경에 대한 보안통제 기준을 수립하여 설계에 반영한다.

  • 네트워크
    외부의 공격으로부터 개발 환경을 보호하기 위해 네트워크를 분리하거나, 방화벽을 설치한다.
  • 서버
    보안이 뛰어난 OS를 사용하고 보안 업데이트, 외부접속에 대한 접근통제 등을 실시한다.
  • 물리적 보안
    출입통제, CCTV설치 등
  • 개발 프로그램
    허가되지 않은 프로그램을 통제하고, 지속적으로 데이터 무결성 검사를 실시한다.

구현 단계

표준 코딩 정의서, 소프트웨어 개발 보안 가이드를 준수하며, 설계서에 따라 보안 요구사항들을 구현한다.

지속적인 Unit Test를 통해 보안 취약점을 최소화한다.

코드 점검, 소스코드 진단 작업을 통해 안정성을 확보한다.

테스트 단계

설계 단계에서 작성한 보안 설계서를 바탕으로 보안 사항들이 정확히 반영되고 동작되는지 점검한다.

동적 분석 도구, 모의 침투테스트를 통해 설계 단계에서 식별된 위협들의 해결여부를 검증한다.

설계 단계에서 식별된 위험들 외에도 구현 단계에서 추가로 제시된 위협들과 취약점들을 점검할 수 있도록 테스트 계획을 수립하고 시행한다.

테스트 결과는 모두 문서화하여 보관하고, 개발자에게 피드백 되어야 한다.

유지보수 단계

이전 과정을 모두 수행하였음에도 발생할 수 있는 보안사고들을 식별하고, 사고 발생 시 이를 해결하고 보안 패치를 실시한다.

⭐보안 요소⭐

  • 기밀성 Confidentialily
    시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용된다.
    정보가 전송 중에 노출되더라도 데이터를 읽을 수 없다.
  • 무결성 Integrity
    시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있다.
  • 가용성 Availability
    인가받은 사용자는 언제라도 사용할 수 있다.
  • 인증 Authentication
    시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인해야 한다.
    Ex) 패스워드, 지문 검사, 인증 카드
  • 부인 방지 NonRepudiation
    데이터를 송/수신한 자가 송/수신 사실을 부인할 수 없도록 증거를 제공한다.
profile
튼튼

0개의 댓글