Microsoft Security DevOps Azure DevOps 확장 구성

Microsoft Security DevOps는 정적 분석 도구를 개발 수명 주기에 통합하는 명령줄 애플리케이션입니다. Microsoft Security DevOps는 최신 버전의 정적 분석 도구(SDL/보안 및 규정 준수 도구 포함)를 설치, 구성 및 실행합니다. Microsoft Security DevOps는 여러 환경에서 결정적 실행을 가능하게 하는 이식 가능한 구성으로 데이터 기반입니다.

Microsoft Security DevOps는 다음 오픈 소스 도구를 사용합니다.

이름 언어 라이선스
AntiMalware 맬웨어를 검사하고 맬웨어가 검색되면 빌드를 중단시키는 Windows의 엔드포인트용 Microsoft Defender의 Windows 맬웨어 방지 보호입니다. 이 도구는 기본적으로 Windows 최신 에이전트를 검사합니다. 오픈 소스 아님
Bandit Python Apache License 2.0
BinSkim Binary--Windows, ELF MIT 라이선스
ESlint JavaScript MIT 라이선스
IaCFileScanner Terraform, CloudFormation, ARM 템플릿, Bicep 오픈 소스 아님
템플릿 분석기 ARM 템플릿, Bicep MIT 라이선스
Terrascan Terraform(HCL2), Kubernetes(JSON/YAML), Helm v3, Kustomize, Dockerfiles, Cloud Formation Apache License 2.0
Trivy 컨테이너 이미지, IaC(Infrastructure as Code) Apache License 2.0

참고 항목

2023년 9월 20일부터 Azure DevOps용 MSDO(Microsoft 보안 DevOps) 확장 내의 비밀 검사(CredScan) 도구가 더 이상 사용되지 않습니다. MSDO 비밀 검사는 Azure DevOps용 GitHub 고급 보안으로 바뀝니다.

필수 조건

  • 확장을 설치하려면 Azure DevOps 조직에 대한 프로젝트 컬렉션 관리자 권한이 필요합니다.

확장을 설치할 수 있는 액세스 권한이 없는 경우 설치 프로세스 중에 Azure DevOps 조직의 관리자로부터 액세스를 요청해야 합니다.

Microsoft Security DevOps Azure DevOps 확장 구성

Microsoft Security DevOps Azure DevOps 확장을 구성하려면 다음을 수행합니다.

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

  2. 쇼핑백>확장 관리로 이동합니다.

    확장 관리 화면으로 이동하는 방법을 보여 주는 스크린샷

  3. 공유됨을 선택합니다.

    참고 항목

    Microsoft Security DevOps 확장을 이미 설치한 경우 설치됨 탭에 나열됩니다.

  4. Microsoft 보안 DevOps를 선택합니다.

    Microsoft Security DevOps를 선택할 위치를 보여 주는 스크린샷

  5. 설치를 선택합니다.

  6. 드롭다운 메뉴에서 적합한 조직을 선택합니다.

  7. 설치를 선택합니다.

  8. 조직으로 이동을 선택합니다.

YAML을 사용하여 파이프라인 구성

YAML을 사용하여 파이프라인을 구성하려면 다음을 수행합니다.

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

  2. 프로젝트를 선택합니다.

  3. 파이프라인으로 이동합니다.

  4. 새 파이프라인을 선택합니다.

    DevOps에서 파이프라인 만들기를 찾을 위치를 보여 주는 스크린샷

  5. Azure Repos Git를 선택합니다.

    Azure 리포지토리 git을 선택하기 위해 이동할 위치를 보여 주는 스크린샷

  6. 관련 리포지토리를 선택합니다.

    리포지토리를 선택할 위치를 보여 주는 스크린샷

  7. 시작 파이프라인을 선택합니다.

    시작 파이프라인을 선택할 위치를 보여 주는 스크린샷

  8. 다음 YAML을 파이프라인에 붙여넣습니다.

    # Starter pipeline
    # Start with a minimal pipeline that you can customize to build and deploy your code.
    # Add steps that build, run tests, deploy, and more:
    # https://aka.ms/yaml
    trigger: none
    pool:
      # ubuntu-latest also supported.
      vmImage: 'windows-latest'
    steps:
    - task: MicrosoftSecurityDevOps@1
      displayName: 'Microsoft Security DevOps'
      inputs:    
      # command: 'run' | 'pre-job' | 'post-job'. Optional. The command to run. Default: run
      # config: string. Optional. A file path to an MSDO configuration file ('*.gdnconfig').
      # policy: 'azuredevops' | 'microsoft' | 'none'. Optional. The name of a well-known Microsoft policy. If no configuration file or list of tools is provided, the policy may instruct MSDO which tools to run. Default: azuredevops.
      # categories: string. Optional. A comma-separated list of analyzer categories to run. Values: 'code', 'artifacts', 'IaC', 'containers'. Example: 'IaC, containers'. Defaults to all.
      # languages: string. Optional. A comma-separated list of languages to analyze. Example: 'javascript,typescript'. Defaults to all.
      # tools: string. Optional. A comma-separated list of analyzer tools to run. Values: 'bandit', 'binskim', 'eslint', 'templateanalyzer', 'terrascan', 'trivy'.
      # break: boolean. Optional. If true, will fail this build step if any error level results are found. Default: false.
      # publish: boolean. Optional. If true, will publish the output SARIF results file to the chosen pipeline artifact. Default: true.
      # artifactName: string. Optional. The name of the pipeline artifact to publish the SARIF result file to. Default: CodeAnalysisLogs*.
    
    

    참고 항목

    클라우드용 Defender와 통합하려면 아티팩트 이름 'CodeAnalyticLogs'가 필요합니다. 추가 도구 구성 옵션 및 환경 변수는 Microsoft 보안 DevOps wiki를 참조하세요.

  9. 파이프라인을 커밋하려면 저장 및 실행을 선택합니다.

    파이프라인은 몇 분 동안 실행되고 결과를 저장합니다.

    참고 항목

    생성된 분석 결과가 검사 탭 아래에 자동으로 표시되도록 하려면 Azure DevOps 조직에 SARIF SAST 검사 탭 확장을 설치합니다.

타사 보안 도구의 결과를 클라우드용 Defender에 업로드

클라우드용 Defender는 오픈 소스 보안 분석기 세트에서 표준화된 기능 및 정책 제어를 위한 MSDO CLI를 제공하지만, 포괄적인 코드-클라우드 컨텍스트화를 위해 CI/CD 파이프라인에서 구성한 다른 타사 보안 도구의 결과를 클라우드용 Defender에 유연하게 업로드할 수 있습니다. 클라우드용 Defender에 업로드된 모든 결과는 표준 SARIF 형식이어야 합니다.

먼저 Azure DevOps 리포지토리가 클라우드용 Defender에 온보딩되었는지 확인합니다. 성공적으로 온보딩한 클라우드용 Defender는 SARIF 출력에 대한 'CodeAnalysisLogs' 아티팩트를 지속적으로 모니터링합니다.

'PublishBuildArtifacts@1' 작업을 사용하여 SARIF 출력이 올바른 아티팩트로 게시되도록 할 수 있습니다. 예를 들어 보안 분석기가 'results.sarif'를 출력하는 경우 작업에서 다음 작업을 구성하여 결과가 클라우드용 Defender에 업로드되도록 할 수 있습니다.

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: 'results.sarif'
    ArtifactName: 'CodeAnalysisLogs'

Findings from third-party security tools will appear as 'Azure DevOps repositories should have code scanning findings resolved' assessments associated with the repository the secuirty finding was identified in.