Application profiling #411
Replies: 4 comments 3 replies
-
Agreed. This may not be possible in the general case for all applications that are comprised of many execution threads/processes/plug-ins paths e.g. different codecs loaded depending on the input data stream. Maybe setting expectations such that multiple iterations may be required to cover different use cases. Don't have a real solution other than to make it easy for the administrator to quickly alternate between user activities and analysis activities when performed manually. Internal execution automation or scripting might be something to consider down the road, allowing sequential runs of an application with different input data while capturing fapolicyd events for those runs. |
Beta Was this translation helpful? Give feedback.
-
I think it makes sense to have an initial run at this functionality without the GUI, as a CLI application that generates the log, we can load it in the app as a separate step for now. The implementation of profiling components should be with importing them into a CLI or GUI structure in mind, either type of application should be able to compose and execute the profiler. The implementation should go under a new package at |
Beta Was this translation helpful? Give feedback.
-
Off the top of my head, I thought that we can have a new systemd service file with any new runtime settings that differ from those of an on-line session of fapolicyd. Then the existing backend comm w/systemd can be be reused except wrt the new 'service', fapolicyd-profiliing.service, or whatever we want to call it. Logging options for the profiling session could be distinct from those of the on-line session, and if desired, we could run the profiling session in a higher security sandbox by using systemd's kernel capabilities, seccomp, namespace features (or none at all.) And of course, the Exec line will have the permissive option. When the application transitions into profiling mode, we stop fapolicyd.service via systemd, then start fapolicyd-profiling.service. and perform the inverse on the transition back to on-line mode (or whatever we want to call that mode.) |
Beta Was this translation helpful? Give feedback.
-
I am somewhat concerned about the additional overhead of the systemd unit vs a subprocess. Though I am interested in seeing what advanced features systemd can provide as far as sandboxing that might be beneficial to us. I like the aspects of
Let's see how the systemd way looks. |
Beta Was this translation helpful? Give feedback.
-
Provide ability to run arbitrary applications with fapolicyd in permissive debug mode while capturing the log for analysis.
Determining when the application is "complete" can be tricky in some cases, like with a GUI application that will open a window and may require interaction. Interaction seems fine, just need to make sure the subprocess termination is detected in all cases so it doesn't hang.
The goal here is to make it easy to identify what entries are required for an application to function.
Beta Was this translation helpful? Give feedback.
All reactions