Top issues
Detected presence of software components that can tamper with the system certificate stores.
hunting
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.
Detected presence of software components that can tamper with the system network settings.
hunting
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 timeNext 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.
Detected Linux executable files that were compiled without the recommended dynamic symbol hijacking protections.
Causes risk: execution hijacking concerns
hardening
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
Writes data to the hosts file.
stealth
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
Reads data from files containing SSL certificates installed on the system.
steal
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
Contains common certificate strings.
settings
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
Listens on incoming network connections.
network
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
Accesses /etc/group file.
file
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.