보안 소프트웨어 개발 수명 주기(SSDL) 구현

보안 소프트웨어 개발 수명 주기(SSDL)는 소프트웨어 개발 도중 발생한 취약점과 관련된 위험을 줄이기 위한 총체적이고 실질적인 접근방식입니다. SSDL은 모든 개발 단계에서 보안과 개인정보 보호를 고려합니다. 코드가 작성되기에 앞서 보안 문제를 파악함으로써 기업은 개발 도중 발생한 취약점을 해결하기 위해 애플리케이션을 재작성하거나 패치를 제공하지 않아도 되기 때문에 시간과 비용을 절약할 수 있습니다.

Positive Technologies의 전문 컨설턴트는 안전한 애플리케이션 개발에 필요한 절차의 도입을 위한 각종 서비스를 제공합니다. 전문 컨설턴트를 통해 다음 사항을 정의하고 구현할 수 있습니다.

교육

보안 위협과 효과적인 대응책을 파악하는 것이 안전하고 믿을 수 있는 소프트웨어 개발의 기본입니다. 개발팀의 모든 구성원은 소프트웨어 보안의 기본을 교육 받아야 하고 정보 보안 경향을 인식할 수 있어야 합니다.

SSDL을 채택하려면 구축에 앞서 교육에 대한 투자가 이루어져야 하고, 구축 이후에도 지속적으로 교육이 진행되어야 합니다. 일부 교육은 전체 팀 구성원에게 필수사항으로 간주되어야 하며, 기타 세션들도 분석가, 설계자, 프로그래머 등 개별 역할에 따른 맞춤형으로 제공되어야 합니다. Positive Technologies가 기업의 다양한 니즈를 충족하기 위해 제공하는 교육 프로그램은 다음과 같습니다.

  • 정보 보안 소개
  • 정보 보안의 일부로서의 애플리케이션 보안
  • 안전한 개발 수명 주기의 필수사항
  • 안전한 설계, 개발, 테스트의 기본사항
  • 소프트웨어 개발의 보안 및 개인정보 보호
  • 위협 모델링
  • 안전한 설계의 원칙
  • 안전한 구현의 원칙
  • 보안 검증의 원칙

보안 요구사항 및 위험 진단

보안 및 개인정보 보호 요구사항에 대한 정의는 애플리케이션 개발 프로세스 계획의 필수 요소로서, 개발팀이 주요 보안 및 개인정보 보호 목표를 파악하고, 처음부터 그에 따라 계획을 세울 수 있도록 돕습니다. Positive Technologies의 전문 컨설턴트는 기업이 효과적인 요구사항 수집 프로세스를 구현할 수 있도록 지원하여 각 애플리케이션 및 관련된 생산 환경의 요구사항을 파악하게끔 합니다.

아울러, 보안과 개인정보 보호 위험 진단법을 개발하여 사업에 피해를 끼칠 수도 있는 애플리케이션의 기능적 측면들을 식별합니다. 위험 및 대응책 파악은 애플리케이션 개발 계획 프로세스의 중요한 부분입니다.

안전한 아키텍처와 설계

애플리케이션 코드의 취약점은 추가 개발이나 패치로도 수정될 수 있지만, 소프트웨어 아키텍처의 보안상의 허점은 훨씬 문제가 심각하고 따라서 해결이 더욱 어렵습니다. 증명된 안전한 패턴, 알고리즘, 프레임워크가 애플리케이션 아키텍처의 일부가 되도록 개발팀 내에 관련 프로세스가 확립되어 있어야 합니다.

Positive Technologies는 각 프로젝트의 시작 단계에서 이러한 요소들을 포함하는 방법을 안내함으로써 각 애플리케이션의 환경, 운영체제, 데이터베이스 설계, 시스템 아키텍처 등이 보안을 반드시 고려할 수 있도록 합니다. 이로써 애플리케이션이 보안과 개인정보 보호 관련 법률, 규정, 표준 등에 부합할 수 있습니다.

안전한 구현

보안 코드 리뷰는 애플리케이션 구현 단계의 가장 기본적인 단계입니다. 소스 코드 분석은 개발자가 동의한 사양에 따라 모든 관련 보안 기능들을 구현했는지 확인합니다. 또한, 코드 리뷰는 해당 기능들이 예상대로 작동하고 적합한 장소에서 적용되는지 확인하고, 소프트웨어가 작업 환경에서 잠재 위협에 대한 자체 보호 기능을 탑재하도록 설계되고 개발되었는지를 확인 테스트합니다.

Positive Technologies는 기업을 대신하여 보안 코드 리뷰를 실시하거나 기업 스스로 실시할 수 있도록 필요한 툴과 절차를 안내합니다. Positive Technologies Application Inspector 와 같은 자동 소스 코드 분석기는 애플리케이션에서 화이트박스 테스트를 실행하여 보안과 관련된 모든 취약점들을 식별하고 탐지합니다.

검증

애플리케이션이 지정된 보안 요구사항과 보안 검증에 부합하는지 확인하고, 애플리케이션과 그 구성요소가 운용 상태에서 보안 요구를 지속적으로 충족하는지를 밝혀주는 프로세스 입니다.

검증 단계에서는 엄격한 코드 리뷰와 특정 보안 테스트, 그리고 추가 리뷰와 취약점 테스트가 요구되는 시스템의 모든 부분을 식별하는 '공격 표면 리뷰'라고도 하는 절차가 실행됩니다. Positive Technologies의 전문가들은 이러한 전문 테스트 절차를 기업의 개발 및 QA 그룹으로 통합시킬 수 있도록 지원합니다.

안전한 구축

직원이 교육을 이수하고, 보안 요구사항과 위험 진단 절차에 대한 정의가 완료됐으며, 안전한 아키텍처가 구현되고, 코드 리뷰가 실행되었다면 애플리케이션 구축 준비는 완료되었습니다. 하지만 생산 환경이 애플리케이션의 보안 요구사항을 100% 지원할 수 있다고 확신할 수 있을까요?

Positive Technologies의 전문가들은 애플리케이션의 보안 수준을 떨어트릴 수 있는 서버, 데이터베이스, 스토리지, 네트워크 시스템 등 인프라 요소들의 설정 오류나 서비스 팩 누락 등을 파악할 수 있도록 기업의 네트워크 운영팀에게 보안 점검 과정을 안내합니다.