🕵️

ゼロデイにも効く!外部脅威フィード×FortiGateでネットワーク境界を鉄壁に

に公開

なぜ、外部脅威フィードを使うのか

ランサムウェアやマルウェアは感染後、侵入後に外部と指令・データをやり取りする司令塔であるC&Cサーバへ通信して初めて本格的に機能します。ウィルス対策ソフト等のエンドポイント保護がすり抜けられても、ネットワーク境界でC&Cサーバ宛通信を即座に拒否できれば被害を最小化できます。その最短手段が既知の悪意のあるIPアドレスリストをFWが自動参照する外部脅威フィードです。FortiGate 7.2以降ではこの仕組みが標準GUIに統合され、運用担当がCSVやスクリプトを都度手動で流し込む手間を排除できます。

FortiGateのThreat Feed機能のしくみ

取り込みフロー

  1. 外部リソース定義
    • セキュリティファブリック > 外部コネクタ > 新規作成 > IPアドレス でURLを登録。
  2. ファイアウォールアドレス化
    • 登録直後、自動で Address オブジェクトとして生成される。
  3. 拒否ポリシー適用
    • LAN → WAN のアウトバウンドに “Deny & Log” ポリシーを登録し、登録フィード宛通信を遮断。

注意が必要な制限事項

モデル階層 最大ファイルサイズ IP エントリー上限
Branch(FG-60F など) 32 MB 300,000
Campus(FG-200F など) 64 MB 1,000,000
Data Center(FG-3000F など) 128 MB 5,000,000

出展: FortiOS 7.6.3 Administration Guide - Threat feeds

  • 最小更新間隔: 1分、最大: 43,200分 (30日)、既定: 5分。
  • ブランチはFortiGate-60F等の2桁、キャンパスはFortiGate-200F等の3桁、データセンタはFortiGate-3000F等の4桁と製品名が分かれています。詳しくは購入先にご確認ください。
  • FortiOSのバージョンによって制限は異なるので、利用中のバージョンの制限を事前にご確認ください。
  • 旧バージョン (7.4.4未満) は 10MB / 131,072行 制限なので要注意。FortiOS 7.4.3 Administration Guide - Threat feeds

無償で利用できる代表的IPフィード

提供元 特徴 FortiOS 必要バージョン
AbuseIPDB ボランティア報告を点数化。危険度100%のみ抽出したリストをGithubで参照可能。borestad/blocklist-abuseipdb 7.4+
blocklist.de Fail2Banハニーポットで検出された攻撃元の内、48時間分のアクセス全件をリスト化。 7.2+
CINSscore “badguys” Critical Security社が運営するハニーポット連動リスト。 7.2+
ShadowWhisperer/IPs GitHubで公開、スキャナーやブルートフォース主体のブラックリスト。 7.2+
montysecurity/C2-Tracker Shodan/Censys等のスキャナーで検出されたC&Cサーバ及び攻撃元のリスト。 7.2+

各フィードURL

実装

GUIで登録

  1. セキュリティファブリック > 外部コネクタ で 新規登録からIPアドレスを選択。
  2. 名前 に AbuseIPDB_7d_100、外部リソースのURL に
    https://raw.githubusercontent.com/borestad/blocklist-abuseipdb/refs/heads/main/abuseipdb-s100-7d.ipv4 を貼付。
  3. リフレッシュレートを30分に変更し、OK。
  4. ファイアウォールポリシー で LAN→WAN Deny ポリシーを新規作成し、宛先に登録したフィードを選択。

CLIで管理

config system external-resource
    edit "AbuseIPDB_7d_100"
        set type address
        set resource "https://raw.githubusercontent.com/borestad/blocklist-abuseipdb/refs/heads/main/abuseipdb-s100-7d.ipv4"
        set refresh-rate 30
    next
end

config firewall policy
    edit 10
        set name "Block C2 outbound"
        set srcintf "lan"
        set dstintf "wan"
        set srcaddr "all"
        set dstaddr "AbuseIPDB_7d_100"
        set action deny
        set schedule "always"
        set logtraffic all
    next
end

確認コマンド

CLIからdiagnose sys external-address-resource listコマンドを利用すると、リストから何件読み込まれているかを確認できます。

# diagnose sys external-address-resource list
List of external address resources:
name:CINS, uuid-idx:704, num of ipv4/ipv6 ranges:11245/0, used:yes
name:AbuseIPDB_7d_100, uuid-idx:701, num of ipv4/ipv6 ranges:90636/0, used:yes
name:Blocklist.de, uuid-idx:703, num of ipv4/ipv6 ranges:12094/123, used:yes
  • entries exceed limit エラーが出た場合はリストサイズを削るか、FortiGateハードウエアのモデル更改を検討してください。
  • 接続失敗時は取得済みのデータが24時間保持されます。

まとめ

外部脅威フィードは “セットアップが簡単・メンテも自動” という強力な武器です。FortiGate 7.2以降ならGUIで数クリック、CLIでも十数行で導入でき、ゼロデイや未知マルウェアでも「C&Cと通信する瞬間」に強制切断できます。まずは容量・品質ともバランスの良い AbuseIPDB や blocklist.de から始め、必要に応じて C2 Tracker など専門性の高いリストを追加するというアプローチが、誤検知を抑えつつ防御を高める黄金パターンになります。

Discussion