클라우드용 Microsoft Defender와 GitHub 고급 보안 통합 – 샌드박스 프로젝트

이 가이드에서는 간단한 사용 사례로 GitHub GHAS(Advanced Security) 및 클라우드용 Microsoft Defender 통합 종단 간을 평가하는 데 도움이 되는 샌드박스 프로젝트에 대한 설정 단계를 제공합니다.

이러한 통합을 통해 런타임 위험과 컨텍스트를 원래 코드와 상호 연결하여 Microsoft의 클라우드 네이티브 애플리케이션 보안을 최대화하여 AI 기반의 빠른 수정을 수행할 수 있습니다.

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

  • 클라우드용 Defender 적용 범위에 대한 GitHub 리포지토리를 설정합니다.
  • 런타임 위험 요소를 만듭니다.
  • 런타임 리소스에 코드를 연결합니다.
  • 클라우드용 Defender에서 실제 사용 사례를 테스트합니다.

Prerequisites

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

환경 준비

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

통합을 테스트하려면 이미 모든 콘텐츠가 있는 샌드박스 예제 GitHub 리포지토리를 사용하여 취약한 컨테이너 이미지를 빌드합니다.

리포지토리를 설정하기 전에 다음을 확인합니다.

  1. GitHub 조직에 다음 리포지토리를 복제합니다.
  1. 리포지토리에서 다음 단계를 수행합니다.

    1. 설정으로 이동합니다.
    2. 왼쪽 창에서 비밀 및 변수 > 작업을 선택합니다. 그런 다음 새 리포지토리 비밀을 선택합니다.
    3. 리포지토리 또는 조직 수준에서 다음 비밀을 추가합니다.
변수 설명
ACR_ENDPOINT 컨테이너 레지스트리의 인증 서버입니다.
ACR_USERNAME 컨테이너 레지스트리의 사용자 이름입니다.
ACR_PASSWORD 컨테이너 레지스트리에 대한 암호입니다.

메모

이러한 변수의 이름을 선택할 수 있습니다. 특정 패턴을 따를 필요는 없습니다.

다음 단계를 수행하여 Azure Portal에서 이 정보를 찾을 수 있습니다.

  1. 배포할 컨테이너 레지스트리를 선택합니다.
  2. 설정에서 액세스 키를 선택합니다.
  3. 액세스 키 창에는 인증 서버, 사용자 이름 및 암호에 대한 키가 표시됩니다.

리포지토리에서 작업을 선택하고, 빌드 및 ACR 워크플로로 푸시 를 선택한 다음, 워크플로 실행을 선택합니다.

이미지가 컨테이너 레지스트리에 배포되었는지 확인합니다. 예제 리포지토리의 경우 이미지는 태그mdc-mock-0001를 사용하여 호출 mdc-ghas-integration 된 레지스트리에 있어야 합니다.

클러스터에서 실행 중인 컨테이너와 동일한 이미지를 배포합니다. 이 단계를 완료하는 한 가지 방법은 클러스터에 연결하고 명령을 사용하는 것입니다 kubectl run . AKS(Azure Kubernetes Service)의 예는 다음과 같습니다.

클러스터 구독을 설정합니다.

az account set --subscription $subscriptionID

클러스터에 대한 자격 증명을 설정합니다.

az aks get-credentials --resource-group $resourceGroupName --name $kubernetesClusterName --overwrite-existing

이미지를 배포합니다.

kubectl run $containerName --image=$registryName.azurecr.io/mdc-mock-0001:mdc-ghas-integration

2단계: 위험 요소 예제 만들기(중요 비즈니스용 규칙)

클라우드용 Defender에서 이 통합을 감지하는 위험 요소 중 하나는 비즈니스 중요도입니다. 조직은 리소스에 중요 비즈니스용으로 레이블을 지정하는 규칙을 만들 수 있습니다.

  1. 클라우드용 Defender 포털에서 환경 설정>리소스 중요도로 이동합니다.
  2. 오른쪽 창에서 링크를 선택하여 Microsoft Defender를 엽니다.
  3. 새 분류 만들기를 선택합니다.
  4. 이름과 설명을 입력합니다.
  5. 쿼리 작성기에서 클라우드 리소스를 선택합니다. 유효성 검사를 위해 클러스터에 배포한 컨테이너의 이름과 동일한 리소스 이름을 설정하는 쿼리를 작성합니다. 그런 후 다음을 선택합니다.
  6. 자산 미리 보기 페이지에서 Microsoft Defender가 리소스를 이미 검색한 경우 컨테이너 이름이 K8s-container 또는 K8s-Pod의 자산 형식으로 표시됩니다. 이름이 아직 표시되지 않더라도 다음 단계를 계속 진행합니다.
  7. 중요도 수준을 선택한 다음 분류 규칙을 검토하고 제출합니다.

메모

Microsoft Defender는 컨테이너를 감지한 후 중요도 레이블을 컨테이너에 적용합니다. 이 프로세스는 최대 24시간이 소요될 수 있습니다.

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

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

이 단계에서는 Defender가 코드에서 런타임까지의 가시성을 전면적으로 검증합니다.

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

메모

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

GitHub 에이전트리스 검사가 리포지토리를 발견하는지 테스트합니다.

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

메모

결과가 반환되지 않으면 아티팩트가 아직 생성되지 않았거나, 검사가 구성되지 않았거나, 사용 권한이 누락되었음을 나타낼 수 있습니다.

  • 클라우드용 Defender(Azure Container Registry)가 컨테이너 이미지를 스캔하여 컨테이너를 만드는 데 사용했는지 확인합니다.
  • 쿼리에서 특정 배포에 대한 조건을 추가합니다.
  • 컨테이너가 실행 중이고 클라우드용 Defender가 AKS 클러스터를 검사했는지 확인합니다.
  • 위험 요소가 클라우드용 Defender 쪽에서 올바르게 구성되었는지 확인합니다. 클라우드용 Defender 인벤토리 페이지에서 컨테이너 이름을 검색하면 중요한 것으로 표시되어야 합니다.

메모

이 단계는 위험 요소가 사용자 환경에서 아직 구성되지 않은 경우에만 필요합니다.

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

다음 단계