클라우드용 Microsoft Defender에서 GitHub Advanced Security의 기본 통합을 설정합니다.

이 가이드에서는 GHAS(GitHub Advanced Security) 및 클라우드용 Microsoft Defender 통합 엔드 투 엔드의 유효성을 검사하는 데 도움이 되는 사용 사례와 통합하는 데 도움이 되는 설정 단계 및 기타 작업을 제공합니다. 이러한 통합을 통해 런타임 위험과 컨텍스트를 원래 코드와 상호 연결하여 Microsoft의 클라우드 네이티브 애플리케이션 보안을 최대화하여 AI 기반의 빠른 수정을 수행할 수 있습니다.

이 가이드에 따라 다음을 수행합니다.

  • 클라우드용 Defender 적용 범위에 대한 GitHub 리포지토리를 설정합니다.
  • 런타임 위험 요소를 만듭니다.
  • 클라우드용 Defender에서 실제 사용 사례를 테스트합니다.
  • 런타임 리소스에 코드를 연결합니다.
  • GitHub 보안 캠페인을 시작합니다. 이 캠페인은 런타임 컨텍스트를 사용하여 GHAS 보안 경고의 우선 순위를 지정합니다.
  • 클라우드용 Defender에서 GitHub 문제를 만들어 수정을 시작합니다.
  • 엔지니어링 및 보안 팀 간의 루프를 닫습니다.

필수 조건

측면 세부 정보
환경 요구 사항 - 클라우드용 Defender에서 커넥터가 생성된 GitHub 계정
- GitHub Advanced Security(GHAS) 라이선스가 연결된 리포지토리에 적용됩니다.
- 구독에서 사용하도록 설정된 Defender Cloud Security Posture Management(DCSPM) 계획
- Microsoft Security Copilot(AI 기반 자동화 수정의 경우 선택 사항)
역할 및 권한 - 보안 관리자 권한
- Azure 구독의 보안 관리자(클라우드용 Defender에서 결과를 보려면)
- GitHub 조직 소유자(리포지토리 연결 및 보안 캠페인 구성)
클라우드 환경 - 상용 클라우드에서만 사용할 수 있음(Azure Government, 21Vianet 또는 기타 소버린 클라우드에서 작동하는 Azure 아님)

환경 준비

1단계: GitHub 리포지토리 설정 및 워크플로 실행

통합을 테스트하려면 사용자 고유의 리포지토리 또는 모든 콘텐츠가 포함된 테스트 GitHub 리포지토리가 있는 > 테스트 샌드박스 프로젝트 사용하여 취약한 컨테이너 이미지를 빌드합니다.

  1. Azure Portal에 로그인합니다.

  2. 클라우드용 Microsoft Defender>DevOps 보안 이동합니다.

  3. 검색 창에 코드 리포지토리 이름을 입력합니다(예: zava-webshop).

  4. 실제로 모니터링 중인 조직에 속하는지 확인합니다(예: zava-corporation org).

  5. 리포지토리에 대한 결과가 있는지 여부를 확인합니다.

  6. 보안고급 보안 상태켜짐으로 설정되어 있는지 확인합니다. 이는 모니터링되는 리포지토리 - >(온보딩된 리포지토리)에 GitHub Advanced Security가 활성화되어 있음을 나타냅니다.

  7. 리포지토리를 찾을 수 없는 경우 문제 해결 및 GitHub 커넥터 온보딩을 위해 클라우드용 Microsoft Defender 설명서를 참조하세요.

  8. GitHub 커넥터에 대해 에이전트 없는 검사가 켜져 있는지 확인합니다.

     에이전트리스 코드 스캐닝이 설정된 Defender CSPM 계획 구성 스크린샷 및 모든 스캐너 옵션 활성화됨.

2단계: 환경이 준비되어 있는지 확인

유효성 검사를 통해 런타임 권장 사항을 표시하고 실행 가능한 결과를 생성하도록 환경이 올바르게 구성되었는지 확인합니다. 이 단계에서 Defender는 다음을 확인합니다.

런타임 표시 유형에 대한 전체 코드

  • 클라우드용 Microsoft Defender 소스 코드 리포지토리에서 보안 취약성을 지속적으로 모니터링합니다.
  • 컨테이너 이미지와 같은 빌드 아티팩트가 배포 전에 컨테이너 레지스트리에서 검색됩니다.
  • Kubernetes 클러스터에 배포된 런타임 워크로드는 보안 위험을 모니터링합니다.
  • 클라우드용 Defender 코드에서 빌드 및 배포를 통해 런타임 및 백에 이르기까지 각 아티팩트 상관 관계를 지정하고 추적합니다.

비고

다음 결과를 보려면 이전 단계가 적용된 후 최대 24시간이 걸릴 수 있습니다.

GitHub 에이전트리스 스캐닝이 리포지토리를 탐지하는지 테스트합니다.

클라우드용 Microsoft Defender>Cloud 보안 탐색기로 이동하여 쿼리를 수행합니다. 유효성 검사 쿼리는 Defender가 파이프라인 및 워크로드에서 생성된 아티팩트 식별할 수 있는지 여부를 테스트합니다. 쿼리가 결과를 반환하는 경우 검색 및 상관 관계가 예상대로 작동한다는 것을 나타냅니다.

 컨테이너 이미지에 대한 GitHub 리포지토리 푸시 쿼리를 보여 주는 클라우드용 Defender 클라우드 보안 탐색기의 스크린샷.

비고

결과가 반환되지 않으면 아티팩트가 아직 생성되지 않았거나, 검사가 구성되지 않았거나, 사용 권한이 없음을 나타낼 수 있습니다. 자세한 내용은 사용자 역할 및 권한을 참조하세요.

  1. 클라우드용 Defender(Azure Container Registry)가 컨테이너 이미지를 스캔하여 컨테이너를 만드는 데 사용했는지 확인합니다.

  2. 쿼리에서 특정 배포에 대한 조건을 추가합니다.

     취약성이 있는 컨테이너 이미지에 GitHub 리포지토리 푸시에 대한 쿼리를 보여 주는 클라우드용 Defender 클라우드 보안 탐색기의 스크린샷.

  3. 컨테이너가 실행 중이고 클라우드용 Defender가 AKS 클러스터를 검사했는지 확인합니다.

    클라우드용 Defender 클라우드 보안 탐색기의 스크린샷으로, 취약점이 있는 컨테이너 이미지에 대한 GitHub 푸시 쿼리를 보여줍니다.

  4. 위험 요소가 클라우드용 Defender 쪽에서 올바르게 구성되었는지 확인합니다. 클라우드용 Defender 인벤토리 페이지에서 컨테이너 이름을 검색하면 중요한 것으로 표시되어야 합니다.

비고

이 단계는 위험 요소가 사용자 환경에서 아직 구성되지 않은 경우에만 필요합니다. 위험 요소를 이미 사용하는 경우 설정 > 리소스 중요도에서 해당 구성을 확인할 수 있습니다.

유효성 검사가 성공하면 권장 사항, 캠페인 및 GitHub 문제 생성과 같은 후속 단계가 의미 있는 결과를 생성합니다.

비고

리소스를 중요로 분류한 후 클라우드용 Defender가 데이터를 GitHub 보내는 데 최대 12시간이 걸릴 수 있습니다. 자세히 알아보세요.

3단계: GitHub 캠페인 만들기

검사 캠페인을 만들려면 GitHub 조직 수준에서 작업해야 합니다. 이 환경은 개별 리포지토리 수준에서 사용할 수 없습니다.

  1. GitHub 설치 테스트에 사용한 GitHub 조직으로 이동합니다.

  2. 보안>캠페인>캠페인 만들기>코드 검사 필터에서 선택합니다.

  3. 이 캠페인은 실제로 배포되고 실행되는 코드에 속하는 GHAS 결과의 우선 순위를 지정하는 데 도움이 됩니다.

  4. 캠페인에 대한 런타임 위험 필터를 선택합니다.

    GitHub 코드 검사 캠페인 생성 화면의 스크린샷으로, 필터 표시줄, 필터 버튼, 및 아티팩트 메타데이터로 필터링하는 방법에 관한 도구 설명이 포함되어 있습니다.

     GitHub 캠페인 생성 시 고급 필터 대화 상자의 스크린샷으로, 런타임 위험 필터와 선택 가능한 위험 요소 메뉴가 열린 모습입니다.

  5. 저장>캠페인으로 게시를 선택합니다. 필요한 정보를 입력한 다음 캠페인을 게시합니다.

  6. 캠페인 발전을 추적합니다. 연체 상태, 캠페인 진행률 표시줄, 중요 경고 목록 및 필터 옵션을 보여 주는 GitHub 캠페인 페이지의 스크린샷

4단계: 권장 사항 동원

실행 중인 Containers VA 권장 사항 코드-런타임 기능 및 식별된 CVE와 Dependabot 보안 경고의 상관 관계를 사용하여 보안 문제의 상태를 파악합니다. 그런 다음 코드-런타임 매핑에 따라 관련 엔지니어링 팀에 해결에 대한 권장 사항을 할당할 수 있습니다.

  1. 클라우드용 Defender 포털에서 권장 사항 탭으로 이동합니다.

  2. 코드 리포지토리에서 만든 컨테이너의 이름을 검색합니다.

  3. 업데이트 소프트웨어 권장 사항 중 하나를 엽니다. 권장 사항 이름이 업데이트로 시작됩니다.

  4. 관련된 CVE 탭을 선택하십시오. 보안 경고는 권장 사항 평가 흐름의 일부로 표시됩니다. 이러한 경고는 엔지니어링에 이미 알려진 GitHub 고급 보안 결과에 대한 표시를 제공합니다. 일부 CVE ID에는 관련 GitHub 경고 열의 GitHub 보기 링크가 있습니다.

    클라우드용 Defender 결과 탭의 스크린샷으로 CVE-2024-21409 경고, 수정 상태, CVSS 점수 및 GitHub 경고 세부 정보 팝업을 보여줍니다.

링크를 선택하여 관련 GHAS 보안 경고를 엽니다. (GitHub GHAS 경고 콘텐츠를 보려면 관련 GitHub 리포지토리에 대한 액세스 권한이 있어야 합니다. 액세스 권한이 없는 경우 나중에 사용할 링크를 항상 복사하거나 GitHub 관리자에게 문의할 수 있습니다.)

경고 보강이 있다면, 엔지니어링에 이미 알려진 매칭된 Dependabot 경고가 있는 것입니다. 상태가 활성 상태인 경우 아무도 아직 수정하지 않았으며 문제를 수정하려면 우선 순위를 지정해야 합니다.

보강 결과가 없는 경우, 이는 엔지니어링 팀이 알지 못하는 런타임 위험이 존재함을 나타내며, 이를 수정하기 위해 우선순위를 두어야 합니다.

다음 단계: 수정에 대한 관련 팀이 누구인지 어떻게 알 수 있나요? 수정 사항을 엔지니어링하는 데 도움이 되는 컨텍스트를 어떻게 알 수 있나요?

GitHub 문제 만들기

보안 팀과 엔지니어링 팀 간의 루프를 닫기 위해 엔지니어링 팀이 집중해야 하는 보안 문제의 우선 순위를 지정하는 GitHub 문제를 만들 수 있습니다. 이 우선순위에는 GHAS가 탐지하지 않았지만 직접 종속성의 일부가 아닌 CVE ID에 대해 클라우드용 Defender가 감지한 결과를 전달하는 것이 포함될 수 있습니다. 이러한 결과에는 기본 이미지, 운영 체제 또는 NGINX와 같은 소프트웨어의 취약성이 포함될 수 있습니다.

GitHub 문제는 수정 및 테스트를 용이하게 하는 데 도움이 되는 다른 런타임 및 컨테이너 SDLC 관련 컨텍스트를 포함하여 권장 사항의 범위에 있는 모든 CVE ID와 함께 원본의 코드 리포지토리에서 자동으로 생성됩니다.

권장 사항 보기에서 GitHub 문제를 명시적으로 생성하여 수정 작업을 추적할 수 있습니다.

  1. 수정 인사이트 탭으로 이동하여 코드-런타임 다이어그램을 봅니다. 다이어그램은 실행 중인 컨테이너를 코드 리포지토리의 컨테이너 이미지와 GitHub 원본의 코드 리포지토리에 매핑합니다.

    런타임 상자에서 위험 수준 및 작업 수행 메뉴가 열려 있는 코드-런타임 다이어그램을 보여 주는 수정 인사이트 스크린샷

    1. 수정 인사이트 탭에서 영향을 받는 런타임 상자를 검토하십시오.

    2. GitHub 문제가 이미 있는지 확인합니다. GitHub 문제가 이미 있는 경우 상자에 GitHub 아이콘이 표시됩니다. 아이콘을 마우스로 가리키면 문제 세부 정보를 볼 수 있습니다.

    3. 문제가 없고 필요한 권한이 있는 경우 새 GitHub 문제를 생성할 수 있습니다. 작업 수행을 선택합니다.

    4. 팝업에서 GitHub 문제 생성 옵션을 선택합니다.

    5. 문제가 성공적으로 생성된 경우 문제에 대한 링크가 포함된 팝업 알림이 표시됩니다. 이 문제는 원본의 코드 리포지토리에서 만들어집니다.

      클라우드용 Defender 및 보안과 같은 레이블이 있는 종속성의 열려 있는 문제를 보여주는 GitHub 문제 목록의 스크린샷

    비고

    Generate GitHub 이슈 옵션을 사용할 수 없는 경우 필요한 GitHub 또는 리포지토리 권한이 누락될 수 있습니다. 액세스를 요청하려면 GitHub 또는 리포지토리 관리자에게 문의하세요.

    GitHub 문제 목록의 스크린샷에서는 클라우드용 Defender 및 보안과 같은 레이블이 있는 종속성에 대한 열린 문제들을 보여줍니다.

    1. 소유권 및 상태 업데이트 추적 - GitHub에서 이루어진 문제 상태 또는 할당의 변경 사항은 클라우드용 Microsoft Defender에 반영되며, 추천 사항 보기에서 소유권 및 수정 진행 상황을 추적할 수 있습니다.

      GitHub 문제 세부 정보 팝업이 표시된 고위험 문제를 보여주는 클라우드용 Microsoft Defender 권장 사항 페이지의 스크린샷.

주체적 수정 사항 적용

GitHub 쪽에서 GitHub Copilot 라이선스가 있는 경우 GitHub 코딩 에이전트의 도움을 받아 문제를 해결할 수 있습니다.

  1. 문제에 GitHub 코딩 에이전트를 할당합니다.
  2. 생성된 수정 사항을 검토합니다.
  3. 수정 사항이 적절해 보이는 경우 적용합니다.
  4. 클라우드용 Defender가 문제 상태를 Closed로 업데이트하는 것을 관찰합니다.