Troubleshooting Crowd Strike Falcon Linux Agents
Troubleshooting Crowd Strike Falcon Linux Agents
For more info about RFM status, see "Appendix: Reduced Functionality Mode (RFM)" below.
network
systemd
local-fs
sysinit
multi-user
shutdown
Planisphere: If a device is communicating with the CrowdStrike Cloud, Planisphere will collect information about that device on its regular polling of the CrowdStrike service. You can see the timing of the
last and next polling on the Planisphere Data Sources tab(link is external). You can see the specific information for your device on the device's Details tab.
Host: Enter the following command in a terminal:
Logs
Logs are stored within your host's syslog. The syslog locations vary but are specified in /etc/syslog.conf or rsyslog.conf, with these being the most common:
/var/log/messages
/var/log/syslog
/var/log/rsyslog
/var/log/daemon
grep for the string falcon for sensor logs, similar to this example:
Hosts in RFM are unprotected by Falcon. When installing the sensor and upgrading hosts, ensure that kernels are compatible. Check regularly to verify your hosts aren’t in RFM.
A sensor enters RFM when it’s installed on a host that has an incompatible kernel on a supported Linux distro. Sensors can enter RFM if their kernels are updated to an unsupported kernel version.
/opt/CrowdStrike/falconctl -g --rfm-state
/opt/CrowdStrike/falconctl -g --rfm-reason
To prevent existing sensors from entering RFM, CrowdStrike recommends disabling automatic kernel updates and upgrading your kernel when it is supported by the Falcon sensor. Consult your distro’s support
documentation for pinning the existing kernel or configuring regular updates to leave the existing kernel in place.
Centos 8 - Stream
The last supported snapshot of CentOS supported by Falcon was 8.5, the new continuous updated Stream has unsupported kernels, but protection can be restored by migrating to the elrepo kernel.
Risk Assessment
You will need to disable secureboot as elrepo kernels are not signed, please discuss with your security officer, this is approach should be a temporary workaround as you should migrate to a supported
Linux distribution.
At the time of writing, the latest kernel supported by Falcon is 5.4.229-1.el8.elrepo, search the available kernels like this:
$ sudo yum list --showduplicates kernel-* | grep 5.4
kernel-lt.x86_64 5.4.229-1.el8.elrepo elrepo-kernel
kernel-lt.x86_64 5.4.230-1.el8.elrepo elrepo-kernel
kernel-lt-core.x86_64 5.4.229-1.el8.elrepo elrepo-kernel
kernel-lt-core.x86_64 5.4.230-1.el8.elrepo elrepo-kernel
kernel-lt-devel.x86_64 5.4.229-1.el8.elrepo elrepo-kernel
kernel-lt-devel.x86_64 5.4.230-1.el8.elrepo elrepo-kernel
kernel-lt-doc.noarch 5.4.229-1.el8.elrepo elrepo-kernel
kernel-lt-doc.noarch 5.4.230-1.el8.elrepo elrepo-kernel
kernel-lt-headers.x86_64 5.4.229-1.el8.elrepo elrepo-kernel
kernel-lt-headers.x86_64 5.4.230-1.el8.elrepo elrepo-kernel
kernel-lt-modules.x86_64 5.4.229-1.el8.elrepo elrepo-kernel
kernel-lt-modules.x86_64 5.4.230-1.el8.elrepo elrepo-kernel
kernel-lt-modules-extra.x86_64 5.4.229-1.el8.elrepo elrepo-kernel
kernel-lt-modules-extra.x86_64 5.4.230-1.el8.elrepo elrepo-kernel
kernel-lt-tools.x86_64 5.4.229-1.el8.elrepo elrepo-kernel
kernel-lt-tools.x86_64 5.4.230-1.el8.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 5.4.229-1.el8.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 5.4.230-1.el8.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 5.4.229-1.el8.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 5.4.230-1.el8.elrepo elrepo-kernel
$
Here we see the latest is 230, but that's not supported by Falcon, so we need to install 229:
Transaction Summary
================================================================================================================================================================
===========
Install 3 Packages
Complete!
$
Reboot and with a supported kernel running, the system is fully protected.
IF you miss it, you will need to re-run the mokutil import command again, and reboot!
Select Yes (press enter) Type in the password you created at step 3
After booting, you can verify the key has loaded into the Kernel:
If you have imported multiple certs for LTS it would look like this:
Risk Assessment
If you have upgraded the kernel to resolve a security isssue or to fix a fault and found your system is now unprotected (in RFM) please discuss the risks with your Security Officer.
Use apt search kernel command with grep to find the available packages
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
linux-headers-5.10.0-19-amd64/stable-security 5.10.149-2
amd64
Header files for Linux 5.10.0-19-amd64
linux-headers-5.10.0-19-cloud-amd64/stable-security 5.10.149-2 amd64
Header files for Linux 5.10.0-19-cloud-amd64
linux-headers-5.10.0-19-common/stable-security 5.10.149-2 all
Common header files for Linux 5.10.0-19
linux-headers-5.10.0-19-common-rt/stable-security 5.10.149-2 all
Common header files for Linux 5.10.0-19-rt
linux-headers-5.10.0-19-rt-amd64/stable-security 5.10.149-2 amd64
Header files for Linux 5.10.0-19-rt-amd64
linux-image-5.10.0-19-amd64/stable-security 5.10.149-2 amd64
linux-image-5.10.0-19-amd64-dbg/stable-security 5.10.149-2 amd64
Debug symbols for linux-image-5.10.0-19-amd64
linux-image-5.10.0-19-amd64-unsigned/stable-security 5.10.149-2 amd64
linux-image-5.10.0-19-cloud-amd64/stable-security 5.10.149-2 amd64
linux-image-5.10.0-19-cloud-amd64-dbg/stable-security 5.10.149-2 amd64
Debug symbols for linux-image-5.10.0-19-cloud-amd64
linux-image-5.10.0-19-cloud-amd64-unsigned/stable-security 5.10.149-2 amd64
linux-image-5.10.0-19-rt-amd64/stable-security 5.10.149-2 amd64
linux-image-5.10.0-19-rt-amd64-dbg/stable-security 5.10.149-2 amd64
Debug symbols for linux-image-5.10.0-19-rt-amd64
linux-image-5.10.0-19-rt-amd64-unsigned/stable-security 5.10.149-2 amd64
linux-support-5.10.0-19/stable-security 5.10.149-2 all
$
As we want the 5.10.0-19 series, we run apt install like this...
Now, reboot into the older kernel. By default most Linux systems boot into the newest kernel, therefore on the console you will need to select the older one in Grub, for debian that's under the "advanced" menu.
Once in the new kernel, you can remove the newer ones so that every reboot is into this old kernel, my system had both "20" & "21" installed, therefore was removed like this.
If you reboot again, you should be back into the old kernel, and in this example RFM has been resolved.
$ uname -a
Linux debian 5.10.0-19-amd64 #1 SMP Debian 5.10.149-2 (2022-10-21) x86_64 GNU/Linux
$ sudo /opt/CrowdStrike/falconctl -g --version;sudo /opt/CrowdStrike/falconctl -g --rfm-state;sudo /opt/CrowdStrike/falconctl -g --rfm-reason
version = 6.49.14604.0
rfm-state=false.