Spectra Assure
Community
Docs
warningRisk: Hardening
Scanned: 2 days ago

grpc

latest
Top 1k
GRPC system in Ruby
License: Permissive (Apache-2.0)
Published: about 2 months ago



SAFE Assessment

Compliance

Licenses
No license compliance issues
Secrets
No sensitive information found

Security

Vulnerabilities
No known vulnerabilities detected
Hardening
4 execution hijacking concerns

Threats

Tampering
No evidence of software tampering
Malware
No evidence of malware inclusion

Popularity

181.29M
Total Downloads
Contributor
Declared Dependencies
222
Dependents

Top issues

Problem

Software components sometimes need to interact with higher privilege parts of the operating system, often requiring administrative access to accomplish a task. System certificate stores are databases that define the chain of trust for a machine. These databases control the list of websites the machine can securely connect to, and the list of applications that the operating system implicitly trusts. For that reason, attackers often abuse system certificate stores to ensure their malicious code executes without being detected by security solutions. While the presence of code that tampers with system certificate stores does not necessarily imply malicious intent, all of its uses in a software package should be documented and approved. Only select applications should consider using functions that interact with system certificate stores. One example of acceptable use for such functions is adding publisher certificates to the system trust store during software installation.

Prevalence in RubyGems community

0 packages
found in
Top 100
2 packages
found in
Top 1k
7 packages
found in
Top 10k
32 packages
in community

Next steps

Investigate reported detections as indicators of software tampering.
Consult Mitre ATT&CK documentation: T1553.004 - Install Root Certificate Subvert.
Consider rewriting the flagged code without using the marked behaviors.

Problem

Software components sometimes need to interact with higher privilege parts of the operating system, often requiring administrative access to accomplish a task. Operating systems include a complete network stack with many services that allow the machine to connect to the internet. Some of these services are used to secure network access. For that reason, attackers often aim to tamper with system network settings. Disabling firewalls and other network security features enable the malicious code to execute without being blocked. While the presence of code that tampers with system network settings does not necessarily imply malicious intent, all of its uses in a software package should be documented and approved. Only select applications should consider using functions that interact with system network settings. One example of acceptable use for such functions is allowing specialized applications to use non-standard network ports by updating the firewall allowlist.

Prevalence in RubyGems community

0 packages
found in
Top 100
5 packages
found in
Top 1k
20 packages
found in
Top 10k
123 packages
in community

Next steps

Investigate reported detections as indicators of software tampering.
Consult Mitre ATT&CK documentation: T1562.004 - Disable or Modify System Firewall.
Consider rewriting the flagged code without using the marked behaviors.

Problem

Software developers use programming and design knowledge to build reusable software components. Software components are the basic building blocks for modern applications. Software consumed by an enterprise consists of hundreds, and sometimes even thousands of open source components. Open source communities depend on the work of thousands of software developers that volunteer their time to maintain software components. Software developers build up the reputation of their open source projects by developing in public. Modern source code repositories have many social features that allow software developers to handle bug reports, have discussions with their users, and convey reaching significant project milestones. It is uncommon to find open source projects that omit linking their component to a publicly accessible source code repository.

Prevalence in RubyGems community

No prevalence information at this time

Next steps

Check the software component behaviors for anomalies.
Consider exploratory software component testing within a sandbox environment.
Consider replacing the software component with a more widely used alternative.
Avoid using this software package until it is vetted as safe.

Problem

On Linux, external symbols are resolved via the procedure linkage table (PLT) and the global offset table (GOT). Without any protection, both are writable at runtime and thus leave the executable vulnerable to pointer hijacking - an attack where the function address is overwritten with an address of a malicious function. Pointer hijacking can be mitigated by using full read-only relocations, which instruct the compiler to unify global offset tables into a single read-only table. This requires that all external function symbols are resolved at load-time instead of during execution, and may increase loading time for large programs.

Prevalence in RubyGems community

4 packages
found in
Top 100
14 packages
found in
Top 1k
106 packages
found in
Top 10k
712 packages
in community

Next steps

In most cases, it's recommended to use full read-only relocations (in GCC: -Wl,-z,relro,-z,now).
If the executable load-time is an issue, you should use partial read-only relocations.

Problem

Uniform Resource Locators (URLs) are structured addresses that point to locations and assets on the internet. URLs allow software developers to build complex applications that exchange data with servers that can be hosted in multiple geographical regions. URLs can commonly be found embedded in documentation, configuration files, source code and compiled binaries. A port number is associated with a network address of a host, such as an IP address, and the type of network protocol used for communication. Within URLs, the ports are optional. Ports can be specified in a URL immediately following the domain name. Each network protocol, or schema, has a set of standard ports on which the service operates. This issue is raised when a mismatch between a network protocol and its expected port number is detected. While the presence of non-standard ports does not imply malicious intent, all of their uses in a software package should be documented and approved.

Prevalence in RubyGems community

27 packages
found in
Top 100
375 packages
found in
Top 1k
1571 packages
found in
Top 10k
15785 packages
in community

Next steps

Investigate reported detections.
If the software should not include these network references, investigate your build and release environment for software supply chain compromise.
You should delay the software release until the investigation is completed, or until the issue is risk accepted.
Consider changing the port to one that is standard for the networking protocol.

Top behaviors

Prevalence in RubyGems community

Behavior uncommon for this community (Uncommon)
0 packages
found in
Top 100
2 packages
found in
Top 1k
11 packages
found in
Top 10k
93 packages
in community

Prevalence in RubyGems community

Behavior uncommon for this community (Uncommon)
0 packages
found in
Top 100
2 packages
found in
Top 1k
23 packages
found in
Top 10k
140 packages
in community

Prevalence in RubyGems community

Behavior uncommon for this community (Uncommon)
0 packages
found in
Top 100
7 packages
found in
Top 1k
72 packages
found in
Top 10k
464 packages
in community

Prevalence in RubyGems community

Behavior uncommon for this community (Uncommon)
0 packages
found in
Top 100
10 packages
found in
Top 1k
64 packages
found in
Top 10k
459 packages
in community

Prevalence in RubyGems community

Behavior often found in this community (Common)
7 packages
found in
Top 100
33 packages
found in
Top 1k
143 packages
found in
Top 10k
1133 packages
in community

Top vulnerabilities

No vulnerabilities found.