こんにちは。CnS技術統括部のumeです。
前回のDNSセキュリティの記事で名前だけ出しておりました、InfobloxのEcoSystemライセンスを使用した外部連携機能を紹介したいと思います。
連携対象の機器はPalo Alto Networksのファイアウォールです。
前回の記事はこちら
https://cloudsolution.terilogy.com/
それでは早速本題に入ります。
EcoSystemライセンスの機能
EcoSystemライセンスで使える機能は「他社製品とのAPI連携」です。
Infobloxは昔からAPIを持っていましたが、外部システムからのリクエストを待ち受けるのが基本で、Infobloxがクライアントとなって外部システムへAPIで通信するということはできませんでした。
これがEcoSystemライセンスを使うことによって、Infobloxから対象システムへAPIで通信することが可能になります。
設定項目名も「Outbound API」となっています。
様々な製品・システムと連携できるのですが、その中でまずはPalo Alto Networksのファイアウォールと連携した事例を紹介します。
連携の動作概要
Infobloxで検知した危険なDNSクエリをトリガーに、Palo Altoに対してAPIで指定のルールにオブジェクトを追加します。
DNSクエリ送信元のIPをファイアウォールでブロックさせることができます。
危険なDNSクエリを出した端末を外部に通信できなくさせるイメージです。
検知の仕方は大きく分けて2種類あり、
1つはオンプレのInfobloxでDNS-FW(RPZ)を動作させて検知するパターン
もう1つは、BloxOne Threat DefenseのCloud上で検知した情報をオンプレのInfobloxと同期するパターンです。
構成イメージ
以下は必要最低限の構成です。
BloxOne Threat DefenseのCloud上で検知した情報と連携する場合のイメージはこちら。
以下のバージョンとライセンスで動作確認をしています。
●Infoblox
- NIOSバージョン:8.4系
- ライセンス:Grid、DHCP、DNS、NIOS1415、RPZ、EcoSystem
●Palo Alto
- バージョン:8.xx、9.xx
設定方法
主にInfoblox側で設定を行います。
Palo Alto側はリクエストの受付と、ポリシーの調整を行います。
以下はDHCPやDNSの設定はあらかじめ設定されている前提で、EcoSystem連携に必要な設定項目を記載します。
Extensible Attribute
EcoSystem連携では「Extensible Attribute」を使用します。
InfobloxのNetworkに設定されているExtensible Attributeの設定値を見て、連携対象かどうか判断したりします。
InfobloxのGUIログイン後、Administration > Extensible Attributesの画面で以下の項目を登録しておきます。
それぞれの項目を各Networkで使用します。
EcoSystem Templates
各製品と連携するためのTemplateを設定します。
サンプルがInfobloxのCommunity Site(https://community.infoblox.com)からダウンロードできるようになっています。
Palo Alto連携用Templateのリンク
https://community.infoblox.com/t5/Palo-Alto-Networks/Infoblox-Integration-with-Palo-Alto-Networks-Firewall-2-0/gpm-p/17817#M4
Grid > Ecosystem > Templates のページでダウンロードしたファイルを追加します。
以下はダウンロードできるTemplateファイルと概要です。
Outbound Endpoint
連携対象の登録を行います。
Grid > Ecosystem > Outbound Endpoint のページで宛先の情報を設定します。
ここで宛先のURL、接続アカウントが必要になります。
少し分かりづらいのですが、Auth Username/Passwordが接続先のアカウント情報、WAPI Integration Username/PasswordはInfoblox自身の接続アカウントです。
Session Managementのところで連携先であるPalo Altoのグループオブジェクト名を記載します。
ここで指定したオブジェクトに、検知した端末のIPが登録される形になります。
Notification
対象機器に通信を行うトリガーを設定します。
Target欄のSelect Endpointで宛先を指定します。
これはOutbound Endpointで登録したものを選択します。
RulesでEvent Typeとそのトリガーを指定します。
Event Typeは読み込んだTemplatesで表示される項目が変わります。
Match the following ruleでトリガーを指定します。以下の例はオンプレのRPZにヒットしたことをトリガーにする場合です。
以下の例はBloxOne Threat Defense Cloud上のセキュリティイベントをトリガーに指定する場合です。
BloxOne Threat Defenseのイベントをトリガーにする場合、オンプレのInfobloxがCloud Service Portalにアクセスしてイベントを確認できる必要があるためもう1か所設定を追加します。
以上で設定は完了です。
最後に
実際の連携における細かい動作仕様はTemplatesの中で記載されており、動作を細かくチューニングしたい場合は、中の記述を変更する必要があります。
コミュニティサイトで用意されているPalo Alto用のTemplatesでは、Notificationの条件にマッチすると「端末のIPをObjectとして登録」、「指定したグループにObjectを設定」「Commit実行」までが1セットになっています。
自動でBlockするところまで実装したいのであれば上記の動作で問題ないですが、Commitまではちょっと、、、という場合もあるかと思います。
ここは環境に合わせて変更が必要ですね。
ただ、DNSサーバとファイアウォールを連携させて手軽にセキュリティを高めるという仕組みはなかなか面白いのではないでしょうか。
DNSのクエリから端末のIPが分かり、ファイアウォールで通信を制御し、さらにIPAMでアドレス管理がされていると、その端末がネットワーク的にどこにいるのか、どのユーザのものなのかまで分かるのでインシデント対応の速度向上も期待できると思います。
次回はまた違う製品の連携を紹介したいと思います。