| JP Vossen via plug on 10 Jun 2024 18:14:34 -0700 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: [PLUG] root "pkill: killing pid * failed: Operation not permitted" |
On 6/7/24 04:07 PM, JP Vossen wrote:
What could cause "pkill: killing pid * failed: Operation not permitted" *when run by root*? After patching and reboots the other day I started getting daily Anacron emails from Logrotate on most (but not all) of 50+ VMs saying: ``` /etc/cron.daily/logrotate: pkill: killing pid NNN failed: Operation not permitted ``` The culprit is the (quite horrible, but mandatory) Crowdstrike `falcon-agent` service, running from the stock vendor RPM that has not changed since April, and we've had patching reboots since then. The really confusing thing is that *most* of them are doing this, but *not* all, and I can't find any differences! The 50+ VMs are a mix of (quite horrible, but mandatory) Oracle Linux 7.9 (EoL soon, thus migrating) and 8.10, but the problem doesn't follow the distro. Also, a few of the ones that complained on Wed did not complain on Thu, so they "fixed" themselves? When I manually run the relevant line from `/etc/logrotate.d/falcon-sensor` *as root*, it either silently works or fails with the error above, according to whether I get the Anacron emails or not. So it's not that `/usr/bin/pkill -HUP falcon-sensor` is a problem, and it is running as root. It just...sometimes works and sometimes doesn't. The `falcon-sensor` process itself is running as root, as is the parent `falcond`. Restarting via `systemctl restart falcon-sensor` doesn't help, neither does a stop then start. Every VM has the same `falcon-sensor-7.01.0-15604.el7.x86_64` or `falcon-sensor-7.01.0-15604.el8.x86_64` and both vendor RPMs have identical *stock* `/etc/logrotate.d/falcon-sensor` and `/usr/lib/systemd/system/falcon-sensor.service` files. `/usr/bin/pkill` is also the same on working and broken servers, and SELinux is disabled. They all have the same kernel (current for either OEL-7 or 8) and it is *not* UEK (the Oracle Unusable Enterprise Kernel that always ends in tears). They all have plenty of free disk space. This is over-simplified (and skipping some related nodes), but I have 5 groups of 8 identical "agent" VMs, and for 4 groups 7 fail and 1 works. The 5th group only had 3 bad out of 8, then that "fixed" itself.
First, thanks to all who replied!
Second, no matter how many times I read and re-read these kinda of emails before sending, I never get it as clear as I'd like, though replies help clarify where I went wrong.
To restate a bit differently: a vendor supplied logrotate script is now emitting a warning on 7 out of every 8 servers; the 8th one is still working fine. That particular package didn't change, and I can find no differences between working and whining...
So...what could suddenly cause `pkill -HUP` "killing pid * failed: Operation not permitted" *when run by root* as part of an unchanged vendor logrotate script?
More details:
*I* am not trying to do `pkill -HUP` the process, the *vendor supplied* `/etc/logrotate.d/falcon-sensor` is doing that. And until I patched and rebooted last week, all 50+ servers Just Worked Fine.
NOTE: this is -HUP ("signal hang up", AKA, wake up and re-read your config file), not kill! The point, again, is *vendor supplied* Logrotate.
I did not choose or change the `/usr/bin/pkill -HUP falcon-sensor` line to put in their Logrotate script, Crowdstrike did, and up to last week, it worked. That said, if I run that line manually as root I do get the same "expected" results. That is, it works on working servers and fails on whining ones.
Roughly 1 out of every 8 servers *still* works fine, the other 7 are now whining. I can't find a single difference between the ones that work and the ones what whine. I've checked:
* Same RPM for Crowdstrike (AKA falcon-sensor, as listed above))
* `rpm -qa | sort -u | md5sum` is identical on working and whining
* SELinux = disabled, and I checked a few different ways
* `/usr/bin/pkill` has the same md5, perms, root:root, and no "capabilities"
* Same OEL-7.9 & running kernel version
* They are all VMware VMs and all rebooted at the same time (more-or-less)
* `logrotate --debug ...` failed to shed any light
* Probably other things I'm forgetting
`systemctl restart falcon-sensor` has no effect except to change the PID. A stop, check `ps` to make sure it's really gone, then start has no effect either.
Speaking of the process itself, both working and whining show ps STAT "Sl":
S interruptible sleep (waiting for an event to complete)
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
Clearly, *something* changed 7/8ths of the time...but I can't find it, or even think of what it *could* be. So...what could suddenly cause `pkill -HUP` to stop working?
We do have vendor support but due to internal processes that's a PITA, and last time we asked them anything, they were utterly useless, and that was a simpler question. (Why does your PoS so-called "security" tool *fail to start* after patching reboots about 35% of the time?!? So yeah, this tool sucks, and I only have it because I am forced to.)
Thanks again for thinking about this,
JP
-- -------------------------------------------------------------------
JP Vossen, CISSP | http://www.jpsdomain.org/ | http://bashcookbook.com/
___________________________________________________________________________
Philadelphia Linux Users Group -- http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug