❏Cybereason API機能
こんにちは。SBC&S 橋本です。
Cybereason EDRの特徴については以前記事にしましたが、簡単にまとめると
・海外製品ですが、管理画面(GUI)やマニュアル・MDRサポートのすべてが日本語対応
・管理画面が非常に直感的でわかりやすく、EDR初心者でも扱いやすい
上記のような特徴があり、導入の敷居がとても低いEDRソリューションとなっています。
そして、最近のトレンドに乗り遅れることなく、Cybereasonも最新の製品としてREST APIを利用することが可能です。
この機能を活用することで、さまざまな他社のセキュリティ製品と連携可能になります。
今回は、CybereasonのAPIを使用して他社製品との連携を検証した内容についてご紹介いたします。
Cybereason EDRでは、様々なAPIが公開されており、これらを活用することで
他社製品との連携や自動化による効率化を行うことが可能です。下記はAPIの一例となります。
APIについての詳細は、Cybereason パートナーサイトに詳しく記載されています。
※CybereasonパートナーサイトはCybereasonのパートナー以外は閲覧できません。Cybereasonパートナーにご興味がある方はSB C&S営業までお問合せください。
※MALOPとは、Malicious Operationsの略でサイバー攻撃の完全な⼀連の流れを表すものです。振る舞い検知によりCybereason は複数の疑わしい⾏為が⼀つのセキュリティインシデントに含まれる可能性が⾼いと認識し、セキュリティアナリストに調査対象としてMALOPを提供できます。
❏CybereasonとFortiGateの連携検証について
今回は、CybereasonのAPIを利用してSB C&Sでも取扱の多いFortiGateと連携する検証を行いました。
連携内容はCybereasonで検知した悪意のある通信(Malicious connection)をワンクリックでFortiGateのオブジェクトとして登録し、脅威アドレスを管理するオブジェクトグループに格納します。
脅威アドレスを管理するオブジェクトグループと脅威をブロックするポリシーはFortiGateに事前に設定しておきます。
これにより、Cybereasonで検知した悪意のある通信をワンクリックでFortiGateのフィルターに反映させることが可能となり、 Cybereasonが導入できないようなOT/IOT機器が存在する環境でもCybereasonのセキュリティ機能を利用できるようになります。
API連携には、Pythonで書かれたスクリプトと、通信および操作を行うためのNetmiko(SSHまたはTelnetでデバイスに接続して操作を行うためのPythonライブラリ)を使用します。
本検証で作成したプログラムファイルは、本記事とあわせて提供いたしますが、注意事項として、これらのプログラムはAPI連携の参考資料として提供されるものであり、Cybereason社、Fortinet社、およびSB C&Sのサポート範囲外であることをご理解ください。
連携のイメージは以下のようになります。
本検証では以下のAPIを利用します。
上記のAPIにリクエストを送信し、取得したレスポンスから以下の情報を抽出して、FortiGateのオブジェクトとして登録します:
・ブロックリストに登録されたIPアドレス(IP Address)
・ブロックリストに登録されたドメイン(Domain)
・不審なドメインへの通信(Domain)
今回は、APIを呼び出すツールとしてPythonを利用しております。
内容については配布するプログラムをご確認ください。
■FortiGate側での事前準備
FortiGateで脅威アドレスを管理するオブジェクトグループと脅威をブロックするポリシーを作成し、事前準備を行います。
①脅威アドレスを格納するためのオブジェクトグループの作成
②脅威アドレスオブジェクトグループのポリシーへの適用
ポリシー&オブジェクト>ファイアウォールポリシー>[新規作成]
■Python・Netmikoを動かす端末側での事前準備
CybereasonとFortiGateを連携させるために、PythonとNetmikoを動作させる端末の設定を行います。
(本手順はWindows環境を想定しています)
【PC設置環境】
・ Cybereasonの管理URL・ FortiGateのログインIPどちらにもアクセス出来る環境に配置
① Pythonを以下のURLからダウンロードします。
2023年9月現在のサイト内インストーラー格納場所: Downloads>>> Windows
検証時のPythonバージョンはPython 3.11.5(最新版)となります。
② Pythonをインストール
ダウンロードしたファイルを実行してPythonをインストールしてください。
インストール時のチェック項目はデフォルトで設定しています。
(デフォルト設定のままでも、本検証には影響はありません)
③Pythonをインストール状態を確認
コマンドプロンプトを開き、以下のコマンドを入力してバージョン情報が表示されれば、Pythonは正常にインストールされています。
python --version
④ pipでPySimpleGUI、requests、Netmikoをインストール
次に、以下のコマンドをコマンドプロンプトに入力して、必要なライブラリをインストールします。
・PySimpleGUI
pip install PySimpleGUI
Enterキーを押すと、インストールが開始され「Successfully installed」と表示されればインストール完了です。
・ requests
コマンドプロンプトから以下のコマンドを入力
pip install requests
Enterキーを押すと、インストールが開始されます。
・Netmiko
コマンドプロンプトから以下のコマンドを入力
pip install netmiko
Enterキーを押すと、インストールが開始されます。
■動作検証
Pythonファイルを実行しCybereasonとFortiGateの連携検証を実施します。
【Cybereasonの端末センサーとFortiGateを連携するためのpythonツール】
①プログラムファイルを実行するとアプリケーションが起動します。
②アプリケーションの【Cybereason Server Info】の枠内にCybereasonのサーバー情報と
ログインユーザー情報を入力します。
※ログインユーザーは、ユーザロールがスーパーユーザもしくはAPIユーザのユーザを新しく作成し、ご利用ください。
③悪意のある通信を抽出する期間を入力し、【実行ボタン】を選択。
データ取得が成功すると以下のような実行結果が表示されます。
④次に抽出したCybereasonで検知された悪意のある通信情報をFortiGateに反映していきます。
以下を入力し実行してください。
⑤脅威アドレスオブジェクトグループのポリシーへの適用
ポリシー&オブジェクト>ファイアウォールポリシー>[新規作成]
⑥FortiGate側で自動的にアドレスオブジェクトの新規作成とアドレスグループへの追加が行われたことを確認します。
⑦ CybereasonとFortiGateの連携に問題ないことが確認できたのでFortiGateの対象ポリシーを有効化し完了です。
■最後に
いかがでしょうか?
本記事ではCybereasonのAPIを活用して、FortiGateのオブジェクトを登録するという連携方法について紹介させて頂きました。
今回ご紹介した方法以外にも、様々なAPIを活用することで、さまざまな機器やソフトウェアとの連携や自動化が可能になります。
CybereasonのAPIに関する詳細情報は、パートナーサイトに記載されています。ご興味がある場合は、パートナー登録が必要です。詳しくはSB C&Sの営業担当にお問い合わせください。
今回検証で利用したPythonファイルは配布しておりますので是非ご検証ください。
(配布Pythonファイルはサンプルとなります。Cybereason社およびFortinet社のサポート対象外となりますのでご理解の上ご活用ください)
■おまけ: Pythonファイルの設定値
【付録】Cybereason-FortiGate連携API【配布】
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 第3技術部 1課
橋本 紗代子
関西の湖畔で動物たちと暮らしています。