Free Practice Test

Free Microsoft GH-500 Exam Questions – 2025 Updated

Prepare efficiently for the Microsoft GH-500 exam with dependable 2025 study materials and focused preparation resources.

At Cert Empire, we provide precise and updated Microsoft GH-500 exam questions crafted for technology professionals aiming to validate their advanced cloud and AI expertise. Our resources follow the latest GH-500 objectives and mirror the real exam format. To make studying easier, a portion of our Microsoft GH-500 resources is freely available. You can take the GH-500 Practice Test anytime to review your knowledge and boost confidence before the official exam.

Question 1

– [Use Code Scanning with CodeQL] When configuring code scanning with CodeQL, what are your options for specifying additional queries? (Each answer presents part of the solution. Choose two.)
Options
A: Packs
B: github/codeql
C: Scope
D: Queries
Show Answer
Correct Answer:
Packs, Queries
Explanation
When using an advanced setup for CodeQL, you can specify additional queries to run alongside the default suite by creating a configuration file. This file uses the queries key to define a list of specific .ql files or directories to run. Alternatively, the packs key can be used to include one or more CodeQL query packs, which are collections of queries, often used for custom or specialized security checks. Both methods allow for the extension of the default code scanning analysis.
Why Incorrect Options are Wrong

B. github/codeql is the repository containing the standard CodeQL queries, not a configuration key for adding custom ones.

C. Scope is not a recognized key in the CodeQL configuration file for specifying additional queries.

References

1. GitHub Docs. (n.d.). Customizing your advanced setup for code scanning. Retrieved from https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning

For option D (Queries): In the section "Specifying queries to run," the documentation states, "You can use queries to specify which queries to run in your configuration file." It provides examples of using the uses keyword to point to a .ql file, a directory containing queries, or a query suite definition file.

For option A (Packs): In the section "Running additional query packs," the documentation explains, "To add one or more CodeQL query packs, add a packs entry to your configuration file." It shows how to list packs to be used in the analysis.

Question 2

– [Configure GitHub Advanced Security Tools in GitHub Enterprise] What step is required to run a SARIF-compatible (Static Analysis Results Interchange Format) tool on GitHub Actions?
Options
A: Update the workflow to include a final step that uploads the results.
B: By default, the CodeQL runner automatically uploads results to GitHub on completion.
C: The CodeQL action uploads the SARIF file automatically when it completes analysis.
D: Use the CLI to upload results to GitHub.
Show Answer
Correct Answer:
Update the workflow to include a final step that uploads the results.
Explanation
To integrate a SARIF-compatible static analysis tool with GitHub code scanning using GitHub Actions, the workflow must be explicitly configured with multiple steps. After a step runs the analysis tool and generates a SARIF file, a distinct, final step is required to upload this file to GitHub. This is accomplished using the github/codeql-action/upload-sarif action. This action takes the path to the SARIF file as input and uploads its findings to the repository's security tab, populating the code scanning alerts. This process is required for all third-party static analysis tools.
Why Incorrect Options are Wrong

B. The GitHub Actions runner only executes the jobs defined in a workflow; it does not have default behaviors like automatically uploading specific file types.

C. This is only true for the native CodeQL action's analyze step. The question refers to any "SARIF-compatible tool," which includes third-party tools that require a separate upload step.

D. While the GitHub CLI (gh) can upload SARIF files, the idiomatic and recommended method within a GitHub Actions workflow is to use the dedicated upload-sarif action.

References

1. GitHub Docs, "Uploading a SARIF file to GitHub." This document explicitly states, "You can use the github/codeql-action/upload-sarif action to upload a SARIF file... This is useful when you use a static analysis tool other than CodeQL." It provides a clear YAML example with a final step dedicated to the upload:

yaml

- name: Upload analysis results to GitHub

uses: github/codeql-action/upload-sarif@v3

with:

sariffile: results.sarif

Source: GitHub Enterprise Cloud Documentation, "Code security," "Code scanning," "Integrating with code scanning," "Uploading a SARIF file to GitHub."

2. GitHub Docs, "About SARIF file uploads for code scanning." This page clarifies the general requirement: "You need to run your SARIF-compatible analysis tool in a GitHub Actions workflow... and include a step that uploads the results.sarif file."

Source: GitHub Enterprise Cloud Documentation, "Code security," "Code scanning," "Integrating with code scanning," "About SARIF file uploads for code scanning."

Question 3

– [Assessing Code Scanning Alerts] You are managing code scanning alerts for your repository. You receive an alert highlighting a problem with data flow. What do you click for additional context on the alert?
Options
A: Show paths
B: Security
C: Code scanning alerts
Show Answer
Correct Answer:
Show paths
Explanation
When a code scanning alert identifies a data flow problem, it means potentially untrusted data is being used in an unsafe way. To understand the vulnerability, you need to trace the path of this data from its origin (the source) to where it's used unsafely (the sink). The GitHub interface provides a specific control for this purpose. By clicking Show paths, you can expand the alert details to see a step-by-step visualization of the data's journey through the codebase, providing the necessary context to remediate the issue.
Why Incorrect Options are Wrong

B. Security: This is the top-level tab in a repository's navigation where you access all security-related features, not a specific action taken within an alert.

C. Code scanning alerts: This is the link under the "Security" tab that takes you to the list of all alerts, not the control used to get more context on a single, specific alert.

References

1. GitHub Docs, "Managing code scanning alerts for your repository." Under the section "Viewing the details of an alert," the documentation states: "For alerts that highlight a data-flow problem, you can also view the path from the data source to the sink. To view the data flow path, click Show paths." This directly confirms the function of the "Show paths" link for data flow analysis.

2. GitHub Docs, "About code scanning alerts." In the section "About data flow analysis," it explains: "Data flow analysis finds potential security issues in code by tracking the flow of data from a source... to a sink... Code scanning shows you how the data travels from the source to the sink in the alert details." This establishes the concept that viewing the path is the primary way to get context.

Question 4

– [Configure and Use Secret Scanning] Secret scanning will scan:
Options
A: A continuous integration system.
B: Any Git repository.
C: The GitHub repository.
D: External services.
Show Answer
Correct Answer:
The GitHub repository.
Explanation
GitHub secret scanning is a native security feature that operates specifically on repositories hosted on the GitHub platform (GitHub.com and GitHub Enterprise). It automatically scans the entire Git history of all branches within a repository to find accidentally committed secrets, such as tokens and private keys. The scope of the scan is confined to the content of the GitHub repository itself, making it a repository-centric security tool.
Why Incorrect Options are Wrong

A. Secret scanning is a GitHub feature that scans repository content, not the continuous integration system's infrastructure or configuration itself.

B. The feature is specific to repositories hosted on GitHub. It does not scan any arbitrary Git repository hosted on other platforms like GitLab or a private server.

D. Secret scanning finds credentials for external services that are located within a repository; it does not scan the external services themselves.

References

1. GitHub Docs, "About secret scanning." This document explicitly states, "Secret scanning scans your entire Git history on all branches present in your GitHub repository for secrets." This confirms the feature's scope is the GitHub repository.

Source: https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning, Section: "About secret scanning."

2. Microsoft Learn, "Configure secret scanning," GH-500 Learning Path. The official training material for the exam describes the feature's function: "GitHub scans repositories for known types of secrets to prevent fraudulent use of secrets that were committed by accident." The context is always a repository on GitHub.

Source: https://learn.microsoft.com/en-us/training/modules/configure-secret-scanning-in-your-repo/2-what-is-secret-scanning, Paragraph 1.

3. GitHub Docs, "Managing security and analysis settings for your repository." The configuration process for secret scanning is performed within the settings of a specific GitHub repository, reinforcing that its operational boundary is the repository.

Source: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository, Section: "Allowing or disallowing features for your private repository."

Question 5

– [Configure and Use Dependency Management] Which of the following formats are used to describe a Dependabot alert? (Each answer presents a complete solution. Choose two.)
Options
A: Common Weakness Enumeration (CWE)
B: Exploit Prediction Scoring System (EPSS)
C: Common Vulnerabilities and Exposures (CVE)
D: Vulnerability Exploitability exchange (VEX)
Show Answer
Correct Answer:
Common Weakness Enumeration (CWE), Common Vulnerabilities and Exposures (CVE)
Explanation
Dependabot alerts are powered by the GitHub Advisory Database. When a vulnerability is identified, the resulting alert uses standardized formats to describe it. The Common Vulnerabilities and Exposures (CVE) system provides a unique identifier for each specific, publicly known cybersecurity vulnerability. Additionally, the Common Weakness Enumeration (CWE) is used to classify the type of software or hardware weakness that led to the vulnerability (e.g., CWE-79 for Cross-site Scripting). Both formats are integral to the information presented in a Dependabot alert, providing both a unique ID and a categorical description.
Why Incorrect Options are Wrong

B. Exploit Prediction Scoring System (EPSS): This is a scoring system that estimates the probability of a vulnerability being exploited. It provides a metric for prioritization, not a format for describing the vulnerability itself.

D. Vulnerability Exploitability eXchange (VEX): VEX is a format used to communicate the status of a vulnerability within a specific product (e.g., "not affected"), rather than describing the initial vulnerability alert.

References

1. GitHub Docs, "About the GitHub Advisory Database": This document explicitly states, "Each security advisory includes information about the vulnerability, which may include... a CVE (Common Vulnerabilities and Exposures) identifier... and one or more Common Weakness Enumeration (CWE) identifiers." This directly confirms the use of both CVE and CWE.

Source: GitHub, Inc. (2024). About the GitHub Advisory Database. GitHub Docs. Retrieved from https://docs.github.com/en/code-security/security-advisories/global-security-advisories/about-the-github-advisory-database (See the section "About security advisories").

2. GitHub Docs, "About Dependabot alerts": This page clarifies that Dependabot alerts are based on vulnerabilities from the GitHub Advisory Database, which uses CVE identifiers.

Source: GitHub, Inc. (2024). About Dependabot alerts. GitHub Docs. Retrieved from https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts (See the section "Detection of insecure dependencies").

Question 6

– [Describe GitHub Advanced Security Best Practices] What kind of repository permissions do you need to request a Common Vulnerabilities and Exposures (CVE) identification number for a security advisory?
Options
A: Maintain
B: Admin
C: Triage
D: Write
Show Answer
Correct Answer:
Admin
Explanation
To request a Common Vulnerabilities and Exposures (CVE) identification number, you must first create a repository security advisory. According to official GitHub documentation, creating and managing security advisories is a privileged action that requires administrator permissions for the repository. This ensures that only authorized individuals can publicly disclose and manage vulnerabilities associated with the repository's codebase. The process of requesting a CVE is an integral part of managing the advisory, and thus inherits the same permission requirement.
Why Incorrect Options are Wrong

A. Maintain: Users with Maintain permissions can manage many repository settings but lack the authority to create security advisories or request CVEs.

C. Triage: The Triage role is limited to managing issues and pull requests and does not include permissions for security management features.

D. Write: The Write role allows users to contribute code and manage pull requests but does not grant access to repository security settings like advisories.

References

1. GitHub Docs, "Creating a repository security advisory." Under the "Prerequisites" section, it explicitly states: "You must have admin permissions for the repository." This prerequisite applies to the entire advisory creation process, which includes requesting a CVE.

Source: GitHub Official Documentation. Retrieved from https://docs.github.com/en/code-security/security-advisories/repository-security-advisories/creating-a-repository-security-advisory#prerequisites

2. GitHub Docs, "About GitHub Security Advisories for repositories." This document clarifies the roles involved, stating, "Repository owners and security managers have admin permissions for security advisories in a repository." This reinforces that administrative-level access is the foundation for managing advisories.

Source: GitHub Official Documentation. Retrieved from https://docs.github.com/en/code-security/security-advisories/repository-security-advisories/about-github-security-advisories-for-repositories

3. GitHub Docs, "Permission levels for a personal account repository." The repository roles and permissions table confirms that actions related to "Manage security advisories" are exclusively available to the Admin role.

Source: GitHub Official Documentation. Retrieved from https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-access-to-your-personal-repositories/permission-levels-for-a-personal-account-repository

Question 7

– [Use Code Scanning with CodeQL] As a developer with write access, you navigate to a code scanning alert in your repository. When will GitHub close this alert?
Options
A: After you triage the pull request containing the alert
B: When you use data-flow analysis to find potential security issues in code
C: After you find the code and click the alert within the pull request
D: After you fix the code by committing within the pull request
Show Answer
Correct Answer:
After you fix the code by committing within the pull request
Explanation
GitHub automatically closes a code scanning alert when the underlying issue in the code is resolved. This process involves a developer committing a fix to the branch where the alert was detected. When the branch is re-scanned (typically after the commit is pushed, often within a pull request), the CodeQL analysis will no longer detect the vulnerability. Upon confirming the absence of the issue in the latest analysis for that branch, GitHub marks the alert as fixed and closes it.
Why Incorrect Options are Wrong

A. Triaging an alert involves manually reviewing and dismissing it (e.g., as a false positive or acceptable risk), which is a different action from fixing the code to resolve it.

B. Data-flow analysis is a technique used by CodeQL to find potential security issues; it is part of the detection process, not the resolution or closure process.

C. Clicking an alert within a pull request is a navigational action for viewing its details; it does not alter the code or the status of the alert.

References

1. GitHub Docs, "Managing code scanning alerts for your repository." Under the section "Fixing an alert," the documentation states, "GitHub automatically closes an alert if you fix the code in a pull request... GitHub closes an alert when code scanning determines that the code with the potential vulnerability is no longer present in the latest analysis for a branch."

2. Microsoft Learn, "Manage code scanning alerts in GitHub." In the "Fix code scanning alerts" unit, it is specified that "GitHub closes an alert automatically when you fix the code that triggered it. To fix an alert, you need to commit your changes to the branch where the alert was found."

3. GitHub Docs, "About code scanning alerts." In the section "About the status and details of alerts," it clarifies the lifecycle: "An alert is usually closed when a user fixes the code that triggered the alert and pushes their changes to the branch that is being scanned."

Question 8

– [Configure and Use Secret Scanning] Which details do you have to provide to create a custom pattern for secret scanning? (Each answer presents part of the solution. Choose two.)

Options
A:

A. The secret format

B:

B. The name of the pattern

C:

C. A list of repositories to scan

D:

D. Additional match requirements for the secret format

Show Answer
Correct Answer:
A. The secret format, B. The name of the pattern
Explanation
When defining a custom pattern for GitHub secret scanning, two fields are mandatory for its creation. You must provide a unique Name to identify and manage the pattern. You must also define the Secret format using a regular expression (regex). This regex is the core of the pattern, specifying the structure of the secret that the scanning engine will search for. These two components are the minimum required details to save a new custom pattern at the organization or enterprise level.
Why Incorrect Options are Wrong

C. A list of repositories to scan

Specifying repositories is part of enabling or configuring a scan, not defining the pattern itself.

D. Additional match requirements for the secret format

These are optional settings, such as "surrounding content," used to refine the main pattern and reduce false positives, not a mandatory creation detail.

References

1. GitHub Docs, "Defining custom patterns for secret scanning." This official documentation outlines the steps for creating a custom pattern. In the section "Creating a custom pattern," it explicitly lists "Name" and "Secret format (regex)" as required fields. It also describes "Additional match requirements" as an optional step to refine results. The process described does not include selecting repositories during pattern creation.

Reference Location: Navigate to the "Creating a custom pattern" section. The input fields in the UI steps clearly distinguish between required and optional information.

2. GitHub Docs, "About secret scanning." This document provides an overview of the feature and distinguishes between defining patterns and enabling them for repositories. It clarifies that patterns are defined at the organization/enterprise level before being applied to specific repositories or all repositories.

Reference Location: See the section on "Defining custom patterns for secret scanning."

Question 9

– [Configure and Use Dependency Management] Assuming that notification settings and Dependabot alert recipients have not been customized, which user account setting should you use to get an alert when a vulnerability is detected in one of your repositories?
Options
A: Enable all in existing repositories
B: Enable by default for new public repositories
C: Enable all for Dependabot alerts
D: Enable all for Dependency graph
Show Answer
Correct Answer:
Enable all for Dependabot alerts
Explanation
To receive alerts for detected vulnerabilities, you must enable the "Dependabot alerts" feature. Within your personal account's "Code security and analysis" settings, selecting "Enable all" for Dependabot alerts activates this feature for all repositories you own. This action configures GitHub to automatically scan your dependencies, identify vulnerabilities, and generate alerts. While the Dependency graph is a prerequisite, it only identifies dependencies; it does not generate the vulnerability alerts itself.
Why Incorrect Options are Wrong

A. Enable all in existing repositories: This option is too generic. It does not specify which security feature (e.g., Dependabot alerts, Secret scanning, Code scanning) should be enabled.

B. Enable by default for new public repositories: This setting only applies to newly created public repositories and would not activate alerts for any existing or private repositories.

D. Enable all for Dependency graph: Enabling the Dependency graph is a necessary prerequisite, as it identifies the project's dependencies. However, it does not generate vulnerability alerts on its own; that is the specific function of Dependabot alerts.

---

References

1. GitHub Docs, "Managing security and analysis settings for your user account."

Location: Section "Enabling or disabling features for existing repositories."

Content: This document explicitly outlines the steps to manage security features. It states, "Under 'Code security and analysis', find the feature you want to manage... To the right of the feature, click Disable all or Enable all." It lists "Dependabot alerts" as a distinct feature that can be enabled, which is the direct action required to receive vulnerability alerts.

2. GitHub Docs, "About Dependabot alerts."

Location: Introduction section.

Content: This page clarifies the relationship between the dependency graph and alerts: "Dependabot alerts are generated when GitHub detects that a repository uses a dependency with a known vulnerability... The dependency graph is a prerequisite for Dependabot alerts." This confirms that enabling the graph (Option D) is insufficient and that enabling "Dependabot alerts" (Option C) is the correct, specific action.

Question 10

– [Describe GitHub Advanced Security Best Practices] Which of the following benefits do code scanning, secret scanning, and dependency review provide?
Options
A: Search for potential security vulnerabilities, detect secrets, and show the full impact of changes to dependencies
B: Confidentially report security vulnerabilities and privately discuss and fix security vulnerabilities in your repository's code
C: View alerts about dependencies that are known to contain security vulnerabilities
D: Automatically raise pull requests, which reduces your exposure to older versions of dependencies
Show Answer
Correct Answer:
Search for potential security vulnerabilities, detect secrets, and show the full impact of changes to dependencies
Explanation
GitHub Advanced Security (GHAS) is a suite of security features. The question specifically asks about three of its core components: 1. Code scanning analyzes your code to find security vulnerabilities and coding errors. 2. Secret scanning detects secrets, such as API keys and tokens, that have been checked into the repository. 3. Dependency review allows you to visualize dependency changes and their security impact directly within a pull request, helping you understand the full effect before merging. Option A accurately summarizes the primary function of each of these three distinct features.
Why Incorrect Options are Wrong

B. This describes private vulnerability reporting, a feature that allows security researchers to disclose vulnerabilities to repository maintainers confidentially, which is separate from the listed GHAS tools.

C. This describes Dependabot alerts, which notify you about existing dependencies with known vulnerabilities in your repository, but it doesn't cover code scanning or secret scanning.

D. This describes Dependabot security and version updates, which automatically create pull requests to update dependencies, a different function from the three features mentioned in the question.

References

1. GitHub Docs, "About GitHub Advanced Security." This document provides an overview, stating, "GitHub Advanced Security features are available for enterprise accounts on GitHub Enterprise Cloud and GitHub Enterprise Server... [It] provides additional features... such as code scanning, secret scanning, and dependency review."

Source: https://docs.github.com/en/get-started/learning-about-github/about-github-advanced-security

2. GitHub Docs, "About code scanning." Section: "About code scanning." It states, "Code scanning is a feature that you use to analyze the code in a GitHub repository to find security vulnerabilities and coding errors."

Source: https://docs.github.com/en/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning

3. GitHub Docs, "About secret scanning." Section: "About secret scanning." It explains, "Secret scanning helps protect you by searching repositories for known types of secrets... GitHub scans the content for secrets."

Source: https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning

4. GitHub Docs, "About dependency review." Section: "What is dependency review?" It details, "Dependency review helps you understand dependency changes and the security impact of these changes at every pull request... You can clearly see what's changed in a pull request."

Source: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review

Question 11

– [Configure and Use Secret Scanning] Assuming security and analysis features are not configured at the repository, organization, or enterprise level, secret scanning is enabled on:
Options
A: Public repositories
B: All new repositories within your organization
C: User-owned private repositories
D: Private repositories
Show Answer
Correct Answer:
Public repositories
Explanation
By default, GitHub automatically enables secret scanning on all public repositories. This is a free security feature provided to protect the open-source ecosystem from accidental exposure of credentials. The service scans for known secret formats upon every push. For private repositories, secret scanning is part of the GitHub Advanced Security (GHAS) license and must be explicitly enabled at the repository, organization, or enterprise level. Since the scenario specifies that no security features are configured, only the default behavior for public repositories applies.
Why Incorrect Options are Wrong

B. All new repositories within your organization: This requires enabling GitHub Advanced Security at the organization level, which contradicts the scenario's premise that no features are configured.

C. User-owned private repositories: Secret scanning for user-owned private repositories is a feature of GitHub Advanced Security, which is not enabled by default and requires a specific plan.

D. Private repositories: This functionality is part of the paid GitHub Advanced Security license and is not enabled by default without explicit configuration.

---

References

1. GitHub Docs, "About secret scanning." This official documentation explicitly states the availability of the feature.

Reference Section: "Availability of secret scanning"

Content: "Secret scanning is available on all public repositories on GitHub.com. Organizations that use GitHub Enterprise Cloud with a license for GitHub Advanced Security can also enable secret scanning on their private and internal repositories." This directly confirms that the feature is on by default only for public repositories.

2. GitHub Docs, "Configuring secret scanning for your repositories." This document details the steps required to enable the feature for private repositories, reinforcing that it is not on by default.

Reference Section: "Enabling GitHub Advanced Security"

Content: "You must enable GitHub Advanced Security for your repository before you can configure secret scanning... Secret scanning is automatically enabled on all public repositories." This shows that an explicit action is needed for private repositories, unlike public ones.

Question 12

– [Configure and Use Secret Scanning] When secret scanning detects a set of credentials on a public repository, what does GitHub do?
Options
A: It notifies the service provider who issued the secret.
B: It displays a public alert in the Security tab of the repository.
C: It scans the contents of the commits for additional secrets.
D: It sends a notification to repository members.
Show Answer
Correct Answer:
It notifies the service provider who issued the secret.
Explanation
When GitHub's secret scanning detects a supported credential in a public repository, its primary action is to notify the relevant service provider who issued the secret. This is part of GitHub's secret scanning partner program. The service provider then validates the credential and can take immediate action, such as revoking the secret to prevent malicious use. This automated notification and revocation process is the most critical step in mitigating the risk of a publicly exposed secret.
Why Incorrect Options are Wrong

B. It displays a public alert in the Security tab of the repository.

Secret scanning alerts are confidential and only visible to users with administrative permissions on the repository, not to the public.

C. It scans the contents of the commits for additional secrets.

This describes the ongoing process of secret scanning itself, not the specific action taken after a secret has been detected.

D. It sends a notification to repository members.

GitHub notifies repository administrators and the committer, not all repository members. More importantly, for public repositories, notifying the provider for revocation is the most crucial first step.

References

1. GitHub Docs, "About secret scanning."

Under the section "About secret scanning for public repositories," it states: "When secret scanning detects a secret in a public repository, we notify the service provider who issued the secret. The service provider validates the credential and then decides whether they should revoke the secret, issue a new secret, or reach out to you directly..." This directly supports the correct answer (A).

2. GitHub Docs, "Secret scanning partner program."

This document outlines the program's purpose: "We partner with service providers to protect our mutual users by scanning for their token formats... When a match is found in a public repository, we send the payload to the relevant partner." This confirms that notifying the service provider is the defined process.

3. GitHub Docs, "Managing alerts from secret scanning."

Under the section "Viewing alerts from secret scanning," it clarifies who can see alerts: "You can see all alerts for a repository in the repository's Security tab." It also details notification recipients, confirming alerts are not public and are sent to specific roles like administrators, which refutes options B and D.

Question 13

– [Configure and Use Dependency Management] Which key is required in the update settings of the Dependabot configuration file?
Options
A: rebase-strategy
B: commit-message
C: assignees
D: package-ecosystem
Show Answer
Correct Answer:
package-ecosystem
Explanation
The dependabot.yml configuration file requires a set of update configurations defined under the updates key. For each update configuration, the package-ecosystem key is mandatory. This key specifies which package manager Dependabot should monitor for outdated dependencies, such as npm, pip, or maven. Without this directive, Dependabot would not know which registry or manifest files to scan. The other options listed are optional configurations that allow for customizing the behavior of Dependabot pull requests, such as how they are rebased, their commit messages, or who is assigned to review them.
Why Incorrect Options are Wrong

A. rebase-strategy is an optional setting that specifies how Dependabot should handle conflicts when updating pull requests.

B. commit-message is an optional setting used to customize the prefix and content of commit messages for Dependabot updates.

C. assignees is an optional setting that allows you to automatically assign specific users or teams to the pull requests created by Dependabot.

References

1. GitHub Docs. "Configuration options for the dependabot.yml file." GitHub Docs, Accessed May 22, 2024. In the section "package-ecosystem," the documentation explicitly states, "Required. The package manager to use." It also lists rebase-strategy, commit-message, and assignees as optional settings.

Question 14

– [Describe GitHub Advanced Security Best Practices] Which of the following tasks can be performed by a security team as a proactive measure to help address secret scanning alerts? (Each answer presents a complete solution. Choose two.)

Options
A:

A. Dismiss alerts that are older than 90 days.

B:

B. Configure a webhook to monitor for secret scanning alert events.

C:

C. Enable system for cross-domain identity management (SCIM) provisioning for the enterprise.

D:

D. Document alternatives to storing secrets in the source code.

Show Answer
Correct Answer:
B. Configure a webhook to monitor for secret scanning alert events., D. Document alternatives to storing secrets in the source code.
Explanation
Proactive security measures for secret scanning involve both preventing secrets from being committed and establishing an efficient, automated response system for when they are. Documenting alternatives to storing secrets in code (D) is a fundamental "shift-left" practice that educates developers and prevents alerts at the source. Configuring a webhook to monitor for secret scanning alert events (B) is a proactive step to automate the response workflow, ensuring alerts are immediately sent to security tools (like a SIEM) or response teams for rapid triage and remediation, thus improving the overall security process.
Why Incorrect Options are Wrong

A. Dismissing alerts based on age is a reactive and unsafe practice. An old, exposed secret can still be valid and exploitable, so each alert requires proper investigation and remediation, not arbitrary dismissal.

C. SCIM is an identity and access management (IAM) protocol for automating user provisioning. While a good security practice for managing user access, it does not directly address the issue of secrets being committed to code.

References

1. [Correct Option B] GitHub Docs, "Webhook events and payloads." Under the secretscanningalert event type, the documentation states this event is triggered "When a secret scanning alert is created, resolved, or reopened." This confirms that webhooks can be used to proactively monitor and build automated workflows for these alerts.

Source: GitHub Enterprise Cloud Documentation, Section: "Webhooks and events" > "Webhooks" > "Webhook events and payloads".

2. [Correct Option D] GitHub Docs, "Best practices for preventing data leaks in your organization." This guide emphasizes preventative measures, stating, "We recommend that you store secrets in a dedicated, secure location outside of your repository," and suggests using services like Azure Key Vault or GitHub secrets. Documenting these alternatives for developers is a core part of this best practice.

Source: GitHub Enterprise Cloud Documentation, Section: "Code security" > "Tools for code security" > "Best practices for preventing data leaks in your organization".

3. [Incorrect Option A] GitHub Docs, "Managing alerts from secret scanning." The documentation outlines the process for closing an alert, which requires providing a reason such as "Fixed," "False positive," or "Won't fix." It does not list age as a valid reason for dismissal, reinforcing that alerts must be triaged based on risk, not age.

Source: GitHub Enterprise Cloud Documentation, Section: "Code security" > "Secret scanning" > "Managing alerts from secret scanning".

4. [Incorrect Option C] GitHub Docs, "About SCIM for enterprises." The documentation clearly defines the purpose of SCIM: "If you use an identity provider (IdP) for identity and access management, you can configure SCIM to automatically create or suspend user accounts and grant access... when you make changes in the IdP." This confirms its role is in IAM, not in handling code-level secret alerts.

Source: GitHub Enterprise Cloud Documentation, Section: "Enterprise management" > "Managing identity and access for your enterprise" > "Managing identity and access with your identity provider" > "About SCIM for enterprises".

Question 15

– [Configure and Use Secret Scanning] What YAML syntax do you use to exclude certain files from secret scanning?
Options
A: decrypt_secret.sh
B: paths-ignore:
C: branches-ignore:
D: secret scanning.yml
Show Answer
Correct Answer:
paths-ignore:
Explanation
To exclude specific files or directories from secret scanning in a repository, you create a configuration file named secretscanning.yml in the .github directory. Within this file, the paths-ignore: key is used to specify a list of paths that secret scanning should not scan. This allows you to prevent alerts for files that may contain false positives or intentionally committed test secrets, such as test fixtures or database dumps.
Why Incorrect Options are Wrong

A. decryptsecret.sh is a filename. While you might exclude this file using paths-ignore:, it is not the YAML syntax itself.

C. branches-ignore: is a syntax used in other contexts like GitHub Actions workflows to exclude branches from triggers, not for configuring secret scanning file exclusions.

D. secret scanning.yml is the name of the configuration file where the exclusion syntax is placed, not the syntax element for excluding paths.

---

References

1. GitHub Docs. "Configuring secret scanning for your repositories." GitHub Enterprise Cloud Documentation. Accessed May 20, 2024.

Section: "Excluding directories from secret scanning"

Content: This official documentation explicitly states: "You can configure secret scanning for a repository by editing the /.github/secretscanning.yml file... Use paths-ignore to exclude specific directories from being scanned." It provides a clear YAML example:

yaml

paths-ignore:

- "lib/test/fixtures"

- "/testdata/.js"

Shopping Cart
Scroll to Top

FLASH OFFER

Days
Hours
Minutes
Seconds

avail $6 DISCOUNT on YOUR PURCHASE