정보처리기사/정보 시스템 구축 관리

소프트웨어 개발 보안 구출 및 방법론의 종류

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
반응형