스물두줄

컴퓨터시스템응용기술사 · 소프트웨어 공학 및 아키텍처

소프트웨어 개발보안

소프트웨어 개발보안은 보안약점을 개발 단계에서 미리 제거하는 활동이다. 보안약점은 결함이나 오류로 사이버공격을 유발할 가능성이 있는 잠재적 취약점이다. 운영 후 패치보다 설계 단계에서 막는 편이 수정 비용과 침해 위험을 줄인다. 개발보안은 보안약점 기준, 적용 범위,…

주요 장면

  1. 0:02 정의
  2. 0:20 구성 요소와 적용 범위
  3. 0:44 설계 기준과 제거 기준
  4. 1:04 예: 업로드 파일 검증
  5. 1:27 진단 흐름
  6. 1:58 정리

대본

정의

소프트웨어 개발보안은 보안약점을 개발 단계에서 미리 제거하는 활동이다.

보안약점은 결함이나 오류로 사이버공격을 유발할 가능성이 있는 잠재적 취약점이다.

운영 후 패치보다 설계 단계에서 막는 편이 수정 비용과 침해 위험을 줄인다.

구성 요소와 적용 범위

개발보안은 보안약점 기준, 적용 범위, 진단 활동의 세 요소로 구성된다.

신규개발은 설계산출물과 소스코드 전체를 대상으로 한다. 상용 소프트웨어는 제외한다.

설계 기준과 제거 기준

보안설계 기준은 분석·설계 단계에서 예방하고, 구현 기준은 코드에서 보안약점을 제거한다.

같은 유형 이름이라도 설계는 원칙을, 구현은 코드 수준의 결함을 본다.

설계 단계에서 빠진 통제는 구현 단계에서 코드로 고치기 어렵다.

예: 업로드 파일 검증

확장자만 확인하면 안 된다.

이중 확장자나 내용을 위조한 파일은 확장자 확인만으로 막지 못한다.

그래서 타입 검증은 확장자와 파일 내용을 함께 보는 것이 핵심이다.

타입·크기·개수·실행권한 제한이 SR1-10 항목 1의 내용이다.

진단 흐름

개발보안 진단은 설계 기준 반영부터 조치 결과 확인까지 이어진다.

구현 단계에서 진단도구로 보안약점 항목을 진단하고, 잔존 약점은 재진단한다.

감리법인이 진단도구를 쓰면 정해진 인증 방식 중 하나를 충족해야 한다.

정리

정리하면 소프트웨어 개발보안은 설계와 구현 양쪽에서 보안약점을 제거하는 활동이다.

신규개발은 설계산출물과 소스코드 전체, 유지관리는 변경된 설계산출물과 소스코드 전체가 대상이다.

진단은 감리법인이 수행하고, 상용 소프트웨어는 적용 대상에서 제외한다.

같은 장의 영상