Hackers use supply chain attacks to breach a target by gaining access to and taking advantage of weaknesses in the vendor, partner, or supplier network.
Threat actors can enter the target firm by distributing malware, influencing software upgrades, and gaining illicit access by breaching a reliable party in the supply chain.
Recently, cybersecurity researchers at Oversecured a supply chain attack, which is dubbed “MavenGate,” which let threat actors hijack Java and Android apps.
Open Suspicious Files & Links in the ANY RUN Sandbox Safely; Try All Features for Free. Understand malware behavior, collect IOCs, and easily map malicious actions to TTPs — all in our interactive sandbox.
MavenGate Supply Chain Attack
Over 18% of dependencies are vulnerable, which could escalate the project risk. Exploiting allows code injection, build process risk, and infrastructure access. However, researchers reported more than 200 companies, including Google, Facebook, Signal, and Amazon.
Gradle projects have dependency repositories specifying where to find dependencies.
Dependencies use groupId:artifactId: version format, and there are two repositories:-
- Private (like Google)
- Public (like mavenCentral())
Here, the security concern is how to prevent attackers from replacing public dependencies. To fix this, researchers advised doing identity confirmation via DNS TXT records for group ID registration by preventing substitution and ensuring safe usage of trusted dependencies.
Defense relies on adding DNS records, but abandoned projects pose a risk. The attack plan finds abandoned dependencies and then buys the domain.
Developers often use one repository, which makes it vulnerable. While the attacker can claim rights via DNS TXT in a repository without account management.
If the groupId is registered then the threat actors may contact support with a reason for access. Besides this, the procedures for transferring permissions can vary across repositories without a common standard.
Ethical concerns prevent testing on real dependencies. Besides this, for onboarding new projects, researchers focused on com.oversecured groupId by studying the processes in mavenCentral and jitpack repositories.
Types of Attacks
Web and mobile app attacks:-
- Attack on existing library versions: The attacker’s repository higher on the list replaces library copies with malicious code (Existing Defenses considered).
- Attack on new versions: The attacker’s repository lower on the list releases a new version with embedded malicious code; many apps don’t check digital signatures.
Library Attacks:-
- Make sure to check library groupId hijackability.
- Library dependencies checked in the using project, transitive but searched based on the project’s repository declarations.
To gauge the issue of unsigned dependencies and missing public keys, experts suggest running ‘./gradlew –write-verification-metadata pgp,sha256 –export-keys.’
It reveals a high number of unsigned dependencies from Google. Apache dependencies lacked validation due to missing public keys. MavenCentral, which is a key repository, discloses statistics, while other repositories may not.
Vulnerability disclosures were sent to major companies, including Google, Facebook, Amazon, Microsoft, Adobe, LinkedIn, Netflix, and over 200 others.