HTTP/2 (RFC9204) is an updated version of the HTTP protocol that allows multiple streams of data to be sent simultaneously over a single TCP connection. The data is binary-encoded into frames, with different frame types designed for specific purposes.
Two crucial frame types are HEADERS and CONTINUATION frames, which are used to send header fields in requests and responses.
The headers are divided and serialized into “header lists” for transmission within HEADERS frames, while CONTINUATION frames are used to continue the sequence of headers in the data stream.
The vulnerability occurs when an attacker crafts a malicious request that never sets the END_HEADERS flag, creating an infinite stream of headers that the HTTP/2 server must parse and store in memory. As the server struggles to process the incoming headers, it becomes unavailable and may eventually crash due to an Out of Memory (OOM) error.
Potential outcomes of this vulnerability include:
The impact of the CONTINUATION Flood vulnerability is potentially more severe than the previous Rapid Reset vulnerability for two main reasons.
Numerous Internet services already implement version 2 of HTTP which could present a risk to the Internet safety, and that’s why disclosures and fixes of the most critical services were coordinated with CERT/CC.
Multiple CVEs have been assigned:
Project | Confirmed | Affected Versions | CVE ID |
amphp/http | 2024-03-11 | >= 2.0.0 && <= 2.1.0, <= 1.7.2 | CVE-2024-2653 |
Apache HTTP Server (httpd) | 2024-02-23 | 2.4.17-2.4.58 | CVE-2024-27316 |
Apache Tomcat | 2024-01-25 | <=11.0.0-M16, <=10.1.18, <=9.0.85, 8.5.0-8.5.98 | CVE-2024-24549 |
Apache Traffic Server | 2024-03-29 | 8.0.0-8.1.9, 9.0.0-9.2.3 | CVE-2024-31309 |
github.com/envoyproxy/envoy (oghttp) | 2024-02-27 | 1.29.0, 1.29.1 | CVE-2024-27919 |
github.com/envoyproxy/envoy (nghttp2) | 2024-02-27 | <=1.29.2 | CVE-2024-30255 |
Golang | 2024-01-10 | <=1.20, <=1.21.8, <=1.22.1 | CVE-2023-45288 |
h2 Rust crate | 2024-03-04 | <=0.4.3, <=v0.3.25 | |
nghttp2 | 2024-03-08 | <=1.60.0 | CVE-2024-28182 |
Node.js | 2024-01-15 | <=18.20.0, <=20.12.0, <=21.7.1 | CVE-2024-27983 |
Tempesta FW | 2024-03-16 | 0.7.0 | CVE-2024-2758 |
█████████ *** | 2024-04-04 | CVE-2024-XXXX | |
█████████ | 2024-04-04 | CVE-2024-XXXX |
In HTTP/1.1, servers are protected from infinite headers by enforcing header size limits and request/headers timeouts that drop the connection.
So, to mitigate the CONTINUATION Flood vulnerability, vendors must limit or sanitize the number of CONTINUATION frames sent within a single stream. Some vendors have already released fixes, while others are working on patches.
Affects the amphp/http Composer package. Fixed in versions 1.7.3 and 2.1.1 with commit 881cc33d.
More information here.
Affects Apache HTTP Server (httpd). Fixed in version 2.4.59 with commit b646741f.
More information here.
Affects Apache Tomcat. Fixed in versions 8.5.99, 9.0.86, 10.1.19 and 11.0.0-M17 with commit 810f49d5.
Note that this CVE is not directly related to the CONTINUATION flaw but was discovered as a consequence of a POC for the vulnerability.
More information here.
Affects Apache Traffic Server. Fixed in versions 8.1.10-rc0 and 9.2.4-rc0 with commit b8c6a23b.
More information here.
Affects the Go package github.com/envoyproxy/envoy through the “oghttp” component. Fixed in versions 1.26.8, 1.27.4, 1.28.2 and 1.29.3 with commit d1936d03.
More information here.
Affects the Go package github.com/envoyproxy/envoy through the “nghttp2” component. Fixed in versions 1.26.8, 1.27.4, 1.28.2 and 1.29.3.
More information here.
Fixed in the Go packages golang.org/x/net/http2 version 0.23.0 and net/http 1.21.9 and 1.22.2 with commit ba872109.
More information here.
Affects the Cpp library and Go wrapper nghttp2. Fixed in version 1.61.0 with commit 00201ecd.
More information here.
Affect Node.js. Fixed in versions 18.20.1, 20.12.1 and 21.7.2.
More information here.
Affects Tempesta FW. Fixed in version 0.7.1.
Our team is actively tracking these vulnerabilities and ensuring that our SCA solution covers the affected products within its scope.
More information here.
We maintain a comprehensive list of advisories on our DevHub page at https://devhub.checkmarx.com/advisories/. (A resource that provides timely information and insights about various SCA vulnerabilities).
The HTTP/2 CONTINUATION Flood vulnerabilities present a critical issue that can cause significant disruption to web servers.
This class of vulnerabilities is a reminder that while new protocols offer improvements, their implementations must be carefully designed and tested to ensure security.
Checkmarx is actively tracking these vulnerabilities and their impact on the open-source domain.
Our SCA solution covers these vulnerabilities within its scope, helping organizations identify and mitigate potential risks.
]]>Our recent findings reveal a threat actor creating GitHub repositories with names and topics that are likely to be searched by unsuspecting users. These repositories are cleverly disguised as legitimate projects, often related to popular games, cheats, or tools, making it difficult for users to distinguish them from benign code.
To ensure maximum visibility, the attackers employ a couple of clever techniques that consistently place their malicious repositories at the top of GitHub search results.
By leveraging GitHub Actions, the attackers automatically update the repositories at a very high frequency by modifying a file, usually called “log”, with the current date and time or just some random small change. This continuous activity artificially boosts the repositories’ visibility, especially for instances where users filter their results by “most recently updated,” increasing the likelihood of unsuspecting users finding and accessing them.
While automatic updates help, the attackers combine another technique to amplify the effectiveness of their repo making it to the top results.
The attackers employed multiple fake accounts to add bogus stars, creating an illusion of popularity and trustworthiness. This artificially boosts the repositories’ visibility further, especially for instances where users filter their results by “most stars.”
In contrast to past incidents where attackers were found to add hundreds or thousands of stars to their repos, it appears that in these cases, the attackers opted for a more modest number of stars, probably to avoid raising suspicion with an exaggerated number.
Many of the stargazers are created on the same date. A red flag for fake accounts.
This social engineering technique is designed to manipulate users into believing that the repository is widely used and reliable, preying on the inherent trust users place in highly-starred repositories.
Unsuspecting users, often drawn to the top search results and repositories with seemingly positive engagement, are more likely to click on these malicious repositories and use the code or tools they provide, unaware of the hidden dangers lurking within.
For a deeper dive into the tactic of fake stars, check out our recent blog that explores this manipulation technique in greater detail.
The attackers conceal their malware primarily as obfuscated code deep within the .csproj or .vcxproj files of the repository (files commonly used in Visual Studio projects) to decrease the chances of the average user detecting it unless they proactively search for suspicious elements.
However, it’s worth noting that there have been a small number of other detected repos that contained different malware within other files.
The malicious script is embedded within a pre-build event of a Visual Studio project file (.vcxproj) and is designed to be executed automatically during the build process. The script consists of two main parts:
The batch script creates a temporary directory, generates a VBScript file, and decodes the base64-encoded PowerShell script. It then executes the decoded PowerShell script and cleans up the temporary files.
The decoded PowerShell script performs the following malicious actions:
The script also employs error handling to silently catch exceptions and continue execution.
On April 3rd, the attacker updated the malicious code within one of their repositories, pointing to a new URL that downloads a different encrypted .7z file containing an executable named feedbackAPI.exe.
The attacker had padded the executable with many zeros, a technique used to artificially boost the file size. Due to this padding, the file size exceeded the threshold of many security solutions, VirusTotal being a notable one, preventing the possibility of it from being scanned. According to VirusTotal’s documentation,
“If the file to be uploaded is bigger than 32MB, please use the /private/files/upload_url endpoint instead which admits files up to 650MB.”
The padded feedbackAPI.exe file was 750MB in size, exceeding even the increased limit for the alternative endpoint.
The results of our analysis of this malware suggest that the malware contains similarities to the “Keyzetsu clipper” malware, a relatively new addition to the growing list of crypto wallet clippers commonly distributed through pirated software.
This executable file also attempts to create persistence on Windows machines. It achieves this by creating a shortcut to the exe file and then establishing a daily scheduled task named “Feedback_API_VS_Services_Client” that executes the shortcut at 4AM. Notably, this task is created without any confirmation prompts, making it stealthier and more likely to go unnoticed by unsuspecting users.
Evidence indicates that the attackers’ campaign has successfully deceived unsuspecting users. Numerous malicious repositories have received complaints through Issues and pull requests from users who experienced problems after downloading and using the code.
The use of malicious GitHub repositories to distribute malware is an ongoing trend that poses a significant threat to the open-source ecosystem. By exploiting GitHub’s search functionality and manipulating repository properties, attackers can lure unsuspecting users into downloading and executing malicious code.
To prevent falling victim to similar attacks, it is recommended to keep an eye on the following suspicious properties of a repo:
By being aware of these red flags, users can better protect themselves from inadvertently downloading and executing malware.
In the aftermath of the XZ attack and many other recent incidents, it would be irresponsible for developers to rely solely on reputation as a metric when using open source code. A developer who blindly takes code also blindly takes responsibility for that code. These incidents highlight the necessity for manual code reviews or the use of specialized tools that perform thorough code inspections for malware. Merely checking for known vulnerabilities is insufficient.
As part of Checkmarx’s commitment to supply chain security, our research team continuously monitors and detects suspicious activities in the open-source software ecosystem. We track and flag potential indicators of malicious behavior and promptly alert our customers and the community to help protect them from these evolving threats.
Working together to keep the open source ecosystem safe.
The attack, discovered accidently on March 29, 2024, by a developer named Andres Freund, during performance testing, was carried out over several years by the GitHub account Jia Tan (JiaT75), who gained the trust of the long-time maintainer of the xz project and eventually replaced them as the main point of contact.
The backdoor was added in versions 5.6.0 and 5.6.1 of xz Utils, a software package that includes the xz library. This backdoor allows attackers unauthorized access on systems that have the compromised versions installed.
The impact of this backdoor is significant because of xz’s use in many systems around the world, including popular Linux distributions like Red Hat and Debian.
In this blog post, we will provide a timeline of the events, look at the key people involved, and discuss what this incident means for the open-source community and the importance of maintaining the security and integrity of widely-used software libraries.
The xz compression library, a widely-used tool for compressing files, found across Linux distributions, community projects, and commercial products, was compromised by a malicious actor named Jia Tan (JiaT75) who gradually and patiently gained maintainer status in order to pull off the attack, ultimately introducing a backdoor identified as CVE-2024-3094.
The attack began in 2021 when Jia Tan created their GitHub account and began using it for various activities.
In April 2022, Jia Tan submitted a patch to the xz project via a mailing list. Soon after, unknown accounts, including one named Jigar Kumar and another named Dennis Ens , began pressuring the long-time maintainer of xz, Lasse Collin, to merge the patch and add a new maintainer to the project. Lasse Collin, who had limited availability to take care for the project, eventually agreed to add Jia Tan as a maintainer. A decision that is in fact not unusual in the open-source community, where maintainers often hand off projects to others due to various reasons.
Over the next two years, Jia Tan became a regular contributor to the xz project, gaining trust within the community.
By March 2023, Jia Tan had become the primary contact for xz in Google’s oss-fuzz, a platform for finding vulnerabilities in open-source software.
The backdoor itself was introduced in versions 5.6.0 and 5.6.1 of xz Utils, a software package that includes the xz library. The malicious code allows attackers unauthorized access by infecting the SSH on systems with the compromised versions installed, making it a significant threat to users of the library.
The backdoor was accidentally discovered on March 29, 2024, by Andres Freund during routine performance testing. Freund noticed unusual CPU usage in the sshd process, which led him to investigate further and uncover the malicious code. This accidental discovery, the backdoor could have gone unnoticed for a longer period, effecting a large part of the open source ecosystem.
The impact of the backdoor could have had particularly severe consequences due to the widespread use of xz in compressing critical software components, including popular Linux distributions like Red Hat and Debian. Many systems worldwide rely on xz for compressing and decompressing files, making the potential reach of the backdoor extensive.
The involvement of multiple identities. The complexity of the payload, and the high level of technical expertise required, along with the patience and persistence shown in gradually gaining trust within the xz community over several years before introducing the backdoor. All these are consistent with the capabilities of nation-state actors and are qualities of advanced persistent threats (APTs).
This incident is part of a growing and alarming trend of advanced persistent threats (APTs) targeting critical open-source projects.
The xz compromise highlights the urgent need for the open-source community to improve its security practices and tools to prevent similar attacks in the future. Collaboration, transparency, and shared responsibility are essential to detecting and mitigating advanced persistent threats (APTs) targeting critical open-source projects.
We, the community must develop more effective strategies, to strengthen the security of open-source software. By learning from this incident and taking proactive measures, the open-source community can build a more resilient and trustworthy ecosystem, ensuring the long-term success and integrity of open-source projects in the face of ever-evolving cybersecurity threats.
Working together to keep the opensource ecosystem safe.
]]>The research team of Checkmarx simultaneously investigated a campaign of multiple malicious packages appear to be related to the same threat actors.
The threat actors target victims with Typosquatting attack technique using their CLI to install Python packages.
This is a multi-stage attack and the malicious payload aimed to steal crypto wallets, sensitive data from browsers (cookies, extensions data, etc..) and various credentials.
In addition, the malicious payload employed a persistence mechanism to survive reboots.
A few hours ago, on Mar 28, 2024 – 02:16 UTC, The Python Package Index (PyPi) added a new website banner and released an official update: “We have temporarily suspended new project creation and new user registration to mitigate an ongoing malware upload campaign”
Between March 27 and March 28, 2024, multiple malicious Python packages were uploaded on the Python Package Index (PyPI). These packages most likely created using automation
The malicious code is located within each package’s setup.py file, enabling automatic execution upon installation.
employed a technique where the setup.py file contained obfuscated code that was encrypted using the Fernet encryption module. When the package was installed, the obfuscated code was automatically executed, triggering the malicious payload.
Upon execution, the malicious code within the setup.py file attempted to retrieve an additional payload from a remote server. The URL for the payload was dynamically constructed by appending the package name as a query parameter.
The retrieved payload was also encrypted using the Fernet module, Once decrypted, the payload revealed an extensive info-stealer designed to harvest sensitive information from the victim’s machine.
The malicious payload also employed a persistence mechanism to ensure it remained active on the compromised system even after the initial execution.
A small piece of the larger script
The discovery of these malicious Python packages on PyPI highlights the ongoing nature of cybersecurity threats within the software development ecosystem.
This incident is not an isolated case, and similar attacks targeting package repositories and software supply chains are likely to continue.
As this situation unfolds, we will provide updates on any new developments.
Working together to keep the open source ecosystem safe.
package_name | date | event |
requiremetstx | 28/03/2024 | remove project |
requiremntstx | 28/03/2024 | remove project |
requirementstxxt | 28/03/2024 | remove project |
requiremetnstxt | 28/03/2024 | remove project |
requiirementstx | 28/03/2024 | remove project |
requirrementstxt | 28/03/2024 | remove project |
requirmentstx | 28/03/2024 | remove project |
requiremnetxtxt | 28/03/2024 | remove project |
requiremmentxt | 28/03/2024 | remove project |
requirment | 28/03/2024 | remove project |
requirementstx | 28/03/2024 | remove project |
requiremetstxt | 28/03/2024 | remove project |
requiirementstxt | 28/03/2024 | remove project |
requiremnets | 28/03/2024 | remove project |
requirments | 28/03/2024 | remove project |
requiements | 28/03/2024 | remove project |
requriments | 28/03/2024 | remove project |
requiurement | 28/03/2024 | remove project |
reuirements | 28/03/2024 | remove project |
requiiremnts | 28/03/2024 | remove project |
requiremeents | 28/03/2024 | remove project |
cstmotkinter | 28/03/2024 | remove project |
customtkintre | 28/03/2024 | remove project |
customtkinetr | 28/03/2024 | remove project |
custmtokinter | 28/03/2024 | remove project |
customekinter | 28/03/2024 | remove project |
customtkibter | 28/03/2024 | remove project |
custontkinter | 28/03/2024 | remove project |
custojtkinter | 28/03/2024 | remove project |
custojmtkinter | 28/03/2024 | remove project |
custumtkinter | 28/03/2024 | remove project |
customtkinted | 28/03/2024 | remove project |
customtkjnter | 28/03/2024 | remove project |
trnsorflow | 28/03/2024 | remove project |
tensxoflow | 28/03/2024 | remove project |
tensourflow | 28/03/2024 | remove project |
tensogflow | 28/03/2024 | remove project |
tensofpow | 28/03/2024 | remove project |
tensoflxow | 28/03/2024 | remove project |
tensoflw | 28/03/2024 | remove project |
tensoflsw | 28/03/2024 | remove project |
tensoflqw | 28/03/2024 | remove project |
tensoflpw | 28/03/2024 | remove project |
tensoflouw | 28/03/2024 | remove project |
tensoflor | 28/03/2024 | remove project |
tensoflonw | 28/03/2024 | remove project |
tensoflomw | 28/03/2024 | remove project |
tensoflom | 28/03/2024 | remove project |
tensoflolw | 28/03/2024 | remove project |
tensoflod | 28/03/2024 | remove project |
tensofloaw | 28/03/2024 | remove project |
tensofllow | 28/03/2024 | remove project |
tensofliw | 28/03/2024 | remove project |
tensofleow | 28/03/2024 | remove project |
tensoflaow | 28/03/2024 | remove project |
tensofla | 28/03/2024 | remove project |
tensofl9w | 28/03/2024 | remove project |
tensofklow | 28/03/2024 | remove project |
tensobflow | 28/03/2024 | remove project |
tensnflow | 28/03/2024 | remove project |
temsorflow | 28/03/2024 | remove project |
Sjmplejson | 28/03/2024 | remove project |
Sjimplejson | 28/03/2024 | remove project |
Siplejason | 28/03/2024 | remove project |
Simpoejson | 28/03/2024 | remove project |
Simplejsoj | 28/03/2024 | remove project |
Simplejsoh | 28/03/2024 | remove project |
Simplejdon | 28/03/2024 | remove project |
Simplejason | 28/03/2024 | remove project |
Simpkejson | 28/03/2024 | remove project |
Simpjson | 28/03/2024 | remove project |
Simpejso | 28/03/2024 | remove project |
Simolejson | 28/03/2024 | remove project |
Simepljson | 28/03/2024 | remove project |
Sijplejson | 28/03/2024 | remove project |
Sijplejso | 28/03/2024 | remove project |
selunium | 28/03/2024 | remove project |
sellinium | 28/03/2024 | remove project |
selleniumm | 28/03/2024 | remove project |
sellenim | 28/03/2024 | remove project |
selleniium | 28/03/2024 | remove project |
selleium | 28/03/2024 | remove project |
selinum | 28/03/2024 | remove project |
seliniumn | 28/03/2024 | remove project |
seliniumm | 28/03/2024 | remove project |
seleunium | 28/03/2024 | remove project |
selenyum | 28/03/2024 | remove project |
selenuimm | 28/03/2024 | remove project |
selennuim | 28/03/2024 | remove project |
selenniumm | 28/03/2024 | remove project |
selennim | 28/03/2024 | remove project |
selenimn | 28/03/2024 | remove project |
selemniumm | 28/03/2024 | remove project |
selemnium | 28/03/2024 | remove project |
selemnim | 28/03/2024 | remove project |
selemni | 28/03/2024 | remove project |
selemiumm | 28/03/2024 | remove project |
seleiumm | 28/03/2024 | remove project |
seleinuim | 28/03/2024 | remove project |
seleiniumm | 28/03/2024 | remove project |
seleinium | 28/03/2024 | remove project |
seleeniumm | 28/03/2024 | remove project |
seleenimu | 28/03/2024 | remove project |
seleenim | 28/03/2024 | remove project |
requriements | 28/03/2024 | remove project |
requrementstxt | 28/03/2024 | remove project |
requiurementstxt | 28/03/2024 | remove project |
requirtements | 28/03/2024 | remove project |
requirmentstxtt | 28/03/2024 | remove project |
requirmentstxt | 28/03/2024 | remove project |
requirmentss | 28/03/2024 | remove project |
requirmeents | 28/03/2024 | remove project |
requiremtns | 28/03/2024 | remove project |
requiremntxtxt | 28/03/2024 | remove project |
requiremntstxt | 28/03/2024 | remove project |
requiremnts | 28/03/2024 | remove project |
requiremnetstxt | 28/03/2024 | remove project |
requiremmentxtxt | 28/03/2024 | remove project |
requiremmentstxt | 28/03/2024 | remove project |
requiremments | 28/03/2024 | remove project |
requiremetns | 28/03/2024 | remove project |
requirementxxt | 28/03/2024 | remove project |
requirementxtt | 28/03/2024 | remove project |
requirementxt | 28/03/2024 | remove project |
requirementxstxt | 28/03/2024 | remove project |
requirementtsxt | 28/03/2024 | remove project |
requirementt | 28/03/2024 | remove project |
requirementstxx | 28/03/2024 | remove project |
requirementstxtxt | 28/03/2024 | remove project |
requirementstxtx | 28/03/2024 | remove project |
requirementstxtt | 28/03/2024 | remove project |
requirementsttx | 28/03/2024 | remove project |
requirementstt | 28/03/2024 | remove project |
requirementst | 28/03/2024 | remove project |
requirementss | 28/03/2024 | remove project |
requiremenstxt | 28/03/2024 | remove project |
requiremenstx | 28/03/2024 | remove project |
requiremants | 28/03/2024 | remove project |
requiirments | 28/03/2024 | remove project |
requiiremments | 28/03/2024 | remove project |
requiirementsxt | 28/03/2024 | remove project |
requiirements | 28/03/2024 | remove project |
requierments | 28/03/2024 | remove project |
requierement | 28/03/2024 | remove project |
reqiuremnets | 28/03/2024 | remove project |
reqiurementstxt | 28/03/2024 | remove project |
reqiurements | 28/03/2024 | remove project |
reqiremnts | 28/03/2024 | remove project |
reqiremnets | 28/03/2024 | remove project |
reqirements | 28/03/2024 | remove project |
PzTorch | 28/03/2024 | remove project |
PzGame | 28/03/2024 | remove project |
PyTrosh | 28/03/2024 | remove project |
PyTroce | 28/03/2024 | remove project |
PyTprch | 28/03/2024 | remove project |
PyTorqh | 28/03/2024 | remove project |
PyTordh | 28/03/2024 | remove project |
PyTorcu | 28/03/2024 | remove project |
PyTorcm | 28/03/2024 | remove project |
PyTorchy | 28/03/2024 | remove project |
PyTorchv | 28/03/2024 | remove project |
PyTorchj | 28/03/2024 | remove project |
PyTorchg | 28/03/2024 | remove project |
PyTorchc | 28/03/2024 | remove project |
PyTorchb | 28/03/2024 | remove project |
PyTorcdh | 28/03/2024 | remove project |
PyTorcb | 28/03/2024 | remove project |
PyTorbch | 28/03/2024 | remove project |
PyToich | 28/03/2024 | remove project |
PyTlrc | 28/03/2024 | remove project |
PyTirch | 28/03/2024 | remove project |
PyThrch | 28/03/2024 | remove project |
PyTcrch | 28/03/2024 | remove project |
PyTbrch | 28/03/2024 | remove project |
PyTarch | 28/03/2024 | remove project |
PyGzme | 28/03/2024 | remove project |
PyGxme | 28/03/2024 | remove project |
PyGvame | 28/03/2024 | remove project |
PyGume | 28/03/2024 | remove project |
PyGqme | 28/03/2024 | remove project |
PyGqame | 28/03/2024 | remove project |
PyGmme | 28/03/2024 | remove project |
PyGhame | 28/03/2024 | remove project |
PyGfme | 28/03/2024 | remove project |
PyGfame | 28/03/2024 | remove project |
PyGazme | 28/03/2024 | remove project |
PyGawme | 28/03/2024 | remove project |
PyGarme | 28/03/2024 | remove project |
PyGaqme | 28/03/2024 | remove project |
PyGaome | 28/03/2024 | remove project |
PyGane | 28/03/2024 | remove project |
PyGamw | 28/03/2024 | remove project |
PyGamse | 28/03/2024 | remove project |
PyGamr | 28/03/2024 | remove project |
PyGamne | 28/03/2024 | remove project |
Pygamm | 28/03/2024 | remove project |
PyGamke | 28/03/2024 | remove project |
PyGaime | 28/03/2024 | remove project |
PyGaeme | 28/03/2024 | remove project |
PyGacme | 28/03/2024 | remove project |
PtTorch | 28/03/2024 | remove project |
PqTorch | 28/03/2024 | remove project |
plywright | 28/03/2024 | remove project |
plyawright | 28/03/2024 | remove project |
playwritgh | 28/03/2024 | remove project |
playwrihgt | 28/03/2024 | remove project |
playwrigth | 28/03/2024 | remove project |
playwrightt | 28/03/2024 | remove project |
playwrigh | 28/03/2024 | remove project |
playwrigght | 28/03/2024 | remove project |
playwrgith | 28/03/2024 | remove project |
playwrgiht | 28/03/2024 | remove project |
playwrght | 28/03/2024 | remove project |
playwirght | 28/03/2024 | remove project |
playrwight | 28/03/2024 | remove project |
plawyright | 28/03/2024 | remove project |
plawwright | 28/03/2024 | remove project |
plauwright | 28/03/2024 | remove project |
plaawright | 28/03/2024 | remove project |
Matplutlib | 28/03/2024 | remove project |
Matplttlib | 28/03/2024 | remove project |
Matpltotlib | 28/03/2024 | remove project |
Matplrtlib | 28/03/2024 | remove project |
Matplrtib | 28/03/2024 | remove project |
Matplptlib | 28/03/2024 | remove project |
Matplotvlib | 28/03/2024 | remove project |
Matplotvib | 28/03/2024 | remove project |
Matplottlab | 28/03/2024 | remove project |
Matplottib | 28/03/2024 | remove project |
Matplottbib | 28/03/2024 | remove project |
Matplotpib | 28/03/2024 | remove project |
Matplotoib | 28/03/2024 | remove project |
Matplotlyib | 28/03/2024 | remove project |
Matplotlub | 28/03/2024 | remove project |
Matplotltib | 28/03/2024 | remove project |
Matplotlr | 28/03/2024 | remove project |
Matplotlpib | 28/03/2024 | remove project |
Matplotlob | 28/03/2024 | remove project |
Matplotllib | 28/03/2024 | remove project |
Matplotlig | 28/03/2024 | remove project |
Matplotlbib | 28/03/2024 | remove project |
Matplotklib | 28/03/2024 | remove project |
Matplotkib | 28/03/2024 | remove project |
Matplotib | 28/03/2024 | remove project |
Matplotblib | 28/03/2024 | remove project |
Matplorlib | 28/03/2024 | remove project |
Matploptlib | 28/03/2024 | remove project |
Matplootib | 28/03/2024 | remove project |
Matploltlib | 28/03/2024 | remove project |
Matploltlab | 28/03/2024 | remove project |
Matplolplib | 28/03/2024 | remove project |
Matpllotib | 28/03/2024 | remove project |
Matpllotb | 28/03/2024 | remove project |
Matplkotlib | 28/03/2024 | remove project |
Matpliotlib | 28/03/2024 | remove project |
Matplftlib | 28/03/2024 | remove project |
Maptplotlib | 28/03/2024 | remove project |
cuxtomtkinter | 28/03/2024 | remove project |
cuwtomtkinter | 28/03/2024 | remove project |
cutomtkinter | 28/03/2024 | remove project |
custvomtkinter | 28/03/2024 | remove project |
custrmtkinter | 28/03/2024 | remove project |
custpmtkinter | 28/03/2024 | remove project |
custoumtkinter | 28/03/2024 | remove project |
custotminter | 28/03/2024 | remove project |
custotkminter | 28/03/2024 | remove project |
custotkinter | 28/03/2024 | remove project |
custotinter | 28/03/2024 | remove project |
custoqtkinter | 28/03/2024 | remove project |
customtkznter | 28/03/2024 | remove project |
customtkwnter | 28/03/2024 | remove project |
customtknter | 28/03/2024 | remove project |
customtknster | 28/03/2024 | remove project |
customtkniterr | 28/03/2024 | remove project |
customtkniter | 28/03/2024 | remove project |
customtkknter | 28/03/2024 | remove project |
customtkiyter | 28/03/2024 | remove project |
customtkitnre | 28/03/2024 | remove project |
customtkitnerr | 28/03/2024 | remove project |
customtkitner | 28/03/2024 | remove project |
customtkiter | 28/03/2024 | remove project |
customtkitenr | 28/03/2024 | remove project |
customtkinyer | 28/03/2024 | remove project |
customtkintwr | 28/03/2024 | remove project |
customtkintrr | 28/03/2024 | remove project |
customtkintrer | 28/03/2024 | remove project |
customtkintet | 28/03/2024 | remove project |
customtkintert | 28/03/2024 | remove project |
customtkinteer | 28/03/2024 | remove project |
customtkinte | 28/03/2024 | remove project |
customtkintar | 28/03/2024 | remove project |
customtkinrer | 28/03/2024 | remove project |
customtkingter | 28/03/2024 | remove project |
customtkinger | 28/03/2024 | remove project |
customtkinet | 28/03/2024 | remove project |
customtkinber | 28/03/2024 | remove project |
customtkimter | 28/03/2024 | remove project |
customtkihter | 28/03/2024 | remove project |
customtkfnter | 28/03/2024 | remove project |
customtjinter | 28/03/2024 | remove project |
customtinter | 28/03/2024 | remove project |
customtiknter | 28/03/2024 | remove project |
customtikinter | 28/03/2024 | remove project |
customkinter | 28/03/2024 | remove project |
custoktkinter | 28/03/2024 | remove project |
custohtkinter | 28/03/2024 | remove project |
custogtkinter | 28/03/2024 | remove project |
custmtkinter | 28/03/2024 | remove project |
BeutifulSoop | 28/03/2024 | remove project |
BeutifullSoup | 28/03/2024 | remove project |
BeuatiflSoup | 28/03/2024 | remove project |
BeautySoup | 28/03/2024 | remove project |
BeautyfulSoup | 28/03/2024 | remove project |
BeautilfulSoup | 28/03/2024 | remove project |
BeautifuoSoup | 28/03/2024 | remove project |
BeautifulSoupo | 28/03/2024 | remove project |
BeautifulSoupe | 28/03/2024 | remove project |
BeautifulSoul | 28/03/2024 | remove project |
BeautifulSoop | 28/03/2024 | remove project |
BeautifullSooup | 28/03/2024 | remove project |
BeautifullSoop | 28/03/2024 | remove project |
BeautifukSoup | 28/03/2024 | remove project |
BeautifuklSoup | 28/03/2024 | remove project |
BeautifoulSoup | 28/03/2024 | remove project |
BeautifolSoup | 28/03/2024 | remove project |
BeautiflulSoup | 28/03/2024 | remove project |
BeautiflulSoop | 28/03/2024 | remove project |
BeautifilSoup | 28/03/2024 | remove project |
BeautifilSoop | 28/03/2024 | remove project |
BeaurifulSoup | 28/03/2024 | remove project |
BeaufifulSoup | 28/03/2024 | remove project |
BeaotifulSoup | 28/03/2024 | remove project |
BeaitifulSoup | 28/03/2024 | remove project |
BeaitifulSoop | 28/03/2024 | remove project |
aysncio | 28/03/2024 | remove project |
asyyncio | 28/03/2024 | remove project |
asynncio | 28/03/2024 | remove project |
asynio | 28/03/2024 | remove project |
asyncioo | 28/03/2024 | remove project |
asyncioi | 28/03/2024 | remove project |
asynciio | 28/03/2024 | remove project |
asyncii | 28/03/2024 | remove project |
asynci | 28/03/2024 | remove project |
asynccio | 28/03/2024 | remove project |
asyncci | 28/03/2024 | remove project |
asyincio | 28/03/2024 | remove project |
assyncio | 28/03/2024 | remove project |
aasyncio | 28/03/2024 | remove project |
reqzests | 27/03/2024 | remove project |
requzsts | 27/03/2024 | remove project |
requyests | 27/03/2024 | remove project |
requxsts | 27/03/2024 | remove project |
requstss | 27/03/2024 | remove project |
requssts | 27/03/2024 | remove project |
requnests | 27/03/2024 | remove project |
requksts | 27/03/2024 | remove project |
requewsts | 27/03/2024 | remove project |
requetsts | 27/03/2024 | remove project |
requetsq | 27/03/2024 | remove project |
requetsa | 27/03/2024 | remove project |
requesxts | 27/03/2024 | remove project |
requesxt | 27/03/2024 | remove project |
requesxs | 27/03/2024 | remove project |
requesuts | 27/03/2024 | remove project |
requestr | 27/03/2024 | remove project |
requesrts | 27/03/2024 | remove project |
requesqs | 27/03/2024 | remove project |
requesks | 27/03/2024 | remove project |
requesgt | 27/03/2024 | remove project |
requeqsts | 27/03/2024 | remove project |
requekts | 27/03/2024 | remove project |
requeksts | 27/03/2024 | remove project |
requeits | 27/03/2024 | remove project |
requas | 27/03/2024 | remove project |
reqsests | 27/03/2024 | remove project |
reqquest | 27/03/2024 | remove project |
reqoests | 27/03/2024 | remove project |
reqjuests | 27/03/2024 | remove project |
reqeyst | 27/03/2024 | remove project |
reqeustz | 27/03/2024 | remove project |
reqeustx | 27/03/2024 | remove project |
reqeuste | 27/03/2024 | remove project |
reqeosts | 27/03/2024 | remove project |
reqeist | 27/03/2024 | remove project |
pycordwd | 27/03/2024 | remove project |
pycordde | 27/03/2024 | remove project |
pycjrd | 27/03/2024 | remove project |
py-xord | 27/03/2024 | remove project |
py-vord | 27/03/2024 | remove project |
py-czrd | 27/03/2024 | remove project |
py-cyrd | 27/03/2024 | remove project |
py-cxrd | 27/03/2024 | remove project |
py-cwrd | 27/03/2024 | remove project |
py-crodd | 27/03/2024 | remove project |
py-crd | 27/03/2024 | remove project |
py-cprd | 27/03/2024 | remove project |
py-cpord | 27/03/2024 | remove project |
py-cozd | 27/03/2024 | remove project |
py-cowrd | 27/03/2024 | remove project |
py-cotrd | 27/03/2024 | remove project |
py-cotd | 27/03/2024 | remove project |
py-corxd | 27/03/2024 | remove project |
py-corx | 27/03/2024 | remove project |
py-corwd | 27/03/2024 | remove project |
py-cortd | 27/03/2024 | remove project |
py-corrd | 27/03/2024 | remove project |
py-corid | 27/03/2024 | remove project |
py-corg | 27/03/2024 | remove project |
py-corfd | 27/03/2024 | remove project |
py-corf | 27/03/2024 | remove project |
py-cordx | 27/03/2024 | remove project |
py-cordw | 27/03/2024 | remove project |
py-cordv | 27/03/2024 | remove project |
py-cordr | 27/03/2024 | remove project |
py-cordq | 27/03/2024 | remove project |
py-cordf | 27/03/2024 | remove project |
py-corde | 27/03/2024 | remove project |
py-corddd | 27/03/2024 | remove project |
py-cordd | 27/03/2024 | remove project |
py-corad | 27/03/2024 | remove project |
py-coqrd | 27/03/2024 | remove project |
py-coordd | 27/03/2024 | remove project |
py-cojrd | 27/03/2024 | remove project |
py-coird | 27/03/2024 | remove project |
py-cofrd | 27/03/2024 | remove project |
py-cofd | 27/03/2024 | remove project |
py-coerd | 27/03/2024 | remove project |
py-coed | 27/03/2024 | remove project |
py-codrd | 27/03/2024 | remove project |
py-cod | 27/03/2024 | remove project |
py-cocd | 27/03/2024 | remove project |
py-cobrd | 27/03/2024 | remove project |
py-coad | 27/03/2024 | remove project |
py-co4d | 27/03/2024 | remove project |
py-ckrd | 27/03/2024 | remove project |
py-ckord | 27/03/2024 | remove project |
py-cird | 27/03/2024 | remove project |
py-cdord | 27/03/2024 | remove project |
py-c9rd | 27/03/2024 | remove project |
py-c0red | 27/03/2024 | remove project |
py-c0dd | 27/03/2024 | remove project |
py-c0crd | 27/03/2024 | remove project |
py-c0ard | 27/03/2024 | remove project |
pullow | 27/03/2024 | remove project |
pollow | 27/03/2024 | remove project |
pjllow | 27/03/2024 | remove project |
pirlow | 27/03/2024 | remove project |
piplow | 27/03/2024 | remove project |
piolow | 27/03/2024 | remove project |
pilpow | 27/03/2024 | remove project |
pillox | 27/03/2024 | remove project |
pilloq | 27/03/2024 | remove project |
pilloo | 27/03/2024 | remove project |
pilloa | 27/03/2024 | remove project |
pillo2 | 27/03/2024 | remove project |
pillkw | 27/03/2024 | remove project |
pilliw | 27/03/2024 | remove project |
pilliow | 27/03/2024 | remove project |
pill9w | 27/03/2024 | remove project |
pilkow | 27/03/2024 | remove project |
corlorama | 27/03/2024 | remove project |
colprama | 27/03/2024 | remove project |
colouorama | 27/03/2024 | remove project |
colorramma | 27/03/2024 | remove project |
colorram | 27/03/2024 | remove project |
coloroama | 27/03/2024 | remove project |
colormma | 27/03/2024 | remove project |
colorm | 27/03/2024 | remove project |
colorhrama | 27/03/2024 | remove project |
colorayma | 27/03/2024 | remove project |
coloramzs | 27/03/2024 | remove project |
coloramza | 27/03/2024 | remove project |
coloramxs | 27/03/2024 | remove project |
coloramxa | 27/03/2024 | remove project |
coloramws | 27/03/2024 | remove project |
coloramwa | 27/03/2024 | remove project |
coloramu | 27/03/2024 | remove project |
coloramqs | 27/03/2024 | remove project |
coloramqa | 27/03/2024 | remove project |
coloramoo | 27/03/2024 | remove project |
coloramo | 27/03/2024 | remove project |
coloramna | 27/03/2024 | remove project |
coloramka | 27/03/2024 | remove project |
coloramia | 27/03/2024 | remove project |
colorame | 27/03/2024 | remove project |
coloramaz | 27/03/2024 | remove project |
coloramal | 27/03/2024 | remove project |
coloramah | 27/03/2024 | remove project |
coloramae | 27/03/2024 | remove project |
colorahma | 27/03/2024 | remove project |
colomara | 27/03/2024 | remove project |
colaroma | 27/03/2024 | remove project |
cloroma | 27/03/2024 | remove project |
clolorama | 27/03/2024 | remove project |
cilorama | 27/03/2024 | remove project |
capmostercloudclinet | 27/03/2024 | remove project |
capmostercloudclient | 27/03/2024 | remove project |
capmostercloudclienet | 27/03/2024 | remove project |
capmostercloudclieent | 27/03/2024 | remove project |
capmosterclouclient | 27/03/2024 | remove project |
capmonsterrcloudclient | 27/03/2024 | remove project |
capmonstercouldclient | 27/03/2024 | remove project |
capmonstercoudclient | 27/03/2024 | remove project |
capmonstercludclient | 27/03/2024 | remove project |
capmonsterclouudclient | 27/03/2024 | remove project |
capmonsterclouidclient | 27/03/2024 | remove project |
capmonsterclouddlient | 27/03/2024 | remove project |
capmonsterclouddclient | 27/03/2024 | remove project |
capmonstercloudcluodclient | 27/03/2024 | remove project |
capmonstercloudclouidclient | 27/03/2024 | remove project |
capmonstercloudclinet | 27/03/2024 | remove project |
capmonstercloudclinent | 27/03/2024 | remove project |
capmonstercloudcliient | 27/03/2024 | remove project |
capmonstercloudcliet | 27/03/2024 | remove project |
capmonstercloudclientt | 27/03/2024 | remove project |
capmonstercloudcliennt | 27/03/2024 | remove project |
capmonstercloudclienet | 27/03/2024 | remove project |
capmonstercloudcliendt | 27/03/2024 | remove project |
capmonstercloudcliend | 27/03/2024 | remove project |
capmonstercloudclien | 27/03/2024 | remove project |
capmonstercloudclieet | 27/03/2024 | remove project |
capmonstercloudclieent | 27/03/2024 | remove project |
capmonstercloudcliant | 27/03/2024 | remove project |
capmonstercloudclent | 27/03/2024 | remove project |
capmonstercloudclenit | 27/03/2024 | remove project |
capmonstercloudclenet | 27/03/2024 | remove project |
capmonsterclouclient | 27/03/2024 | remove project |
capmonsterccloudclient | 27/03/2024 | remove project |
capmonsstercloudclient | 27/03/2024 | remove project |
capmonsstercloudcliennt | 27/03/2024 | remove project |
capmoneercloudclient | 27/03/2024 | remove project |
bupi-utils | 27/03/2024 | remove project |
bup-utils | 27/03/2024 | remove project |
bpi-utils | 27/03/2024 | remove project |
bop-utils | 27/03/2024 | remove project |
biup-utils | 27/03/2024 | remove project |
bips-utils | 27/03/2024 | remove project |
bipp-utils | 27/03/2024 | remove project |
bip-uutils | 27/03/2024 | remove project |
bip-uttils | 27/03/2024 | remove project |
bip-utlils | 27/03/2024 | remove project |
bip-utjls | 27/03/2024 | remove project |
bip-utisl | 27/03/2024 | remove project |
bip-utilz | 27/03/2024 | remove project |
bip-utilss | 27/03/2024 | remove project |
bip-utilos | 27/03/2024 | remove project |
bip-utiles | 27/03/2024 | remove project |
bip-utile | 27/03/2024 | remove project |
bip-utilds | 27/03/2024 | remove project |
bip-util | 27/03/2024 | remove project |
bip-uitls | 27/03/2024 | remove project |
bip-uils | 27/03/2024 | remove project |
bip-u8ls | 27/03/2024 | remove project |
biip-utils | 27/03/2024 | remove project |
bibp-utils | 27/03/2024 | remove project |
0C1DDD33E630F4AC684880F0E673DFA84919272494C11DA0F1EC05FB4F919CE8
]]>The threat actors behind these packages deviated from conventional tactics, introducing a nuanced twist in their approach. The first notable tactic was the exploitation of GitHub, a platform synonymous with trust and reliability within the developer community, to disseminate their malicious code. The packages themselves were mere vessels; the actual malicious content was not embedded within them but distributed through them.
This tactic capitalizes on the confidence developers inherently place in GitHub as a staple source for software tools, adding a layer of deceit to the attackers’ scheme and complicating the task for developers in distinguishing between legitimate and suspicious packages.
But that is not the only thing that stands out in this attack attempt. In this blog, we will explain the various combined tactics the attacker used to make these packages stand out.
The httprequesthub Python package stands out for its sophisticated multi-stage process, executing malicious code hidden within layers of encryption and obfuscation.
httprequesthub attack flow
The package starts by decoding a Base64 encoded string within its setup.py file, unveiling a URL that points to a GitHub gist created by the threat actor. This gist acts as the first external payload source.
First stage payload in setup.py file
At the time of publication, the user and gist are still active.
Upon accessing the URL, the package retrieves a second-stage payload characterized by complex obfuscated code combined with arbitrary and non-descriptive variables and function names.
The attacker adds a unique twist by mixing the use of obfuscation and encryption to enhance the complexity of the code, making it even more challenging to understand its intent.
After manually simplifying this code, we get this:
Second stage payload after simplifying it.
Another base64 encoded URL within the executed code leads to yet another GitHub gist, deepening the layers of the attack. This GitHub gist and user profile are no longer active.
This phase also includes a specific condition to fetch and execute the code from the second URL only on Windows systems, tailoring the attack based on the victim’s OS.
The third stage involves executing Python code from the second URL, which is also obfuscated. Simplifying this code reveals a blend of encryption and obfuscation, with a base64 encoded string undergoing a custom XOR decryption process. This produces a complex, encrypted code block, showcasing the attacker’s dedication to concealing their payload’s nature.
After again, manually simplifying this code we get this:
Third stage payload after simplifying it.
The sophistication of the attack escalates further with its reliance on fileless execution Instead of the traditional file-based execution, allowing it to bypass modern EDR solutions.
It dynamically allocates memory within the current process and transfers the decoded payload into this space. Utilizing the Windows API via the ctypes module, it manipulates system memory to create an executable thread directly within the memory, circumventing traditional disk-based detection mechanisms. This fileless execution approach is particularly concerning as it leaves no trace on the hard drive, posing a significant challenge for conventional security tools to detect and mitigate.
Given the multi-staged nature of this attack, it is extremely challenging to identify the malicious intent of the package through static analysis alone, even with the aid of machine learning. For such cases, advanced dynamic solutions are necessary alongside static methods to effectively detect such sophisticated threats.
We have yet to fully determine the end goal of this package.
easyhttprequest attack flow
The easyhttprequest Python package employs a deceptive technique by overriding the standard installation process with a custom PostInstall class embedded within its setup.py script. This class is meticulously mapped to the “install” command in the cmdclass dictionary and is designed to execute additional code when the package is installed using the setup.py install command.
Upon installation, the package’s first move is to clone a GitHub repository (isaaknikolaev/PySocks) into a temporary directory on the user’s system, creating a folder named “PySocks.”
This repository is in fact a fork of the vastly popular “Anorov/PySocks” repository, whose corresponding Python package “pysocks” boasts millions of weekly downloads. This tactic of riding off the reputation of a renowned project is a calculated move to cloak the package’s true intent under the guise of a trustworthy source, enhancing its chances of evading detection.
This cloning occurs regardless of the operating system. However, the script includes a condition specifically for Windows systems, where it installs an additional Python package, dulwich (a package used for interacting with Git repositories)
Upon cloning the repository, the package checks the latest commit message for a particular trigger string (uJq93k8bmm7KqjL). If this string is present, the script removes the trigger string, decodes the remaining message, and proceeds to execute the remaining part of the commit message, which is encoded in Base64. This execution step is where the potential for running malicious code lies.
At the time of discovery, no malicious content was found in the commit message of the cloned repository. This could indicate that either the package was intercepted and sanitized before the attacker could deploy their intended malicious code, or the harmful content was never committed. Nevertheless, the structure of the package indicates a clear intent for malicious use, showcasing a sophisticated method of hiding and executing potentially harmful code through a seemingly innocent package installation.
]]>The Ledger Connect Kit, instrumental in linking users’ wallets to decentralized applications (dApps), like SushiSwap and Revoke.cash, was compromised when a threat actor took over the NPM account of one of the projects maintainers. The actor then continued to publish multiple new versions of the package, injected with malicious code, that drains the wallets of users. Unsuspecting users that performed transactions unknowingly sent their crypto funds to an attacker-controlled wallet.
The breach targeted versions 1.1.5, 1.1.6, and 1.1.7 of the Ledger Connect Kit NPM Package. These versions were infected with a malicious drainer, that diverted user funds to an attacker-controlled wallet. The compromised package used a rogue WalletConnect project to reroute funds.
Notifying users of the attack
Notifying users of the attack
Apps affected, warning their users
Central to this attack was a well-crafted social engineering strategy that led to the compromise of a former Ledger employee’s npmjs account credentials. This breach then led to unauthorized releases of the Ledger Connect Kit. Account takeovers are particularly dangerous since they allow attackers to bypass many traditional security checks, directly inserting malicious code into trusted software. Phishing attacks against contributors have been a rising trend for more than a year.
A critical, and often overlooked, indicator of such an attack is the discrepancy in package versions between the package manager (npm) and the version control system (Git). We can clearly see in this attack that there were no changes and no tags or releases on the Ledger git corresponding to the malicious versions on the NPM package manager.
When a project works efficiently it maintains consistency between these platforms, with each npm release corresponding to a Git tag. This is either done automatically or manually. However, in this case, the versions released on npm lacked matching tags on Git. This mismatch serves as an indicator of suspicious activity, particularly for projects known for their orderly release processes as seen in previous attack cases.
Monitoring for such inconsistencies can be a crucial part of early detection strategies for account takeovers and unauthorized package releases. Tools and practices that keep track of this alignment can quickly flag discrepancies, prompting an immediate investigation and potentially preventing widespread impact.
Upon discovering the breach, Ledger’s team acted swiftly, releasing version 1.1.8 of the Ledger Connect Kit to patch the vulnerability within 40 minutes of detection. Despite their quick response, the malicious versions were active for approximately five hours, with a critical window of less than two hours where funds were actively drained.
The financial repercussions are becoming increasingly apparent. As of the latest reports, over $700,000 has been stolen due to this security breach.
While a Software Bill of Materials (SBOM) is a critical tool for enhancing transparency and security in software supply chains, its effectiveness is limited in certain types of attacks. An SBOM effectively lists all components used in a software product, but it primarily addresses issues related to known vulnerabilities in these components, not necessarily the security of the distribution mechanism itself.
In the case of the Ledger Connect Kit attack, the primary issue was not with the components themselves but with the compromised distribution process due to an account takeover. The attacker published malicious versions of the package through a legitimate channel, which would not necessarily be flagged by an SBOM. Since the SBOM would list components as usual, it wouldn’t identify the malicious code introduced by the attacker in the compromised versions.
So, while SBOMs are vital for component transparency, they must be complemented with fast, proactive scanning mechanisms that can detect unauthorized changes or malicious activities in real-time, beyond just component listing.
This breach highlights the potential domino effect of a single compromised element in interconnected digital platforms. The reliance on third-party components, adds layers of vulnerability, making every participant in the chain a potential target and contributor to a larger-scale compromise. Therefore, it is crucial to ensure that effective security strategies are in place which involves things like rigorous vetting of third-party components, implementing robust internal security measures, and fostering a culture of cybersecurity awareness.
As part of the Checkmarx Supply Chain Security solution, our research team continuously monitors suspicious activities in the open-source software ecosystem. We track and flag “signals” that may indicate foul play and promptly alert our customers to help protect them.
Checkmarx customers are protected against this attack.
]]>The way we bank has changed beyond recognition. Where transactions once took place in person within the walls of impressive buildings, we now see mobile and online banking on the rise. Anywhere, anytime, palm-of-your-hand banking is the norm, and our expectations are shaped by the seamless, personalized app experiences that have become the default in the digital universe. At the same time, the global acceleration of digital banking licenses has created a new competitive landscape populated by fast-moving market entrants and born-in-the-cloud providers.
One thing that hasn’t changed, though, is the position of trust at the cornerstone of the banking system. Indeed, in today’s volatile economic and cybersecurity environment, building brand trust is more important than ever. Whether you are a legacy brand or a new market entrant, any lack of trust compromises your ability to succeed.
So financial services firms face a continuing challenge: how to innovate at the speed required without compromising customer safety and system security? Most are turning to the cloud for answers. Its flexibility and scalability are making it central to financial service organizations’ efforts to embrace new trends and deliver innovative services at pace.
AWS has some intriguing solutions to meet the challenge. The cloud leader provides a full suite of services to help banks achieve the agility to thrive in the digital age, while certified partners such as Checkmarx ensure the security of the applications and services banks develop.
Recently, the team at AWS identified seven key trends that are impacting the financial services industry. Here we take a deep dive into three areas where AppSec is highly relevant and explore what they mean for the sector.
Today, the economic power is passing to a digital-native generation with little loyalty to legacy banking brands and great expectations of how personal and business financial services should perform. This means customer experience is the modern commercial battleground. Banking must be hyper-personalized and service-led. Increasingly, banking is integrated into consumers’ day-to-day journeys through embedded financial services within trusted brands such as Starbucks and Uber.
Banks are leaning heavily on AI and machine learning to predict customer needs through analysis of internal and external datasets, while the omnichannel drive continues through solutions such as authentication based on voice recognition, real-time sentiment analysis of customer service calls, chatbot support, and automated self-service options.
AWS supports these initiatives and many more through cloud-powered big data analysis that allows banks to leverage AI and machine learning on a massive scale. It also, in its own words, “helps compress time to innovation and, ultimately, time to value, by facilitating rapid development, testing, and deployment to produce new ideas and customer propositions.”
AWS allows banks to accelerate innovation through its cloud-native application development services, but they also need to ensure the code they create is secure and resilient. Achieving application security assurance without putting a brake on delivery speed is crucial. However, a recent Checkmarx survey of banking and insurance CISOs found that 84% of respondents undergoing digital transformation and implementing a cloud-native strategy were concerned about secure application development and deployment.
As an AWS accredited partner, Checkmarx understands that security must work at the speed of DevOps. The Checkmarx One Application Security Platform is designed for the cloud development generation and delivered from the cloud, bringing integrated one-click AppSec testing that allows financial services companies to deploy more secure code — fast.
The open banking era is unlocking the doors to greater innovation and collaboration. Providers can now seize new opportunities to develop products that blur the boundaries between different types of financial services. They are establishing solutions that offer their banking services, including fully managed banking propositions, to third parties securely via microservices and a common platform.
AWS identifies two key approaches to this trend. The “marketplace” approach sees banks providing “value-added and contextualized services to their customers such as ERP integrations or personal finance management.” The aim is to deepen the relationship with individual and business customers beyond basic service provision.
The “banking-as-a-service” approach sees banks offering a range of services — from standalone specific regulatory-driven services like Know Your Customer’s Customer (KYCC) to fully managed offerings that let any organization set up a branded banking service.
Center-stage in both approaches are the bank’s APIs, designed to allow banking products and services to be distributed to customers and third parties. Modernizing API architecture in the cloud accelerates the development and testing of APIs, making them easier to integrate as well as providing scalability.
Checkmarx API security offers banks and their customers and partners a crucial service that helps discover, control, and mitigate API security risk. It offers complete visibility into your API inventory and identifies vulnerabilities and misconfigurations. Controlling API risk is an essential component of developing financial marketplace ecosystems and banking-as-a-service solutions.
Given its nature, it is not surprising that the financial services sector faces more cyberattacks than any other. On top of these external incursions comes the disruption of digital transformation, which can also create vulnerabilities including third-party and supply chain risk.
Banks are investing in a range of measures designed to manage and mitigate risk and accelerate recovery from any attack. Reducing the attack surface and minimizing vulnerabilities is an essential activity if the sector is to safeguard its reputation and maintain customer trust. Additionally, the growing library of regulations designed to ensure banks are meeting their security obligations means they need to adopt solutions that support compliance.
AWS offers a wealth of solutions to ensure client data is protected and banks can recover quickly from attacks. These include Amazon Simple Storage Service (Amazon S3), key management services, software-defined firewalls that facilitate network isolation, and geographic sovereignty solutions that meet compliance requirements.
These and many other offerings take care of Amazon’s part of the shared security bargain, however, banks are also responsible for securing the workloads they deploy in AWS. This is where Checkmarx steps in, providing comprehensive AppSec solutions that integrate seamlessly with AWS SDLC tools to secure the entire process. Checkmarx addresses all types of application risk, from custom code errors to open source component vulnerabilities, API risks, and infrastructure as code misconfigurations.
These are dynamic times for financial services firms, and AWS with Checkmarx are helping them capitalize on opportunities while defending against threats — both malicious and competitive.
We’re exploring these trends in detail in our webinar on May 4, 2023, where AWS and Checkmarx will explain how you can turn AppSec into a competitive advantage as you continue your cloud transformation journey.