LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

サービス・製品 | 

Prisma Cloud APIを使って運用効率化しよう

こんにちは。クラウドセキュリティ統制支援サービス担当の森山です。

Prisma Cloudは、クラウド上の資源を監視し、設定のセキュリティ状況を一元的に管理できる便利なサービスです。多くのポリシーに基づく設定の監視や機械学習を含めた挙動の監視、そしてその状況を一覧化しグラフィカルに活用できるダッシュボードを備えています。

Prisma Cloud導入後は、これらを活用してクラウド環境のセキュリティ運用を行っていくことになりますが、一方で使えば使うほど運用を効率化したり高度な分析につなげたりしたくなりますよね。せっかくの製品なので徹底的に使ってみませんか。

今回は、そんな方に向けてPrisma Cloud APIの活用に関するお話をお届けします。

Prisma Cloudの運用

クラウド上の資源と設定を監視し、設定のセキュリティ状況を一元的に管理できるPrisma Cloudですが、実際に導入した場合どのような運用になるのでしょうか。Prisma Cloudを導入する目的や組織体制などにより細かい違いはありますが、一例としては以下のような運用が考えられるでしょう。

Prisma Cloudの運用イメージ
Prisma Cloudの運用イメージ

アラートに関する運用

  • アラートの監視:資源の作成や変更などを行った際に出るポリシー違反のアラートを監視する
  • アラートの調査:検知されたアラートの詳細やクラウド上の資源の設定を確認する
  • アラートの対処:設定に問題があれば修正、意図した設定であればアラートの取り下げを行う

改善・強化に関する運用

  • システムに合わせたポリシーのチューニング・新規ポリシーの作成
  • コンプライアンス準拠状況の確認
  • 全体的なセキュリティ状況や傾向の分析

Prisma Cloud運用上の課題

アラートに関する日々の運用は、ポリシーのチューニングなどを行い、過検知を減らすことで大きな負担なく「監視」→「調査」→「対処」のサイクルを回すことができます。改善・強化に関する運用においても、コンプライアンス準拠状況レポートの出力など、Prisma Cloudがデフォルトでサポートしている機能については、ボタンを数回押すことで実行することが可能です。

ただし、Prisma Cloudが持っている機能外のことは手動での作業になってしまい、少なからず手間がかかってしまいます。以下に例を示します。

  • 特定期間に発生したアラート一覧を分類し、傾向を分析する
  • 社内規定や独自のコンプライアンスに従ったポリシー群の一括追加
  • 定期的にPrisma Cloud内のデータをCSVファイルとしてエクスポート

また、Prisma Cloudのダッシュボードでは詳細ボタンをクリックしないと見ることができない情報がいくつかあります。そのため、上の例に示したようなPrisma Cloudが持っている機能外の作業をする際は、多少不便さを感じてしまいます。個人的に不便だと感じたことは、データをCSVとしてダウンロードした際、日付がPrisma Cloud独自の形式で出力されるため、分析のために他のシステムへ読み込ませる前に、フォーマットの修正や場合によっては時差の修正などを行う必要があることでした。

※ アラートの発生日時、資源の最終更新日時、アラートがResolvedになった理由、アラートをDismissした際のコメントなど

Prisma Cloud APIの活用

ここまで紹介したPrisma Cloudのちょっとだけ不便な部分はPrisma CloudのREST APIを使用したツールを開発することで解消が可能です。

Prisma CloudのAPIではコンソール上で利用できる機能はほとんど対応可能です。ユーザの追加、アカウントのオンボーディング、アラートの列挙、ポリシーの追加・修正、RQLを用いた資源の検索などなど。もっと言えば、アラートステータスの変更履歴(いつOpenし、いつResolvedになったかなど)やRQLを用いて資源の検索をした際の詳細な設定情報なども一度に取得することが可能であり、ダッシュボード以上のポテンシャルを秘めています。以下にサンプルコードとサンプルレスポンスを掲載します。

左:サンプルコード、右:サンプルレスポンス
左:サンプルコード、右:サンプルレスポンス

Prisma Cloud APIの使い方

Prisma Cloud APIは公式のリファレンスにPythonのサンプルコードが丁寧に載ってはいますが、やはりゼロからコードを書こうとすると、その難易度は高いと感じます。

CSPM API | Develop with Palo Alto Networks

先程サンプルのコードを掲載しましたが、Prisma Cloud APIは大まかに以下のような流れで使用します。

  1. Prisma Cloudのダッシュボードにログインし、アクセスキーを発行(初回のみ)
  2. アクセスキーを用いて/loginエンドポイントにリクエスト送信、ログイントークン取得
  3. ログイントークンを用いて各種エンドポイントに対してリクエスト送信、データ取得

Prisma Cloud APIを用いて本格的なツールを開発するためにはいくつかのハードルが存在します。

ログインセッションの時間制限:
セッションは10分で切れてしまうため、時間がかかる処理をする場合は随時セッションの延長をする必要がある
ページング処理:
一部エンドポイントでは出力結果を複数のページに分割して返すため、全体を取得するためにはNextPageTokenを用いて再度リクエストを送信する必要がある
エラー処理:
間違ったリクエストを送り、返されたエラーレスポンスを処理せずそのまま続行するとプログラムが途中で止まってしまう

Pythonとprismacloud-apiパッケージ

実は、Prisma Cloud APIをPythonで簡単に利用するためのパッケージがメーカーから提供されています。初期設定の際にひと手間必要ですが、それ以降は簡単にREST APIを利用できます。

GitHub - PaloAltoNetworks/prismacloud-api-python: Prisma Cloud utility scripts, and a Python SDK for Prisma Cloud APIs.

  1. pip install prismacloud-apiでパッケージをインストール
  2. 環境変数にHOMEを追加(HOMEで設定したディレクトリに設定情報などを保存することができます)

prismacloud-apiには既にログインやセッションの延長、ページング処理、そしてリクエスト処理機能などが予め組み込まれているため、ユーザ側は返されたJSONオブジェクトを整形するだけです。また、GitHubにはサンプルコードも豊富にあるため、このパッケージを利用することでツール開発のハードルは一気に下がります。

prismacloud-apiパッケージを用いたサンプルコード
prismacloud-apiパッケージを用いたサンプルコード

ただし、このパッケージは公式のサポート外のため、最新機能をすぐに利用する場合は自身で実装する必要があります。とはいえ、ユーザによる独自機能の開発も考えて作られており、独自機能を追加する際のサンプルコードもREADMEに書いてあるため、Pythonが多少書ければ、そのハードルは高くはないと考えています。

Prisma CloudのAPIを用いた運用の効率化&ステップアップ

Prisma Cloudを運用する上で、毎回手順は同じだけど手順が長い、一回の作業は短いが量が多いといった場合はぜひPrisma Cloud APIを利用しましょう。ツールの作成までは多少なりとも時間と工数は掛かりますが、一度ツールが完成してしまえば、負担が大きい作業を簡単に処理することが可能となります。

ただ、Prisma CloudのAPIを使うためにはPythonの知識が必要となり、ツール開発にも時間がかかります。日々の運用で手いっぱいでPythonの学習やツール開発に工数を割けない場合もあります。

ラックの長年にわたるシステム開発とセキュリティのノウハウを集め提供する「クラウドセキュリティ統制支援サービス」では、お客様からの要望があればPythonを用いたツール開発の支援もしています。もし、Prisma Cloudの運用を手助けするためのツールなどに興味があれば、遠慮なくお問い合わせください。

関連記事

「クラウドセキュリティ統制支援サービス」に関するお問い合わせ

この記事は役に立ちましたか?

はい いいえ