こんにちは。今日はCrowdStrike FalconをAPIで操作するための最初のステップについて紹介したいと思います。
Falcon を APIで操作する方法
FalconをAPIで操作するには下記の方法があります。
- Falcon SDKを利用
- cURL等のツールを利用
- Falcon で提供しているSwaggerを利用
今回は Falcon で提供しているSwaggerを利用 してFalcon のAPIに接続できることを確認してみます。
事前準備
APIにアクセスするために APIクライアント/キー が必要になります。APIクライアント/キーはFalconコンソールから作成が可能です。
Falconコンソールの [サポートおよびリソース]-[APIクライアントおよびキー]を開きます。 US-2テナントをご利用の方は下記URLよりアクセスが可能です。
OAuth2 API クライアント タブを開き、 APIクライアントの作成 を選択します。
APIクライアントの作成 の画面で下記の設定を行い作成します。
- クライアント名: 任意の名前。管理用です。
- スコープ: Sensor Download の読み取り権限
今回のAPI接続テストで利用する権限のみに絞っています。
作成すると APIクライアント/キー が表示されます。
シークレット は一度だけしか表示されないのでコピーして保存します。
ここで作成した APIクライアント/キー を利用してAPIに接続してみます。
Swaggerを利用してAPI接続
Falcon ではユーザーが APIを利用するインターフェースとして Swagger を用意しています。
APIクライアント/キー を利用してトークンを作成し、APIにリクエストを送信作業を Swagger で実施可能です。
詳細は下記URLを参照してください。
https://falcon.us-2.crowdstrike.com/documentation/page/a2a7fc0e/crowdstrike-oauth2-based-apis
Swagger へのアクセス
US-2のSwaggerのURLは下記です。
https://assets.falcon.us-2.crowdstrike.com/support/api/swagger-us2.html
トークンの取得
APIクライアント/キーを利用してトークンを取得します。
Swaggerの画面右にある Authorize のボタンをクリックします。
Available authorizations の画面が表示されますので、事前に作成した APIクライアント/キーを入力し Authorize をクリックします。- client_id: クライアントIDの値
- client_secret: シークレットの値
下記の画面になっているとトークンが取得できています。
Close で画面を閉じます。
APIへのアクセスと値の取得
APIへアクセスします。
今回設定したAPIクライアント/キーでは、Sensor Download の読み取り権限を付与しています。
この権限でセンサーをインストールする際の CID+Checksum の値を取得できますのでAPI経由で取得してみます。
[GET] /sensors/queries/installers/ccid/v1 を探してクリックします。
大量のAPIがありますので、下記画像のようにブラウザ内の検索をつかって sensor-download を探すと早いです。
Try it out をクリックします。
Execute をクリックします。
実行した結果が表示されます。
Responses の Code の値が 200 であることを確認し、Response Body を参照します。
Resources の値が、自身のFalcon環境で利用する CID+Checksum となっているかと思います。
また、Curl部分の値は、curlを利用してこのAPIにアクセスする際の方法です。
authorization: Bearer で指定しているトークンは30分で有効期限が切れてしまいますが、再度トークンを取得することでアクセスが可能となります。
以上です。
最近のSaaSではAPIを利用する機会が(ものすごく)増えているかと思います。
CrowdStrikeでは簡単に試すこともできますしそれ以外の多様な方法でAPIを利用することができます。
ぜひ一度試してみてください。
おまけ
curlコマンドでAPIアクセスする方法を Windows Powershell で試す場合、PowerShellのバージョンによって正常に動作しない場合があります。
これはPowershellのバージョンによっては、curlコマンドを使うと裏で Invoke-WebRequest を呼び出し動作するためオプションの設定方法が異なるためです。
弊社で動作テストした際のPowershellのバージョンは 7.5.0 となります。
失敗
成功