Microsoft Security DevOps GitHub 작업 구성
Microsoft Security DevOps는 정적 분석 도구를 개발 수명 주기에 통합하는 명령줄 애플리케이션입니다. Security DevOps는 SDL, 보안 및 규정 준수 도구와 같은 최신 버전의 정적 분석 도구를 설치, 구성 및 실행합니다. Security DevOps는 여러 환경에서 결정적 실행을 가능하게 하는 이식 가능한 구성으로 데이터 기반입니다.
Microsoft Security DevOps는 다음 오픈 소스 도구를 사용합니다.
이름 | 언어 | 라이선스 |
---|---|---|
AntiMalware | 맬웨어를 검사하고 맬웨어가 검색되면 빌드를 중단시키는 Windows의 엔드포인트용 Microsoft Defender의 Windows 맬웨어 방지 보호입니다. 이 도구는 기본적으로 Windows 최신 에이전트를 검사합니다. | 오픈 소스 아님 |
Bandit | Python | Apache License 2.0 |
BinSkim | Binary--Windows, ELF | MIT 라이선스 |
Checkov | Terraform, Terraform 계획, CloudFormation, AWS SAM, Kubernetes, Helm 차트, Kustomize, Dockerfile, 서버리스, Bicep, OpenAPI, ARM | Apache License 2.0 |
ESlint | JavaScript | MIT 라이선스 |
템플릿 분석기 | 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 |
필수 조건
Azure 구독. Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.
새 창에서 Microsoft Security DevOps GitHub 작업을 엽니다.
GitHub 리포지토리에서 워크플로 권한이 읽기 및 쓰기로 설정되어 있는지 확인합니다. 여기에는 클라우드용 Defender와의 페더레이션을 위해 GitHub 워크플로에서 "id-token: write" 권한 설정이 포함됩니다.
Microsoft Security DevOps GitHub 작업 구성
GitHub 작업을 설정하려면 다음을 수행합니다.
GitHub에 로그인합니다.
GitHub 작업을 구성하려는 리포지토리를 선택합니다.
작업을 선택합니다.
새 워크플로를 선택합니다.
GitHub Actions 시작 페이지에서 워크플로 직접 설정을 선택합니다.
텍스트 상자에 워크플로 파일의 이름을 입력합니다. 예들 들어
msdevopssec.yml
입니다.다음 샘플 작업 워크플로를 복사하고 새 파일 편집 탭에 붙여넣습니다.
name: MSDO on: push: branches: - main jobs: sample: name: Microsoft Security DevOps # Windows and Linux agents are supported runs-on: windows-latest permissions: contents: read id-token: write actions: read # Write access for security-events is only required for customers looking for MSDO results to appear in the codeQL security alerts tab on GitHub (Requires GHAS) security-events: write steps: # Checkout your code repository to scan - uses: actions/checkout@v3 # Run analyzers - name: Run Microsoft Security DevOps uses: microsoft/security-devops-action@latest id: msdo # with: # config: string. Optional. A file path to an MSDO configuration file ('*.gdnconfig'). # policy: 'GitHub' | '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: GitHub. # 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', 'checkov', 'eslint', 'templateanalyzer', 'terrascan', 'trivy'. # Upload alerts to the Security tab - required for MSDO results to appear in the codeQL security alerts tab on GitHub (Requires GHAS) # - name: Upload alerts to Security tab # uses: github/codeql-action/upload-sarif@v3 # with: # sarif_file: ${{ steps.msdo.outputs.sarifFile }} # Upload alerts file as a workflow artifact - required for MSDO results to appear in the codeQL security alerts tab on GitHub (Requires GHAS) # - name: Upload alerts file as a workflow artifact # uses: actions/upload-artifact@v3 # with: # name: alerts # path: ${{ steps.msdo.outputs.sarifFile }}
참고 항목
추가 도구 구성 옵션 및 지침은 Microsoft 보안 DevOps Wiki를 참조하세요.
커밋 시작을 선택합니다.
새 파일 커밋을 선택합니다. 프로세스를 완료하는 데 최대 1분이 걸릴 수 있습니다.
작업을 선택하고 새 작업이 실행 중인지 확인합니다.
검색 결과 보기
검사 결과를 보려면 다음을 수행합니다.
Azure에 로그인합니다.
클라우드용 Defender > DevOps 보안으로 이동합니다.
DevOps 보안 블레이드에서 개발자가 CI 로그에서 보는 것과 동일한 MSDO 보안 결과를 관련 리포지토리에 대해 몇 분 내에 볼 수 있어야 합니다. GitHub Advanced Security를 사용하는 고객은 이러한 도구에서 수집된 결과도 볼 수 있습니다.
자세한 정보
Azure GitHub 작업에 대해 알아봅니다.
GitHub에서 Azure로 앱을 배포하는 방법을 알아봅니다.
다음 단계
클라우드용 Defender의 DevOps 보안에 대해 자세히 알아봅니다.
클라우드용 Defender에 GitHub 조직을 연결하는 방법을 알아봅니다.