소개

완료됨

최신 애플리케이션은 오픈 소스 구성 요소 및 타사 라이브러리에 크게 의존합니다. 이러한 종속성은 개발을 가속화하고 입증된 기능을 제공하지만 보안 취약성 및 라이선스 준수 위험도 발생합니다. SCA(소프트웨어 컴퍼지션 분석) 는 소프트웨어 공급망의 보안 및 규정 준수 위험을 식별, 추적 및 관리하기 위한 자동화된 도구와 프로세스를 제공합니다.

조직에서는 체계적인 종속성 분석이 없으면 위반이 발생할 때까지 애플리케이션의 취약성을 인식하지 못합니다. 보안 연구원은 매년 오픈 소스 구성 요소에서 수천 개의 새로운 취약성을 발견하며, 영향을 받는 버전을 사용하는 애플리케이션은 종속성이 업데이트될 때까지 취약한 상태를 유지합니다. 수백 개의 애플리케이션에서 종속성을 수동으로 추적하는 것은 실용적이지 않고 자동화된 SCA 솔루션이 요구됩니다.

이 모듈에서는 개발 워크플로에서 소프트웨어 컴퍼지션 분석을 구현하는 방법에 대한 포괄적인 지침을 제공합니다. SCA 기본 사항을 알아보고, GitHub Dependabot을 사용하여 자동화된 취약성 검색을 구현하고, SCA 도구를 Azure Pipelines에 통합하고, 컨테이너 검사를 자동화하고, 보안 경고를 해석하여 수정의 우선 순위를 효과적으로 지정합니다.

학습할 내용

이 모듈에서는 소프트웨어 컴퍼지션 분석을 구현하기 위한 필수 지식을 다룹니다.

  • 소프트웨어 컴퍼지션 분석 이해: SCA가 무엇인지, 최신 개발에 중요한 이유, SCA 도구가 검색하는 것, 자동화된 종속성 검사의 이점에 대해 알아보세요. SCA 기본 사항을 이해하면 수동 종속성 관리가 확장되지 않는 이유와 자동화된 도구가 보안 및 규정 준수 위험에 대한 지속적인 가시성을 제공하는 방법을 인식할 수 있습니다.

  • 코드 베이스 검사 및 유효성 검사: 애플리케이션의 모든 종속성을 인벤토리로 작성하고, 법적 문제를 방지하기 위해 라이선스 규정 준수의 유효성을 검사하고, CVE 데이터베이스를 통해 알려진 보안 취약성을 검색하고, 유지 관리 상태 및 커뮤니티 상태를 포함한 종속성 품질을 평가하는 방법을 알아봅니다.

  • GitHub Dependabot 구현: GitHub Dependabot이 자동으로 취약성에 대한 종속성을 검색하고, 보안 업데이트를 사용하여 끌어오기 요청을 만들고, 전이적 종속성을 보여주는 종속성 그래프를 생성하고, 중앙 집중식 취약성 관리를 위해 GitHub 보안 탭과 통합하는 방법을 알아봅니다.

  • 파이프라인에 SCA 통합: 빌드 및 배포 중에 Azure Pipelines에서 자동화된 검사를 구현하고, Mend(WhiteSource), Snyk 및 OWASP 종속성 검사를 포함한 SCA 도구를 구성하고, 중요한 취약성이 감지될 때 빌드에 실패하는 품질 게이트를 설정하고, 규정 준수 및 투명성을 위해 SBOM(소프트웨어 청구서)을 생성하는 방법을 살펴봅니다.

  • SCA 도구 검사: 강점, 제한 사항 및 이상적인 사용 사례를 이해하는 다양한 SCA 솔루션을 비교합니다. 다루는 도구에는 지원으로 포괄적인 스캐닝을 제공하는 Mend 및 Snyk와 같은 상용 제품, 비용 효율적인 검사를 위한 OWASP Dependency-Check 같은 오픈 소스 옵션, Azure Artifacts 업스트림 원본 및 GitHub Dependabot과 같은 플랫폼 통합 솔루션이 포함됩니다.

  • 컨테이너 검색 자동화: 컨테이너 기본 이미지에서 취약성을 검사하고, 컨테이너 내의 애플리케이션 종속성을 분석하고, 컨테이너 검사를 CI/CD 파이프라인에 통합하고, 취약한 이미지를 자동으로 차단하도록 Azure Container Registry 및 Docker Hub와 같은 컨테이너 레지스트리를 구성하는 방법을 알아봅니다.

  • 스캐너 경고 해석: CVSS 점수를 사용하여 취약성 심각도를 평가하고, 애플리케이션에서 취약점에 연결할 수 있는지 여부를 고려하여 취약점 악용 가능성을 결정하고, 비즈니스에 미치는 영향과 위험에 따라 수정의 우선 순위를 지정하며, 적절하게 필터링되지 않은 경우 팀을 압도할 수 있는 거짓 양성 문제를 관리하는 방법을 배울 수 있습니다.

학습 목표

이 모듈을 완료하면 다음을 수행할 수 있습니다.

  • SCA(소프트웨어 컴퍼지션 분석)를 이해하고 오픈 소스 구성 요소에서 빌드된 최신 애플리케이션에서 보안 및 규정 준수 위험을 관리하기 위해 자동화된 종속성 검사가 필요한 이유를 인식합니다.
  • 전이적 종속성을 비롯한 모든 종속성을 인벤토리화하고, 라이선스 규정 준수의 유효성을 검사하고, CVE 데이터베이스를 통해 알려진 취약성을 검색하고, 종속성 품질을 평가하여 코드 베이스를 검사하고 유효성을 검사합니다.
  • GitHub Dependabot을 구현 하여 취약한 종속성을 자동으로 검색하고, 보안 업데이트를 사용하여 끌어오기 요청을 수신하고, 종속성 그래프를 시각화하고, 취약성 경고를 GitHub 보안 탭과 통합합니다.
  • 빌드 중에 자동화된 검사를 구현하고, 중요한 취약성에 대한 빌드에 실패하는 품질 게이트를 구성하고, 규정 준수 보고서를 생성하고, SBOM(소프트웨어 청구서)을 만들어 SCA 검사를 Azure Pipelines에 통합합니다.
  • Mend(WhiteSource) 및 Snyk와 같은 상용 솔루션, OWASP Dependency-Check와 같은 오픈 소스 도구 및 Azure Artifacts 업스트림 원본과 같은 플랫폼 통합 솔루션을 포함한 SCA 도구를 검사하고 구성합니다.
  • 컨테이너 이미지 검사를 자동화 하여 기본 이미지 및 애플리케이션 종속성에서 취약성을 감지하고, CI/CD 워크플로에 검사를 통합하고, 취약한 컨테이너 배포를 방지하도록 레지스트리를 구성합니다.
  • CVSS 점수를 사용해 심각도를 평가하고, 악용 가능성 및 도달 가능성을 결정하며, 비즈니스에 대한 영향에 따라 조치의 우선순위를 지정하고, 거짓 양성을 효과적으로 관리함으로써 검사 도구의 경고를 해석합니다.

필수 구성 요소

이 모듈을 시작하기 전에 다음이 필요합니다.

  • 소프트웨어 종속성에 대한 이해: 애플리케이션이 npm, pip, NuGet 또는 Maven과 같은 패키지 관리자의 라이브러리, 프레임워크 및 패키지를 사용하는 방법에 대한 기본 지식입니다.
  • DevOps 개념에 대한 숙지: 지속적인 통합, 지속적인 업데이트, 빌드 파이프라인 및 소프트웨어 개발 수명 주기에 대한 이해
  • 버전 제어 환경: 일반적으로 종속성 관리가 발생하는 Git, 끌어오기 요청 및 코드 검토 워크플로에 대한 기본 환경입니다.
  • 오픈 소스 인식: 오픈 소스 구성 요소에 보안 취약성이 포함될 수 있고 라이선스 요구 사항이 있을 수 있다는 일반적인 이해(이전 모듈의 지식이 유용합니다).
  • Azure DevOps 또는 GitHub 환경: CI/CD 워크플로에서 자동화된 검사를 구현하기 위한 Azure Pipelines 또는 GitHub Actions에 대해 잘 알고 있습니다.

소프트웨어를 제공하는 조직에서 작업한 경험은 유익하지만 필수는 아닙니다. 이 모듈은 오픈 소스 소프트웨어 개념을 기반으로 하며 소프트웨어 컴퍼지션 분석에 대한 실질적인 구현 지침을 제공합니다.