클라우드용 Microsoft Defender 에이전트 없는 코드 검색
클라우드용 Microsoft Defender의 에이전트리스 코드 스캔은 Azure DevOps의 모든 리포지토리에 대해 빠르고 확장 가능한 보안 범위를 제공합니다. 에이전트 또는 CI/CD(지속적인 통합 및 지속적인 배포) 파이프라인 변경 없이 코드 및 IaC(Infrastructure-as-code) 설정의 취약성을 빠르게 찾습니다. 이 방법은 단일 Azure DevOps 커넥터를 사용하여 설정 및 유지 관리를 간소화하고 광범위한 범위, 지속적인 인사이트 및 실행 가능한 보안 결과를 제공합니다. 이를 통해 보안 및 개발 팀은 개발 워크플로를 중단하지 않고도 위험을 원활하게 해결하는 데 집중할 수 있습니다.
필수 조건
릴리스 상태: 공개 미리 보기
지원되는 사용 사례:
클라우드: Azure 상용 클라우드
지원되는 지역: 오스트레일리아 동부, 캐나다 중부, 미국 중부, 동아시아, 미국 동부, 북유럽, 스웨덴 중부, 영국 남부, 서유럽
지원되는 환경: Azure DevOps 커넥터
역할 및 권한:
커넥터를 설정하고 구성하려면 다음을 수행합니다.
- 프로젝트 컬렉션 관리자: 초기 설정을 수행하려면 Azure DevOps에서 필요합니다.
- 구독 기여자: 커넥터를 만들고 구성하려면 Azure 구독에 필요합니다.
보안 결과를 보려면 다음을 수행합니다.
- 보안 관리자: 보안 설정, 정책 및 경고를 관리할 수 있지만 커넥터를 수정할 수는 없습니다.
- 보안 읽기 권한자: 권장 사항, 경고 및 정책을 볼 수 있지만 변경할 수는 없습니다.
주요 혜택
- 사전 위험 관리: 개발 프로세스 초기에 위험을 식별합니다. 이렇게 하면 안전한 코딩 사례를 지원하고 프로덕션에 도달하기 전에 취약성을 줄일 수 있습니다.
- 간편한 온보딩: 최소한의 구성으로 신속하게 설정하고 파이프라인을 변경하지 않습니다.
- 엔터프라이즈 규모 중앙 집중식 관리: 단일 커넥터를 사용하여 여러 리포지토리에서 코드를 자동으로 검색합니다. 이렇게 하면 대규모 환경에 대한 광범위한 적용 범위가 제공됩니다.
- 빠른 수정을 위한 신속한 인사이트: 온보딩 직후 실행 가능한 취약성 인사이트를 받습니다. 이렇게 하면 빠른 수정이 가능하고 노출 시간이 줄어듭니다.
- 개발자 친화적이고 원활한 기능: CI/CD(지속적인 통합 및 지속적인 배포) 파이프라인과 독립적으로 작동하며, 변경이나 개발자의 직접적인 개입이 필요하지 않습니다. 이를 통해 개발자 생산성 또는 워크플로를 방해하지 않고도 지속적인 보안 모니터링을 수행할 수 있습니다.
위험 검색 기능
에이전트 없는 코드 검색은 코드 및 IaC(Infrastructure-as-Code) 템플릿 모두에 대한 대상 보안 권장 사항을 제공하여 보안을 향상시킵니다. 이는 커넥터를 통해 제공되는 CSPM(Foundational Cloud Security Posture Management) 보안 권장 사항 외에 추가됩니다. 주요 검색 기능에는 다음이 포함됩니다.
- 코드 취약성: 여러 프로그래밍 언어에서 일반적인 코딩 오류, 안전하지 않은 코딩 사례 및 알려진 취약성을 찾습니다.
- 코드 기반 인프라 구성 오류: 안전하지 않은 배포로 이어질 수 있는 IaC 템플릿의 보안 구성 오류를 검색합니다.
커넥터를 만들면 리포지토리, 파이프라인 및 서비스 연결에 대한 기본 보안 권장 사항 집합을 제공하여 보안을 강화합니다.
검사 도구
에이전트 없는 코드 검색은 다양한 오픈 소스 도구를 사용하여 코드 및 IaC(Infrastructure-as-Code) 템플릿에서 취약성 및 잘못된 구성을 찾습니다.
도구 | 지원되는 IaC/언어 | 라이선스 |
---|---|---|
Bandit | Python | Apache 2.0 |
Checkov | Terraform IaC 템플릿, Terraform 계획 파일, AWS CloudFormation 템플릿, Kubernetes 매니페스트 파일, Helm 차트 파일, Dockerfiles, ARM(Azure Azure Resource Manager) IaC 템플릿, Azure Bicep IaC 템플릿, AWS SAM 템플릿(서버리스 애플리케이션 모델), Kustomize 파일, 서버리스 프레임워크 템플릿, OpenAPI 사양 파일 | Apache 2.0 |
ESLint | JavaScript, TypeScript, JSX, TSX | MIT |
템플릿 분석기 | ARM IaC 템플릿, Bicep IaC 템플릿 | MIT |
Terrascan | Terraform IaC 템플릿(HCL2), Kubernetes 매니페스트 파일(YAML/JSON), Dockerfiles, AWS CloudFormation 템플릿(YAML/JSON), Azure ARM IaC 템플릿, Helm 차트 파일(v3), Kustomize 파일 | Apache 2.0 |
이러한 도구는 광범위한 언어 및 IaC 프레임워크를 지원하여 코드베이스 전체에서 철저한 보안 분석을 보장합니다.
지원되는 플랫폼 및 파일 형식
버전 제어 시스템
- Azure DevOps: Azure DevOps 커넥터를 통해 연결된 리포지토리에 대한 전체 지원.
프로그래밍 언어
- Python
- JavaScript/TypeScript
IaC(Infrastructure-as-Code) 플랫폼 및 구성
IaC 플랫폼 | 지원되는 파일 형식 | 참고 |
---|---|---|
Terraform | .tf , .tfvars |
의 변수 파일을 포함하여 HCL2 언어로 Terraform IaC 템플릿을 .tfvars 지원합니다. |
Terraform 계획 | JSON 파일 | 분석 및 검사에 사용되는 계획된 구성을 나타내는 JSON 파일을 포함합니다. |
AWS CloudFormation | JSON, YAML 파일 | AWS 리소스를 정의하기 위한 AWS CloudFormation 템플릿을 지원합니다. |
Kubernetes | YAML, JSON 파일 | 클러스터에서 구성을 정의하기 위한 Kubernetes 매니페스트 파일을 지원합니다. |
Helm | Helm 차트 디렉터리 구조, YAML 파일 | Helm의 표준 차트 구조를 따릅니다. 는 Helm v3 차트 파일을 지원합니다. |
Docker | Dockerfile이라는 파일 | 컨테이너 구성에 대한 Dockerfiles를 지원합니다. |
Azure ARM 템플릿 | JSON 파일 | JSON 형식의 ARM(Azure Resource Manager) IaC 템플릿을 지원합니다. |
Azure Bicep | .bicep 파일 | ARM용 DSL(도메인별 언어)인 Bicep IaC 템플릿을 지원합니다. |
AWS SAM | YAML 파일 | 서버리스 리소스에 대한 AWS SAM(서버리스 애플리케이션 모델) 템플릿을 지원합니다. |
Kustomize | YAML 파일 | Kubernetes 사용자 지정(Kustomize)에 대한 구성 파일을 지원합니다. |
Serverless Framework | YAML 파일 | 서버리스 아키텍처를 정의하는 서버리스 프레임워크에 대한 템플릿을 지원합니다. |
OpenAPI | YAML, JSON 파일 | RESTful API를 정의하기 위한 OpenAPI 사양 파일을 지원합니다. |
Azure DevOps 조직에서 에이전트 없는 코드 검색 사용
Azure DevOps 조직을 클라우드용 Defender 에이전트 없는 코드 검색을 사용하도록 설정하려면 Azure DevOps 조직 연결의 지침을 참조하세요. 다음 시각적 개체는 원활한 온보딩을 위해 각 단계를 안내하는 빠르고 간단한 설정 프로세스를 보여줍니다.
에이전트 없는 코드 검색의 작동 방식
에이전트 없는 코드 검사는 CI/CD 파이프라인과 독립적으로 작동합니다. Azure DevOps 커넥터를 사용하여 코드 및 IaC(Infrastructure-as-Code) 구성을 자동으로 검색합니다. 파이프라인을 수정하거나 확장을 추가할 필요가 없습니다. 이 설정을 사용하면 여러 리포지토리에서 광범위하고 지속적인 보안 분석을 수행할 수 있습니다. 결과는 처리되고 클라우드용 Microsoft Defender 직접 표시됩니다.
검사 프로세스
커넥터 내에서 에이전트 없는 코드 검색 기능을 사용하도록 설정하면 검사 프로세스는 다음 단계를 수행합니다.
- 리포지토리 검색: 시스템은 커넥터를 만든 직후와 8시간마다 Azure DevOps 커넥터를 통해 연결된 모든 리포지토리를 자동으로 식별합니다.
- 코드 검색: 먼저 커넥터를 설치한 후 3~4일마다 분석을 위해 각 리포지토리의 기본(기본) 분기에서 최신 코드를 안전하게 검색합니다.
- 분석: 시스템은 클라우드용 Microsoft Defender 내에서 관리 및 업데이트되는 기본 제공 검사 도구 집합을 사용하여 코드 및 IaC 템플릿에서 취약성 및 잘못된 구성을 찾습니다.
- 결과 처리: 클라우드용 Defender 백 엔드를 통해 검색 결과를 처리하여 실행 가능한 보안 권장 사항을 만듭니다.
- 결과 전달: 시스템은 결과를 클라우드용 Defender 보안 권장 사항으로 표시하여 보안 팀이 문제를 검토하고 해결할 수 있도록 합니다.
스캔 빈도 및 기간
- 스캔 빈도:
- 리포지토리, 파이프라인 및 서비스 연결의 보안 상태는 커넥터를 만든 후 8시간마다 평가됩니다.
- 시스템은 커넥터를 만든 후 3~4일마다 코드 및 IaC(Infrastructure-as-Code) 템플릿에서 취약성을 검사합니다.
- 검사 기간: 검색은 일반적으로 리포지토리의 크기와 복잡성에 따라 15~60분 이내에 완료됩니다.
검사 결과 보기 및 관리
검사가 완료되면 클라우드용 Microsoft Defender 내에서 보안 결과에 액세스할 수 있습니다.
액세스 결과
클라우드용 Microsoft Defender 보안 권장 사항 탭으로 이동합니다.
다음과 같은 결과를 포함하는 권장 사항 목록을 검토합니다.
Azure DevOps 리포지토리에는 코드 검사 결과 해결이 있어야 합니다. 코드 리포지토리에 있는 취약성을 나타냅니다.
Azure DevOps 리포지토리에는 코드 검사 결과 해결 로 인프라가 있어야 합니다. 리포지토리 내의 IaC 템플릿 파일에서 검색된 보안 잘못된 구성을 가리킵니다.
Azure DevOps 커넥터에서 생성한 기타 보안 권장 사항은 다음과 같습니다.
- Azure DevOps 리포지토리에는 GHAzDO(Azure DevOps)에 대한 GitHub 고급 보안이 사용하도록 설정되어 있어야 합니다.
- Azure Pipelines에는 포크 빌드에 사용할 수 있는 비밀이 없어야 합니다.
- Azure DevOps 서비스 연결이 모든 파이프라인에 대한 액세스 권한을 부여해서는 안 됩니다.
- 비밀 변수가 있는 Azure DevOps 변수 그룹이 모든 파이프라인에 대한 액세스 권한을 부여해서는 안 됩니다.
- Azure DevOps 클래식 Azure 서비스 연결을 사용하여 구독에 액세스하면 안 됩니다.
- (미리 보기) Azure DevOps 리포지토리에는 코드 푸시에 대한 최소 2개 검토자 승인이 필요합니다.
- (미리 보기) Azure DevOps 리포지토리는 요청자가 자체 끌어오기 요청을 승인하도록 허용해서는 안 됩니다.
- (미리 보기) Azure DevOps Projects에는 클래식 파이프라인 만들기를 사용하지 않도록 설정해야 합니다.
- Azure DevOps 보안 파일은 모든 파이프라인에 대한 액세스 권한을 부여해서는 안 됩니다.
영향을 받는 파일, 심각도 수준 및 수정 지침을 포함하여 자세한 정보에 대한 권장 사항을 선택합니다.
에이전트 없는 코드 검색과 파이프라인 내 검사 간의 차이점
Microsoft Security DevOps 확장을 사용한 에이전트 없는 코드 검색 및 파이프라인 내 검색은 모두 Azure DevOps 내에서 보안 검사를 제공합니다. 그들은 다른 요구를 제공하지만 함께 잘 작동합니다. 다음 표에서는 보안 및 개발 요구 사항에 맞는 옵션을 선택하는 데 도움이 되는 주요 차이점을 강조 표시합니다.
측면 | 에이전트 없는 코드 검사 | 파이프라인 내 검사 |
---|---|---|
사용 사례 맞춤 | 개발자에게 최소한의 중단으로 광범위한 범위 제공 | 사용자 지정 가능한 컨트롤을 사용하여 자세한 파이프라인 통합 검사 제공 |
검사 범위 및 검사 | 3~4일마다 예약된 IaC(Infrastructure-as-Code) 및 코드 취약성 검사에 중점을 둡니다. | 각 파이프라인 실행에서 트리거되는 이진 파일 및 컨테이너 이미지를 포함하여 광범위한 적용 범위를 제공합니다. |
설치 및 구성 | 커넥터를 만든 후 추가 설정이 필요하지 않습니다. | 각 CI/CD 파이프라인에서 수동 설치 및 구성 필요 |
파이프라인 통합 | 워크플로를 수정하지 않고 (CI/CD) 파이프라인과 독립적으로 실행 | CI/CD 파이프라인 내에 통합되어 각 파이프라인에서 구성이 필요 |
스캐너 사용자 지정 | 스캐너를 사용자 지정하거나 선택적으로 실행할 수 없습니다. | 특정 스캐너, 범주, 언어, 민감도 수준 및 Microsoft 이외의 도구를 사용하여 사용자 지정할 수 있습니다. |
결과 및 피드백 | 클라우드용 Defender 내의 결과에 대한 액세스를 제공합니다. | CI/CD 파이프라인 내에서 거의 실시간으로 피드백을 제공하며 결과는 클라우드용 Defender |
중단 및 실패 조건 | 빌드를 중단할 수 없음 | 보안 결과의 심각도에 따라 빌드를 중단하도록 구성할 수 있습니다. |
확장성 및 성능 영향
에이전트 없는 코드 검색은 구독에서 리소스를 만들지 않으며 파이프라인 프로세스 중에 검색할 필요가 없습니다. Azure DevOps REST API를 사용하여 메타데이터 및 코드를 가져옵니다. 즉, API 호출은 Azure DevOps 속도 제한에 포함되지만 직접 데이터 전송 비용이 발생하지는 않습니다. 이 서비스는 검색을 관리하여 개발 환경을 중단하지 않고 Azure DevOps 속도 제한 내에 유지되도록 합니다. 이 메서드는 DevOps 워크플로에 영향을 주지 않고 리포지토리 전체에서 효율적이고 고성능 검사를 제공합니다. 자세한 내용은 Azure DevOps 속도 및 사용량 제한을 참조 하세요.
에이전트 없는 코드 검사에 대한 데이터 보안, 규정 준수 및 액세스 제어
클라우드용 Microsoft Defender 에이전트 없는 코드 검색 서비스는 엄격한 데이터 보안 및 개인 정보 보호 조치를 구현하여 코드의 안전하고 규정을 준수하는 처리를 보장합니다.
- 데이터 암호화 및 액세스 제어: 시스템은 업계 표준 프로토콜을 사용하여 전송 중인 모든 데이터를 암호화합니다. 권한 있는 클라우드용 Defender 서비스만 코드에 액세스할 수 있습니다.
- 데이터 보존 및 보존: 검사는 데이터 보호법을 준수하기 위해 Azure DevOps 커넥터(미국 또는 EU)와 동일한 지역에서 발생합니다. 시스템은 검색하는 동안에만 코드를 처리하고 장기 스토리지 없이 안전하게 삭제합니다.
- 리포지토리에 대한 액세스: 서비스는 검사를 수행하기 위해 Azure DevOps에 대한 보안 액세스 토큰을 생성합니다. 이 토큰을 사용하면 구독에서 리소스를 만들지 않고도 필요한 메타데이터 및 코드를 검색할 수 있습니다. 클라우드용 Defender 구성 요소만 액세스하여 데이터 무결성을 보호합니다.
- 규정 준수 지원: 이 서비스는 데이터 처리 및 개인 정보 보호에 대한 규정 및 보안 표준에 부합하여 지역 데이터 보호 요구 사항에 따라 고객 코드의 보안 처리 및 검사를 보장합니다.
이러한 조치는 데이터의 개인 정보 보호 및 무결성을 유지하면서 안전하고 규정을 준수하며 효율적인 코드 검사 프로세스를 보장합니다.
제한 사항(공개 미리 보기)
공개 미리 보기 단계에서는 다음과 같은 제한 사항이 적용됩니다.
이진 검색 없음: 시스템은 코드 및 IaC(Infrastructure-as-Code) 파일만 검색합니다.
스캔 빈도: 3~4일마다 리포지토리를 검사합니다.
리포지토리 크기: 검색을 1GB 미만의 리포지토리로 제한합니다.
분기 검사: 검사는 기본(기본) 분기만 포함합니다.
도구 사용자 지정: 스캔 도구를 사용자 지정할 수 없습니다.