Slim(toolkit): Don't change anything in your container image and minify it by up to 30x (and for compiled languages even more) making it secure too! (free and open source)
More execution-friendly - all (but top-level) errutil.FailOn()
were removed from the sensor logic.
Prepared for Execution (not really a context) introduction.
Prepared for incremental artifact storing.
Introduced abstractions:
Sensor - to abstract differences in the standalone and controlled execution flows.
Monitor (fanotify & ptrace) - makes an act of monitoring a noun
instead of a verb (easier to pass around and interact with).
CompositeMonitor - to abstract multiple monitors behind single entity and
simplify the code of the (controlled and standalone) sensors.
Fixed bugs:
IPC server startup racing with monitor startup - MonitorDoneEvent
could have been sent before the EvtClient connection leading to sensor
becoming stuck forver.
Missed draining of the events channel in ptrace monitor when collection is done
files might have been randomly missed in the report.
Fanotiry report partial initialization leading to panic when the
monitored process exits relatively fast.
Discovered but not fixed bugs:
When a file is deleted during tracing, it won't be included in the
report (even though it should be). Two tests were written for this,
but they are being skipped at the moment.
👇 Click on the image for a new way to code review
- Make big changes easier — review code in small groups of related files
- Know where to start — see the whole change at a glance
- Take a code tour — explore the change with an interactive tour
- Make comments and review — all fully sync’ed with github
[Try it now!](https://app.codesee.io/r/reviews?pr=402&src=https%3A%2F%2Fgithub.com%2Fdocker-slim%2Fdocker-slim)
The redesign is supposed to make the codebase:
Introduced abstractions:
Fixed bugs:
Discovered but not fixed bugs: