コンテンツまでスキップ

【CrowdStrike】Falcon Container センサーのインストールについて

はじめに

こんにちは、 ネクストモード株式会社 の sobar です。

今回はAWS EKS 環境に対して、CrowdStrike のコンテナセキュリティ製品である Falcon Container Sensor for Linux をインストールする手順をご紹介します。公式のインストールスクリプトを使用し、手元の端末経由で AWS ECR へイメージをプッシュしてから EKS へ展開するといった流れとなります。

Falcon Container Sensor for Linux とは


Falcon Container sensor for Linux は、Kubernetes環境のカーネルへのアクセス権がなくカーネルベースの Falcon sensor for Linux を導入できない Kubernetes クラスター内のコンテナワークロードのランタイムセキュリティを提供します。Falcon Container センサーは、ワーカーノード OS のカーネルで実行されるコードはなく、ユーザースペースで実行されます。 

Cloud Workload Protection (CWP) 、Falcon Managed Containers (FMC)のどちらかのサブスクリプションが必要となります。※詳細につきましては弊社までお問い合わせください。

検証環境


  • 作業OS:ubuntu (WSL2)

  • Cluster:Amazon EKS on EC2(ap-northeast-1)

  • ToolDocker, AWS CLI, kubectl, eksctl, jq
    ※現在はHelmが推奨されるケースも多いようですが、今回は手動制御が可能なDocker Run方式をご紹介する

事前準備


1. API クライアントの作成

CrowdStrikeテナントで作業を行います。サポートおよびリソース > APIクライアントおよびキー へ移動。

about_installing_the_falcon_container_sensor_01

新しい API クライアントを追加」から、以下のスコープを選択して作成。

  • Falcon Images Download:読み取り
  • Sensor Download読み取り

about_installing_the_falcon_container_sensor_02

about_installing_the_falcon_container_sensor_03

クライアントIDとシークレットを控えます。

about_installing_the_falcon_container_sensor_04

2. CID (カスタマー ID) の取得

ホストのセットアップおよび管理 > センサーダウンロード へ移動。

カスタマーID」をコピーして控えます。

about_installing_the_falcon_container_sensor_05

3. 環境構築と変数設定


作業端末(WSL2)で環境変数を設定し、EKS クラスターを構築します。

変数の設定

# CrowdStrike API情報
export FALCON_CLIENT_ID="<取得したClient ID>"
export FALCON_CLIENT_SECRET="<取得したClient Secret>"
export CID="<取得したCID (Checksum付き)>"

# AWS情報
export AWS_REGION="ap-northeast-1"
export CLUSTER_NAME="sobar-test-cluster"

about_installing_the_falcon_container_sensor_29
EKS クラスターの作成

eksctl create cluster --name $CLUSTER_NAME --region $AWS_REGION --nodes 2

about_installing_the_falcon_container_sensor_30
about_installing_the_falcon_container_sensor_31

(完了まで15~20分程度かかります)

4. センサーイメージの取得と ECR へのプッシュ


CrowdStrike のレジストリからイメージをダウンロードし、自身の AWS ECR へアップロードします。 ※公式スクリプト falcon-container-sensor-pull.sh を使用します。

4-1. スクリプトの準備とイメージのプル
マルチアーキテクチャ対応のため、明示的にプラットフォーム (x86_64) を指定します。

# スクリプトのダウンロードと権限付与
sudo curl -L -o sensor-pull.sh https://github.com/CrowdStrike/falcon-scripts/releases/latest/download/falcon-con
chmod +x sensor-pull.sh

about_installing_the_falcon_container_sensor_20

# 現在利用可能な正しいバージョン番号を確認
sudo ./sensor-pull.sh -u "$FALCON_CLIENT_ID" -s "$FALCON_CLIENT_SECRET" -t falcon-container --list-tags

about_installing_the_falcon_container_sensor_22

# バージョンを指定してダウンロード (例: 7.33.0-7205)
# ※ sudo は Docker 実行権限に応じて必要
sudo ./sensor-pull.sh -u "$FALCON_CLIENT_ID" -s "$FALCON_CLIENT_SECRET" -t falcon-container -v 7.33.0-7205 -p x86_64

about_installing_the_falcon_container_sensor_21

4-2. ECR リポジトリの作成とプッシュ

# ECR リポジトリの作成
aws ecr create-repository --repository-name falcon-sensor/falcon-container --region $AWS_REGION

about_installing_the_falcon_container_sensor_15

# リポジトリ URI の取得
export MY_REGISTRY=$(aws ecr describe-repositories --repository-name falcon-sensor/falcon-container --region $AWS_REGION --query "repositories[0].repositoryUri" --output text)

about_installing_the_falcon_container_sensor_23

(※echo "Target Registry: $MY_REGISTRY"で取得・設定を確認)

# ダウンロードしたイメージ名を変数にセット
# ※ docker images | grep falcon で表示された正確なタグを確認
export LATESTSENSOR="registry.crowdstrike.com/falcon-container/us-2/release/falcon-sensor:7.32.0-7103.container.Release.US-2"

about_installing_the_falcon_container_sensor_24

# タグ付けとプッシュ
sudo docker tag "$LATESTSENSOR" "$MY_REGISTRY":latest
aws ecr get-login-password --region $AWS_REGION | sudo docker login --username AWS --password-stdin "$MY_REGISTRY"
sudo docker push "$MY_REGISTRY":latest

about_installing_the_falcon_container_sensor_25

5. センサーのインストール (EKS へのデプロイ)


docker run コマンドを使用してインストール用マニフェスト (YAML) を生成し、そのまま kubectl で適用します。

# EKS 用のプル・トークン生成
ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
IMAGE_PULL_TOKEN=$(echo "{\"auths\":{\"${ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com\":{\"auth\":\"$(echo AWS:$(aws ecr get-login-password --region $AWS_REGION)|base64 -w 0)\"}}}" | base64 -w 0)

about_installing_the_falcon_container_sensor_27

# 保護対象の Namespace 指定
export NAMESPACES="default"
# (※NAMESPACES 変数を設定しない場合はルシークレットがデフォルトの名前空間にしか作成されない模様)

about_installing_the_falcon_container_sensor_28

# インストーラーの実行 (YAML生成 -> 適用)
sudo docker run --rm "$MY_REGISTRY":latest \
  -cid "$CID" \
  -image "$MY_REGISTRY":latest \
  -pulltoken "$IMAGE_PULL_TOKEN" \
  -namespaces "$NAMESPACES" \
  | tee falcon-container.yaml | kubectl create -f -

about_installing_the_falcon_container_sensor_32
6. 動作確認


インストール状況の確認

# Falcon の Injector ポッドが起動確認
kubectl get pod -n falcon-system

about_installing_the_falcon_container_sensor_33
STATUS が Running(&READY1/1) であれば正常です。

センサー注入のテスト

テスト用のアプリケーション (Nginx) をデプロイし、センサーが自動注入されるか確認します。

# Pod 作成
kubectl create deployment nginx-deploy --image=nginx --replicas=1 -n default

about_installing_the_falcon_container_sensor_34

# 数秒待ってから詳細を確認
kubectl describe pod nginx-deploy -n default | grep falcon

about_installing_the_falcon_container_sensor_35

参考


さいごに


今回はFalcon Container センサーのインストールについてご紹介いたしました。※インストールに使用したコマンドはあくまでも参考までとして見ていただければと思います。

この記事が、皆様のセキュリティ対策や、CloudSecurity の運用の一助となれば幸いです。

CrowdStrike についてのお問い合わせ

ネクストモードでは、Netskopeをはじめ、OktaやNetskopeを活用したSaaS・生成AIの包括的なセキュリティ対策をご支援しています。ご興味のある方は、ぜひお気軽にご相談ください!