APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【CrowdStrike】Falcon Foundry徹底解説 その2

自己紹介

こんにちは、エーピーコミュニケーションズiTOC事業部 BzD部 0-WANの田中と申します。
弊社でEDR製品を導入いただいたお客様のインシデント調査を主に担当しております。
その傍らプログラマーとしての経験と知識を生かしてセキュリティに関するウェブアプリケーションを設計構築するなどSOCチームのメンバーとして日々サイバーセキュリティと共に在るエンジニアです。

2025年は12回に渡ってCrowdStrikeの利用者視点で役に立つ情報をお伝えしています。

掲載月 トピック
1 2025/1 【CrowdStrike】FalconConsole徹底解説 その1
2 2025/2 【CrowdStrike】FalconConsole徹底解説 その2
3 2025/3 【CrowdStrike】FalconConsole徹底解説 その3
4 2025/4 【CrowdStrike】クエリー徹底解説 その1
5 2025/5 【CrowdStrike】クエリー徹底解説 その2
6 2025/6 【CrowdStrike】クエリー徹底解説 その3
7 2025/7 【CrowdStrike】API徹底解説 その1
8 2025/8 【CrowdStrike】API徹底解説 その2
9 2025/9 【CrowdStrike】API徹底解説 その3
10 2025/10 【CrowdStrike】Falcon Foundry徹底解説 その1
11 2025/11 【CrowdStrike】Falcon Foundry徹底解説 その2
12 2025/12 【CrowdStrike】Falcon Foundry徹底解説 その3

今回は、『Foundryクイックスタート』に沿って、CrowdStrike Falcon Foundryでアプリケーションを作成する手順を解説します。 www.crowdstrike.com falcon.us-2.crowdstrike.com

Foundryクイックスタート

以下のリンクから「Foundry クイックスタート」をはじめます。

Foundry クイックスタートへ

以下の指示に従って基本的な「Hello World」アプリを作成します。(Falconドキュメントより引用)

Foundry CLIで基本的な「Hello World」アプリを作成する方法を説明します。

基本的なアプリ作成プロセスをいくつかのステップに分けています。

 

ステップ1:Foundryコマンドラインインターフェースをインストールする

ステップ2:CLIプロファイルを作成する

ステップ3:アプリを作成する

ステップ4:UI拡張機能を作成する

ステップ5:アプリをローカルで実行する

ステップ6:アプリをデプロイする

ステップ7:アプリをテストする

ステップ8:アプリをリリースする

ステップ9:アプリをユーザーにインストールする

ステップ1:Foundryコマンドラインインターフェースをインストールする

Foundryではグラフィカルユーザーインターフェース(GUI)(アプリビルダーUI)とコマンドラインインターフェース(CLI)のどちらからでもアプリを作成することができます。

特定のアプリの機能を追加するのにCLIを使用する必要があるので、このクイックスタートではCLIを使ったFoundryアプリの作成を学びます。

CLIのインストールは、パッケージマネージャーを使用するか、 アーカイブファイルをダウンロードして解凍するのいづれかの方法で行います。 今回は作業を容易に行うためにパッケージマネージャー(scoop)を使用してWindowsにインストールします。

https://scoop.sh/からscoopをインストールします。

# 実行ポリシーの変更
PS C:\temp> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): Y

# scoopのインストール
PS C:\temp> Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
Initializing...
Downloading...
Creating shim...
Adding ~\scoop\shims to your path.
Scoop was installed successfully!
Type 'scoop help' for instructions.

# Scoop本体に対して「どこからアプリの定義ファイルを探せばよいか」という参照先(リポジトリ)を追加
PS C:\temp> scoop bucket add foundry https://github.com/crowdstrike/scoop-foundry-cli.git
Checking repo... OK
The foundry bucket was added successfully.

# Foundry CLIのインストール
PS C:\temp> scoop install foundry
Installing 'foundry' (1.1.0) [64bit] from 'foundry' bucket
foundry_Windows_x86_64.zip (6.7 MB) [=========================================================================] 100%
Checking hash of foundry_Windows_x86_64.zip ... ok.
Extracting foundry_Windows_x86_64.zip ... done.
Linking ~\scoop\apps\foundry\current => ~\scoop\apps\foundry\1.1.0
Creating shim for 'foundry'.
'foundry' (1.1.0) was installed successfully!

# 確認
PS C:\temp> foundry version
foundry 1.1.0 (git: 14f7cb8cc4491c758ed1b893f2cf897e395111fb) build_date: 2024-10-10T20:30:04Z

# 【参考】アップデートの確認
PS C:\temp> scoop update foundry
(もしあれば)
...
Scoop was updated successfully!
foundry: 1.1.0 -> 1.4.5
Updating one outdated app:
Updating 'foundry' (1.1.0 -> 1.4.5)
Downloading new version
foundry_Windows_x86_64.zip (7.8 MB) [=========================================================================] 100%
Checking hash of foundry_Windows_x86_64.zip ... ok.
Uninstalling 'foundry' (1.1.0)
Removing shim 'foundry.shim'.
Removing shim 'foundry.exe'.
Unlinking ~\scoop\apps\foundry\current
Installing 'foundry' (1.4.5) [64bit] from 'foundry' bucket
Loading foundry_Windows_x86_64.zip from cache
Extracting foundry_Windows_x86_64.zip ... done.
Linking ~\scoop\apps\foundry\current => ~\scoop\apps\foundry\1.4.5
Creating shim for 'foundry'.
'foundry' (1.4.5) was installed successfully!

# 再度バージョンの確認
PS C:\temp> foundry version
foundry 1.4.5 (git: 15c2691154582a1996c867144bac23014e3731c3) build_date: 2025-08-27T15:59:50Z

# 【参考】Foundry CLIでできること
PS C:\temp>  foundry --help
CrowdStrike Falcon App Development Tool [foundry]: Your one stop shop for building apps

 See docs at https://falcon.crowdstrike.com

Usage:
  foundry [command]

Resource Management Commands
  api-integrations Manage api integrations
  apps             Manage apps
  auth             Manage authorization aspects of your app
  collections      Manage collections
  functions        Manage functions
  rtr-scripts      Manage rtr-scripts
  saved-searches   Manage saved-searches and query data
  ui               Manage ui capabilities of your app
  workflows        Manage workflows

Configuration Commands
  login            gets the client id and client secret and saves to configuration
  profile          Manage profile

Testing Oriented Commands
  mocks            Mock management

Additional Commands:
  completion       Generates shell completions
  help             Help about any command
  version          Print the foundry version

Flags:
  -h, --help      help for foundry
      --verbose   verbose output

Use "foundry [command] --help" for more information about a command.

ステップ2:CLIプロファイルを作成する

Foundry CLIの利用には、APIアクセス権限を定義した「プロファイル」の作成が必要です。 コマンド実行後にブラウザ認証を行うことで生成され、認証情報は設定ファイルや環境変数で管理されます。

以下のコマンドを実行すると認証設定画面がブラウザで開きます。

PS C:\temp> foundry login
Starting a local server at http://localhost:*****. Enter Ctrl-C to shutdown
Please complete login flow from browser opened at https://falcon.crowdstrike.com/login/?unilogin=true&next=/foundry/authorize-cli
✅  CLI authorized - profile "*****" credentials saved to C:\Users\*****\.config\foundry\configuration.yml.
https://falcon.us-2.crowdstrike.com/foundry/authorize-cli

認証設定画面

エラーになる場合は名前を変更して保存

成功した場合

APIクライアント管理画面
https://falcon.us-2.crowdstrike.com/api-clients-and-keys/clients

コマンドで一覧を確認します。

PS C:\temp> foundry profile list

Active Profile: Tanaka_HelloWorld
Profiles:
        Name: ProfileA
        CID: *****
        Cloud Region: undefined
        API Client ID: *****

        Name: ProfileB
        CID: *****
        Cloud Region: us-2
        API Client ID: *****

        Name: Tanaka_HelloWorld
        CID: *****
        Cloud Region: us-2
        API Client ID: *****

# プロファイルの切り替え
PS C:\temp> foundry profile activate

Active Profile: Tanaka_HelloWorld

? Choose profile c  [Use arrows to move, type to filter]
> ProfileA
  ProfileB

ステップ3:アプリを作成する

Foundry CLIは、対話型および非対話型(引数指定)モードをサポートしています。

非対話型モードでは、すべての引数を指定して実行するため、対話プロセスを経ずに処理を完了できます。 詳細な仕様については、Foundry CLIリファレンスをご確認ください。

対話型モードは、引数なしでコマンドを実行し、対話形式で処理を進めるモードです。 CLIの挙動を学ぶのに最適なため、今回はこちらを使用します。

PS C:\temp> foundry apps create

Let's get started! To create an app we need some basic information first.

? Do you want to use app templates ? No
? Name:  my-first-app

? Name:  my-first-app
? Description:  My first Foundry app

? Description:  My first Foundry app
? Logo:

? Logo:
? Vendor:  Tanaka

? Vendor:  Tanaka
? Vendor Product:  Tanaka HelloWorld

? Vendor Product:  Tanaka HelloWorld
? Add another? No
? Use Case:  [Use arrows to move, type to filter]
  Cloud security
  Email security
  Data security
> Endpoint security
  Identity & Access
  Exposure management
  Asset management

? Use Case: Endpoint security
App created at - C:\temp\my-first-app

PS C:\temp> ls .\my-first-app\
    ディレクトリ: C:\temp\my-first-app
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2025/12/01     15:56            612 manifest.yml

新しいアプリのディレクトリには、単一のファイルmanifest.ymlのみが含まれています。このマニフェストは、アプリのメタデータとアプリが提供する機能を定義します。 詳細な仕様については、アプリマニフェストリファレンスをご確認ください。

Falconコンソール(GUI)で作成されたアプリは、すぐに「Apps(アプリ)」リスト(「Foundry」>「Foundry」>「アプリ管理」)に表示されます。Foundry CLIを使用してアプリを作成する場合、そのアプリはデプロイメント後にリストに表示されます。

ステップ4:UI拡張機能を作成する

Foundryは、スタンドアロンページの作成に加え、UI拡張機能による既存Falconコンソールへのデータ埋め込みをサポートしています。 本手順では、エンドポイント検知の詳細画面に統合されるUI拡張機能を作成します。

Foundryでは、Vanilla JavaScriptとReactのテンプレートが提供されています。 どちらも自由にカスタマイズ可能で、独自のコードに完全に置き換えることもできます。 今回は解説をシンプルにするため、Vanilla JavaScriptテンプレートを使用してUI拡張機能を作成します。

PS C:\temp> cd .\my-first-app\
PS C:\temp\my-first-app> foundry ui extensions create

Let's get started! To create a ui-extension we need some basic information first.

? Which template would you like to start with?  [Use arrows to move, type to filter]
> Vanilla JS
  React

? Which template would you like to start with? Vanilla JS
? Name:  My First Extention

? Name:  My First Extention
? Description:  UI Extention for Endpoint Detections Page

? Description:  UI Extention for Endpoint Detections Page
? Sockets:   [Use arrows to move, space to select, <right> to all, <left> to none, type to filter]
  [ ]  Automated leads details
  [ ]  CrowdScore incident details
> [x]  Endpoint detection details
  [ ]  Host management host details
  [ ]  Next-Gen SIEM incident details
  [ ]  Next-Gen SIEM workbench details
  [ ]  Workflow execution details

# 生成されたファイル構成
PS C:\temp\my-first-app> tree /f /a .
フォルダー パスの一覧
C:\TEMP\MY-FIRST-APP
|   manifest.yml
|
\---ui
    \---extensions
        \---My First Extention
            |   .gitignore
            |   LICENSE
            |   README.md
            |
            \---src
                    app.js
                    index.html

app.jsは以下のように生成されました。

import FalconApi from '@crowdstrike/foundry-js';

const falcon = new FalconApi();

(async () => {
  await falcon.connect();

  // your code goes here
  document.getElementById('app').innerHTML =
    '<h1 class="text-titles-and-attributes">Hello world loaded!</h1>';
})();

index.htmlは以下のように生成されました。

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Hello World</title>

    <script type="importmap">
      {
        "imports": {
          "@crowdstrike/foundry-js": "https://assets.foundry.crowdstrike.com/foundry-js@0.18.0/index.js"
        }
      }
    </script>

    <link
      rel="stylesheet"
      href="https://assets.foundry.crowdstrike.com/tailwind-toucan-base@5.0.0/toucan.css"
    />
  </head>

  <body class="bg-ground-floor">
    <div id="app">
      <h1 class="text-titles-and-attributes">Hello world loading...</h1>
    </div>

    <script src="./app.js" type="module"></script>
  </body>
</html>

ステップ5:アプリをローカルで実行する

ここまでの作業でアプリはローカル環境にのみ存在しています。ただし、開発モードを使用すると、Falconコンソールでローカルの開発サーバーからの出力を確認できます。

PS C:\temp\my-first-app> foundry ui run
Starting a local development server at http://localhost:*****. Enter Ctrl-C to shutdown

Falconコンソールにログインして、ツールバーで「Developer tools(デベロッパーツール)」をクリックし 開発モードを有効にします。

開発モードをオンにする

アプリのUIが配置され、このセクションに正しく表示されていることが確認できます。

UI拡張機能

ステップ6:アプリをデプロイする

開発サイクルを回すため、機能追加ごとのCLIデプロイが推奨されています。 実行するとコードがパッケージ化され、数秒でクラウドへアップロードされます。 この段階ではエンドユーザーには公開されません(管理者・開発者のみ)。 なお、デプロイ結果やエラーはCLIではなく、Falconコンソールでのみ確認できる点にご注意ください。

# foundry ui runで起動していた場合、Ctrl-Cでサーバを停止

# デプロイ
PS C:\temp\my-first-app> foundry apps deploy
➕  Added files:
        ◦ manifest.yml
        ◦ ui\extensions\My First Extention\LICENSE
        ◦ ui\extensions\My First Extention\README.md
        ◦ ui\extensions\My First Extention\src\app.js
        ◦ ui\extensions\My First Extention\src\index.html

? Change Type  [Use arrows to move, type to filter]
> Major
  Minor
  Patch

? Change Type Major
? Change log:  Initial Deployment with UI Extention

? Change log:  Initial Deployment with UI Extention
✅  Deployment v1.0.0-pre-release in progress - see https://falcon.us-2.crowdstrike.com/foundry/app-manager/*****?activeTab=deployments for more details

アプリ管理画面でデプロイを確認

アプリ詳細画面

ステップ7:アプリをテストする

アプリがクラウドへ展開され、管理者と開発者に公開されました。 これによりプレビューモードが利用可能となり、実際の環境でダッシュボードやUI拡張機能を含む、デプロイされたすべてのUIコンポーネントを検証できるようになります。

foundry apps deployコマンドの出力からのリンクをコピーしてブラウザに貼り付けるか、アプリ管理画面からデプロイしたアプリを選択してアプリの詳細画面を表示します。

開発モードからプレビューモードに切り替え、デプロイメントをプレビュー表示します。

プレビューモードに切り替える

デプロイメントをプレビュー

プレビューモードに設定

UI拡張機能が表示

ステップ8:アプリをリリースする

アプリ詳細画面から該当するアプリを選択してリリースを実行します。

リリース

リリースをコミット

リリース済に移行

ステップ9:アプリをユーザーにインストールする

アプリを組織全体(CID)に公開し、全ユーザーがアクセスできるようにします。 なお、Falcon Insight XDRやPreventに含まれる無料枠は「CIDあたり1アプリまで」です。 追加のFoundryアプリをインストールするには、Falcon Foundryサブスクリプション、またはFalcon Next-Gen SIEMサブスクリプションが必要です。詳細については、クラウドストライクの営業担当者にお問い合わせください。

アプリのカタログからインストール

アプリの更新とアンインストールについては、「アプリのカタログ」を参照してください。 アプリの編集と削除については、「アプリの表示と管理」を参照してください。

まとめ

今回は、「Foundryクイックスタート」に沿って、CrowdStrike Falcon Foundryでアプリケーションを作成し、リリースするまでの一連の手順を解説しました。

本記事で実施した主なフローは以下の通りです。

  1. 環境構築: パッケージ管理ツール「Scoop」を利用した、Foundry CLIのセットアップ
  2. プロジェクト作成: テンプレート(Vanilla JS)を使用した、アプリの雛形作成
  3. デプロイと確認: CLIコマンドによるクラウドへのアップロードと、Falconコンソールでの動作確認(プレビュー)

CLIを活用することで、ローカル環境でのコーディングからクラウドへの展開まで、非常にスムーズに連携できることが体感いただけたかと思います。

次回は、今回のようなコードベース(CLI)のアプローチではなく、Falconコンソールのブラウザ画面上で完結する「GUIによるノーコード/ローコード開発」の手順について解説します。

プログラミングに詳しくない方でも直感的に開発できる手法ですので、ぜひ次回もご覧ください。

今後の連載の予定をご参考に興味があるトピックだけでもご覧いただければ幸いです。
少しでもサイバーセキュリティに興味を持っていただけるように楽しくお伝えしますのでお楽しみに。
最後まで読んでいただきありがとうございました。

0-WANについて

私たち0-WANは、ゼロトラスト製品を中心とした、マルチベンダーでのご提案で、お客様の経営課題解決を支援しております。 ゼロトラストってどうやるの?製品を導入したけれど使いこなせていない気がする等々、どんな内容でも支援いたします。 お気軽にご相談ください。

問い合わせ先、0-WANについてはこちら。 www.ap-com.co.jp

一緒に働いて頂ける仲間も募集しています

今までの経験を活かして、私たちと一緒にゼロトラスト分野で活躍しませんか? www.ap-com.co.jp