今回の記事では、クラウドストライクのFalconセンサーのパッケージファイルをAPI経由で簡単に取得する方法をご紹介します。
CrowdStrike Falcon SensorのインストーラーをAPIでダウンロードする方法
スリーシェイク Sreake事業部の堤です。だんだん暖かくなってきましたね。春の訪れを感じる。
クラウドストライク(CrowdStrike)という企業をご存知でしょうか。
クラウドストライクは米国の新興セキュリティベンダーの一つで、かなり注目されている企業。その主力製品であるFalconは、EDR(Endpoint Detection Response)のカテゴリに含まれる製品だが、この分野では世界的なリーダーである。導入している企業数も多いためか、世界中からデータをかき集めることで製品を更に向上させることができる。これはクラウドストライクの強みではないかと思う。(※クラウドストライクの詳細に関しては、本記事では触れません)
ちなみに、クラウドストライクは以下の書籍にも掲載されており、2025年を制覇する企業にノミネートされていたりする。
今回の記事では、クラウドストライクのFalconセンサーのパッケージファイルをAPI経由で簡単に取得する方法をご紹介します。Falconセンサーは、クライアントやサーバーにインストールするエージェントのようなものです。
Falconセンサーのインストール/アップデートの課題
Falconは、Windows、Linux、macOSにインストールすることができます。また、この製品はKubernetesへのPodでのデプロイもサポートされおり、Dockerイメージを作ればOKです。Helmチャートも公開されている。
ただ、Dockerイメージを作成するにあたっては、通常はFalconセンサーのインストーラパッケージ(rpm/deb形式)をFalconコンソールにログインしてからダウンロードする必要がある。もちろんこれは手作業になるため、いわゆる「トイル」に当たる。
しかも、1〜2ヶ月に1度の頻度で最新版のセンサーがリリースされているため、Kubernetesクラスタを大量に持っている組織にとっては辛いはず。。。このような手間がかかると、ソフトウェアを最新に保つことができず、セキュリティ的なリスクも出てくるであろう。
Falcon APIsを使ったセンサーファイルのダウンロード
「FalconのAPIなどを使って自動的にダウンロードできる仕組みがないかなー??」とFalconのドキュメントを読み漁ってみたところ、Falcon APIsのなかに「Sensor Download API」が存在することがわかった。世の中はよくできている。僕が考えて思いつくようなことは、すでにどこかの誰かさんが実現しているw
公式ドキュメントは、残念ながらFalconのコンソールにログインした後でないと読めません・・・しかし、GitHubにGo言語のSDKがあります。
そのなかに、Falcon Sensor Downloadのサンプルコードもあるので、これを試して見たいと思う。
↓サンプルコード
簡単な流れ
- Falconのコンソール画面からAPIsの Client IDとClient Secretを作ります。
- 取得したClient IDとClient Secretを環境変数に投入します。
export FALCON_CLIENT_ID="***********" export FALCON_CLIENT_SECRET="******************************"
最後にサンプルコードをビルドして実行するとこんな感じになります。
% ./crowdstrike-download-client Missing --os-name command-line option. Available OS names are: [Amazon Linux, Debian, RHEL/CentOS/Oracle, SLES, Ubuntu, Windows, macOS] Selected OS Name: Amazon Linux Missing --os-version command-line option. Available version are: [1, 2, 2 - arm64] Selected OS Version: 2 Downloaded Falcon Kernel Sensor for AMI/Amazon to falcon-sensor-6.16.0-11308.amzn2.x86_64.rpm
サンプルコードは対話的にOSやバージョンを入力していく形式になっているが、KubernetsノードのOSやバージョンが限定されている場合は、予め固定に設定しておけばOK。
この仕組を応用すれば、CI/CDで自動的に最新のセンサーバージョンをダウンロードしてDockerイメージのビルドといったことも可能。これでトイルは解消できる!
というわけで、今回の記事は以上。コメント等お気軽にどうぞ!
おまけ
本日、会社のブログで、僕のインタビュー記事がアップされたので、これも合わせて御覧ください。