こんにちは。
今回はSecure Bootが有効化されたLinux環境へのCrowdStrike Falconのセンサー(エージェント)インストールについて書いていきたいと思います。
Secure Boot なんて有効にしていないよ。ちゃんと無効にしているよ という皆様は大丈夫ですが、vSphere環境でRed Hat Enterprise Linux 8 もしくは 9を選択すると自動的にSecure Bootが有効になってしまいます。
このような環境にFalcon Sensorを導入した場合にはひと手間必要になります。
そして、より重要なこととして OSの再起動が必須 になります。
確認ポイントも含めて手順を追ってみます。
環境
今回検証に使った環境は下記です。
- vSphereバージョン: 7.0.3
- ESXiバージョン: 7.0.3
- ゲストOSのバージョン: Red Hat Enterprise Linux 9 (64ビット)
- ゲストOS
- OS: Red Hat Enterprise Linux release 9.4 (Plow)
- Kernel: Linux 5.14.0-427.13.1.el9_4.x86_64
- Architecture: x86-64
Secure Bootかどうかの確認
RHELのコンソールでコマンドを実行できる場合は mokutil --sb-state
を実行します。有効の場合 SecureBoot enabled と表示されます。
[user@rhel94-demo ~]$ mokutil --sb-state SecureBoot enabled
vSphereコンソール上でVMの設定から確認することもできます。
RHELの仮想マシンの設定の編集から仮想マシンオプションの起動オプションを開きます。セキュアブートが有効になっているか確認できます。
Falcon Sensor インストール
インストーラファイルのダウンロードやCID+CheckSumの設定などはドキュメントをご確認ください。
ここでは、RHEL上にインストーラファイルが配置されている想定でインストールを済ませてしまいます。
[user@rhel94-demo ~]$ sudo dnf install falcon-sensor-7.19.0-17219.el9.x86_64.rpm [sudo] user のパスワード: 依存関係が解決しました。 ==================================================================================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ==================================================================================================================================================================================== インストール: falcon-sensor x86_64 7.19.0-17219.el9 @commandline 61 M トランザクションの概要 ==================================================================================================================================================================================== インストール 1 パッケージ 合計サイズ: 61 M インストール後のサイズ: 78 M これでよろしいですか? [y/N]: y パッケージのダウンロード: トランザクションを確認しています トランザクションの確認に成功しました。 トランザクションをテストしています トランザクションのテストに成功しました。 トランザクションを実行しています 準備中 : 1/1 scriptletの実行中: falcon-sensor-7.19.0-17219.el9.x86_64 1/1 インストール中 : falcon-sensor-7.19.0-17219.el9.x86_64 1/1 scriptletの実行中: falcon-sensor-7.19.0-17219.el9.x86_64 1/1 Created symlink /etc/systemd/system/multi-user.target.wants/falcon-sensor.service → /usr/lib/systemd/system/falcon-sensor.service. 検証中 : falcon-sensor-7.19.0-17219.el9.x86_64 1/1 インストール済みの製品が更新されています。 インストール済み: falcon-sensor-7.19.0-17219.el9.x86_64 完了しました! [user@rhel94-demo ~]$ sudo /opt/CrowdStrike/falconctl -s --cid=1234567890123456789-01 [user@rhel94-demo ~]$ sudo systemctl start falcon-sensor [user@rhel94-demo ~]$ sudo systemctl status falcon-sensor ● falcon-sensor.service - CrowdStrike Falcon Sensor Loaded: loaded (/usr/lib/systemd/system/falcon-sensor.service; enabled; preset: disabled) Active: active (running) since Mon 2025-02-10 15:11:34 JST; 7s ago Process: 2699 ExecStartPre=/opt/CrowdStrike/falconctl -g --cid (code=exited, status=0/SUCCESS) Process: 2700 ExecStart=/opt/CrowdStrike/falcond (code=exited, status=0/SUCCESS) Main PID: 2701 (falcond) Tasks: 29 (limit: 100308) Memory: 19.9M CPU: 177ms CGroup: /system.slice/falcon-sensor.service tq2701 /opt/CrowdStrike/falcond mq2702 falcon-sensor 2月 10 15:11:35 rhel94-demo falcon-sensor[2702]: CrowdStrike(4): ValidateCertificate: Certificate verified! 2月 10 15:11:35 rhel94-demo falcon-sensor[2702]: CrowdStrike(4): SSLSocket connected successfully to ts01-gyr-maverick.cloudsink.net:443 2月 10 15:11:35 rhel94-demo falcon-sensor[2702]: CrowdStrike(4): sock/ssl/proxy cnctd ok. First send to cloud. 2月 10 15:11:35 rhel94-demo falcon-sensor[2702]: CrowdStrike(4): CLOUDPROTO_ESTABLISHED. AgentId has changed. 2月 10 15:11:35 rhel94-demo falcon-sensor[2702]: CrowdStrike(4): ConnectToCloud successful. 2月 10 15:11:35 rhel94-demo falcon-sensor[2702]: CrowdStrike(4): SslConnect: lfodown01-gyr-maverick.cloudsink.net:443 2月 10 15:11:35 rhel94-demo falcon-sensor[2702]: CrowdStrike(4): SslConnect: Unable to connect to lfodown01-gyr-maverick.cloudsink.net:443 via Application Proxy: c0000225 2月 10 15:11:35 rhel94-demo falcon-sensor[2702]: CrowdStrike(4): trying to connect to lfodown01-gyr-maverick.cloudsink.net:443 2月 10 15:11:36 rhel94-demo falcon-sensor[2702]: CrowdStrike(4): Connected directly to lfodown01-gyr-maverick.cloudsink.net:443 2月 10 15:11:36 rhel94-demo falcon-sensor[2702]: CrowdStrike(4): SSLSocket connected successfully to lfodown01-gyr-maverick.cloudsink.net:443
センサーのステータス確認
SecureBootの有効・無効にかかわらず、Falcon Sensorが正常に動作していない状態の場合、RFMモードという状態になります。
これは、Falcon コンソールのホストの一覧で対象ホストを選択していただくと確認できます。
ここでは"なぜRFMモードになっているか"を確認できません。
確認用のコマンドが存在しますのでRHELのコンソール上で実行します。
- sudo /opt/CrowdStrike/falconctl -g --rfm-state
- sudo /opt/CrowdStrike/falconctl -g --rfm-reason
- sudo /opt/CrowdStrike/falconctl -g --rfm-history
[user@rhel94-demo ~]$ sudo /opt/CrowdStrike/falconctl -g --rfm-state rfm-state=true. [user@rhel94-demo ~]$ sudo /opt/CrowdStrike/falconctl -g --rfm-reason rfm-reason=Modules file invalid signature, code=0xC000A000. [user@rhel94-demo ~]$ sudo /opt/CrowdStrike/falconctl -g --rfm-history rfm-history={[0 (newest)] kernel backend, in RFM, rfm-reason=Modules file invalid signature, code=0xC000A000; [1] kernel backend, in RFM, rfm-reason=Modules file invalid signature, code=0xC000A000; [2] kernel backend, in RFM, rfm-reason=Modules file invalid signature, code=0xC000A000}.
Modules file invalid signature という理由が表示される且つSecureBootが有効な環境の場合、CrowdStrikeの公開署名鍵をインポートします。
RFMの理由である Modules file invalid signature, code=0xC000A000. でサポートナレッジを検索しても情報がでてきません。
SecureBootの状態と合わせて次のステップに進んでください。
SecureBootが無効であってもこのメッセージが表示される場合はサポートまでご連絡ください。
CrowdStrikeの公開署名鍵をインポート
ファイルのダウンロード
Falconコンソールから Falcon Linux Sensor code signing certificate (DER), 2022 ファイルをダウンロードし、RHEL上にコピーします。
ファイルはコンソールの[サポートおよびリソース]-[ツールのダウンロード]からダウンロードできます。
ファイルのインポート
sudo mokutil --import Falcon_Linux_Sensor_code_signing_certificate_DER_2022.cer
を実行してファイルをインポートします。インポートする際に登録用のパスワードを設定します。
[user@rhel94-demo signature]$ ls -la 合計 8 drwxr-xr-x. 2 user user 71 2月 10 15:35 . drwx------. 15 user user 4096 2月 10 15:35 .. -rw-r--r--. 1 user user 1620 1月 24 15:00 Falcon_Linux_Sensor_code_signing_certificate_DER_2022.cer [user@rhel94-demo signature]$ sudo mokutil --import Falcon_Linux_Sensor_code_signing_certificate_DER_2022.cer input password: input password again:
登録
インポート後、OSを再起動します。
再起動後のvSphereのコンソール画面に Shim UEFI key management 画面が表示されるので Enter を入力します。
10秒操作をしないとOSが起動してしまいます。
Enroll MOK を選択し Enter を入力します。
View key 0を選択し Enter を入力します。
CrowdStrikeのCode Signingが表示されることを確認しEnter を入力します。
前の画面に戻ります。Continueを選択し Enter を入力します。
Yesを選択し Enter を入力します。
インポート時に指定したパスワードを入力し Enter を入力します。
Rebootを選択し Enter を入力します。OSが起動します。
ステータス確認
RFMモードが終了し、通常のセンサーとして動作しているか確認します。
Falconコンソールでホストの状態を確認します。RFMがNoとなっていればOKです。
RHELのコンソール上でもステータスを確認しておきましょう。
- sudo /opt/CrowdStrike/falconctl -g --rfm-state
- sudo /opt/CrowdStrike/falconctl -g --rfm-reason
- sudo /opt/CrowdStrike/falconctl -g --rfm-history
[user@rhel94-demo ~]$ sudo /opt/CrowdStrike/falconctl -g --rfm-state rfm-state=false. [user@rhel94-demo ~]$ sudo /opt/CrowdStrike/falconctl -g --rfm-reason rfm-reason=None, code=0x0. [user@rhel94-demo ~]$ sudo /opt/CrowdStrike/falconctl -g --rfm-history rfm-history={[0 (newest)] kernel backend, not in RFM, rfm-reason=None, code=0x0; [1] kernel backend, not in RFM, rfm-reason=None, code=0x0}.
以上です。
状況が確認できていれば大きな作業ではありませんが、RFMの理由から必要な作業が見つけづらかったり、OSの再起動が必要になるという点がありますので、もしこれからインストールされる場合は事前に手順をご確認いただくことをお勧めします。