-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Auditbeat] System module: Detect package updates #10508
Conversation
Pinging @elastic/secops |
jenkins, test this |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
How does auditbeat ensure that /var/lib/dpkg/status
is not being modified by dpkg
when it reads?
I don't think we do. Maybe we should lock the file as dpkg does (seems to use |
f108cc4
to
8e5a6a2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
3983636
to
008202c
Compare
Detects package updates by checking if any of the "new" package objects have the same package name as one of the "old" package objects. The event will have `event.action: package_updated`. Also removes `InstallTime` from change detection. And for dpkg, reports packages as removed that have only been removed (`apt-get remove`) but not purged (`apt-get purge`). (cherry picked from commit 394d93d)
…updates (#10562) Cherry-pick of PR #10508 to 6.x branch. Original message: Detects package updates by checking if any of the "new" package objects have the same package name as one of the "old" package objects. The event will have `event.action: package_updated`. Also removes `InstallTime` from change detection. And for dpkg, reports packages as removed that have only been removed (`apt-get remove`) but not purged (`apt-get purge`). (cherry picked from commit 394d93d)
Detects package updates by checking if any of the "new" package objects have the same package name as one of the "old" package objects. The event will have
event.action: package_updated
.Also fixes two issues:
InstallTime
from change detection. It is not set for dpkg, and for Homebrew it is currently the modification time of the package's directory. Atouch
will cause it to be reported as changed. I'm actually wondering if we should not set it for Homebrew at all. For change detection, we now rely onname
,version
,release
(only set for RPM), andsize
- all of which (hopefully) only change when the package has indeed changed.apt-get remove
) but not purged (apt-get purge
). Removed package stay around in/var/lib/dpkg/status
, but with adeinstall
status.As an urgent follow-up, we should add tests with sample files for at least:
/var/lib/dpkg/status
in various stages (no package, installed package, new version, deinstalled package). I wanted to add it here, but we'll need a way to pass the test files to the metricset, and at the moment there is no config value for it (but there probably should be). I didn't want to do that bigger change here./usr/local/Cellar/{pkg.Name}/INSTALL_RECEIPT.json
(read since [Auditbeat] Read formula path from INSTALL_RECEIPT.json for Homebrew packages #10507), and a Ruby formula file.