GitHub Advanced Security Cert Prep

GitHub Advanced Security Cert Prep

6h 42mAdvanced2024-06-04

Authors

Microsoft Press

Microsoft Press

Microsoft

Tim Warner

Tim Warner

Technical Trainer and Content Developer

Course details

GitHub is a game-changing automation platform that revolutionizes DevOps and CI/CD pipelines by allowing seamless automation of code builds, tests, and deployments right within your GitHub repository. As organizations shift toward microservices and cloud-native architectures, GitHub Actions emerges as a pivotal technology for automating, customizing, and scaling workflows, thereby accelerating development cycles and achieving operational excellence.

In a world where cyber threats are escalating, mastering the advanced security features of the GitHub platform is integral to modern development workflows is non-negotiable. This course covers everything from secret scanning and dependency management to CodeQL and GitHub Enterprise configurations, ensuring you're well-prepared to pass the GitHub Advanced Security certification exam and implement top-notch security measures in your projects. No fluff, just the skills you need for real-world impact.

Skills covered

Software Development SecurityVersion ControlGitHubSoftware Development ToolsCert PrepCybersecuritySoftware Development

Concepts

Introduction

  • Introduction

Unveil GHAS Security Features

  • Learning objectives
  • Differentiate security features with open-source projects and the features available when GHAS pairs with GHEC or GHES
  • Describe the features and benefits of a security overview
  • Describe the differences between secret scanning and code scanning
  • Describe how secret scanning, code scanning, and Dependabot create a more secure software development lifecycle
  • Contrast a security scenario with an isolated security review and an advanced scenario

Harness GHAS Features

  • Learning objectives
  • Describe how vulnerable dependencies are identified
  • Explain how to act on alerts from GHAS
  • Explain the implications of ignoring an alert
  • Explain the role of a developer when they discover a security alert
  • Describe the differences in access management to view alerts for different security features
  • Describe a security policy in a GitHub repository
  • Identify where to use Dependabot alerts in the software development lifecycle

Implement Secret Scanning

  • Learning objectives
  • Describe secret scanning
  • Choose when secret scanning occurs
  • Contrast secret scanning availability for public and private repositories
  • Enable secret scanning for private repositories
  • Enable secret scanning for an organization
  • Explain how to pick an appropriate response to a secret scanning alert
  • Determine if an alert is generated for a given secret, pattern, or service provider
  • Determine if a given user role will see secret scanning alerts

Tailor Secret Scanning

  • Learning objectives
  • Configure the recipients of a secret scanning alert
  • Describe how to exclude certain files from being scanned for secrets
  • Explain how to enable custom secret scanning for a repository
  • Explain how to enable custom secret scanning for an organization

Explore Dependency Vulnerability Tools

  • Learning objectives
  • Define a vulnerability
  • Describe Dependabot alerts
  • Describe Dependabot security updates
  • Define the dependency graph
  • Describe how the dependency graph is generated
  • Describe how alerts are generated for vulnerable dependencies

Set Up Vulnerability Management Tools

  • Learning objectives
  • Identify the default settings for Dependabot alerts in public and private repositories
  • Identify the permissions and roles required to enable Dependabot alerts
  • Identify the permissions and roles required to view Dependabot alerts
  • Enable Dependabot alerts for private repositories
  • Enable Dependabot alerts for organizations
  • Create a valid Dependabot configuration file
  • Configure notifications for vulnerable dependencies

Resolve Vulnerable Dependencies

  • Learning objectives
  • Identify a vulnerable dependency from a Dependabot alert
  • Identify vulnerable dependencies from a pull request
  • Enable Dependabot security updates
  • Remedy a vulnerability from a Dependabot alert in the Security tab
  • Remedy a vulnerability from a Dependabot alert in the context of a pull request
  • Act on any Dependabot alerts by testing and merging pull requests

Initiate Code Scanning

  • Learning objectives
  • Describe code scanning
  • List the steps for enabling code scanning in a repository using GitHub Actions
  • Enable code scanning for use with a CodeQL analysis workflow
  • Describe how code scanning relates to GitHub Actions consumption

Integrate Third-Party Code Scanning

  • Learning objectives
  • Enable code scanning for use with third-party analysis
  • Contrast the steps for using CodeQL versus third-party analysis when enabling code scanning
  • Contrast how to implement CodeQL analysis in a GitHub Actions workflow versus a third-party CI tool

Configure Code Scanning

  • Learning objectives
  • Describe how code scanning fits in the software development lifecycle
  • Contrast the frequency of code scanning workflows
  • Choose a triggering event for a given development pattern
  • Edit the default template for the Actions workflow to fit an active, open-source, production repository

Discover CodeQL Scanning Capabilities

  • Learning objectives
  • Describe CodeQL
  • Define a QL pack, code query, and code suite
  • Describe the default CodeQL query suites
  • Describe how CodeQL analyzes code and produces results

Apply CodeQL Scanning

  • Learning objectives
  • Introduce a CodeQL analysis workflow to a repository
  • List the locations in which CodeQL queries can be specified for use with code scanning
  • Configure the language matrix in a CodeQL workflow
  • Reference a CodeQL query from a public repository within a code scanning workflow
  • Reference a CodeQL query from a private repository within a code scanning workflow
  • Reference a CodeQL query from a local directory within a code scanning workflow
  • Reference a configuration file within the same repository
  • Reference a configuration file in a remote public repository
  • Execute code scanning with the CodeQL CLI
  • Contrast the steps to execute code scanning in GitHub Actions vs. the CodeQL CLI

Triage CodeQL Analysis Results

  • Learning objectives
  • Describe how to view code scanning results from CodeQL analysis
  • Troubleshoot a failing code scanning workflow using CodeQL
  • Follow the data flow through code using the show paths experience
  • Explain the reason for a code scanning alert given documentation linked from the alert
  • Determine if and why a code scanning alert needs to be dismissed
  • Describe potential shortfalls in CodeQL via a model of compilation and language support
  • Optimize CodeQL analysis runtimes

Incorporate External Scanning Tools

  • Learning objectives
  • Explain how to upload third-party SARIF results via the SARIF endpoint
  • Explain the purpose of defining a SARIF category

Implement GHAS Best Practices

  • Learning objectives
  • Use a CVE and CWE to describe a GitHub Advanced Security alert and list potential remediation
  • Advanced security alert and list potential remediation
  • Describe the decision-making process for closing and dismissing security alerts
  • Determine the roles and responsibilities of development and security teams on a software development workflow
  • Explain how to set a review cadence with security teams when appropriate
  • Use security policies to instruct all contributors to better secure their repositories
  • Compare the code scanning alert against the repository's security policy
  • Align repository branch protection configuration with written security policies

Administer GitHub Advanced Security

  • Learning objectives
  • Explain how GitHub Advanced Security features are enabled on GitHub Enterprise Server
  • Explain how GitHub Advanced Security features are enabled for an organization
  • Set security policies for a repository
  • Set security policies for an organization
  • Describe how permissions are interpreted throughout a security workflow
  • Locate API endpoints for GHAS features, like secret scanning, code scanning, and Dependabot
  • List stakeholders that need to be involved in the security workflows enabled by GHAS
  • Configure code scanning within a repository or organization using the default CodeQL workflow
  • Identify the custom build steps necessary in a CodeQL workflow

Conclusion

  • Summary
120,000 Toman