이 가이드에서는 간단한 사용 사례로 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 리포지토리를 사용하여 취약한 컨테이너 이미지를 빌드합니다.
리포지토리를 설정하기 전에 다음을 확인합니다.
- 클라우드용 Defender 포털에서 사용하려는 GitHub 조직의 커넥터를 정의합니다. GitHub 환경을 클라우드용 Microsoft Defender에 연결의 단계를 따릅니다.
- GitHub 커넥터에 대한 에이전트 없는 코드 검사를 구성합니다. 에이전트 없는 코드 검사 구성(미리 보기)의 단계를 따릅니다.
- 통합에 프라이빗 리포지토리를 사용합니다.
- GitHub 조직에 다음 리포지토리를 복제합니다.
- https://github.com/build25-woodgrove/mdc-customer-playbook 이 리포지토리는 GHAS를 사용하도록 설정되었으며 Defender CSPM 사용하도록 설정된 Azure 테넌트에 온보딩됩니다.
리포지토리에서 다음 단계를 수행합니다.
- 설정으로 이동합니다.
- 왼쪽 창에서 비밀 및 변수 > 작업을 선택합니다. 그런 다음 새 리포지토리 비밀을 선택합니다.
- 리포지토리 또는 조직 수준에서 다음 비밀을 추가합니다.
| 변수 | 설명 |
|---|---|
| ACR_ENDPOINT | 컨테이너 레지스트리의 인증 서버입니다. |
| ACR_USERNAME | 컨테이너 레지스트리의 사용자 이름입니다. |
| ACR_PASSWORD | 컨테이너 레지스트리에 대한 암호입니다. |
메모
이러한 변수의 이름을 선택할 수 있습니다. 특정 패턴을 따를 필요는 없습니다.
다음 단계를 수행하여 Azure Portal에서 이 정보를 찾을 수 있습니다.
- 배포할 컨테이너 레지스트리를 선택합니다.
- 설정에서 액세스 키를 선택합니다.
- 액세스 키 창에는 인증 서버, 사용자 이름 및 암호에 대한 키가 표시됩니다.
리포지토리에서 작업을 선택하고, 빌드 및 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에서 이 통합을 감지하는 위험 요소 중 하나는 비즈니스 중요도입니다. 조직은 리소스에 중요 비즈니스용으로 레이블을 지정하는 규칙을 만들 수 있습니다.
- 클라우드용 Defender 포털에서 환경 설정>리소스 중요도로 이동합니다.
- 오른쪽 창에서 링크를 선택하여 Microsoft Defender를 엽니다.
- 새 분류 만들기를 선택합니다.
- 이름과 설명을 입력합니다.
- 쿼리 작성기에서 클라우드 리소스를 선택합니다. 유효성 검사를 위해 클러스터에 배포한 컨테이너의 이름과 동일한 리소스 이름을 설정하는 쿼리를 작성합니다. 그런 후 다음을 선택합니다.
- 자산 미리 보기 페이지에서 Microsoft Defender가 리소스를 이미 검색한 경우 컨테이너 이름이 K8s-container 또는 K8s-Pod의 자산 형식으로 표시됩니다. 이름이 아직 표시되지 않더라도 다음 단계를 계속 진행합니다.
- 중요도 수준을 선택한 다음 분류 규칙을 검토하고 제출합니다.
메모
Microsoft Defender는 컨테이너를 감지한 후 중요도 레이블을 컨테이너에 적용합니다. 이 프로세스는 최대 24시간이 소요될 수 있습니다.
3단계: 환경이 준비되어 있는지 확인
유효성 검사를 통해 런타임 권장 사항을 표시하고 실행 가능한 결과를 생성하도록 환경이 올바르게 구성되었는지 확인합니다.
이 단계에서는 Defender가 코드에서 런타임까지의 가시성을 전면적으로 검증합니다.
- 클라우드용 Microsoft Defender 소스 코드 리포지토리에서 보안 취약성을 지속적으로 모니터링합니다.
- 컨테이너 이미지와 같은 빌드 아티팩트가 배포 전에 컨테이너 레지스트리에서 검색됩니다.
- Kubernetes 클러스터에 배포된 런타임 워크로드는 보안 위험을 모니터링합니다.
- 클라우드용 Defender 코드에서 빌드 및 배포, 런타임 및 백까지 각 아티팩트 상관 관계를 지정하고 추적합니다.
메모
다음 결과를 보려면 이전 단계가 적용된 후 최대 24시간이 걸릴 수 있습니다.
GitHub 에이전트리스 검사가 리포지토리를 발견하는지 테스트합니다.
Cloud Security Explorer로 이동하여 쿼리를 수행합니다. 유효성 검사 쿼리는 Defender가 파이프라인 및 워크로드에서 생성된 아티팩트 식별할 수 있는지 여부를 테스트합니다. 쿼리가 결과를 반환하는 경우 검색 및 상관 관계가 예상대로 작동한다는 것을 나타냅니다.
메모
결과가 반환되지 않으면 아티팩트가 아직 생성되지 않았거나, 검사가 구성되지 않았거나, 사용 권한이 누락되었음을 나타낼 수 있습니다.
- 클라우드용 Defender(Azure Container Registry)가 컨테이너 이미지를 스캔하여 컨테이너를 만드는 데 사용했는지 확인합니다.
- 쿼리에서 특정 배포에 대한 조건을 추가합니다.
- 컨테이너가 실행 중이고 클라우드용 Defender가 AKS 클러스터를 검사했는지 확인합니다.
- 위험 요소가 클라우드용 Defender 쪽에서 올바르게 구성되었는지 확인합니다. 클라우드용 Defender 인벤토리 페이지에서 컨테이너 이름을 검색하면 중요한 것으로 표시되어야 합니다.
메모
이 단계는 위험 요소가 사용자 환경에서 아직 구성되지 않은 경우에만 필요합니다.
유효성 검사가 성공하면 권장 사항, 캠페인 및 GitHub 문제 생성과 같은 후속 단계가 의미 있는 결과를 생성합니다.
다음 단계
클라우드용 Microsoft Defender와 GitHub Advanced Security 네이티브 통합을 설정합니다 - 클라우드용 Microsoft Defender GitHub 고급 보안 통합은 무엇인가요?
- 빠른 시작: 클라우드용 Microsoft Defender에 GitHub 환경 연결