SINGLE ROUND TRIP COLLECTION OF USER AND GROUP DATA FOR SECURITY POSTURE ASSESSMENT
A software agent executing on a computing device receives a high-level command from a client and converts the high-level command into multiple low-level commands. The software agent executes individual low-level command on the computing device and sends a result of executing the individual low-level command to the client until each low-level command has been executed.
1 . A method comprising:
receiving, by a software agent executing on a computing device, a high-level command from a client;
converting, by the software agent, the high-level command into a plurality of low-level commands;
executing, by the software agent, a particular low-level command of the plurality of low-level commands on the computing device;
determining, by the software agent, a result of executing the particular low-level command on the computing device; and
sending, by the software agent, the result of executing the particular low-level command on the computing device to the client.
2 . The method of claim 1 , wherein receiving, by the software agent executing on the computing device, the high-level command from the client comprises:
receiving the high-level command via a remote procedure call on the computing device.
3 . The method of claim 1 , wherein the result comprises one of:
contents of individual files of a plurality of files stored on the computing device;
metadata associated with the plurality of files;
a plurality of user identifiers of users that are permitted to access the computing device;
a plurality of user permissions associated with users having access to the computing device;
a plurality of group names associated with groups defined on the computing device;
a plurality of group identifiers associated with one or more groups defined on the computing device;
a plurality of group permissions associated with one or more groups defined on the computing device;
group membership data associated with one or more groups defined on the computing device;
registry data associated with a registry of an operating system installed on the computing device; or
an output of executing a command line application on the computing device.
4 . The method of claim 1 , wherein executing, by the software agent, the particular low-level command of the plurality of low-level commands on the computing device comprises:
executing the particular low-level command using an operating system of the computing device.
5 . The method of claim 1 , wherein a single roundtrip across a network that connects the client to the computing device comprises:
receiving, by the software agent executing on the computing device, the high-level command from the client; and
sending, by the software agent, the result to the client.
6 . The method of claim 1 , wherein
the result is sent to the client as a response to a remote procedure call invoked by a software application executing on the client.
7 . The method of claim 1 , wherein:
the result is sent to the client as a second remote procedure call invoked by the software agent.
8 . A computing device comprising:
one or more processors; and
one or more non-transitory computer readable media storing instructions executable by the one or more processors to perform operations comprising:
receiving, by a software agent, a high-level command from a client;
converting the high-level command into a plurality of low-level commands;
executing a particular low-level command of the plurality of low-level commands on the computing device;
determining a result of executing the particular low-level command on the computing device; and
sending the result of executing the particular low-level command on the computing device to the client.
9 . The computing device of claim 8 , wherein receiving, by the software agent executing on the computing device, the high-level command from the client comprises:
receiving the high-level command via a remote procedure call.
10 . The computing device of claim 8 , wherein receiving, by the software agent executing on the computing device, the high-level command from the client comprises:
receiving the high-level command at a Hypertext Transfer Protocol Secure (HTTPS) endpoint on the computing device.
11 . The computing device of claim 8 , wherein the result comprises one of:
contents of individual files of a plurality of files stored on the computing device;
metadata associated with the plurality of files;
a plurality of user identifiers of users that are permitted to access the computing device;
a plurality of user permissions associated with users that are permitted to access the computing device;
a plurality of group names associated with groups defined on the computing device;
a plurality of group identifiers associated with one or more groups defined on the computing device;
a plurality of group permissions associated with one or more groups defined on the computing device;
group membership data associated with one or more groups defined on the computing device;
registry data associated with a registry of an operating system installed on the computing device; or
an output of executing a command line application on the computing device.
12 . The computing device of claim 8 , wherein:
the result is sent to the client as a response to a remote procedure call invoked by a software application executing on the client.
13 . The computing device of claim 8 , wherein a single roundtrip across a network that connects the client to the computing device comprises:
receiving, by the software agent executing on the computing device, the high-level command from the client; and
sending, by the software agent, the result to the client.
14 . One or more non-transitory computer readable media storing instructions executable by one or more processors of a computing device to perform operations comprising:
receiving, by a software agent, a high-level command from a client;
converting the high-level command into a plurality of low-level commands;
executing a particular low-level command of the plurality of low-level commands on the computing device;
determining a result of executing the particular low-level command on the computing device; and
sending the result of executing the particular low-level command on the computing device to the client.
15 . The one or more non-transitory computer readable media of claim 14 , wherein receiving, by the software agent executing on the computing device, the high-level command from the client comprises:
receiving the high-level command via a remote procedure call on the computing device.
16 . The one or more non-transitory computer readable media of claim 14 , wherein:
the result is sent to the client as a second remote procedure call invoked by the software agent.
17 . The one or more non-transitory computer readable media of claim 14 , wherein the result comprises one of:
contents of individual files of a plurality of files stored on the computing device;
metadata associated with the plurality of files;
a plurality of user identifiers of users that are permitted to access the computing device;
a plurality of user permissions associated with users that are permitted to access the computing device;
a plurality of group names associated with groups defined on the computing device;
a plurality of group identifiers associated with one or more groups defined on the computing device;
a plurality of group permissions associated with one or more groups defined on the computing device;
group membership data associated with one or more groups defined on the computing device;
registry data associated with a registry of an operating system installed on the computing device; or
an output of executing a command line application.
18 . The one or more non-transitory computer readable media of claim 14 , wherein executing, by the software agent, the particular low-level command of the plurality of low-level commands on the computing device comprises:
executing the particular low-level command using an operating system of the computing device.
19 . The one or more non-transitory computer readable media of claim 14 , wherein a single roundtrip across a network that connects the client to the computing device comprises:
receiving, by the software agent executing on the computing device, the high-level command from the client; and
sending, by the software agent, the result to the client.
20 . The one or more non-transitory computer readable media of claim 14 , wherein:
the result is sent to the client as a response to a remote procedure call invoked by a software application executing on the client.