
Research
Malicious NuGet Packages Typosquat Nethereum to Exfiltrate Wallet Keys
The Socket Threat Research Team uncovered malicious NuGet packages typosquatting the popular Nethereum project to steal wallet keys.
@5minds/processcube_engine_sdk
Advanced tools
Das Engine SDK stellt Typen und Schnittstellen bereit, um Extensions fĂĽr die Engine zu entwickeln.
Das SDK kann ĂĽber npm bezogen werden:
npm i --save @5minds/processcube_engine_sdk
Beispiel:
import { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';
export const onLoad: OnLoad = (engine: Engine) => {
engine.registerEventMiddleware(onEngineEvent);
};
function onEngineEvent(event: EngineEvent): Promise<void> {
return Promise.resolve();
}
Standardmäßig werden Extensions aus dem Ordner ${HOME}/.processcube/engine/extensions
geladen. Der Pfad lässt sich mit dem Startup-Parameter
--extensionsDir
ändern.
Sowohl beim Start ĂĽber die CLI:
processcube-engine --extensionsDir '/my/custom/extensions/dir'
Als auch beim Start als embedded Software:
await Engine.launch({
extensionsDir: '/my/custom/extensions/dir',
});
Jede zu ladende Extension muss in einem eigenen Unterordner von extensionsDir
liegen und mindestens eine package.json und eine nach JavaScript
transpilierte Einstiegspunkt-Datei enthalten, die in der package.json als main
angegeben ist.
tree -L 2 ${HOME}/.processcube/engine/extensions
├── extension01
│ ├── index.js
│ └── package.json
└── extension02
├── index.js
└── package.json
Jede Extension muss mindestens eine eigene package.json mit name
, version
und main
enthalten.
{
"name": "extension01",
"version": "1.0.0",
"main": "index.js",
"dependencies": {
"@5minds/processcube_engine_sdk": "^3.3.0"
}
}
main
muss auf eine gĂĽltige JavaScript-Datei zeigen, in welcher die Extension gehostet wird.
In der main
-Datei können Extensions eine onLoad-Funktion exportieren, die von der Engine beim Laden mit einem
Engine-Objekt als Parameter aufgerufen wird. In diesem Objekt finden sich alle Engine Funktionen,
die von einer Extension genutzt werden können.
export const onLoad: OnLoad = (engine: Engine) => {
engine.registerEventMiddleware(onEngineEvent);
};
Der Engine
Typ stellt Schnittstellen zur Interaktion mit der Engine bereit.
registerEventMiddleware
erlaubt es einer Extension sich auf Log Events der Engine zu subscriben.
Der hier angegebene Callback wird dann bei jedem eingehenden Log Event ausgefĂĽhrt.
import { Engine, EngineEvent, OnLoad } from '@5minds/processcube_engine_sdk';
export const onLoad: OnLoad = (engine: Engine): void => {
// Die Funktion `onEngineEvent` wird als Event-Middleware registriert
engine.registerEventMiddleware(onEngineEvent);
};
// Gibt den Typen jedes empfangenen Events auf der Konsole aus
function onEngineEvent(event: EngineEvent): void {
console.log(`Received event ${event.eventType}`);
}
Die Engine erlaubt mittels EngineActions ein Eingreifen in die ProzessausfĂĽhrung. Eine Middleware kann eine, keine oder mehrere EngineActions zurĂĽckgeben, die dann von der Engine nacheinander ausgefĂĽhrt werden, bevor die ProzessausfĂĽhrung fortgesetzt wird.
Eine EngineAction ist ein Datenobjekt, dass mindestens eine Id enthält, die die Art der EngineAction festlegt und weitere EngineAction-spezifische Properties, die für die Ausführung der EngineAction benötigt werden.
import { Engine, EngineEvent, LogEventType, OnLoad } from '@5minds/processcube_engine_sdk';
export const onLoad: OnLoad = (engine: Engine): void => {
// Die Funktion `onEngineEvent` wird als Event-Middleware registriert
engine.registerEventMiddleware(onEngineEvent);
};
// Gibt den Typen jedes empfangenen Events auf der Konsole aus
function onEngineEvent(event: EngineEvent): void {
console.log(`Received event ${event.eventType}`);
if (event.eventType === LogEventType.OnFlowNodeExited) {
// Gibt die EngineAction 'ModifyTokenPayload' zurĂĽck
return {
id: 'ModifyTokenPayload',
tokenPayload: { result: 'token was modified' },
};
}
}
Folgende EngineActions werden derzeit unterstĂĽtzt:
Die ModifyTokenPayload
Action kann verwendet werden um den Payload des aktuellen Tokens zu verändern.
Daher kann die ModifyTokenPayload
Action nur verwendet werden, wenn das auslösende EngineEvent zu einer FlowNode gehört.
Solche Events fangen immer mit OnFlowNode
an (bspw.: OnFlowNodeEntered
).
Sollte eine ModifyTokenPayload
Action für ein Event das nicht zu einer FlowNode gehört zurückgegeben wird,
wird die Action nicht ausgefĂĽhrt und ein Fehler wird gelogt.
Eine ModifyTokenPayload
Action besteht aus 2 Eigenschaften:
id
, die immer ModifyTokenPayload
entsprichttokenPayload
, der den payload des aktuellen Tokens der entsprechenden FlowNode ersetzt.{
id: 'ModifyTokenPayload',
tokenPayload: {example: 'token payload'},
}
Werden mehrere ModifyTokenPayload
Actions zurĂĽckgegeben, ĂĽberschreibt der letzte TokenPayload immer die Vorherigen.
FAQs
Software development kit for the Engine.
The npm package @5minds/processcube_engine_sdk receives a total of 4,506 weekly downloads. As such, @5minds/processcube_engine_sdk popularity was classified as popular.
We found that @5minds/processcube_engine_sdk demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 21 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
The Socket Threat Research Team uncovered malicious NuGet packages typosquatting the popular Nethereum project to steal wallet keys.
Product
A single platform for static analysis, secrets detection, container scanning, and CVE checks—built on trusted open source tools, ready to run out of the box.
Product
Socket is launching experimental protection for the Hugging Face ecosystem, scanning for malware and malicious payload injections inside model files to prevent silent AI supply chain attacks.