Application Security

The application security team’s mission is to support the business and ensure that all GitLab products securely manage customer data.

Application Security Mission

As part of the Product Security department, the application security team’s mission is to support the business and ensure that all GitLab products securely manage customer data. We do this by working closely with both engineering and product teams.

Contacting us

Team members can reach the AppSec team by:

Application Security Roadmap

Please see the Product Security Program Strategy document.

Roles & Responsibilities

Please see the Application Security Job Family page.

Useful resources for AppSec engineers

The list above is not exhaustive and is subject to be modified as our processes keep evolving.

Application Security KPIs & Other Metrics in Sisense

  • For Embedded KPIs which you filter by section, stage, or group, please see this page.

General Role Functions

Stable Counterparts

Please see the Application Security Stable Counterparts page.

Application Security Reviews

Please see the Application Security Reviews page.

RCAs for Critical Vulnerabilities

Please see the Root Cause Analysis for Critical Vulnerabilities page

Application Security Engineer Runbooks

Please see the Application Security Engineer Runbooks page index

Meeting Recordings

The following recordings are available internally only:

Backlog reviews

When necessary a backlog review can be initiated, please see the Vulnerability Management Page for more details.

GitLab Secure Tools coverage

As part of our dogfooding effort, the Secure Tools are set up on many different GitLab projects (see our policies). This list is too dynamic to be included in this page, and is now maintained in the GitLab AppSec Inventory.

Projects without the expected configurations can be found in the inventory violations list (internal link).

GitLab Inventory

Learn more about the GitLab AppSec Inventory.

Responding to customer scan review requests

Please see the Responding to customers security scanners review requests page

Reproducible Vulnerabilities

Learn how to identify or remediate security issues using real examples with GitLab’s Reproducible Vulnerabilities.

Reproducible Builds

Learn how GitLab is implementing Reproducible Builds for our build processes.

Milestone Planning

The GitLab Application Security team plans work based around Milestones, see this page for a description of that process

Application Security Automation and Monitoring

Please see the Application Security Automation and Monitoring page


Application Security - Async Communication

Overview

As the Application Security team spans too many different time zones to have a reasonable schedule for a team-wide synchronous meeting we’ll try to handle most discussions asynchronous.

The main problem to solve is knowing that other team members have had a chance to respond to a given issue.

needs-eyes Label

In order to point other AppSec team members we use the needs-eyes label under https://gitlab.com/gitlab-com/gl-security/product-security/appsec/

Application Security - Automation and Monitoring

Monitoring

The Application Security team uses a number of automation initiatives to help secure GitLab. These are not all authored by the AppSec team but they’re all useful to us. The points are listed in no specific order.

  • Gem Checker monitors suspicious activity on RubyGems.org for gems that we use at GitLab
  • sec-appsec-mr-alerts identifies MRs that modify dependencies used in our projects
  • Public MR Confidential Issue Detector monitors for public merge requests that should have been opened in our security mirror
  • Custom SAST rules detecting known-vulnerable code patterns that alert the AppSec team in the MR (related MR)
  • untamper-my-lockfile included in CI to prevent lockfile tampering
  • Package Hunter detects suspicious activity in dependencies at runtime (related runbook)
  • GitLab Inventory monitors our projects and violations of security best practices and standards
  • GitLab’s own application security features are running in CI
  • Tokinator monitors for leaked credentials
  • AppSec Escalator which is a tool that…
    • monitors that security issues are labeled properly
    • sets appropriate due dates on security issues
    • escalates overdue issues
    • detects potentially sensitive files posted in public issues
  • depSASTer runs SAST on the dependencies used by GitLab
  • Maintainer Watcher monitors potentially compromisable dependency maintainer accounts
  • depscore runs dependency review checks on new/updated depndencies in gitlab-org/gitlab project.
Application Security - Dogfooding and Product Feature Requests

Overview

This page describes the usage of a label to indicate a specific issue or epic is a priority for the Application Security (AppSec) team. This label helps in categorizing, tracking, and sharing product features requests that would benefit the AppSec team as part of dogfooding the GitLab product.

~"Internal Request::AppSec Team" Label

Usage

Apply the ~"Internal Request::AppSec Team" label when the AppSec team requests new security features or improvements to be built into GitLab, the product.

Application Security Metrics

TBD

Application Security Review Process

This page details the application security review process for appsec engineers. The purpose of application security reviews are to proactively discover and mitigate vulnerabilities in GitLab developed or deployed applications in order to reduce risk and ultimately help make the company’s mission successful.

An application security review may include any or all of the following stages:

  • Threat modeling
  • In-depth code review
  • Dynamic testing

The results of each stage will inform the review done in the next stage. Ideally, all new features would receive some threat modeling, with the latter two stages being performed based on the risk profile. Features already in development or production can receive an appsec review as well. The testing done is dependent on the circumstances.

Application Security Runbooks

Note for New team members

Whenever you are on a rotation (HackerOne or Triage Rotation or doing your onboarding process and need help or advice, reach out in the #sec-appsec Slack channel or ask during an AppSec Sync meeting. Here are some examples on scenarios where you may need ask or need help:

  • You’re doing your onboarding tasks, threat modeling, or appsec reviews, and you’re stuck on it; or don’t know how to tackle something in particular
  • You’re on ping rotation and you don’t know how to deal with a particular situation or what to do with a specific question
  • You’re on HackerOne rotation and have to deal with a hard report
Application Security Stable Counterparts

The overall goal of Application Security Stable Counterparts is to help integrate security themes early in the development process. This is intending to reduce the number of vulnerabilities released over the long term. These Stable Counterparts can be found on the Product Categories page, next to the “Application Security Engineer” mentions.

Technical Goals

  • Assist in threat modeling features to identify areas of risk prior to implementation
  • Code and AppSec reviews
  • Provide guidance on security best practices
  • Improve security testing coverage
  • Assistance in prioritizing security fixes
  • Provide technical guidance on security fixes

Non-technical Goals

  • Enable development team to self-identify security risk early
  • Help document and solve pain points when it comes to security process
  • Identify vulnerability areas to target for training and/or automation
  • Assist in cross-team communication of security-related topics
  • Assist development teams with security related compliance and regulatory audits

Adding & Updating Stable Counterparts

Stable Counterparts can be added or updated by following these steps:

Application Vulnerability Management Procedure

Purpose

This procedure applies to vulnerabilities identified in GitLab the product or its dependency projects and ensures implementation of the Vulnerability Management Standard. This procedure is designed to provide insight into our environments, promote healthy patch management among other preventative best-practices, and remediate risk; all with the end goal to better secure our environments and our product.

Scope

The procedure laid out here applies to vulnerabilities identified in GitLab the product or its dependency projects.

GitLab Application Security Inventory
The AppSec Inventory is a private GitLab project to identify and track all projects, components, and dependencies that matter for AppSec
Milestone Planning
Learn how the GitLab Application Security team does Milestone Planning
Reproducible Builds
Learn how GitLab is implementing Reproducible Builds for our build processes
Reproducible Vulnerabilities
Learn about GitLab, its security processes, and its historical security vulnerabilities
Responding to customers security scanners review requests

We scan our own product using our security scanners. Our Engineering teams are remediating vulnerabilities detected by our scanners on a regular basis. This is done when a patch is available and for vulnerabilities that can be exploited in our context.

We often receive inquiries from customers regarding potential vulnerabilities detected by their own scanning tools or those integrated into GitLab. We value our customers’ trust in our expertise to assess these issues. However, given the volume of requests we receive and our limited resources, we kindly request cooperation in performing a reasonable level of initial review before seeking our input. These proactive efforts will enable us to focus on addressing the most critical vulnerabilities efficiently.

Threat Modeling
The threat modeling process, and the framework used by the GitLab Security Team.