本ブログは、日々お客様よりいただくネットワーク・セキュリティプロダクトに関するお問い合わせを、
エンジニア2年生が先輩の指導を受けながら検証などを行い、回答した内容を一問一答方式でまとめたブログです。
<お問い合わせ NO.14 自動隔離>
・自動隔離ってどんなことができるの?
今回は上記のような問い合わせを受けて検証をしました。
FortiGateにはOS6.0からSecurity Fabricの機能の一つとしてオートメーションが追加されました。
新人ブログ Vol.9(Eメールアラート通知)でも少しだけ紹介しましたが、Security Fabric内で発生した様々なイベントをトリガーに自動的に様々なアクションを実行させる機能です。
この機能によりネットワーク内で発生したセキュリティイベントに対するレスポンスを短縮できます。
今回は複数あるオートメーションの中でも特に便利な機能である、感染した端末を自動的に隔離する方法を検証して紹介していきます。
前提として自動隔離に必要な機器、ライセンスは以下の通りです。
・FortiGate ライセンス:UTP Bundle
・FortiAnalyzer ライセンス:IOC(Indicators of Compromise)
・FortiClient EMS ライセンス: FortiClient Fabric Agent(EMS隔離する場合は必要)
・FortiSwitch、FortiAP(アクセスレイヤー隔離する場合は必要)
また今回の検証ではFortinet機器のOSは6.2.3を利用しています。
〇アクセスレイヤー隔離とIP禁止
感染端末の検知の仕組みとして、FortiAnalyzerはIOCライセンスを付与することでFortiGuardセンターからTIDBパッケージを毎日ダウンロードします。
これは不正なIP、ドメイン、URL、疑わしいURLで構成されたブラックリストで、FortiAnalyzerはリストを参照して不正な通信を行っているエンドポイントのスコアリングを行います。
FortiAnalyzerはTrafficログ、WebフィルターログやDNSログを確認することでスコアがしきい値に達したエンドポイントを感染した端末と判定し、FortiGateに隔離指示を出しエンドポイントを隔離します。
ここでは自動隔離の方法としてアクセスレイヤー隔離とIP禁止を紹介します。
検証のイメージは下図の通りです。
・アクセスレイヤー隔離
まずはアクセスレイヤー隔離を設定していきます
アクセスレイヤー隔離はFortiSwitch、あるいはFortiAP配下に存在する感染端末のMACアドレスをフィルタリングすることでL2レイヤーから通信を外に出さない仕組みになっています。
最初にIOC機能を使うためにFortiGateとFortiAnalyzerを連携させます。
設定 > セキュリティファブリックからFortiAnalyzerロギングを有効化しIPアドレスを指定します。
FortiAnalyzer側でFortiGateを認証後、FortiGateから接続のテストを行い以下のようなロギング情報が表示されれば連携は成功です。
オートメーション > セキュリティファブリックより自動隔離のステッチを作成していきます。
トリガーに侵害されたホスト、アクションにアクセスレイヤー隔離を選択し作成するだけで自動隔離の設定は完了です。
※ここでは隔離アクションのみ選択していますが、一つのトリガーで複数のアクションを選択できます。
例えば隔離すると同時に管理者に対してEメールを送信することも可能です。
オートメーション設定後はFortiGateが管理するSecurity Fabricネットワーク内でエンドポイントの感染が確認されると自動隔離を実行します。
実際にFortiSwitch配下に存在するエンドポイントから、不正なサイトやIPへ通信を実行することでエンドポイントを隔離します。
自動隔離されたエンドポイントはFortiViewの侵害されたホストや隔離モニタに表示されます。
またセキュリティファブリックのトポロジを確認すると侵害されたホストは赤色に変化し、隔離が実行されると黄色と黒の警告色で囲まれていることが分かります。
隔離されたクライアントはトポロジや隔離モニタから隔離解除することが可能です。
・IP禁止
次にIP禁止を設定していきます。
IP禁止は感染端末の送信元IPアドレスをフィルタリングすることで、L3レイヤーでの隔離を実施します。
クライアントがFortiSwitchやFortiAPの配下に存在していなくても隔離することが可能です。
設定方法はアクセスレイヤー隔離と同様でオートメーションステッチ作成時にアクションにIP禁止を選ぶだけで設定できます。
またIP禁止が実行された時の見え方はアクセスレイヤー隔離と同様です。
以下は隔離モニターでの見え方です。
※IP禁止を手動で行う場合は、禁止する期間を設定することが可能です。
期間は秒、分、時間、日あるいは恒久的に隔離することができます。
・FortiView確認
IOCによって感染端末と判定されたデバイスは侵害されたホスト > FortiViewに一覧で表示されます。
現在の隔離状況やどのような不正通信を行っていたかを確認することが出来ます。
〇FortiClient EMS隔離
上記で紹介してきた自動隔離はどれもエンドポイントにエージェントソフトをインストールせずに、FortiGateのSecurity Fabric内の全ての端末に隔離を適用する方法でした。
EMS隔離はFortiClient EMSから配布されたFortiClientをインストールしている端末に対して実行されます。
FortiClient EMSによって隔離された端末はネットワークアクセスを制限されるため、EMSから解除またはクライアントから解除要求を行わない限りSecurity Fabricネットワーク外でも通信ができなくなります。
以下はEMS隔離のイメージです。
・EMS隔離設定
初めにFortiGateとFortiClient EMSを連携していきます。
設定 > セキュリティファブリックからFortiClientエンドポイント管理システムを有効化します。
IPアドレスやユーザー名、パスワードを入力し接続をテストします。
接続ステータスが以下のように成功すれば接続は完了です。
オートメーション > セキュリティファブリックからトリガーに侵害されたホスト、アクションにEMSからFortiClientを隔離を選択し自動隔離の設定をします。
以下からFortiClient EMSの設定をしていきます。
FortiClientからEMSをインストールしたデバイスが参照するプロファイルを設定します。
Manage Profile > Endpoint ProfileからAddで新規のプロファイルを作成します。
セキュリティ機能はアプリケーションファイアウォールを有効にし、FortiClientからFortiAnalyzerへログを送信するように設定します。
次にFortiClientをインストールしたデバイスをSecurity Fabricに参加させるために、FortiClientがTelemetry接続するFortiClient EMSとFortiGateを指定していきます。
Manage Telemetry Gateway Lists > Telemetry Gateway Listsから新規リストを作成しFortiClient EMS、FortiGateのIPアドレスを入力します。
次にOn-net Detection Rules > Policy Componentsからオンネット検知ルールを作成します。
IPサブネットを指定することで該当するセグメント上に存在するエンドポイントを検知し、ステータスがオンネットまたはオフネットかを判断します。
ステータスによって異なるポリシーを割り当てることが可能です。
Addで新規のルール作成し、エンドポイントが存在するセグメントを設定します。
Manage Policies > Endpoint PolicyからAddで新規ポリシーを作成し、ここまで作成したEndpoint ProfileとTelemetry Gateway List、On-net Detection Rulesを割り当てていきます。
最後にエンドポイントデバイスにFortiClientをインストールするための設定をします。
Deployment Packges > Manage InstallersからAddで新規のパッケージを作成し、設定してきたEndpoint ProfileとTelemetry Gateway Listをリストを選択し割り当てます。
設定を終了するとパッケージ一覧に自動でダウンロードリンクが作成されるため、このリンクからエンドポイントにFortiClientをインストールして環境の作成は完了です。
エンドポイントからマリシャスサイト、Botnetへの通信をを実施し、EMS自動隔離を実行します。
EMS隔離が正常に動作している場合は、エンドポイントのFortClientコンソールが以下のような赤い隔離画面に変わり、インターネット、社内ネットワーク等へ外部アクセスできなくなります。
・ログ確認
EMSで隔離された端末もアクセスレイヤー隔離やIP禁止と同様に隔離モニタやFortiViewで確認できます。
またFortiClient EMSのLogs > Administratorからも、FortiGateのオートメーションによって隔離が実行されたことが分かります。
・隔離解除
隔離されたエンドポイントはEMSから2通りの方法で隔離解除できます。
1つはEMS管理者が手動で解除を行う方法です。
All Endpoint > EndpointsからFortiClient EMSから確認できるエンドポイントの一覧が見えます。
隔離されたエンドポイントを選択し、ActionからUnquarantineを選択することで次にエンドポイントとTelemetry通信が発生した際に隔離を解除します。
もう1つは管理者がユーザーにワンタイムアクセスコードを提供することで隔離解除する方法です。
ワンタイムアクセスコードは隔離されたエンドポイント情報内のQuarantine Access Codeに英数字で記載されています。
ユーザーは隔離されたFortiClient隔離画面からコードを入力し、コンソール画面で隔離解除をクリックすることでネットワークアクセスを再開できます。
〇侵害されホスト解除
FortiGateの隔離モニタやFortiClient EMSのエンドポイント管理画面から隔離された端末を解除しても、FortiAnalyzerから感染した端末として判定されたエンドポイントは侵害されたホストとしてSecurity Fabricのトポロジで赤いままホスト表示されます。
この表示はFortiAnayzerのFortiViewから解除可能です。
侵害されたホスト > 脅威 > FortiView > SOCから感染したエンドポイントの一覧が確認できます。
対象のエンドポイントのAckの表示をクリックし管理者コメントを入力後Submitすることでホストを解除できます。
また送信された管理者コメントはFortiGateの侵害されたホスト > FortiViewから表示を承認済に変更することで確認できます。
----------------------
検証後記
企業の情報システム管理者はネットワークに障害が発生したり、社内の端末が感染していることにいち早く気付くために常にネットワークを監視している必要があります。
しかしIT人材が不足している昨今、ひとり情シスな企業やIT知識が不足している管理者が増えています。
少ない人数でネットワーク内のインシデントを常に監視し、感染端末の特定やネットワークの保全をいち早くすることは非常に困難です。
そんな中でFortiGateのオートメーション機能やFortiAnalyzerを利用してネットワークを管理することで管理者の負担が少なく、ネットワーク全体の可視化、制御が可能になります。
またオートメーション機能はプログラミングの知識がなくとも、用意されているトリガーとアクションを選択することで簡単に設定ができるため自動隔離以外にも様々な用途に利用できるため、ご興味のある方は是非試してみてください。
他のおすすめ記事はこちら
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 第3技術部 2課
渡邊 理史