New to CAPEC? Start Here
Home > CAPEC List > CAPEC-692: Spoof Version Control System Commit Metadata (Version 3.8)  

CAPEC-692: Spoof Version Control System Commit Metadata

Attack Pattern ID: 692
Abstraction: Detailed
Presentation Filter:
+ Description

An adversary spoofs metadata pertaining to a Version Control System (VCS) (e.g., Git) repository's commits to deceive users into believing that the maliciously provided software is frequently maintained and originates from a trusted source.

+ Extended Description

Version Control Systems are widely used by developers to host, track, and manage source code files in an easy and synchronous manner. These systems are often leveraged to host open-source software that other developers can incorporate into their own applications or use as standalone applications. To prevent downloading vulnerable and/or malicious code, developers will often check the metadata of VCS repository commits to determine the repository's overall pedigree. This may include a variety of information, such as the following:

  • Owner of the repository
  • Author(s) of commits
  • Frequency of commits
  • Date/Time of commits
  • Repository activity graphs

These precursory checks can assist developers in determining whether a trusted individual/organization is providing the source code, how often the code is updated, and the relative popularity of the software. However, an adversary can spoof this metadata to make a repository containing malicious code appear as originating from a trusted source, being frequently maintained, and being commonly used by other developers. Without performing additional security activities, unassuming developers may be duped by this spoofed metadata and include the malicious code within their systems/applications. The adversary is then ultimately able to achieve numerous negative technical impacts, while the victim remains unaware of any malicious activity.

+ Likelihood Of Attack

Medium

+ Typical Severity

High

+ Relationships
Section HelpThis table shows the other attack patterns and high level categories that are related to this attack pattern. These relationships are defined as ChildOf and ParentOf, and give insight to similar items that may exist at higher and lower levels of abstraction. In addition, relationships such as CanFollow, PeerOf, and CanAlsoBe are defined to show similar attack patterns that the user may want to explore.
NatureTypeIDName
ChildOfStandard Attack PatternStandard Attack Pattern - A standard level attack pattern in CAPEC is focused on a specific methodology or technique used in an attack. It is often seen as a singular piece of a fully executed attack. A standard attack pattern is meant to provide sufficient details to understand the specific technique and how it attempts to accomplish a desired goal. A standard level attack pattern is a specific type of a more abstract meta level attack pattern.691Spoof Open-Source Software Metadata
Section HelpThis table shows the views that this attack pattern belongs to and top level categories within that view.
View NameTop Level Categories
Domains of AttackSoftware, Supply Chain
+ Execution Flow
Explore
  1. Identify target: The adversary must first identify a target repository for them to spoof. Typically, this will be a popular and widely used repository, as to increase the amount of victims a successful attack will exploit.

Experiment
  1. Create malicious repository: The adversary must create a malicious repository that imitates the legitimate repository being spoofed. This may include creating a username that closely matches the legitimate repository owner; creating a repository name that closely matches the legitimate repository name; uploading the legitimate source code; and more.

  2. Spoof commit metadata: Once the malicious repository has been created, the adversary must then spoof the commit metadata to make the repository appear to be frequently maintained and originating from trusted sources.

    Techniques
    Git Commit Timestamps: The adversary generates numerous fake commits while setting the "GIT_AUTHOR_DATE" and "GIT_COMMITTER_DATE" environment variables to a date which is to be spoofed.
    Git Commit Contributors: The adversary obtains a legitimate and trusted user's email address and then sets this information via the "git config" command. The adversary can then commit changes leveraging this username.
Exploit
  1. Exploit victims: The adversary infiltrates software and/or system environments with the goal of conducting additional attacks.

    Techniques
    Active: The adversary attempts to trick victims into downloading the malicious software by means such as phishing and social engineering.
    Passive: The adversary waits for victims to download and leverage malicious software.
+ Prerequisites
Identification of a popular open-source repository whose metadata is to be spoofed.
+ Skills Required
[Level: Medium]
Ability to spoof a variety of repository metadata to convince victims the source is trusted.
+ Consequences
Section HelpThis table specifies different individual consequences associated with the attack pattern. The Scope identifies the security property that is violated, while the Impact describes the negative technical impact that arises if an adversary succeeds in their attack. The Likelihood provides information about how likely the specific consequence is expected to be seen relative to the other consequences in the list. For example, there may be high likelihood that a pattern will be used to achieve a certain impact, but a low likelihood that it will be exploited to achieve a different impact.
ScopeImpactLikelihood
Integrity
Modify Data
Accountability
Hide Activities
Access Control
Authorization
Execute Unauthorized Commands
Alter Execution Logic
Gain Privileges
+ Mitigations
Before downloading open-source software, perform precursory metadata checks to determine the author(s), frequency of updates, when the software was last updated, and if the software is widely leveraged.
Reference vulnerability databases to determine if the software contains known vulnerabilities.
Only download open-source software from reputable hosting sites or package managers.
Only download open-source software that has been adequately signed by the developer(s). For repository commits/tags, look for the "Verified" status and for developers leveraging "Vigilant Mode" (GitHub) or similar modes.
After downloading open-source software, ensure integrity values have not changed.
Before executing or incorporating the software, leverage automated testing techniques (e.g., static and dynamic analysis) to determine if the software behaves maliciously.
+ Example Instances
In July 2022, Checkmarx reported that GitHub commit metadata could be spoofed if unsigned commits were leveraged by the repository. Adversaries were able to spoof commit contributors, as well as the date/time of the commit. This resulted in commits appearing to originate from trusted developers and a GitHub activity graph that duped users into believing that the repository had been maintained for a significant period of time. The lack of commit metadata validation ultimately allowed adversaries to propagate malware to unsuspecting victims [REF-719] [REF-720].
+ Taxonomy Mappings
Relevant to the ATT&CK taxonomy mapping (see parent )
+ References
[REF-719] Aviad Gershon. "Unverified Commits: Are You Unknowingly Trusting Attackers’ Code?". Checkmarx. 2022-07-15. <https://checkmarx.com/blog/unverified-commits-are-you-unknowingly-trusting-attackers-code/>. URL validated: 2022-08-12.
[REF-720] Deeba Ahmed. "Hackers can spoof commit metadata to create false GitHub repositories". HackRead. 2022-07-17. <https://www.hackread.com/hackers-spoof-commit-metadata-false-github-repositories/>. URL validated: 2022-08-12.
+ Content History
Submissions
Submission DateSubmitterOrganization
2022-09-29
(Version 3.8)
CAPEC Content TeamThe MITRE Corporation
More information is available — Please select a different filter.
Page Last Updated or Reviewed: September 29, 2022