Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create rule S7205: Dependencies should be verified against a known checksum or signature #4702

Closed
wants to merge 6 commits into from

Conversation

github-actions[bot]
Copy link
Contributor

You can preview this rule here (updated a few minutes after each push).

Review

A dedicated reviewer checked the rule description successfully for:

  • logical errors and incorrect information
  • information gaps and missing content
  • text style and tone
  • PR summary and labels follow the guidelines

@hendrik-buchwald-sonarsource hendrik-buchwald-sonarsource changed the title Create rule S7205 Create rule S7205: Dependencies should be checked against a known checksum or signature Feb 24, 2025
@pierre-loup-tristant-sonarsource pierre-loup-tristant-sonarsource marked this pull request as ready for review February 27, 2025 14:01
@pierre-loup-tristant-sonarsource pierre-loup-tristant-sonarsource changed the title Create rule S7205: Dependencies should be checked against a known checksum or signature Create rule S7205: Dependencies should be verified against a known checksum or signature Feb 27, 2025
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM in general! Just some minor things in the comments.

@@ -0,0 +1,85 @@
Software projects often rely on external code libraries, known as dependencies. Package managers such as Gradle, allow developpers to reference dependencies for their projects.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Software projects often rely on external code libraries, known as dependencies. Package managers such as Gradle, allow developpers to reference dependencies for their projects.
Software projects often rely on external code libraries, known as dependencies. Package managers, such as Gradle, allow developers to reference dependencies for their projects.


== Why is this an issue?

Failing to verify the integrity of dependencies before using them is a significant security problem. It exposes your application, and potentially your users, to several risks. The core issue is that you're running code from an untrusted source without checking it, effectively giving an attacker a direct pathway into your application.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Failing to verify the integrity of dependencies before using them is a significant security problem. It exposes your application, and potentially your users, to several risks. The core issue is that you're running code from an untrusted source without checking it, effectively giving an attacker a direct pathway into your application.
Failing to verify the integrity of dependencies before using them is a significant security problem. It exposes your application, and potentially your users, to several risks. The core issue is that you are running code from an untrusted source without checking it, effectively giving an attacker a direct pathway into your application.

As per styling guide for RSPEC.


Failing to verify the integrity of dependencies before using them is a significant security problem. It exposes your application, and potentially your users, to several risks. The core issue is that you're running code from an untrusted source without checking it, effectively giving an attacker a direct pathway into your application.

This is often a key component of what's called a "supply chain attack." The attacker isn't directly attacking your application. Instead, they're attacking a component you use. This is an important consideration because the attack's source is less obvious. You might diligently secure your own code, but overlook the risk introduced by external dependencies.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This is often a key component of what's called a "supply chain attack." The attacker isn't directly attacking your application. Instead, they're attacking a component you use. This is an important consideration because the attack's source is less obvious. You might diligently secure your own code, but overlook the risk introduced by external dependencies.
This is often a key component of what's called a "supply chain attack." The attacker is not directly attacking your application. Instead, they're attacking a component you use. This is an important consideration because the attack's source is less obvious. You might diligently secure your own code, but overlook the risk introduced by external dependencies.

As per styling guide for RSPEC.

Co-authored-by: Hendrik Buchwald <64110887+hendrik-buchwald-sonarsource@users.noreply.github.com>
Copy link

sonarqube-next bot commented Mar 4, 2025

Quality Gate passed Quality Gate passed for 'rspec-tools'

Issues
0 New issues
0 Fixed issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
No data about Duplication

See analysis details on SonarQube

Copy link

sonarqube-next bot commented Mar 4, 2025

Quality Gate passed Quality Gate passed for 'rspec-frontend'

Issues
0 New issues
0 Fixed issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
No data about Duplication

See analysis details on SonarQube

@@ -0,0 +1,9 @@
Software projects often rely on external code libraries, known as dependencies. Package managers such as Gradle, allow developpers to reference dependencies for their projects.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Software projects often rely on external code libraries, known as dependencies. Package managers such as Gradle, allow developpers to reference dependencies for their projects.
Software projects often rely on external code libraries, known as dependencies. Package managers such as Gradle, allow developers to reference dependencies for their projects.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants