Research
Security News
Threat Actor Exposes Playbook for Exploiting npm to Build Blockchain-Powered Botnets
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
platform-chaos
Advanced tools
A node sdk for building services capable of injecting chaos into PaaS offerings
A node sdk for building services capable of injecting chaos into PaaS offerings. ⚙️ 🌩
Platform chaos is a collection of tools and sdks that enable engineers to experiement on distributed systems built atop PaaS offerings to ensure confidence in such a system's capabilities. It does so by defining a common interface for inducing chaos, through a construct we call chaos extensions. Given this common interface, we're able to provide tooling that can schedule, start, and stop chaotic events.
This project is the core sdk that enables chaos extension development using NodeJS.
The common interface mentioned above that all chaos extensions must implement is defined using OpenAPI docs here. As such, an extension can be developed using any language. SDKs to simplify creation of extensions using other languages may be added in the future.
To consume this sdk, install it from NPM:
npm install platform-chaos
Then consume the module in code, leveraging the following API.
This is the exported API from the platform-chaos
NPM module.
Request validation helpers. Useful to ensure data coming in is behaving as expecting.
const validate = require('azure-chaos-fn/validators')
Validates that the body
of a req
object contains a valid accessToken
.
try { require('azure-chaos-fn/validators').accessToken(req) } catch (ex) { console.error(`error: ${ex}`) }
Validates that the body
of a req
object contains a valid resources
array.
try { require('azure-chaos-fn/validators').resources(req) } catch (ex) { console.error(`error: ${ex}`) }
Note: these depend on the validators to ensure only valid data is parsed.
Request parser helpers. Useful to parse valid request data into models.
const parsers = require('azure-chaos-fn/parsers')
Inflates the accessToken
from a req
objects body
into a ms-rest-azure compatible credentials object.
const credentials = require('azure-chaos-fn/parsers').accessTokenToCredentials(req)
Inflates the resources
from a req
objects body
into a collection of objects containing the following properties:
subscriptionId
- the azure subscription id to targetresourceGroupName
- the azure resource group name to targetresourceName
- the azure resource name to targetconst objs = require('azure-chaos-fn/parsers').resourcesToObjects(req)
For a list of already built chaos extensions, please see The extensions document.
This project welcomes contributions and suggestions! Here's what you need to know to get started.
When you're ready, you can open issues here!
To submit feedback or request features please do a quick search for similar issues, then open a new issue. If you're requesting a new feature, please briefly explain in the issue what scenario you're planning to use the feature for.
To get started developing, you'll need to first ensure you have these tools installed:
Once you've installed those, clone this repository and install dependencies:
git clone https://github.com/Azure/platform-chaos.git
cd platform-chaos
npm install
Now you're ready to begin contributing!
To run the tests for this project, first ensure you've installed the requirements. Then use npm to run the tests locally:
npm test
Note that this command is meant to be run from the project directory. That is,
the folder that you cloned the project into (likey platform-chaos
).
Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
When you're ready, you can submit pull requests here!
We've defined a pull request template that should be filled out when you're submitting a pull request. You'll see it when you create your PR. Please fill it out to the best of your ability!
Further, your pull request should:
Note that once you've submitted a pull request you may need to sign a CLA - see the legal section for more information.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
FAQs
A node sdk for building services capable of injecting chaos into PaaS offerings
The npm package platform-chaos receives a total of 0 weekly downloads. As such, platform-chaos popularity was classified as not popular.
We found that platform-chaos demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
Security News
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
Security News
Research
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.