コンパクトパケットキャプチャ「Ethcapture」から感じたこと
(経緯)
何ヶ月か前に日本CAD社の小俣さんとお会いしました。その際に日本CAD社でコンパクトなアライアンス製品(不正接続検知システムであるIntraGuardian2(イントラガーディアンツー)や回線遅延シミュレータのEthdelay)を作っていらっしゃることを思い出し、コンパクトなパケットキャプチャが作れませんか、という相談をしたものです。
(きっかけ)
そもそもの発端はパケットキャプチャを取りたい状況があるということでした。Webアプリケーションの障害ではサーバと端末の間のどこかでキャプチャを取れば色々なことがわかることが多いです。運用をしているとやはりサーバサイドのほうがログが取りやすいのですが、取りやすいといっても稼動中のサーバにはできるだけ手を触れたくありません。何千台もの端末で同じ障害が出ているような場合ならばサーバでの解析をやる価値もあろうかと思いますが、何千台中でたった数台の障害といった場合ですと本番稼動中の端末にオペレーションを加えるリスクとそれにより得られる成果とのバランスを考えなくてはなりません。また、少ないケースではありますがクライアントが怪しくてリクエストがサーバに到達できないような障害の場合はサーバから何も知ることができません。(もちろんサーバに届いていないことを根拠にクライアントを疑うことはできますが)
もやもや1 サーバからはキャプチャしづらいこともある
(ひらめき)
そこで端末の直前でパケットキャプチャできるといいなと思いました。もちろんPCを徴発してNICを2枚差ししてLinux入れて、と手順を踏むこともできます。しかしそこにもう1つの問題がありました。
すべてのSEがノートPCにちゃちゃっとそのような設定を加えることができるとも限りません。それを引き継いでいく資料を作るのも大変です。またノートPC自身の機械的な寿命やサポート期限という問題もあります。容易にPCを持ち出すことも難しいですし、お客様環境にPCをつなぐにあたっての手続きが煩雑であるケースもあります。もし自分で端末を準備した場合、想定外の挙動をしてもすべて自力で解決しなくてはなりません。それがテスト本番で起きてしまうとつらい空気になることでしょう。Ethcaptureに限らず、自力調達ではそういったリスクがあり、購入した製品では製造元が豊富な事例から的確にサポートしてくれるという安心感があります。(もちろん自力調達してトラブルシューティングすることは大きな成長につながることなので逃げ回ってばかりいるのもいけないことですよね。>小俣さん)
もやもや2 ノートPCによるキャプチャは難しいこともある
ノートPCには色々なデータが入り得ます。もしお客様のところへの行き帰りに紛失してしまうようなことがあると大変です。WindowsのようなPCならば暗号化ソフトもありますし、どのような情報が保存されていたかを追跡するソフトもあります。しかし開発端末としてLinuxを入れて一時的に持ち出すPCにそういった対策まで施すことは難しいのではないでしょうか。そういったPCを紛失してしまった場合、「何も入っていませんでした」という「証明」を出せないかもしれません。実際にお客様に関するデータが入っていなくても「たぶん入っていないと思われます」という場合と「○○という事由により重要なデータは入っていませんし、それ以外の重要度の低いデータも取り出すのに特別な知識や技術が必要です」と説明できるのではお客様の安心感も違います。
組織的な問題として端末の在庫管理体制や出入りが厳しいような場合ですと、入ったり出たりの事務手続きも大変煩雑になります。上述の「持ち出し時に重要なデータが入っていないこと」や「持ち出し時にHDDのファイル一覧をリスト出力すること」や「ウイルスチェック」などの項目があると「Linuxなんですよー」という説明がなかなか大変なこともあります。
また、これは個人の意識の問題になりますがそのようにキャプチャにされてしまうようなノートPCというと軽くて小さくてという高性能なものでなく、古いタイプの大きくて重いPCが割り当てられてしまうことは多いでしょう。そうなると別のカバンに入れていったり、それをうっかり電車の網棚に載せて忘れたり、慣れぬタクシーに乗っていって座席に置き忘れたりという人的なミスも発生しやすくなってしまいます。というかそれ以前に私個人としてそういうものを運ぶのはイヤです。特にこの季節は汗だくになりますし。
もやもや3 ノートPCは持ち歩きたくない(無くすと怖いし重い)
お客様NWに持ち込みのPCやNW機器を接続する場合、お客様のNW環境を自社で担当している場合は楽ですが、そうでないと調整作業がとても大変になります。「まさか大丈夫だろう」という気持ちで接続をして不正接続検知装置などが働いた場合、お客様のセキュリティ担当部署に対してインシデント報告などの文書を作成して対応にあたるのはお客様になるでしょうからかなりご迷惑をおかけするのではないかと思います。かといってNW構成図をもらって接続予定図を作ってレビューしてもらって、と考えるととても大変です。
PCの設定も同様で、ソフトウェアをインストールしたり設定を変更したりということは基本的にNGという場所が増えてきているようです。ましてやちょっとこちらのHUBをお借りしますとお客様所有のNW機器にコマンドを、というのはリスクもありますし許可も難しいでしょう。
ちなみに見積りをとったこともありませんが高機能なハードウェアパケットキャプチャってすごく高いそうですね。それはそれでまた大きく重くなってしまいますしブートや設定が大変そうです。
もやもや4 NWやお客様PCは触りたくない
と、いうわけで。
そのあたりの事情を踏まえてゼロから製品を作ってもらえるとしたらどうでしょうか。その結果として生まれた(生んでもらった)のがEthcaptureです。(といっても自分は言いたい放題わがまま言っただけですが)
詳しいことは正式発売を待つとしますが、NW機器とPCの間に挟む形でキャプチャを設置し、NW機器側に一切無駄なパケットを出さず、またすべてのパケットを完全にコピーして送受信するそうです。すなわちNW側に何らかの挙動の違いを感じさせることはありません。(だからといって連絡せずにこっそり使っていいということにはならないでしょうが)
パケットキャプチャに保存されるデータはPCが送受信するパケットだけですし、事前設定した任意のIDとパスワードを知らない人はかなり苦労しないと中身を取り出すことはできないようです。不安であればその場で取り出してNW経由で送信し、キャプチャは初期化して持ち帰るということもできるでしょうし、どうしても持ち帰らないといけないということでしたらズボンやスーツのポケットにも入る大きさですので置き忘れや盗難のリスクは大きく下げられることと思います。
別に日本CAD社の回し者でもないのに長く書いたのは、システムを売るというのはどういう仕事なのか、という点につながることだからです。プログラミング組んで機器を設定して、はいおしまいということではありません。システム開発もサービス業です。お客様の企業風土文化に合わせて最適なサービスを提供すべく、より高いところを目指して努力をしなくてはなりません。
例えばWebアプリで一部の端末が障害になった場合、そのPCの設定を調べて「こちらの要件定義書に記載の環境と相違がある上、他の端末では起きていない事象なので当方は関与しない」とすることもあるでしょう。そのようにして自社の責任がないことを証明するのが一番という場合もあるでしょうが、やはりお客様としては「動く」ようにして欲しいものだと思います。そのためにはWebアプリにおいて端末サイドでのキャプチャというのはサーバサイドや中間経路上でのキャプチャと同様に有効な手段の一つでもあり、またPC持込や機器の準備という要因からやりづらい作業の1つでもあります。
そういった事情により「本当はここでお客様に満足していただく作業をしたいけれども難しい……」という現場の思いは少なくないのではないでしょうか。この機器はそういった気持ちを持った人たちを助けてあげられるんではないかな、という期待しています。
Ethcaptureはお求めやすい価格に落ち着いたようですので、準備作業の時間を圧縮して障害対応の本道に力を入れやすいのではないでしょうか。作業連絡文書の作成やキャプチャ用ノートPCの設定などに2~3日要したらすぐにEthcaptureが買えてしまいますので。