Our vision is to transparently lead the world to secure outcomes.
Our mission is to enable everyone to innovate and succeed on a safe, secure, and trusted DevSecOps platform. This will be achieved through 5 security operating principles:
Accelerate business success with a focus on:
Prioritize ‘boring’, iterative solutions that minimize risk
Find ways to say Yes
Understand goals before recommending solutions
Use GitLab first
Efficient operations with a focus on:
Technical controls over handbook rules
Leverage automation first (robots over humans)
Responsible decisions (Spending, Tooling, Staffing, etc) over low ROI (return on investment) decisions
Reusable or repeatable over singular solutions
Transparency with a focus on:
Responsible protection of MNPI (material non-public information)
Visibility through Coverage, Discoverability, Observability
Collaborative Culture with a focus on:
Working together on common solutions
Solve shared problems with shared solutions
Simplifying language for everyone to understand
Avoiding security jargon
Seek opportunities to help others succeed
To help achieve the vision of transparently leading the world to secure outcomes, the Security Division has nominated a Security Culture Committee.
Division Structure
The Security Division provides essential security operational services, is directly engaged in the development and release processes, and offers consultative and advisory services to better enable the business to function while minimising risk.
To reflect this, we have structured the Security Division around four key tenets, which drive the structure and the activities of our group. These are :
Secure the Product - The Product Security Department
The Product Security Department is primarily focused on Securing the Product. This reflects the Security Division’s current efforts to be involved in the Application development and Release cycle for Security Releases, Infrastructure Security, and our HackerOne bug bounty program.
The term “Product” is interpreted broadly and includes the GitLab application itself and all other integrations and code that is developed internally to support the GitLab application for the multi-tenant SaaS. Our responsibility is to ensure all aspects of GitLab that are exposed to customers or that host customer data are held to the highest security standards, and to be proactive and responsive to ensure world-class security in anything GitLab offers.
Protect the Company - The Security Operations Department
Security Operations Department teams are primarily focused on protecting GitLab the business and GitLab’s platform. This encompasses protecting company property as well as to prevent, detect and respond to risks and events targeting the business and our platform. This department includes the Security Incident Response Team (SIRT) and the Trust and Safety team.
These functions have the responsibility of shoring up and maintaining the security posture of GitLab’s platform to ensure enterprise-level security is in place to protect our new and existing customers.
Lead with Data - The Threat Management Department
Threat Management Department teams are cross-functional. They are responsible for collaborating across the Security Division to identify, communicate, and remediate threats or vulnerabilities that may impact GitLab, our Team Members or our users and the community at large.
Assure the Customer - The Security Assurance Department
The Security Assurance Department is comprised of the teams noted above. They target Customer Assurance projects among their responsibilities. This reflects the need for us to provide resources to our customers to assure them of the security and safety of GitLab as an application to use within their organisation and as a enterprise-level SaaS. This also involves providing appropriate support, services and resources to customers so that they trust GitLab as a Secure Company, as a Secure Product, and Secure SaaS
Other groups and individuals
Security Program Management
Security Program Management is responsible for complete overview and driving security initiatives across Product, Engineering, and Business Enablement. This includes the tracking, monitoring, and influencing priority of significant security objectives, goals, and plans/roadmaps from all security sub-departments. Security Program Manager Job Family
Security Program areas of focus
Drive Accountability & Visibility for Program Objectives & Goals
Drive, Gather, & Examine Program Needs & Opportunities through Intra & Inter Organizational Collaboration
Provide Insights & Suggestions Impacting Program Strategy & Roadmap
Assist in Gathering & Prioritizing Program Risks, Requirements, & Alignment to Influence Remediation
Drive & Define Acceptance Criteria, Value Proposition, Milestones to Visualize and Communicate Program Effectiveness
In keeping with our core values and the belief that everyone can contribute, the Security Division is committed to dogfooding and contributing to the development of the GitLab product.
If an urgent security incident has been identified or you suspect an incident may have occurred, please refer to Engaging the Security Engineer On-Call. Examples include, but are not limited to:
Lost or stolen devices
Leaked credentials
Endpoint compromise or infection
Exposure of sensitive GitLab data
GitLab provides a panic@gitlab.com email address for team members to use in situations when Slack is inaccessible and immediate security response is required.
This email address is only accessible to GitLab team members and can be reached from their gitlab.com or personal email address as listed in Workday. Using this address provides an excellent way to limit the damage caused by a loss of one of these devices.
Additionally if a GitLab team member experiences a personal emergency the People Group also provides an emergency contact email.
Sub-groups and projects
Many teams follow a convention of having a GitLab group team-name-team with a primary project used for issue tracking underneath team-name or similar.
#security; Used for general security questions and posting of external links for the great discussions. Company wide security relevant announcements are announced in #whats-happening-at-gitlab and may be copied here.
#security-department - Daily questions and discussions focused on work internal to the Security Division. Can be used for
reporting when unsure of where to go.
#abuse - Used for reporting suspected abusive activity/content (GitLab Internal) as well as general discussions regarding anti-abuse efforts. Use @trust-and-safety in the channel to alert the team to anything urgent.
#security-department-standup - Private channel for daily standups.
#security-alert-manual - New reports for the Security Division from various intake sources, including ZenDesk and new HackerOne reports.
#hackerone-feed - Feed of most activity from our HackerOne program.
Other #security-alert-* and #abuse* - Multiple channels for different notifications
handled by the Security Division.
Use the @sirt-members mention in any Slack channel to tag the members of the Security Incident Response Team (SIRT).
Use the @sec-assurance-team mention in any Slack channel to tag the members of the Security Compliance, Risk, and Governance & Field Security teams.
Use the @field-security mention in any Slack channel to tag the members of the Field Security team.
Use the @appsec-team mention in any Slack channel to tag the members of the Application Security team.
Use the @trust-and-safety mention in any Slack channel to tag the members of the Trust & Safety team.
Use the @security-identity mention in any Slack channel (or #security-identity-ops) to tag members of the Identity team.
Division, Department, and Team updates
We believe it is important to share regular updates at various levels of the Security Division, and we use Slack as the primary mechanism for providing these updates. Our updates are open to all GitLab team members using the following process:
Start of each month: A thread per-department is started in #security-department by each department leader (CorpSec, ProdSec, SecAssurance, SecOps). These threads are pinned for the duration of the month.
Thread template:
<MONTH> <DEPARMENT> Weekly Updates
Example: August Product Security Weekly Updates
Weekly: At least once a week, teams provide updates they wish to share within the appropriate thread. For example, updates from Vulnerability Management would be placed in the Product Security thread for the given month.
These weekly updates, while highly encouraged, are strictly optional and should represent content that ICs and managers feel should be highlighted. Teams are encouraged to define processes and DRIs around these updates that work for them.
Individuals providing the weekly updates are encouraged to use the “Also send to #security-department” option within the thread to increase visibility.
End of each month: Departmental leaders prepare a monthly update, including no more than three updates per team, and post it in #ciso within the first week of the following month.
Each monthly update should include a brief preface written by the departmental leader covering any notable themes or other strategic updates.
Each of the three updates per-team should be no more than 2-3 sentences and include at least one link to allow readers to gain additional context. Links should be to GitLab Issues or Epics wherever possible. If information is confidential and not able to be added to an Issue or Epic, a note should be added indicating this.
It is recommended that departmental leaders build their monthly update over the course of the month via a GitLab issue (see an example) in collaboration with their managers and senior ICs.
Ransomware
For an overview of the communication and response process for a suspected ransomware attack, please see our Responding to Ransomware page.
Important topics
Tokens
The following best practices will help ensure tokens are handled appropriately at GitLab. For detailed requirements regarding the use of tokens at GitLab, please see our token management standard.
When creating a Personal Access Token, be sure to choose the appropriate scopes that only have the permissions that are absolutely necessary.
Oftentimes a Project Access Token might be sufficient instead of a Personal Access Token. Project Access Tokens have a much more limited scope and should be preferred over Personal Access Tokens whenever possible.
Always set an expiration for your tokens when creating them. Tokens should preferably expire in a matter of hours or a day.
Be mindful to keep these personal access tokens secret. Be particularly careful not to accidentally commit them in configuration files, paste them into issue or merge request comments, or otherwise expose them.
Please consider periodically reviewing your currently active Personal Access Tokens and revoking any that are no longer needed.
Personal Access Tokens will be highly discouraged within the GitLab production environment, and disallowed/disabled wherever possible. Existing tokens shall remain, but additional issuance will not be permissible/possible.
If you believe a personal access token has been leaked, revoke it immediately (if possible) and contact the security team using the /security Slack command.
Receive notification of security releases
To receive security release blog notifications delivered to your inbox, visit our contact us page.
For additional information regarding security releases, please visit the Delivery Team’s security releases page.
Resources
Tools
Incident-Tools (private)
for working scripts and other code during or while remediating an incident.
If the tool is applicable outside of the GitLab.com environment, consider
if it’s possible to release when the ~security issue becomes
non-confidential. This group can also be used for private demonstration projects for
security issues.
security-tools (mostly private) contains some
operational tools used by the security teams. Contents and/or configurations
require that most of these projects remain private.
Calendar
We welcome GitLab team members to join meetings that are on our shared Security Calendar.
Other Frequently Used GitLab.com Projects
Security crosses many teams in the company, so you will find ~security labeled
issues across all GitLab projects, especially:
This group is setup to help interested Security team members get up to speed with AI technologies and how to secure them. For more information, see the AI in Security Learning Group page.
This policy is intended to outline the access management controls implemented by GitLab.
Scope
These controls apply to information and information processing systems at the application and operating system layers, including networks and network services.
Roles & Responsibilities
Role
Responsibility
Security Assurance
Responsible for implementing and executing this policy
Business or System Owners
Alignment to this policy and any related standards
Security Assurance Management (Code Owners)
Responsible for approving significant changes and exceptions to this policy
Team Members
Responsible for adhering to the requirements of this policy
Policy
Access requests and reviews
Access requests are opened for all new or changing access. (AC-2)
This learning group is to help interested GitLab Security team members to learn and share what they have learned about artificial intelligence (AI) and machine learning (ML) technologies.
This policy is intended to outline the change management controls implemented by GitLab.
Scope
Changes, in the context of this policy, are defined as modifications, including, but not limited to:
Creation/development/implementation of new systems, integrations, features, key reports, databases, etc.
Changes to configurations
Deployment of patches or vendor supplied changes not managed by the vendor
Modifications to data schemas
System deprecation
New access or role creation
Broadly speaking, any change that will impact how team members carry out their responsibilities
The policy applies to changes that are made to systems assigned a Critical System Tier of Tier 1 Mission Critical, Tier 2 Business Critical, and Tier 3 Business Operational.
Security Engineers typically act as Subject Matter Experts and advisors to GitLab’s engineering teams. Security Engineers may wish to make a larger contribution to GitLab products, for example a defense-in-depth measure or new security feature.
Like any contributor, follow the Contributor and Development Docs, paying particular attention to the issue workflow, merge requests workflow, style guides, and testing standards.
Security Engineers will need to collaborate with and ultimately hand over their work to a team in the Development Department. That team will be responsible for prioritisation, review, rollout, error budget, and maintenance of the contribution. Security Engineers should ideally open an Issue or Epic as early as possible, labeled with the candidate owning team. The team can inform implementation or architectural decisions, highlight existing or upcoming work that may impact yours, and let them plan capacity for reviewing your work.
GitLab deploys control activities through policies and standards that establish what is expected and procedures that put policies and standards into action.
👋 Welcome to Corporate Security, we’re glad you’re here! You may also know us as the former IT Operations team that moved from the Finance to Security division in early 2024.
Need Help?
Please try exploring the following pages to see if your question has been answered in the handbook pages. If not, please ask in the #it_help channel and one of our Support Analysts will reply as soon as possible.
GitLab receives vulnerability reports by various pathways, including:
HackerOne bug bounty program
Reports or questions that come in from customers through Zendesk.
Issues opened on the public issue trackers. The security team can not review
all new issues and relies on everyone in the company to identify and label
issues as ~bug::vulnerability and @-mention @gitlab-com/gl-security/product-security/appsec on issues.
Issues reported by automated security scanning tools
To ensure the proper operation and security of GitLab.com, GitLab logs critical information system activity.
Scope
The audit logging policy applies to all systems within our production environment. The production environment includes all endpoints and cloud assets used in hosting GitLab.com and its subdomains. This may include third-party systems that support the business of GitLab.com.
Roles & Responsibilities
Role
Responsibility
GitLab Team Members
Responsible for following the requirements in this policy
Security Team
Responsible for implementing and executing this policy
System Owners
Definition of individual audit log criteria; Definition and execution of system audit log procedures
Security Management (Code Owners)
Responsible for approving significant changes and exceptions to this policy
Policy
GitLab shall log and monitor critical information system activity.
Logs must be retained for a defined period of time.
Logs must not be modified and or deleted.
Access to audit log data must be limited based on the principle of least privilege.
Inline with GitLab’s Continuous Monitoring Controls
System Owners are responsible for determining what constitutes “critical information system activity” in their respective system based on their experience and professional judgement
This is the GitLab Cryptography Standard. It outlined cryptographic choices, including algorithms as well as important settings that may be associated with the algorithms. It applies to GitLab code and well as infrastructure configuration.
The Data Classification Standard defines data type and categories and provides the associated Data Classification of each for the purposes of determining the level of protection to be applied to GitLab and Customer data throughout its lifecycle.
Scope
The Data Classification Standard applies to all GitLab team members, contractors, consultants, vendors and other service providers that handle, manage, store or transmit GitLab data.
Roles & Responsibilities
Role
Responsibility
GitLab Team Members
Responsible for adhering to the requirements outlined in this standard
Data Owners
Responsible for approving exceptions to this standard for their owned data types. These are generally the Business Owners of a system.
Security and Legal (Code Owners)
Responsible for approving significant changes and exceptions to this standard
GitLab Responsibilities
GitLab team members, contractors, consultants, vendors and all other service providers acting on behalf of GitLab are required to review and understand this data classification standard, and how to handle data according to the classification levels below unless otherwise noted.
Passwords are one of the primary mechanisms that protect GitLab information systems and other resources from unauthorized use. GitLab’s password standard is based, in part, on the recommendations by NIST 800-63B.
The password standard sets the requirements for constructing secure passwords and ensuring proper password management. GitLab utilizes 1Password for password management.
1Password
1Password is a password manager that can be used in two different ways - as a standalone application (by purchasing a standalone license) or as a hosted service (by subscribing). GitLab uses 1Password for Business which is a hosted service.
This document outlines information security password standards intended to protect GitLab information systems and other resources containing confidential (Red and Orange) GitLab data from unauthorized use, where technically feasible.
Scope
Applies to all GitLab team members, contractors, advisors, and contracted parties interacting with GitLab computing resources and accessing confidential data.
Roles & Responsibilities
Role
Responsibility
GitLab Team Members
Responsible for adhering to the requirements outlined in this standard
Security
Responsible for defining and monitoring implementation of these standards for critical applications
Security Management (Code Owners)
Responsible for approving significant changes and exceptions to these standards
Standard
Constructing secure passwords and ensuring proper password management is essential. GitLab’s password standards are based, in part, on the recommendations by NIST 800-63B. To learn what makes a password truly secure, read this article or watch this conference presentation on password strength.
The purpose of this security logging standard is to define GitLab’s requirements for security logging. This document covers both security logging in GitLab’s SIEM (Devo) as well as security logging requirements for systems not sending logs to GitLab’s SIEM.
Roles & Responsibilities
Role
Responsibility
GitLab System Owners (as defined in GitLab’s tech stack)
Directly Responsible for adhering to the requirements outlined in this standard
Security Operations Team
Directly Responsible for the prioritization, onboarding and maintenance of logs in the Security team’s SIEM (Security Information Event Management) system, Devo.
Security Logging Requirements
Security logs are generated by applications and systems used on GitLab and are primarily used for security monitoring, security incident response and cyber threat hunting.
This is the GitLab Token Management Standard. It defines approved GitLab token usage, and distribution for the purposes of providing authentication and authorization within various systems and subsystems used by GitLab.
If you ended up on this handbook page it’s probably because you have been
pointed here during a git commit by our gitleaks installation
on your local machine. The tool gitleaks is being used
on GitLab endpoints to prevent a common security issue, namely accidental commits of secrets like Personal Access Token or other credentials
to public repositories. It is important that all repositories are covered as a leaked access token in one repository can impact all repositories and projects to which your account has access.
Some Google Cloud resources, if deployed with default settings, may introduce risk to shared environments. For example, you may be deploying a temporary development instance that will never contain any sensitive data. But if that instance is not properly secured, it could potentially be compromised and used as a gateway to other, more sensitive resources inside the same project.
Below are some steps you can take to reduce these risks.
The Security Identity team is leading the technical strategy and automation implementation of next-generation identity and access management (IAM), role-based access control (RBAC), and administrative access controls for internal GitLab systems, cloud infrastructure, and tech stack applications.
Since the launch of the company wide Individual Growth Plan in Workday per FY24-Q2 we recommend Security team members to leverage that tool in Workday to collaborate with their manager on their career path and growth opportunities. Team members can read all about that progress in this guide. We have deprecated the The Individual Development Plan (IDP) template
Till FY24-Q2 - Individual Development Plan
The Individual Development Plan (IDP) template was used by Security team members till FY24-Q1 to help collaborate on a team member’s career path and growth opportunities. The template was designed to document a team member’s personal choices and the direction they want to take their career while allowing their manager to provide guidance and assist with career growth. The use of this template is entirely voluntary and optional. In fact, the template format and process used are also both flexible and adaptable to each manager and team member. Feel free to adapt the template in manners that meet the needs of the manager and team member.
GitLab has adopted the ISO/IEC 27001:2022, ISO/IEC 27017:2015 and ISO/IEC 27018:2019 standards for our information security management system (ISMS) to provide GitLab team members, customers and community members with a high level of assurance on the robustness of our information security policies, standards and procedures, and the strength of our control environment. The purpose of this document is to define the boundaries and objectives of GitLab’s ISMS.
There are various reasons why you might want to isolate your work notebook from other devices in your home network:
Security concerns. The security of individual devices on your home network might vary. Some are notoriously insecure (e.g. smart home devices) or some might simply lack the latest security patches. Isolating devices with poor security from your work notebook (and other sensitive private devices) can increase the security of your work notebook.
Privacy concerns. GitLab is an all-remote company, with many of its employees working from home. As a side-effect, our work notebooks typically end up being connected to the same network as our personal devices, which allows for network access between these two groups of devices and may raise privacy concerns.
How
Many home routers allow connected devices to be isolated, which prevents any direct network communication between selected devices. This section walks you through setting up an isolated WiFi specifically for your work notebook. The goals specifically are:
A penetration test is a process to identify security vulnerabilities in an application or infrastructure in order to evaluate the security of the system.
Purpose
This policy is intended to outline the penetration testing controls implemented by GitLab.
Scope
These controls apply to the applications and systems that fall within the scope of each specific penetration test.
Roles & Responsibilities
Role
Responsibility
GitLab Team Members
Responsible for following the requirements in this policy
Security Team
Responsible for implementing and executing this policy
Security Management (Code Owners)
Responsible for approving significant changes and exceptions to this policy
Policy
Planning
A third-party penetration test is conducted at least annually. (CA-8, SC-7(10))
On a Mac, download and install the GPG Keychain application. Download the keypair file from the Support vault. It’s attached to the ‘security@gitlab.com PGP Keypair’ item. Open the GPG Keychain application and import the keypair file. It will ask for a password. Use the password saved on the vault item.
Now you will be able to encrypt, decrypt, and share the public key with others.
This document defines asset management measures and requirements to support the protection of information assets in GitLab’s all remote environment. The measures and requirements noted within the standard are designed to create a secure infrastructure, work environment, and protect sensitive information from physical threats.
Scope
This standard applies to all GitLab team-members, contractors, advisors, and contracted parties interacting with GitLab computing resources and accessing company or customer data.
Aligned with GitLab’s overarching information security strategy and its three-year plan, the Product Security Department (PSD) within the Security Division is responsible for crafting and directing a comprehensive vision to bolster the cybersecurity posture of the GitLab platform.
What is Product Security at GitLab?
At GitLab, product security encompasses a broad range of cybersecurity disciplines that enable product and engineering teams to design, develop, deploy, maintain, and refine GitLab’s technologies securely. This goes beyond the conventional confines of security, covering everything from protecting developer workstations to ensuring the integrity of our production environments.
Process outline on how to provide assistance to GitLab.com customers that have experienced a security incident as a the result of their implementation or use of GitLab.com
The GitLab records retention and disposal standard lists the specific retention and secure disposal requirements for critical GitLab records. These minimum requirements inform design and maintenance decisions for all GitLab tier 1 and tier 2 critical systems.
Scope
The below retention and secure disposal requirements apply to all GitLab records enumerated in the table below stored in GitLab tier 1 and tier 2 critical systems.
Roles & Responsibilities
Role
Responsibility
GitLab Team Members
Responsible for following the requirements in this controlled document.
Security Compliance Team
Responsible for reviewing and maintaining this controlled document.
Control Owners
Responsible for defining and implementing procedures to support the below requirements.
Security Assurance Management (Code Owners)
Responsible for approving significant changes and exceptions to this controlled document.
Retention & Disposal Requirements Procedure
Record
Retention Requirement
Disposal Requirement
Business continuity plan approvals
3 years
[GCP/AWS Secure Deletion]
Business continuity test results
3 years
[GCP/AWS Secure Deletion]
Production backup tests
1 year
[GCP/AWS Secure Deletion]
Production changes
3 years
[GCP/AWS Secure Deletion]
Security policy review/approvals
3 years
[GCP/AWS Secure Deletion]
Terms of service acceptance
As long as user is active
[GCP/AWS Secure Deletion]
Access request/change records
1 year
[GCP/AWS Secure Deletion]
Team-member offboarding issues
Varies by local laws
[GCP/AWS Secure Deletion]
System access reviews
1 year 3 months
[GCP/AWS Secure Deletion]
Shared and group authentication reviews
1 year 3 months
[GCP/AWS Secure Deletion]
Production audit logs
1 year
[GCP/AWS Secure Deletion]
GCP firewall configuration artifacts
1 year
[GCP/AWS Secure Deletion]
Job roles and responsibilities
1 year
[GCP/AWS Secure Deletion]
Security incident communication to customers
3 years
[GCP/AWS Secure Deletion]
Personnel-file records
Varies by local laws
[GCP/AWS Secure Deletion]
1:1 meeting notes
Varies by local laws
[GCP/AWS Secure Deletion]
On-boarding tickets
Varies by local laws
[GCP/AWS Secure Deletion]
Annual risk assessment report
2 years
[GCP/AWS Secure Deletion]
Risk treatment plans
3 years
[GCP/AWS Secure Deletion]
Security observation issues
3 years
[GCP/AWS Secure Deletion]
Board of Directors meeting minutes
Indefinite
N/A
Release notes
1 year
[GCP/AWS Secure Deletion]
Critical system activity logs
60 days
[GCP/AWS Secure Deletion]
Security monitoring alerts/metrics
3 years
[GCP/AWS Secure Deletion]
Vendor security review issues
3 years
[GCP/AWS Secure Deletion]
Customer-signed MSA’s
Indefinite
N/A
Vendor NDA’s
Indefinite
N/A
Annual security awareness training records
3 years
[GCP/AWS Secure Deletion]
Secure coding training records
2 years
[GCP/AWS Secure Deletion]
Penetration testing reports and remediation issues
2 years
[GCP/AWS Secure Deletion]
System patch records
1 year
[GCP/AWS Secure Deletion]
Source code scanning results
1 year
[GCP/AWS Secure Deletion]
ZenDesk tickets
3 years
[GCP/AWS Secure Deletion]
Nonpublic information review records
3 years
[GCP/AWS Secure Deletion]
Role-based security training records
3 years
[GCP/AWS Secure Deletion]
Audit log review records
3 years
[GCP/AWS Secure Deletion]
Security assessment reports/observation
3 years
[GCP/AWS Secure Deletion]
Security configuration reviews/alerts
3 years
[GCP/AWS Secure Deletion]
Security authorization records
3 years
[GCP/AWS Secure Deletion]
System connection requirements
3 years
[GCP/AWS Secure Deletion]
Configuration change records
3 years
[GCP/AWS Secure Deletion]
Security impact analysis records
3 years
[GCP/AWS Secure Deletion]
Production asset inventory
3 years
[GCP/AWS Secure Deletion]
BC training records
3 years
[GCP/AWS Secure Deletion]
Production backups
Organizationally-defined
[GCP/AWS Secure Deletion]
Customer data backups
Organizationally-defined
[GCP/AWS Secure Deletion]
Employment applications and interview notes (US-based applicants only)
Ransomware is a persistent threat to many organizations, including GitLab. In the event of a ransomware attack involving GitLab assets, it’s important to know the existing response procedures in place. Given the variability of targets in such attacks, it’s critical to adapt to existing circumstances and understand that disaster recovery processes are in place to avoid paying any ransom. GitLab’s red team has done extensive research to determine the most likely targets to be affected. As a result, the following guidelines are intended to help bootstrap an efficient response to protect the organization.
Root Cause Analysis (RCA) is a process to ultimately identify the root problem of an issue so that we may prevent it from occurring again. You can learn more about RCAs here.
To do this a DRI and all relevant other stakeholders from Security and the affected teams (as determined by the DRI) systematically work through a set of questions and discussion topics, as defined in our RCA Template.
Exceptions to Security and Technology Policies must be tracked and approved by the policy approver(s) via an auditable format. An exception process should be defined in each policy.
Information security considerations such as regulatory, compliance, confidentiality, integrity and availability requirements are most easily met when companies employ centrally supported or recommended industry standards. Whereas GitLab operates under the principle of least privilege, we understand that centrally supported or recommended industry technologies are not always feasible for a specific job function or company need. Deviations from the aforementioned standard or recommended technologies is discouraged. However, it may be considered provided that there is a reasonable, justifiable business and/or research case for a security and technology policy exception; resources are sufficient to properly implement and maintain the alternative technology; the process outlined in this and other related documents is followed and other policies and standards are upheld.
As a member of the Security department, the Security Assurance sub-department provides GitLab customers with a high level of assurance around the security of GitLab SaaS service offerings.
There are five teams in the Security Assurance sub-department.
The Security Assurance sub department utilizes a variety of tools to carry out day to day activities. The system admin is responsible for the following:
The security department as a part of GitLab should follow and live up to the GitLab values and mission.
The transparency value can be especially difficult for a security department to embrace and embody, as due to the confidentiality of their work, security people tend to be secretive and intransparent by default.
Intent and goals
The intent of the security culture committee is to maintain a welcoming and transparent environment within the security department.
Gearing ratios are used as [Business Drivers](/handbook/finance/financial-planning-and-analysis/#business-drivers-also-known-as-gearing-ratios) to forecast long term financial goals by function.
This page is created as a result of the FY21Q4 Culture Amp survey, where Security team members expressed a desire to improve on the currently available L&D opportunities at GitLab. In order to paint a holistic picture of L&D resources available to team members, some of the resources detailed on this page are not Security-specific and are already documented in the handbook.
L&D resources available to all team members
GitLab provides a multitude of opportunities to learn and develop new skills on the topics of leadership, management, and DIB. GitLab Learn is the platform of choice that allows self-paced, on-demand courses. It also contains trainings offered through LinkedIn Learning. If you’re looking for a more flexible approach to learning the aforementioned skills, then perhaps the learning initiatives provided by the L&D team are something for you to consider.
The Security Division plays a critical role in ensuring the security of GitLab as a company, and of GitLab as a platform. In the pursuit of its charter, the division is committed to using (“dogfooding”) GitLab as much as possible in order to help improve the platform for all customers.
This dogfooding program aims to improve the effectiveness and efficiency of collaboration between Product Management and Security as it pertains to capabilities of the GitLab platform.
This page outlines the Security Division ecosystem, by describing the different processes of our departments.
These processes, represented with diagrams, highlight the data flows between our teams but also with external actors like the Product or the Engineering divisions.
Objectives
This page describe how to maintain the Security Division ecosystem.
Scope of the Security Ecosystem
Every process where Security is involved should be documented in this page. Each Security Department is represented and responsible for their own diagrams.
The ultimate goal of this program is to transform an entry-level candidate into an Individual Contributor who could meet the requirements for a Security Engineer.
Four Mondays before the start of the fiscal quarter, in the days after the CEO shares OKRs with all of GitLab in the #okr channel, the CISO proposes OKRs for the Security Division in the OKR draft review meeting agenda for a maximum of 5 objectives. Security leaders are to propose draft OKRs to the CISO prior to the meeting for inclusion.
From FY24 Q1 forward all Security OKRs are documented in the GitLab OKR project. For easy filtering, all Security Objective and KR issues have the division::Security label applied.
The Security Planning page catalogs the planning work prior to
implementation offSecurity Department initiatives and projects that span
multiple security teams and projects, or across the entire GitLab
organization. This includes things from high level architecture designs for
tools used by the Security to developing new or maturing organizational
processes.
A Security Plan is done when the text is sufficient to create Epics,
Milestones, and Issues with a enough detail to begin work. Requiring further
work in the form of proof-of-concepts or spikes may also be an outcome of a
“complete” Plan.
From converging on real-time critical events with SIRT, exploiting vulnerabilities with the Red Team or participating in live Customer Assurance calls with the Risk and Field Security team, you will have the opportunity to work next to security staff to gain valuable insight and working knowledge of security fundamentals across multiple domains. Each program includes hands-on activities to provide an authentic security team experience.
The Security Shadow program is designed to provide numerous benefits including
Completion of each course you will receive a certificate. At the completion of all 3 courses your name will be recognized on this page.
Restrictions
Please keep in mind that there are some restrictions on what can and cannot be shared as part of the shadow program, particularly related to high severity vulnerabilities or incidents.
For example if a shadow is watching an AppSec team member triage HackerOne issues and a High or Critical vulnerability is reported, the shadow call should end.
Completion of each course you will receive a certificate. At the completion of all 3 courses your name will be recognized on this page.
Security Compliance
Security Compliance: Where “Just do whatever you want” comes to die.
Have you ever wondered where all those pesky security requests and requirements come from and why in the world you’re always being asked to provide evidence and talk through how systems are designed and configured? Well then good news! Come join the security compliance team for a shadow rotation where we’ll have you:
The Security Threat Management sub-department is responsible for identifying and remediating vulnerabilities or threats that may impact GitLab, our Team Members or our Customers and the community at large.
Security Threat Management Mission
The Security Threat Management sub-department’s mission is to support the business and our overall security efforts by ensuring that we are focused on real world threats and vulnerabilities that impact us. We accomplish this by:
Secure software development is critical to developing and maintaining a safe and trusted application. This policy outlines the general components of GitLab’s software development lifecycle.
Scope
This policy applies to anyone developing, reviewing, and merging code at GitLab in support of GitLab’s production applications.
Roles and responsibilities
Role
Responsibility
Security Governance
Responsible for creating and implementing this policy
Team members
Responsible for execution of the policy statements
Policy
In-scope development activities are performed in accordance with GitLab’s product development flow. (SA-3)
Secure software development is critical to developing and maintaining a safe and trusted application. This standard outlines the general components of GitLab’s software development lifecycle.
Scope
This standard applies to anyone developing code at GitLab in support of GitLab’s production applications. For in depth view of development process, see product development flow.
Roles and responsibilities
Role
Responsibility
Security Governance
Responsible for creating and implementing this standard
Team members
Responsible for execution of the standard statements
Standard
Inception and Requirements
This stage occurs across different mediums depending upon each team’s individual processes.
In alignment with our company value of Transparency, one focus of the security organization is to lead the most transparent security organization in business today. Transparency by default requires us to challenge the status quo where security teams traditionally operate in a very private and closed-off manner. However, being open by default requires us to be even more diligent in our efforts of categorizing data in order to ensure the protection of our customers, company, and team member data. Therefore, our position is that all information and activities produced by the security team should be considered “Public by Default” unless defined below:
GitLab’s Women in Security group is established to provide support, skills and leadership development, and networking and mentorship opportunities for the women in GitLab’s security department. The group also seeks to inspire women and girls interested in entering or learning about the security industry.
Membership
While tailored for current female team members of the GitLab Security organization, we encourage and welcome the participation of all GitLab members who are dedicated to the support of women in the security industry.
The company-wide mandate is justification for mapping Security headcount to around 5% of total company headcount. Tying Security Department growth headcount to 5% of total company headcount ensures adequate staffing support for the following (below are highlights and not the entire list of responsibilities of the Security Department):
Security releases. At GitLab, the Security Department is DRI for critical and non-critical security releases.
Detection/response for security incidents, which will increase as GitLab.com users increase.
Preparation for becoming a public company.
Running the GitLab public bug bounty program.
Dogfooding and contributing to our product.
Improving and maintaining the security of GitLab.com and related services.
Career Development and Opportunities at GitLab
Career opportunities at GitLab, personal growth, and development are important and encouraged. Security team members and managers are encouraged to use Individual Development Plans to help foster, guide, and assist with career growth.