-
Notifications
You must be signed in to change notification settings - Fork 807
Closed
Labels
Complexity: LowEnhancementIssue that describes an enhancement to a current feature.Issue that describes an enhancement to a current feature.Impact: HighPluginssp/3
Milestone
Description
Context
Agent plugins will be stored in a repository and made available to the Island at runtime. See https://guardicore.atlassian.net/wiki/spaces/RES/pages/4281794663/Agent+Plugin+Repository for more context, as well as design and implementation details.
Description
Define a pydantic object for the Agent plugin repository's index. Store this object in monkey/common/agent_plugins
. Below is a pseudocode suggestion:
{
"timestamp": int, # Seconds since the Unix epoch
"compatible_infection_monkey_version": Union[SemVer, Literal["development"]],
"plugins": {
"credentials_collector": {
"<NAME>": [
{
"name": str,
"type": AgentPluginType,
"resource_path": PurePosixPath,
"sha256": constr(regex=r'[0-9a-fA-F]{64}'), # req 1.2
"description": str,
"version": SemVer, # req 1.3
"safe": bool, # req 1.5
},
...
],
...
},
"exploiter": {
...
},
"payload": {
...
}
}
}
Tasks
- Create the plugin repository index pydantic object in
monkey/common/agent_plugins
(0d)- Plugins with multiple versions should be sorted in ascending order by version number. The pydantic object should enforce this by sorting lists as necessary.
Metadata
Metadata
Assignees
Labels
Complexity: LowEnhancementIssue that describes an enhancement to a current feature.Issue that describes an enhancement to a current feature.Impact: HighPluginssp/3