보안 SDLC 소프트웨어 개발 수명 주기의 단계

게시 됨: 2021-02-26

보안 소프트웨어를 만드는 현명한 접근 방식은 보안 SDLC 또는 소프트웨어 개발 수명 주기입니다. 소프트웨어를 만들고 취약점을 테스트하는 것보다 보안에 중점을 두고 만드는 것이 좋습니다.

보안 SDLC란 무엇입니까?

더 넓은 의미에서 Secure SDLC는 기존 소프트웨어 개발 수명 주기에서 보안 테스트 및 기타 조치를 통합하는 프로세스입니다. 여기에는 다음이 포함될 수 있습니다.

  • 기능적 요구사항과 함께 보안 요구사항 작성.
  • 아키텍처 분석을 수행합니다.
  • 알려진 보안 취약점이 없는 오픈 소스 구성 요소를 사용합니다.
  • 모든 단계에서 소프트웨어를 테스트하고 취약성/위협이 이월되는 것을 방지합니다.

보안 SDLC가 중요한 이유는 무엇입니까?

개발자는 보안 취약점이 있는 제품을 출시할 여유가 없기 때문에 안전한 소프트웨어 개발 수명 주기 방식을 구현하는 것이 중요합니다. 위협과 공격으로부터 소프트웨어와 데이터를 보호하기 위해서는 보안이 보장되는 방식으로 개발되어야 합니다.

또 다른 이유는 보안에 중점을 두고 테스트하고 수정하지 않고 소프트웨어를 개발하는 것은 효율적인 접근 방식이 아니기 때문입니다.

보안 SDLC의 단계

보안 SDLC의 전체 개념은 싹을 갉아먹는 것을 중심으로 합니다. 이 프로세스는 결함이 소프트웨어 개발 수명 주기의 다음 단계로 넘어가는 것을 방지합니다. 다음은 Secure SDLC와 관련된 단계와 각 단계에서 구현된 보안 조치에 대한 스케치입니다.

보안 SDLC의 요구 사항 단계

소프트웨어의 기능 요구 사항과 함께 보안 요구 사항도 보안 SDLC 시작 부분에 설명되어 있습니다. 이러한 요구 사항은 소프트웨어를 본질적으로 안전하게 만들기 위해 개발자에게 필요한 사항을 자세히 설명합니다.

모든 보안 관련 사용 사례 및 시나리오의 자세한 목록은 개발이 시작되기 전에 컴파일됩니다. 그런 다음 보안 기능을 만들고 보안 테스트 시나리오를 설계하는 데 사용됩니다.
이러한 요구 사항은 다음과 같을 수 있습니다.

  • 모든 게이트웨이와 입구 지점에는 인증 수단이 있어야 합니다.
  • 시스템은 보안 로그인 화면을 통해 인증을 구현해야 합니다.
  • 모든 개인 데이터는 항상 암호화되어야 합니다.
  • 민감한 데이터 전송에는 둘 이상의 인증 채널을 사용해야 합니다.

보안 SDLC를 위한 계획 단계

계획 단계는 Secure SDLC의 중추적인 단계입니다. 계획은 경우에 따라 다를 수 있지만 처리해야 하는 가장 기본적인 사항은 다음과 같습니다.

  • 경험이 풍부한 전담 보안 팀을 구성하여 소프트웨어의 모든 보안 관련 조치를 공정한 방식으로 간과하고 지시해야 합니다. 이 팀은 가급적이면 프로젝트 관리 사무실 외부에 배치되며 보안 책임자, 보안 설계자 및 보안 테스터로 구성되어야 합니다. 모든 팀 구성원은 명확하게 정의된 역할과 책임이 있어야 합니다.
  • 프로젝트의 보안 문제와 관련된 모든 모호성 또는 에스컬레이션은 제품 보안 담당자가 처리해야 합니다. 그는 올바른 결정이 내려졌는지 확인하기 위해 보안 팀의 조언을 받아야 합니다.
  • 제품 보안에 대한 변경 사항이 보안 팀에 의해 눈에 띄지 않도록 보안 연락 창구를 설정해야 합니다.

SDLC의 아키텍처 및 설계 단계

설계 단계에서 상세한 제품 보안 위험 평가를 수행해야 합니다. 여기에는 코딩 단계에 들어가지 않은 상태에서 보안 관점에서 프로그램을 검토하는 것이 포함됩니다. 다음 단계에 들어가기 전에 모든 보안 위험을 제거해야 합니다. 보안을 보장하기 위해 모든 평가는 산업 표준에 따라 수행되어야 합니다.

이 단계에서 처리해야 하는 사항은 다음과 같습니다.

  • 프로젝트 팀이 공유한 세부 사항에 따라 모든 기능, 요구 사항, 사용자 스토리 및 디자인 문서를 검토합니다. 필요한 서류가 없는 경우에는 프로젝트 팀 구성원이 모든 것을 명확하게 논의해야 합니다.
  • 프로그램의 보안 요구 사항에 있는 모든 격차는 사용 중인 산업 표준과 비교하여 식별되고 평가되어야 합니다. 필요한 경우 식별된 격차에 따라 위협 모델을 생성할 수 있습니다.
  • 충분한 보안 위험이 있는 격차를 나열하고 실행 가능한 완화 방법을 제안해야 합니다.

SDLC 개발 단계

이것이 소프트웨어의 실제 "개발"입니다. 애플리케이션의 보안 레이아웃이 준비된 후 개발자는 보안 지침에 따라 코드를 작성해야 합니다. 여기에는 다음이 포함됩니다.

  • 알려진 취약점이 없는 오픈 소스 구성 요소 사용.
  • 소프트웨어 개발 전반에 걸쳐 합의된 보안 조치를 사용합니다.
  • 코드의 취약점을 노출하고 완화하기 위해 코드를 콜드 테스트합니다.

일부 테스트도 단계에서 수행됩니다. 여기에는 민감한 데이터가 일반 텍스트로 전송되지 않도록 하는 등이 포함될 수 있습니다.

SDLC 구현 단계

소프트웨어가 개발되면 다음 단계는 동적 코드 분석입니다. 이것은 OWASP(Open Web Application Project) 테스트라고도 하는 애플리케이션 보안 테스트의 한 형태입니다.

솔루션이 실생활에 구현되기 전에 취약점 분석 및 침투 테스트가 수행됩니다. 이 검사가 수행되는 소프트웨어 버전을 테스트 빌드라고 합니다. 이에 대해 주목해야 할 주요 사항은 다음과 같습니다.

  • HP WebInspect, ZAP, Burp Suite 및 SOAP와 같은 도구는 다양한 취약성 데이터베이스에 대해 소프트웨어의 취약성을 확인하는 데 사용됩니다.
  • 이 전체 단계는 자동화와 수동 테스트가 혼합된 것입니다.
  • 이 과정은 실제에 가까운 테스트 시나리오를 보장하기 위해 개발 환경과 연결되지 않은 독립적인 환경에서 수행됩니다.
  • 이 단계에서 발견된 모든 취약점은 소프트웨어를 출시하기 전에 완화됩니다.
  • 이 단계에서 일반적이고 일반적인 위협을 식별하고 이를 방지하기 위한 조치를 취합니다.

결론

소프트웨어에 대한 의존도가 계속 증가함에 따라 사용자를 위해 소프트웨어를 안전하게 만드는 것이 중요합니다. 소프트웨어와 애플리케이션이 보안 면에서 최고인지 확인하기 위해 Secure SDLC 방식이 채택되었습니다. 궁극적인 목표는 항상 무적의 소프트웨어 솔루션을 만드는 것입니다.

보안 SDLC 프로세스는 요구 사항 수집부터 배포 전 테스트까지 5단계로 구성됩니다. 초점은 모든 단계에서 위협과 취약성을 완화하여 다음 단계로 넘어가지 않도록 하는 것입니다.