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.
Secure, re-connectable channel for bidirectional communication with a remote host.
Secure, re-connectable channel for bidirectional communication with a remote host.
(A tunneling project that hopefully costs less than $14.6 billion.)
Big Dig was originally built as the logic for creating a persistent connection between the Nuclide client and a remote machine in order to support remote editing. To that end, it was designed with a focus on minimizing the requirements to get the server component of Nuclide up and running:
/tmp
on the server.openssl
available on the $PATH
.rg
installed
in order for text search to work correctly.hg
installed in order
for the Mercurial integration to work correctly.ssh
connection to the server in order
to launch it.Although Big Dig could have been implemented in any programming language, we
chose to implement it using Node because the clients and servers that were built
on top of it for Nuclide were also written in Node, so this was the path of
least resistance. Further, this made it simple to install the Nuclide server
via npm
. This ensured a simple installation process that would not require root
privileges.
Today, a Big Dig server is just a secure HTTP server. When the server is initialized, it creates a unique SSL certificate, which is sent back to the client that created the server. Once the client has this certificate, it can use ordinary HTTP to communicate with the server. In creating Nuclide, we found HTTP to be a better protocol than SSH when building a remote editor that may often have to retry requests due to network flakiness.
The goal of the Big Dig library is to provide building blocks for:
Today, we provide a WebSocket-like abstraction for a Node client that connects to a Big Dig server. Going forward, we hope to provide a richer set of abstractions to support a more diverse set of use cases, such as multiplexing multiple LSP servers over a single Big Dig connection.
The server initiation/authentication scheme is designed to be robust to user
environments. The current scheme is the result of experimenting with different
setups at Facebook. In practice, we observed that users have all sorts of things
in their ~/.bashrc
(or equivalent) that can interfere with writing to stdout
when running a remote command via ssh
, which is why we write data to a file
and use SFTP to fetch it rather than write to stdout or stderr.
The authentication between the client and server works as follows:
ssh
connection to the server and runs a script to start
the server. (Ultimately, the client will communicate with the server via
HTTPS/WSS.)jsonOutputFile
, which specifies the path where the server should write out the credentials (the
private key, cert, and CA overrides) necessary to connect to it. Note that these credentials are
created on-the-fly, and it requires openssl
to be on the $PATH
of the remote machine.jsonOutputFile
to the local machine.The full set of supported properties in the JSON blob is as follows:
cname
Value to use with /CN=
when generating the server's certificates.expiration
Currently, it must be in the form NNNd
where NNN
is the number
of days for which the credentials should be valid. (This pattern may be expanded
in the future to support ranges other than days.)jsonOutputFile
The file on the server at which the credentials will be written.port
(Optional, defaults to 0
.) The port that should be used to serve HTTP traffic. Must be an integer
that is greater than or equal to zero. If 0
, then the server will choose an
ephemeral port. This value will be included in the jsonOutputFile
.serverParams
(Optional, defaults to null
.) A blob of JSON that will be
passed to the server verbatim. This is where custom configuration should be specified.FAQs
Secure, re-connectable channel for bidirectional communication with a remote host.
The npm package big-dig receives a total of 6 weekly downloads. As such, big-dig popularity was classified as not popular.
We found that big-dig demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 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.