APC 技術ブログ

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

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

【CrowdStrike】API徹底解説 その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

今回は「CrowdStrike Falcon」の強力な機能の一つであるFalconの「API」をPowerShellで利用する方法をご紹介いたします。

CrowdStrike APIとは

API (Application Programming Interface) とは、異なるソフトウェアやシステム間で機能を共有するための仕組みのことです。簡単に言うと、APIは「窓口」のようなもので、他のプログラムが提供する機能を利用するためのルールや手順を定めています。これにより、開発者は既存の機能を活用して効率的に開発を進めることができます。 CrowdStrike APIとはプログラム的にアクションを実行することができるプログラミングインターフェースで多くのエンドポイントが提供されています。 これらのAPIを利用するために複数言語のSDKが提供されていることも大きな特徴です。 Falcon SDKは、お好みの言語を使ってすべてのCrowdStrike APIエンドポイントと対話形式で操作するためのオープンソースのソリューションを提供しますfalcon.us-2.crowdstrike.com

SDKとは

SDK(Software Development Kit)とはソフトウェア開発キットの略で、アプリケーション開発に必要なツールやライブラリ、ドキュメントなどをまとめたものです。開発者はSDKを利用することで、ゼロから開発するよりも効率的に、そして短期間でアプリケーションを開発できます。Falconプラットフォーム利用者は最適な開発環境を利用して柔軟にAPIを組み込むことができます。

今回はWindows環境で手軽に利用できるPowerShellモジュール「PSFalcon」を使って、CrowdStrike APIを活用する方法をご紹介します。

PSFalconとは

PSFalconは、CrowdStrike FalconユーザーがAPIやPowerShellに関する高度な知識を必要とせずにCrowdStrike Falcon OAuth2 APIを操作できるようにするPowerShellモジュールです。PSFalconを使用すると、タスクを自動化し、Falcon UI外でアクションを実行できます。例えば、次のようなスクリプトを作成できます。

  • 多数の検出、インシデント、ポリシー、ルールを変更する
  • リアルタイムレスポンスを活用して、複数のデバイスで同時にアクションを実行します
  • マルウェアサンプルまたはリアルタイムレスポンスファイルをアップロードまたはダウンロードする
  • MSSP 親環境と子環境の構成を作成/変更する github.com

インストール手順の詳細は、下記ドキュメントをご参照ください。(英語なので適宜ブラウザの翻訳機能をご利用ください。) github.com

PowerShellギャラリーを使用すると簡単にインストールできるのでおすすめです。

# 実行ポリシーを確認する(オプション)
PS C:\temp> Get-ExecutionPolicy
RemoteSigned

# 実行ポリシーがRestrictedに設定されている場合RemoteSignedに設定する(オプション)
PS C:\temp> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

#PowerShellギャラリーからInstall-Moduleコマンドを使用してユーザーアカウントでモジュールをダウンロードしてインストール
PS C:\temp> Install-Module -Name PSFalcon -Scope CurrentUser

# インストール確認
PS C:\temp> Get-Command -Module PSFalcon

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           Edit-FalconHorizonAwsAccount                       2.2.7      PSFalcon
Alias           Edit-FalconHorizonAzureAccount                     2.2.7      PSFalcon
Alias           Edit-FalconHorizonPolicy                           2.2.7      PSFalcon
Alias           Edit-FalconHorizonSchedule                         2.2.7      PSFalcon
...

複数のモジュールがシステムにある場合は以下のコマンドで確認できます。必要に応じて最新版にアップデートしてください。

# システムに存在するPSFalconの全てのバージョンを表示
PS C:\temp> Find-Module PSFalcon -AllVersions  | Select-Object -First 5

Version    Name                                Repository           Description
-------    ----                                ----------           -----------
2.2.8      PSFalcon                            PSGallery            PowerShell for the CrowdStrike Falcon OAuth2 APIs
2.2.7      PSFalcon                            PSGallery            PowerShell for the CrowdStrike Falcon OAuth2 APIs

# (強制的に)モジュールをアップデート
PS C:\temp> Update-Module -Name PSFalcon -Force

# すべてのバージョンを削除する場合
PS C:\temp> Uninstall-Module -Name PSFalcon -AllVersions

CrowdStrikeのAPIキーを取得する

メニューの「サポートおよびリソース | APIクライアントおよびキー」からAPIクライアント作成画面に行って右上の「APIクライアントの作成」ボタンをクリックします。

CrowdStrikeのAPIキーを取得

APIクライアントの作成

必要事項を入力してクライアントを作成します。

クライアント作成

必ずClientIdとClientSecretをコピーして安全な場所に保管してください。

ClientIdとClientSecretをコピー

PSFalconをターミナルから呼び出す

手始めにアラートを取得します。 コマンドの使い方は以下を参照ください。 github.com

# 全アラートを取得する(composite_idの一覧)
PS C:\temp> Get-FalconAlert
ClientId: <ご自身のClientIdを入力>
ClientSecret: <ご自身のClientSecretを入力>
12345678ASD:thirdparty:12345678ASD:*********123
12345678ASD:thirdparty:12345678ASD:*********456
12345678ASD:thirdparty:12345678ASD:*********789
...
# ユーザ名を指定して1件アラート抽出
PS C:\temp> Get-FalconAlert -Filter "source_vendors:'CrowdStrike'+user_name:'<ユーザ名>'" -Detailed -limit 1
agent_id                        : ************************
aggregate_id                    : ********************
alleged_filetype                : exe
cid                             : ***********************
cloud_indicator                 : false
cmdline                         : "C:\Program Files\7-Zip\7zG.exe" x -o"C:\***********\Downloads\" -an -ai#7zMap*************
composite_id                    : ********:ind:********:********-****-********
...
# composite_idを指定して特定のアラート抽出
PS C:\temp> Get-FalconAlert -id <composite_idを指定>
agent_id                        : ************************
aggregate_id                    : ********************
alleged_filetype                : exe
cid                             : ***********************
cloud_indicator                 : false
cmdline                         : "C:\Program Files\7-Zip\7zG.exe" x -o"C:\***********\Downloads\" -an -ai#7zMap*************
composite_id                    : ********:ind:********:********-****-********
...
# source_vendors:'CrowdStrike & agent_idを指定、timestampの降順(新しい順)でソートしてアラートを抽出
PS C:\temp> Get-FalconAlert -Filter "source_vendors:'CrowdStrike'+agent_id:'<agentid(またはdeviceid)を指定>'" -Sort timestamp.dsc
12345678ASD:ind:ZXCV0987654:*****-4784-3328016
12345678ASD:ind:12345678ASD:xdr|inc-ZXCV0987654-*****
12345678ASD:ind:ZXCV0987654:*****-118-5518864
12345678ASD:ind:ZXCV0987654:*****-10479-3758352
12345678ASD:ind:ZXCV0987654:*****-4784-4743696
12345678ASD:ind:ZXCV0987654:*****-4748-5414672
...

# 上で抽出したアラートの1件目の詳細を表示する
PS C:\temp> Get-FalconAlert -Filter "source_vendors:'CrowdStrike'+agent_id:'<agentid(またはdeviceid)を指定>'"-Sort timestamp.dsc -limit 1 -detailed
agent_id                        : *************
aggregate_id                    : aggind:*************:****************
alleged_filetype                : exe
cid                             : *************
cloud_indicator                 : false
cmdline                         : "C:\Program Files\7-Zip\7zG.exe" x -o"C:\****\Downloads\" -an -ai#7zMap1248:210:7zEvent993
composite_id                    : ******************:ind:*************:*************-**************
confidence                      : 50
context_timestamp               : 2025-08-28T04:05:25Z
control_graph_id                : ctg:*************:**************
crawled_timestamp               : 2025-08-28T05:02:59.295135544Z
created_timestamp               : 2025-08-28T04:03:59.335104928Z
data_domains                    : {Endpoint}
description                     : An Office file with a macro written to the file system meets the File Analysis ML algorithm's medium-confidence threshold for malware.
device                          : ****************************************
display_name                    : CloudDetect-OnWriteMacroKestrelXMLMedium
email_sent                      : True
falcon_host_link                : https://falcon.us-2.crowdstrike.com/activity-v2/detections/********:ind:*************:*******-******-******?_cid=************
filename                        : 7zG.exe
filepath                        : \Device\HarddiskVolume3\Program Files\7-Zip\7zG.exe
...

続いてホスト情報を取得してみましょう。 コマンドの使い方は以下を参照ください。 github.com

PS C:\temp> Get-FalconHost -Id <agentid(またはdeviceid)を指定>
device_id                     : *************
cid                           : *************
agent_load_flags              : *****
agent_local_time              : 2025-08-29T09:39:16.962Z
agent_version                 : *****
bios_manufacturer             : *****
bios_version                  : *****
build_number                  : *****
config_id_base                : *****
config_id_build               : *****
config_id_platform            : *****
cpu_signature                 : *****
cpu_vendor                    : *****
external_ip                   : *****
mac_address                   : *****
hostname                      : *****
...

いかがでしたでしょうか。

本記事でご紹介した内容は、PSFalconが持つ機能のほんの一部です。

例えば、-Filterオプションを用いて日付を指定してアラートを絞り込んだり(例:Get-FalconAlert -Filter "timestamp:>'2025-08-01T00:00:00Z'+timestamp:<'2025-08-31T23:59:59Z'" -Detailed)取得した結果をPowerShellのSelect-Objectコマンドに渡して表示形式を整形したり(例:Get-FalconAlert -Id "<取得したcomposite_idを指定>" | Select timestamp, name, description)と、柔軟なデータ取得が可能です。

このように、PSFalconが提供する豊富なコマンドとPowerShellの強力な機能を組み合わせることで、必要な情報をコマンドラインから迅速に取得できる点こそ、このSDK最大の魅力と言えるでしょう。

まとめ

今回は、PowerShellモジュール「PSFalcon」を利用して、Windows環境から手軽にCrowdStrike APIを操作する方法をご紹介しました。

PSFalconを使えば、これまでGUIで一つ一つ確認していたデバイス情報の検索や、特定のインシデントに関する情報収集などをスクリプト化し、大幅に効率化できます。まずは簡単な情報取得から始め、将来的にはインシデント発生時の初動対応(調査、隔離など)を自動化するスクリプトを作成するなど、ぜひPSFalconを日々のセキュリティ運用に積極的に取り入れてみてください。

こちらではサンプルコードも提供されています。 github.com

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

0-WANについて

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

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

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

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