Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
safely* install packages with npm/yarn by auditing them as part of your install process
Media coverage about npq:
Once npq is installed, you can safely* install packages:
npq install express
npq
will perform the following steps to sanity check that the package is safe by employing syntactic heuristics and querying a CVE database:
If npq is prompted to continue with the install, it simply hands over the actual package install job to the package manager (npm by default).
safely* - there's no guaranteed safety; a malicious or vulnerable package could still exist that has no security vulnerabilities publicly disclosed and passes npq's checks.
npm install -g npq
Note: we recommend installing with npm
rather than yarn
. That way, npq
can automatically install shell aliases for you.
npq install express
Since npq
is a pre-step to ensure that the npm package you're installing is safe, you can safely embed it in your day-to-day npm
usage so there's no need to remember to run npq
explicitly.
alias npm='npq-hero'
If you're using yarn
, or generally want to explicitly tell npq which package manager to use you can specify an environment variable: NPQ_PKG_MGR=yarn
Example: create an alias with yarn as the package manager:
alias yarn="NPQ_PKG_MGR=yarn npq-hero"
Note: npq
by default will offload all commands and their arguments to the npm
package manager after it finished its due-diligence for the respective packages.
Marshall Name | Description | Notes |
---|---|---|
age | Will show a warning for a package if its age on npm is less than 22 days | Checks a package creation date, not a specific version |
author | Will show a warning if a package has been found without an author field | Checks the latest version for an author |
downloads | Will show a warning for a package if its download count in the last month is less than 20 | |
readme | Will show a warning if a package has no README or it has been detected as a security placeholder package by npm staff | |
repo | Will show a warning if a package has been found without a valid and working repository URL | Checks the latest version for a repository URL |
scripts | Will show a warning if a package has a pre/post install script which could potentially be malicious | |
snyk | Will show a warning if a package has been found with vulnerabilities in Snyk's database | For Snyk to work you need to either have the snyk npm package installed with a valid api token, or make the token available in the SNYK_TOKEN environment variable, and npq will use it |
license | Will show a warning if a package has been found without a license field | Checks the latest version for a license |
expired domains | Will show a warning if a package has been found with one of its maintainers having an email address that includes an expired domain | Checks a dependency version for a maintainer with an expired domain |
signatures | Will compare the package's signature as it shows on the registry's pakument with the keys published on the npmjs.com registry | |
provenance | Will verify the package's attestations of provenance metadata for the published package |
To disable a marshall altogether, set an environment variable using with the marshall's shortname.
Example, to disable the Snyk vulnerability marshall:
MARSHALL_DISABLE_SNYK=1 npq install express
npq install express --dry-run
Learn Node.js Secure Coding techniques and best practices from Liran Tal
npm install
will install a module even if it has vulnerabilities; NPQ will display the issues detected, and prompt the user for confirmation on whether to proceed installing it.pre-install
script which can be potentially harmful for your system and prompt you whether to install it. Whereas npm audit
will not perform any such checks, and only consults a vulnerability database for known security issues.npm audit
is closer in functionality to what Snyk does, rather than what NPQ does.Please consult the CONTRIBUTING for guidelines on contributing to this project
Liran Tal liran.tal@gmail.com
FAQs
marshall your npm/npm package installs with high quality and class 🎖
The npm package npq receives a total of 272 weekly downloads. As such, npq popularity was classified as not popular.
We found that npq demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.