Microsoft Defender for Cloud
Architecture and deployment

Deploy GitHub Advanced Security integration with Microsoft Defender for Cloud

In brief

The article now provides clearer setup prerequisites, sandbox testing guidance, environment validation steps, troubleshooting links, and explanations of runtime-risk recommendations and matched GitHub alerts.

What Defender admins need to know

Administrators can use the revised instructions to configure and validate the integration and interpret recommendation results.

Summaries are generated from the documentation change itself.

Documentation change

The comparison below shows only the changed extract. Use the full-page view for complete context.

Prepare your environment

Complete the following steps to configure your GitHub repository and Defender for Cloud settings before you validate the integration.

Step 1: Set up the GitHub repository and run the workflow

To test the integration, use your own repositories or an example sandbox project that has. The sandbox project provides a test GitHub repository with all the contentseverything you need to build a vulnerable container image.

  1. Sign in to the Azure portal.

  2. Go to Microsoft Defender for Cloud > DevOps security.

  3. Validate that it belongs to the organization you're monitoring, for example, the zava-corporation organization.

  4. Review if there are any findings for the repo.

  5. Ensure Advanced security status is On. This indicates that GitHub Advanced Security is enabled on the monitored repository.

  6. If your repository isn't found, refer to Microsoft Defender for Cloud documentationsee the GitHub connector onboarding quickstart for troubleshooting and GitHub connector onboarding.setup guidance.

  7. Make sure that agentless scanning is turned on for your GitHub connector.

    :::image type="content" source="media/github-advanced-security-deploy/agentless-scan.png" alt-text="Screenshot of Plan Configuration in Defender CSPM with Agentless code scanning toggled on and all scanner options enabled." lightbox="media/github-advanced-security-deploy/agentless-scan.png":::

Step 2: Validate that your environment is ready

ValidationThis environment validation confirms that your environment is correctly configured to surface code to repository and cloud resources are set up correctly. It checks that Defender can show code-to-runtime recommendations and generate actionableproduce useful results. During thisthe environment validation step, Defender verifies that:

Full code to Validate full code-to-runtime visibility

  • Microsoft Defender for Cloud continuously monitors source code repositories for security vulnerabilities.
  • Build artifacts, such as container images, are scanned in container registries before deployment. Successful validation ensures that next steps, such as recommendations, campaigns, and GitHub issue generation, produce meaningful results.

Step 3: Create a GitHub campaign

  1. In GitHub, go to the GitHub organization that you used for the setup testing.

  2. Select Security > Campaigns > Create campaign > From code scanning filters.

  3. ThisThe runtime-risk campaign helps prioritize GHASGitHub Advanced Security (GHAS) findings that belong to code that is truly deployed and running.

  4. Select Runtime Risks filters for the campaign.

    :::image type="content" source="media/github-advanced-security-deploy/select-filters.png" alt-text="Screenshot of GitHub code scanning campaign creation with a filter bar, Filter button, and a tooltip about filtering by artifact metadata."lightbox="media/github-advanced-security-deploy/select-filters.png":::

  5. Track campaign advancement. :::image type="content" source="media/github-advanced-security-deploy/test-campaign.png" alt-text="Screenshot of GitHub campaign page showing overdue status, campaign progress bar, critical alerts list, and filter options."lightbox="media/github-advanced-security-deploy/test-campaign.png":::

Step 4: Recommendations mobilizationAct on recommendations

Use running Containers VA recommendations code-to-runtime functionality and correlation of the identified CVEs to Dependabot security alerts to understand the status of security issues. You can then assign the recommendation for resolution to the relevant engineering team based on code-to-runtime mapping.

Select the link to open the relevant GHAS security alert. (To view the GHAS alert content in GitHub, you must have access permissions to the relevant GitHub repository. If you don’t have access permissions, you can always copy the link for next usage or contact your GitHub administrator.)

If there's an alert enrichment, there'sthe Related GitHub Alerts column shows a matched Dependabot alert thatalert, the vulnerability is already known to engineering. If the alert status is Active, no one has fixed it yet, and the issue needs to be prioritized for a fix.

If there's no finding enrichment, this indicatesmatched GitHub alert appears in the column, the CVE represents a runtime risk unknown to engineering that needs to be prioritized for a fix.

What’s next? How would I know who is the relevant team for the fix? How would I know which context can help engineering with the fix?

Related content

Learn more about GitHub Advanced Security and Defender for Cloud: