You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently our agent speaks JSON graphql there are two features coming up that will benefit from a better optimized protocol like gRPC.
DNS c2 comms - Due to the limited bandwidth of the communication channel the size savings of gRPC are appealing.
Eldritch ---> IMIX IPC for types and meta requests - As we look to using strict types in Eldritch and performing thread control we need a mechanism to perform bi-directional communication between the two threads (imix main_loop and eldritch task thread). gRPC is a robust solution for IPC and well supported for the task.
Solution
Implement gRPC mutations on the server and switch the implants/libl/tavern package to use gRPC.
This will remove JSON graphql support from the agent (Beacon API)
This is preferred since maintaining both graphql and gRPC mutations on the client is bulky, and maintaining generated mutations for both JSON graphql and gRPC is complicated.
User interaction through the API or Front-end (Operator API) will still be managed through the the JSON graphql API since this is a more readable format and easier for frameworks like React to interact with.
Some mutations are required by the Operator API and not the Beacon API such as:
createJob
createTag
updateTag
createTome
updateUser
Some queries may be required by Operator API and Beacon API.
query files
These mutations and queries will either need to be specially managed during code generation or cerated by hand.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Problem
Currently our agent speaks JSON graphql there are two features coming up that will benefit from a better optimized protocol like gRPC.
Solution
Implement gRPC mutations on the server and switch the
implants/libl/tavern
package to use gRPC.This will remove JSON graphql support from the agent (Beacon API)
This is preferred since maintaining both graphql and gRPC mutations on the client is bulky, and maintaining generated mutations for both JSON graphql and gRPC is complicated.
User interaction through the API or Front-end (Operator API) will still be managed through the the JSON graphql API since this is a more readable format and easier for frameworks like React to interact with.
Some mutations are required by the Operator API and not the Beacon API such as:
createJob
createTag
updateTag
createTome
updateUser
Some queries may be required by Operator API and Beacon API.
query files
These mutations and queries will either need to be specially managed during code generation or cerated by hand.
Beta Was this translation helpful? Give feedback.
All reactions