未解決
1 Rookie
•
22 メッセージ
2
105
IsilonianTech 第29回 PowerScaleとサイバーセキュリティ ~Flowmon ADS + PowerScale Firewall編~
いつもご覧頂きましてありがとうございます。2024年のゴールデンウィークはいかがお過ごしでしょうか。
今年のゴールデンウィークは4月30日から5月2日の平日を休みにすると10連休になるので10連休のかたもいらっしゃると思いますが、休みの日を考慮してくれないのがセキュリティインシデントです。今年2月に発表されたNIST CSF 2.0では特にサプライチェーンのリスク管理を重要視していますが、今後は自組織のみの管理や強化だけでなく関連会社やパートナ企業、委託先などを意識した対策やリスク管理を実施していくことが重要になります。
サプライチェーンリスク管理においてはサプライチェーン全体に関するセキュリティリスクを理解することから始める必要がありますが、自組織で考えられる技術的な対策の1つとしてNetwork Detection and Response(NDR)が注目されています。NDRはネットワーク全体の脅威の検知ならびに分析が可能となりますので、万が一攻撃者がサプライチェーン経由で自組織のネットワークに侵入や潜伏した場合でも迅速な対処が可能です。また、NDRはEndpoint Detection and Response(EDR)の導入が進んでいる場合でも技術的にEDRを導入することが出来ないIoT機器やVPN装置などセキュリティ対策を行うことが難しい機器に対しても有効なソリューションです。
Flowmon ADS + PowerScale Firewall概要
はじめに第25回(IsilonianTech 第25回 PowerScaleとサイバーセキュリティ ~Flowmon ADS + Zero Trust API編~)の内容をおさらいしたいと思います。Flowmonはネットワークのトラフィックを可視化し監視/分析するソリューションで、Flowmonアプライアンス(物理アプライアンスまたは仮想アプライアンス)を導入することにより企業内のネットワークの性能情報やアプリケーションの利用状況を把握することが可能です。標準機能だけでも大変便利な製品ですが、Flowmonのオプション機能であるADS(Anomaly Detection System)プラグインを導入することによりポートスキャンやブルートフォースアタック、C&Cサーバへの通信などネットワーク上の異常や不審な挙動を検出しアラートや対処を行うことができます。
第25回ではFlowmon ADSとRansomware Defender Zero Trust APIが連携し、Flowmon ADSがネットワーク上の異常を検知した際にZero Trust API経由でPowerScaleをプロアクティブに保護するソリューションでした。
今回のソリューションは、Flowmon ADSがネットワーク上の異常を検知した際にPowerScale APIを直接実行することにより、Ransomware Defenderを介さずに脅威を遮断することが出来るようになりました。具体的にはFlowmon ADSがネットワーク上の異常を検知した際にPowerScale API経由でPowerScale Firewallのポリシを動的に変更して侵害を受けた機器からの通信を遮断します。
<上記スライドは5秒おきに変わります>
Flowmon ADS + PowerScale Firewall設定
今回のソリューションの核となるPowerScale Firewallですが、OneFS 9.5からパケットフィルタリング型ファイアウォール機能としてOneFS内部に実装されました。PowerScaleクラスタ上で定義したファイアウォールポリシとルールはPowerScaleのサブネットまたはIPプールに対して適用させることが可能です。また、PowerScale Firewallのファイアウォールポリシを更新すると動的(即時)にルールが適用されます。
なお、Flowmon ADSとPowerScaleとの連携の際に使用するスクリプト(block-ip.py)はProgress Software社のサイトに公開されています。(導入ガイドも公開されています。)
今回はOneFS 9.8とFlowmon 12.3.5 で試してみました。
PowerScaleの設定
先ずはFlowmon ADSがAPI経由でPowerScaleにアクセスできるようにHTTP認証を設定します。
WebUIから「Protocols」 -> [HTTP authentication]から"Integrated authentication only(統合認証)"を選択します。同時に"Enable secure HTTP"のチェックボックスにチェックを入れます。
次に、PowerScale Firewallを有効化します。「Cluster management」 -> [Firewall Configuration]の[Settings]から"Firewall policies on the cluster"を"Enabled"にします。その後、Flowmon ADS用のファイアウォールポリシを用意します。Flowmon ADSはネットワーク上の異常を検知した際、このポリシに対してルールを追加します。(複数検知した場合は都度ポリシに追記します。)
[Firewall Policies]に存在している"default_pools_policy"の[More Actions]から[Clone policy]を選択します。
"Policy Name"に"Flowmon_ADS"と入力します。
Flowmon ADS用のファイアウォールポリシが複製されると下記のようになります。今回は"default_pools_policy"を複製したので"No. of Rules"が58になっていることが確認できます。
上記で作成した"Flowmon_ADS"ポリシをIPプールに適用します。「Cluster management」 -> [Network configuration]からポリシを適用させるIPプール(今回はgroupnet0.subnet0.pool0)の"Firewall policy"で"Flowmon_ADS"を選択します。
以上でPowerScale側の設定は完了です。
Flowmon ADSの設定
先ずはFlowmon ADSでフィルタを作成します。(Flowmonの基本的な設定は実施されている前提です。)
Anomaly Detection SystemのWebUIから、「設定」 -> 「処理」 -> [フィルタ]と移動して[+新しいフィルタ]を選択します。[名前]には"PowerScale"、[パラメータ]にはPowerScaleにアクセス可能なネットワークを指定します。
次に、パースペクティブの作成を行います。Flowmon ADSではパースペクティブを定義することにより監視や検知したい特定のイベントに対して独自の優先度を設定することができます。「設定」 -> 「処理」 -> [パースペクティブ]と移動して、[+新しいパースペクティブ]を選択します。[名前]には"PowerScale perspective"、[フィルタ]には先ほど作成した"PowerScale"という名前のフィルタを指定します。[優先度]はTCP SYNスキャンを検知させようと思いますので[優先度][重要]に"SCANS"を登録します。なお、今回はテスト目的のために"SCANS"のみ登録していますが、本番環境では各優先度に対してどのメソッドを適用するか十分に検討する必要があります。
続いて、PowerScale Firewallと連携するためのカスタムスクリプトを登録します。「設定」 -> 「システム設定」 -> [カスタムスクリプト]から[+新規カスタムスクリプト]を選択します。
[名前]は"PowerScale Firewall"、[ファイル]にはProgress Software社が公開している"block-ip.py"を選択します。このスクリプトはPowerScale APIを呼び出すための認証ならびにセッションの確立や指定したポリシの有無、特定のIPアドレスを拒否するためのルールの作成や確認を行います。また、パラメータ(引数)としてPowerScaleのIPアドレスやユーザ名、パスワード、ファイアウォールポリシ名が指定可能です。(パスワードはパラメータからではなくスクリプト内部に定義することも可能。)
[パラメータ]で指定するファイアウォールポリシ(-s)は"Flowmon_ADS"を登録します。
カスタムスクリプトを登録後に、カスタムスクリプトアクションを作成します。「設定」 -> 「処理」 -> [カスタムスクリプト]から[+新規カスタムスクリプトアクション]を選択します。[名前]は"PowerScale Integration"、[スクリプト]は先程作成した"PowerScale Firewall"という名前のスクリプトを選択します。
[パースペクティブ]は"PowerScale perspective"を指定します。また、[アクティブ]のチェックボックスにチェックを入れます。
以上でFlowmon ADSの設定は完了です。
攻撃シミュレーション
動作確認にあたり攻撃のシミュレーションを行います。Flowmon ADSはネットワーク全体を監視しているのでPowerScaleへの攻撃有無に限らずネットワーク上の不審な挙動を検知した際にはPowerScaleが攻撃を受ける前にロックアウトすることが可能です。今回も第25回の時と同様にネットワーク上に存在している機器に対してnmapでポートスキャンを実施しました。なお、今回は第4オクテットが197のIPアドレスからポートスキャンを行いました。
ポートスキャンを実行後にPowerScale Firewallの"Flowmon_ADS"ポリシを確認すると、下記のように"Flowmon_ADS"のルール数が58から59に増えていることが確認できます。
Flowmon ADSが追加したルールは"ADS_9128"という名前で登録されており、"Source Networks"には第4オクテットが197のIPアドレスが登録されていることが確認できます。ルールの詳細を確認するために"Actions"からEdit(鉛筆マーク)を選択すると、Description部分には"Blocked at 2024-04-27 14:58:31 by SCANS ADS ID 9128"と記録されていることが確認できます。これはFlowmon ADSがネットワーク上の脅威を検知してPowerScale Firewallのポリシを更新(ルールを登録)した時間とメソッド、関連するイベントIDが記載されています。また、追加されたルールは"Action : Deny"、"Protocol : ALL"となっているので、第4オクテットが197のIPアドレスからの通信を拒否(応答せずにパケット破棄)するルールが追加されました。
最後に、先ほどのイベント(ID 9128)をFlowmon ADSで確認してみます。Anomaly Detection SystemのWebUIから、「解析」もしくは「イベント」の画面右上にある[IDでイベントの選択]からイベントIDを入力して検索します。該当するイベントが見つかると下記のようにイベントの詳細が表示され第4オクテットが197のIPアドレスからTCP SYNスキャンが実行されてたことが確認できます。
各種リソース
Flowmon ADS and Dell PowerScale Integration
バックナンバー
IsilonianTech 第25回 PowerScaleとサイバーセキュリティ ~Flowmon ADS + Zero Trust API編~
IsilonianTech 第26回 PowerScaleとサイバーセキュリティ ~Cyber Recovery Manager~
IsilonianTech 第27回 PowerScale InsightIQ 5.0リリース!
IsilonianTech 第28回 Dell Data Lakehouse
安井 謙治
Dell Technologies│Unstructured Data Solutions
デル・テクノロジーズ株式会社 UDS事業本部 SE部
情報処理安全確保支援士