噂には聞いていた NEEDLEWORK を案件で使用することができたので NEEDLEWORK について書いてみたいと思います。
いきなり結論
- NEEDLEWORK があると FW のポリシーテストが秒で終わる
- エビデンスも取得できる
- 一社に一台は欲しい
従来のポリシーテスト

- ネットワーク環境構築
- 端末の IP 設定変更
- 場合によっては端末の接続先変更と、接続先 NW 機器の設定変更
- 端末でコマンド実行 or アプリ実行
- ログ取得
- 合否の確認
- 上記をテスト対象ポリシー分だけ繰り返し
NEEDLEWORK の登場
NEEDLEWORK は 2016 年に株式会社エーピーコミュニケーションズより販売開始された、ファイアウォールのポリシーテスト自動化アプライアンスです。
サイズは 165(W) x 105.5(D) x 43(H)mm でコンパクトです。
外観については公式サイトを確認してください。
現時点の最新版であるバージョン 10.0.0 においては以下の機能を搭載しています。
- ポリシーテスト
- ネットワークテスト
- スループットテスト
- セッションテスト ※バージョン 7.0.0 ~
NEEDLEWORK の操作方法
NEEDLEWORK の操作は Web のダッシュボード画面で行います。
操作用端末を NEEDLEWORK の 3 番ポート(MGT ポート)に接続して、管理 IP アドレスに Web アクセスすることでダッシュボード画面を表示できます。

ポリシーテスト
NEEDLEWORK を使ってポリシーテストをする際の手順は以下の通りです。
- ネットワーク環境構築
- テストシナリオの作成
- テストシナリオのインポート
- ポリシーテストの実行
- エビデンスのエクスポート
ネットワーク環境構築
ネットワーク環境構築といっても、ファイアウォールと NEEDLEWORK を接続する程度です。
ファイアウォールが単体構成の場合は以下のような感じです。

ファイアウォールが冗長構成の場合は L2 スイッチを挟んで以下のような感じです。

NEEDLEWORK の設定についてですが、IP アドレスの設定は不要です。
通信に必要な IP アドレスを自動で生成します。
テストシナリオの作成
テストシナリオはテストしたい通信の内容を記載した CSV ファイルで、例えば以下のような項目を指定します。
- プロトコル
- 送信元
- ファイアウォール受信 IF の IP
- 送信元 IP、NAT 後送信元 IP
- 送信元ポート、NAT 後送信元ポート
- 宛先
- ファイアウォール出力 IF の IP
- 宛先 IP、NAT 後宛先 IP
- 宛先ポート、NAT 後宛先ポート
- UTM オプション
- その他オプション
Web のダッシュボード画面からサンプルシナリオの CSV ファイルをダウンロードできるため、そのサンプルをベースにして作成すると作りやすいです。

テストシナリオのインポート
ダッシュボード画面からローカルのシナリオファイルをインポートできるためインポートします。
するとダッシュボード画面にシナリオが読み込まれます。
ポリシーテストの実行
ダッシュボード画面の実行ボタンをクリックするとポリシーテストを実行できます。
公式のQ&A によるとテスト所要時間は以下の通りとのこと。
- Pass 通信:50 ミリ秒
- Drop 通信:1,000 ミリ秒
実際に Pass となる通信約 200 ケース分のテストシナリオを実行しましたが、数秒でテストは完了しました。
実行結果についてはダッシュボード画面に一覧で出る上、想定と異なる結果となった通信については赤色でハイライトされるため、結果はとても見やすくなっています。
また、想定と異なる結果となった通信については、例えば NAT 後の IP が想定と違っているなど、どう違っているのかも表示されるためバグ修正がし易くなっています。
エビデンスのエクスポート
エビデンスとしては次の 2 つをエクスポートできます。
- シナリオに対して結果が追記された CSV ファイル
- テスト対象通信別に、送受信ポートでのパケットキャプチャデータ
CSV については、以下のように結果が記載されています。

※色は手動で付けています
パケットキャプチャについては、以下のように通信別に送受信ポート別でデータが保存されます。

キャプチャの中身は以下のようになっています。(プロトコル TCP の場合)

対応プロトコル
現時点の最新版であるバージョン 10.0.0 において、ポリシーテストで対応しているプロトコルは以下の通りです。
- ICMP
- TCP
- UDP
- HTTP
- HTTPS ※バージョン 8.0.0 ~
- DNS(TCP)
- DNS(UDP)
- FTP(パッシブ) ※バージョン 8.0.0 ~
- FTP(アクティブ) ※バージョン 8.0.0 ~
- IMAP ※バージョン 9.0.0 ~
ネットワークテスト
ネットワークテストでは以下が実行できます。
- 連続 Ping の実行
- テスト開始時、終了時の Traceroute での経路確認
- エビデンスのエクスポート
単純な疎通確認の他、障害試験時の通信断時間の計測のために利用できそうです。
ネットワークテストでもポリシーテストと同様にテストシナリオを作成します。
NEEDLEWORK の何が良いか
- 環境構築としては、ファイアウォールと NEEDLEWORK を接続するだけで良い
- 冗長構成の場合は L2 スイッチの簡単な Vlan 設定有
- テスト実行時間が短い
- 通信数約 200 の場合で数秒程度
- テスト結果が一覧で確認できる
- エビデンスの取得が楽
- テストのやり直しが秒でできる
- ファイアウォールの設定チューニング後など
環境構築がほとんどいらないのと、テストやり直しが即実行・即完了できるというのが特に有用かなと思います。
NEEDLEWORK 無しでテストしていた場合、テストのやり直しはそう気軽にできるものではありません。
少し手間がかかるところ
- テストシナリオの作成
- 難しさはないが、テスト対象通信の数が多いとその分作成に時間を要する
- NAT 含めて通信内容の整理が必要
ライセンスタイプと価格
NEEDLEWORK はライセンス制となっていて、永続ライセンスと月額ライセンスの 2 タイプがあります。
詳しくは以下の公式ページを確認してください。
https://www.ap-com.co.jp/ja/needlework/features.html#price
気軽には手を出せそうにありませんが、ファイアウォール案件を数多く扱っている組織においては有用なのではないかと思います。
費用を無視した場合、エンジニアとしては非常に魅力的な製品だと思います。
今後のポリシーテストの形態が変わる可能性も?
この業界において NEEDLEWORK は革新的であり、間違いなく有用な製品だと思います。
今後、NEEDLEWORK が普及していった場合、ポリシーテストの形態が変わってくる可能性を感じさせます。
業界の業務効率化という観点で考えると広く普及すべき製品と考えます。
参考資料
