Spectra Assure
Community
failRisk: Secrets
Scanned: 16 days ago

@aws-cdk/asset-awscli-v1

latest
Top 10k
A library that contains the AWS CLI for use in Lambda Layers
License: Permissive (Apache-2.0)
Published: 21 days ago




SAFE Assessment

Compliance

Licenses
No license compliance issues
Secrets
1 web service credentials found

Security

Vulnerabilities
No known vulnerabilities detected
Hardening
1 execution hijacking concerns

Threats

Tampering
No evidence of software tampering
Malware
No evidence of malware inclusion
List of software quality issues with the number of affected components.
Policies
Info
Category

Problem

Software as a Service (SaaS) platforms expose programmable interfaces to their authenticated users. These web services enable action automation and secure exchange of information. To authenticate, web service users provide a unique account identifier and a secret that confirms their access rights. Account access credentials are considered secrets. They should never be included in a software release package, even if they are obfuscated by encryption on the client-side.

Prevalence in npm community

0 packages
found in
Top 100
0 packages
found in
Top 1k
15 packages
found in
Top 10k
2.27k packages
in community

Next steps

You should securely store web service access credentials, and fully automate their management and periodic rotation.
If credentials were published unintentionally and the software has been made public, you should revoke exposed credentials and file a security incident.
Examples of service credentials that may have been detected include AWS, Square, Zoho, Duo, PayPal and others.

Problem

Applications communicate with web services by exchanging HTTP requests. During software development, externally hosted services are used by developers to debug software quality issues relating to exchanging HTTP requests. Attackers commonly abuse tools designed for HTTP request inspection to monitor network traffic and extract sensitive information from the HTTP traffic. While the presence of domains related to HTTP inspection does not imply malicious intent, all of their uses in a software package should be documented and approved. Attackers might have purposely injected security testing tools in the software package to monitor the network traffic of the infected computer system. It is also possible that the software package has mistakenly included a part of its testing infrastructure during packaging.

Prevalence in npm community

0 packages
found in
Top 100
7 packages
found in
Top 1k
71 packages
found in
Top 10k
18.42k 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 removing all references to flagged network locations.

Problem

Buffer overrun protection on Linux is achieved in two ways. The most common solution is to use the stack canary (also called cookie). The stack canary is a special value written onto the stack that allows the operating system to detect and terminate the program if a stack overrun occurs. In most cases, compilers will apply the stack canary conservatively in order to avoid a negative performance impact. Therefore, stack canaries are often used together with another stack overrun mitigation - fortified functions. Fortified functions are usually wrappers around standard glibc functions (such as memcpy) which perform boundary checks either at compile time or run time to determine if a memory violation has occurred. The compiler needs additional context to generate such calls (for example, array size that needs to be known at compile time). Because of this, the compiler will virtually never substitute all viable functions with their fortified counterparts in complex programs. However, when combined with the stack canary, fortified functions provide a good measure of buffer overrun protection.

Prevalence in npm community

0 packages
found in
Top 100
1 packages
found in
Top 1k
98 packages
found in
Top 10k
12.03k packages
in community

Next steps

Presence of unfortified memory functions may indicate use of unsafe programming practices, and you should avoid it if possible.
In GCC, enable fortified functions with -fstack-protector and -D_FORTIFY_SOURCE=2 flag, while using at least -O1 optimization level.

Problem

Various network communication protocols allow including plaintext authentication credentials. Information such as user names and passwords could be passed through a non-encrypted channel, and therefore intercepted by malicious actors. Credentials are considered secrets, and should be kept encrypted until they are used. This policy control matches the following URI pattern protocol://username:password@domain within any software package component.

Prevalence in npm community

1 packages
found in
Top 100
3 packages
found in
Top 1k
110 packages
found in
Top 10k
22.4k packages
in community

Next steps

Review the reported matches. If the warning refers to a placeholder credential value, it can be safely ignored.

Problem

Software components contain executable code that performs actions implemented during its development. These actions are called behaviors. In the analysis report, behaviors are presented as human-readable descriptions that best match the underlying code intent. While most behaviors are benign, some are commonly abused by malicious software with the intent to cause harm. When a software package shares behavior traits with malicious software, it may become flagged by security solutions. Any detection from security solutions can cause friction for the end-users during software deployment. While the behavior is likely intended by the developer, there is a small chance this detection is true positive, and an early indication of a software supply chain attack.

Prevalence in npm community

9 packages
found in
Top 100
29 packages
found in
Top 1k
255 packages
found in
Top 10k
95.32k packages
in community

Next steps

Investigate reported detections.
If the software intent does not relate to the reported behavior, 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 rewriting the flagged code without using the marked behaviors.

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. URL paths provide additional information to a web service when making a request. They are an optional, but an important part of the URL, as they may define specific content or actions based on the data being passed. Some parameters they pass might be considered sensitive information. Since path components are not encrypted this might cause sensitive information to leak. This issue is raised for URL paths than might contain information that attackers can easily intercept. Examples of sensitive information fields include passwords and other similar parameters.

Prevalence in npm community

1 packages
found in
Top 100
11 packages
found in
Top 1k
131 packages
found in
Top 10k
30.49k 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 removing all references to flagged network locations.

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 npm community

18 packages
found in
Top 100
133 packages
found in
Top 1k
1817 packages
found in
Top 10k
2.98M packages
in community

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 npm community

0 packages
found in
Top 100
0 packages
found in
Top 1k
79 packages
found in
Top 10k
9.13k 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

Debug databases are typically only used during software development. On Windows, they are usually files embedded into the executable (PDB), while on Linux, they're contained inside special executable sections. The databases contain private debug symbols that make it significantly easier to reverse-engineer a closed-source application. In some cases, having a debug database is equivalent to having access to the source code. Presence of debug databases could indicate that one or more software components have been built using a debug profile, instead of the release. Private debug databases can be embedded into software components by programming language tools.

Prevalence in npm community

0 packages
found in
Top 100
0 packages
found in
Top 1k
93 packages
found in
Top 10k
9.46k packages
in community

Next steps

To remediate this issue and remove private debugging information, refer to your programming language toolchain documentation.

Problem

Common compilers often embed source code information into executables for debugging purposes, usually by mapping symbols to source filenames or paths. While this is typically desirable in open-source software and standard tools, that information can be used to determine security weaknesses, code repository layout, trade secrets and similar sensitive information. Such symbols make it easier to reverse-engineer a closed source application.

Prevalence in npm community

0 packages
found in
Top 100
1 packages
found in
Top 1k
119 packages
found in
Top 10k
14.5k packages
in community

Next steps

Strip out such information in the linking phase by using compiler options like the -s flag in GCC, or in the post-build phase by using the strip tool.