NEEDLEWORK を知る人はまだ少ない
これまで、松田はファイアウォール構築案件の中で NEEDLEWORK というネットワークテスト自動化アプライアンスを何度か使用してきました。
この NEEDLEWORK はポリシーテストの工数を大幅に削減することができる非常に価値の高い製品だと感じていますが、まだ業界における認知度は高くないように感じます。
そこで以下では、NEEDLEWORK のポリシーテストとはどのようなものなのかについて実例を交えながら詳しく説明してみます。
NEEDLEWORK による次世代ポリシーテスト
ファイアウォール構築の中で、設定したポリシーが想定通り動作しているかを確認するために検証(ポリシーテスト)を行います。
従来のポリシーテスト
従来のポリシーテストでは、以下の作業が必要でした。
- 対象の通信内容に合わせたテスト用のネットワーク環境の構築
- ネットワーク機器の確保
- ネットワーク機器の設定
- エンドポイントとなる端末の準備
- 端末の確保
- IP アドレス設定
- 必要ソフトのインストール
- 端末での操作
- 通信を発生させるためのソフトの設定・実行
- テストエビデンスの保存

例えば FortiGate で以下左のようなポリシーをテストしたい場合、以下右のようなテスト環境を構築する必要があります。

また端末から TCP 通信をさせるためにフリーソフトの Nana を使う人が多いと思いますが、Nana の設定をするのも地味に面倒です。
NEEDLEWORK によるポリシーテスト
ネットワークテスト自動化アプライアンスである NEEDLEWORK を使用した場合、以下のようにテスト対象機器と NEEDLEWORK 端末を直結したテスト構成になり、テスト対象機器とエンドポイント間のネットワークの構築が不要になります。

テスト通信の内容を表す「シナリオ」
NEEDLEWORK では「シナリオ」に基づいてテストを行います。
シナリオとは、
- どの送信元から
- どの宛先に
- どのようなサービス通信をするのか
などを含む情報です。一つのシナリオが一つのテスト通信に対応するため、テスト通信の数だけシナリオを作成することになります。
シナリオが持つパラメータの一覧は以下画像の通りです。

2 つのシナリオ作成方法
NEEDLEWORK でポリシーテストを行う過程で最も重要な作業はシナリオ作成です。
このシナリオ作成を行う方法として、以下の 2 つがあります。
- NEEDLEWORK の Web 管理画面上で入力して作成する
- CSV ファイルとして定められたフォーマットに従って作成し、そのファイルを NEEDLEWORK にインポートする
CSV ファイルで作成すると、何度も再利用することができたり、エビデンスとして残しておいたりできるため、CSV ファイルで作成する方法がお勧めです。
NEEDLEWORK でのポリシーテスト実施例
作業環境
- FortiGate 60E ver.7.0.3
- NEEDLEWORK 仮想版 ver.1101
テスト対象ポリシー
例として以下のポリシーをテストすることとします。

宛先には 5 つのセグメントが設定されていますが、各セグメントで代表の 1 IP に対してテストすることにします。また各宛先について全サービスのテストを実施することとします。テスト通信のパターン数は 25 ということになります。
テスト環境
従来の方法でテストする場合は、例えば以下のような環境になります。

ただここでは NEEDLEWORK を使用するため以下の構成になります。

シナリオの作成
テスト通信の内容を表すシナリオを作成します。ここでは CSV で作成して NEEDLEWORK にインポートします。
作成した CSV は以下の通りです。
exclude-list,,protocol,src-fw,src-vlan(option),src-ip,src-port(option),src-nat-ip(option),s-if(option),is-receiver-physical(option),dst-fw,dst-vlan(option),dst-nat-ip(option),dst-nat-port (option),dst-ip,dst-port,d-if(option),url/domain(option),anti-virus(option),timeout(option),try(option),other-settings(option),expect,description
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.1.100,10101,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.1.100,10102,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.1.100,10103,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.1.100,10104,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.1.100,10105,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.2.100,10101,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.2.100,10102,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.2.100,10103,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.2.100,10104,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.2.100,10105,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.3.100,10101,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.3.100,10102,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.3.100,10103,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.3.100,10104,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.3.100,10105,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.4.100,10101,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.4.100,10102,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.4.100,10103,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.4.100,10104,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.4.100,10105,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.5.100,10101,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.5.100,10102,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.5.100,10103,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.5.100,10104,,,,,,,pass,
,,tcp,10.1.20.1,,10.20.1.100,,,,,10.150.100.1,,,,172.16.5.100,10105,,,,,,,pass,
テスト通信が 25 パターンあるのでシナリオは 25 行分あります。
作成が大変そうと思われるかもしれませんが、テンプレートを NEEDLEWORK の管理画面からダウンロードでき、また Excel で編集すればコピペも使えるので、簡単に作成できます。上のシナリオは 2 分くらいで作成できました。
ポリシーテストの実行
ポリシーテストの実行は NEEDLEWORK の Web 管理画面から行います。
以下が Web 管理画面です。

画面左上の [開く] からシナリオの CSV をインポートできます。
インポートすると以下のように画面上にデータが読み込まれます。

この後は画面左上の [実行] をクリックしてテストを開始します。
テスト実行中は以下のようにリアルタイムに結果が表示されます。

テスト完了後はエビデンスの保存画面が表示されるため、必要に応じてエビデンスを保存します。
テスト実行後、以下のように各シナリオがテスト結果によって色分けされて表示されます。緑は想定通りに結果が Pass だったことを意味します。

シナリオインポートからテスト実行までの流れを動画にしてみました。テスト時間の短さにも注目してみてください。
テスト所要時間は 1 シナリオあたり 1 秒以下
公式のQ&A によるとテスト所要時間は以下の通りです。
- Pass 通信:50 ミリ秒
- Drop 通信:1,000 ミリ秒
エビデンスの内容
ポリシーテストのエビデンスとして、以下の 2 つをダウンロードできます。
- シナリオ内容とテスト結果が記載された CSV
- 各シナリオの送信側と受信側でのパケットキャプチャデータ(.pcap)
CSV には以下のように結果が記載されています。

パケットキャプチャデータとしては以下のようにファイルが保存されています。

パケットキャプチャの内容は以下のようになっています。

ポリシーテストの補足事項
使用可能なプロトコル
上の例ではプロトコルとして tcp を使用しましたが、他に以下のプロトコルも使用できます。
※現時点で最新版の ver.11 の場合
- icmp
- tcp
- udp
- http
- https
- dns (UDP の DNS)
- dnst(TCP の DNS)
- ftp(パッシブモードの FTP)
- ftpa(アクティブモードの FTP)
- imap
- smtp
※各プロトコルの詳しい処理内容はマニュアル参照
アンチウイルスのテストも可能
シナリオでウイルスチェックを有効にすることもできます。プロトコルが http の場合は、ウイルスチェックを有効にすると疑似ウイルスファイル(EICARファイル)をダウンロードします。
ファイアウォールのアンチウイルス機能でブロックされた場合、NEEDLEWORK 上では結果として block
になります。

FortiGate 側のログでもアンチウイルス機能によってブロックされたことを確認できます。

NEEDLEWORK の仮想アプライアンスについて
NEEDLEWORK は販売開始当初はハードウェア版のみ販売されていましたが、半導体不足の影響もあり、2021年9月の時点でハードウェア版の販売終了と仮想アプライアンスへの移行が発表され、ハードウェア版は在庫限りとなっています。
今後は仮想アプライアンスを使用することになると思われます。
仮想アプライアンスは Windows 10 の Hyper-V 上にインストールするため、仮想マシンの概念や Hyper-V について多少は知識が無いと使いこなすのが難しいかもしれません。
ですが安心してください。当ブログでは仮想版についても解説しています。興味があれば以下の記事も確認してみてください。
参考資料


<評価ライセンス申請は以下から>