-
Notifications
You must be signed in to change notification settings - Fork 807
Closed
Labels
Complexity: LowFeatureIssue that describes a new feature to be implemented.Issue that describes a new feature to be implemented.Impact: HighPayloadsPluginssp/13
Milestone
Description
Description
Build a payload plugin that allows Infection Monkey to simulate a cryptominer. The user should be able to configure:
- CPU utilization (percentage) (single-core only)
- Memory utilization (percentage)
- Time limit (None for unlimited)
- Send
getblocktemplate
requests (boolean)
Notes
- The cryptominer should generate sha256 hashes in order to consume CPU usage
- The
getblocktemplate
requests can be sent to the Island (the payload doesn't actually need a response). - See Cryptominer Research #3389 for more details
Tasks
- Create plugin skeleton (0d) - @shreyamalviya
- options (pydantic)
- determine what options cryptominer should have
- create a pydantic model for cryptominer options
- Create plugin manifest
- Create config schema
- options (pydantic)
- Research and define events that the payload will generate (0d) @mssalvatore
- Modify the payload interface to accept the server (Island) (0d) - @shreyamalviya
- Modify the puppet to construct payloads with the server
- Build a basic cryptominer with stubbed components (0d) - @shreyamalviya
- plugin.py constructs and executes the cryptominer
- implement and call stubbed memory utilization component
- implement and call stubbed sha256 CPU utilization component
- implement and call stubbed
getblocktemplate
request generator - implement the logic that respects the time limit option
- implement the memory utilization component (0d) @mssalvatore
- implement the cpu utilization component (0d) - See comments below - @shreyamalviya
- implement the
getblocktemplate
component (0d) - @shreyamalviya @mssalvatore @ilija-lazoroski - Add a jenkins job to build the plugin (0d) @mssalvatore
- Update the island build jobs on Jenkins to copy the artifacts from the ransomware plugin build job
- Final testing (0d)
- Linux @mssalvatore
- Windows @cakekoa
- Zeek @shreyamalviya
- Add documentation (0d) @mssalvatore
- update changelog @mssalvatore
- Remove Vulture entries @mssalvatore
- Manual test procedure
- Document how to monitor bitcoin mining traffic @shreyamalviya
- Document CPU utilization test @cakekoa
- Document memory utilization test @cakekoa
Metadata
Metadata
Assignees
Labels
Complexity: LowFeatureIssue that describes a new feature to be implemented.Issue that describes a new feature to be implemented.Impact: HighPayloadsPluginssp/13