研究開発部 システム&セキュリティ担当の松倉です。
ネットワークのトラブルシューティングにおいてパケットキャプチャは強力で、弊社のつよつよエンジニアも「困ったらパケットを見ろ」と言うほどです。

また、インターネットが当たり前に普及している現代においてはサイバー攻撃もネットワーク経由で来ることが多く、パケット解析は我々セキュリティエンジニアにとって重要なスキルセットの一つと言えます。
パケット解析ツールといえば Wireshark が非常に有名でデファクトスタンダードと言えると思いますが、そんな Wireshark 誕生から 27 年の時が経ち、発展版?ともいえる Stratoshark というツールが発表されました。
これは気になる!ということで百聞は一見に如かず、どんなツールなのか触ってみました。
Stratoshark の概要
Stratoshark は Sysdig 社が 2025 年 1 月 22 日に発表したオープンソースツールです。Sysdig は "Wireshark for the Cloud" とうたっており、Wireshark のネットワーク解析機能と Falco のランタイムセキュリティ機能を融合しクラウドネイティブ環境に特化したセキュリティ監視手法を提供するツールとされています。
Stratoshark 登場の背景には、アプリケーション開発環境の進化とクラウドワークロードの利用増加が関係しています。
クラウド移行の加速に伴い、オンプレ環境で利用されてきた Wireshark によるパケットキャプチャではクラウドワークロードの可視性が不足するケースが出てきています。特に、昨今の Web アプリ開発で利用が増えている動的コンテナ環境においては、ネットワークトラフィックのパケット解析だけでは十分な可視性を担保できず、また現代のエンドポイントセキュリティのデファクトスタンダードともいえる EDR を導入することもできません。
このコンテナにおける可視性不足の課題を解決するため Sysdig や Falco といったツールが登場しました。Sysdig や Falco は Linux のシステムコールを監視し、ルールベースで脅威となる振る舞いの検知・防御を可能とします。
Stratoshark は Sysdig や Falco が監視するシステムコールの解析をさらに拡張し、Wireshark におけるパケット解析と同等の粒度の可視性を提供するツールとなっています。Stratoshark はクロスプラットフォームに対応していますが、本記事公開時点では Windows と macOS ではネイティブシステムコールキャプチャがサポートされていないため、Linux のシステムコールのみ解析が可能です。
システムコールと SCAP ファイル
Strartoshark では SCAP (Syscall CAPture) ファイルを解析します。まずはシステムコールについて簡単に紹介します。
コンピューター上でエンドユーザーがシステムを操作する際に利用するのはアプリケーションです。アプリケーションは「ファイルを操作する」「ネットワークに接続する」などの機能を提供しますが、こうした基本的な機能は個々のアプリケーションが独自に実装しているわけではなく、OS が提供しています。各アプリケーションは、必要に応じて OS の機能を利用することで、ユーザーに求められる動作を実現しています。
ただし、アプリケーションは直接 OS に対して「ファイルを開く」といった命令を出すわけではありません。代わりに、OS のカーネルに対して適切なリクエストを送り、カーネルが実際の処理を行うよう要求します。この仕組みをシステムコール (System Call)と呼びます。

SCAP ファイルは、システムコールについて Wireshark でよく使われる PCAP フォーマットと同等の運用ができるように設計されています。これにより、Stratoshark では Wireshark で慣れ親しまれた UI に沿ってシステムコールの解析ができるようになっています。
Linux においては、Sysdig を使ってシステムコールをキャプチャし SCAP ファイルを作成することができます。
Stratoshark の機能を探索
Stratoshark の Wiki ページから SCAP のサンプルを入手できるので、HAProxy 502 error のキャプチャを見てみました。
画面構成

3 ペインで雰囲気は Wireshark にそっくりですね!設定画面を見比べても(設定値レベルでは違いがありますが)全く同じ項目が並んでいます。

それもそのはずで、Stratoshark は Wireshark ビルド時にシステムコール解析機能を持つようカスタマイズされたものとなっています。中身はほぼ Wireshark なんですね。
当然ですが相互に互換性があり、Stratoshark で PCAP ファイルを読むこともできますし、Wireshark で SCAP ファイルを読むこともできます(メリットはほぼありません)。
画面紹介に戻りますが、上部ペインはシステムコールの一覧です。

デフォルトでイベント毎に色分けがされているため、同一イベントは見つけやすくなっています。
ただし、システムコールのイベント数は非常に多いため、ざっと眺めて何かを探そうとするのはあまり現実的ではありません。後述するフィルタ機能をうまく活用するのが良いでしょう。
左下のペインはシステムコールの詳細で、イベントやプロセスの情報を見ることができます。親プロセスをたどっていけるのはいいですね。
右下はイベントのデータで、該当のシステムコールにおける会話内容が表示されます。

フィルタリング
Stratoshark のフィルタは非常に使い勝手が良く、あらゆるパラメータでフィルタをかけることができます。
例えば、root 権限で実行されているイベントだけ抽出しようと思ったらユーザー ID だけでフィルタするといったことが考えられます。
user.uid == 0
このキャプチャでは root 権限で実行しているのはほとんどが python でした。

さらにここから、ソケット接続の開始または受入だけを抽出してみます。
(user.uid == 0) && (evt.type == "accept" || evt.type == "connect")
root 権限でのソケット接続は受入のみで、開始はしていないようです。

フィルタの設定は非常に簡単で、フィルタしたいパラメータをドラッグ&ドロップするだけで適用できます。

また、よく使うフィルタ構文は設定画面からプロファイルとして登録することができ、クリックするだけで実行できます。プリセットも多数用意されており、例えば「すべてのコマンド実行」などがあります。

ストリーム追跡
Wireshark には TCP ストリームや UDP ストリームなどの一連の通信のやり取りを追跡する機能があり非常に便利ですが、Stratoshark ではこれに相当する機能として File Descriptor Stream があります。
同一のスレッド ID におけるすべてのシステムコールをアセンブルし、その会話内容を ASCII データとして追跡することができます。

パッと見 HTTP レスポンスは 200 が多いですが、502 を検索すると確かにあるので、200 の時と比較してどこで問題が起きているのか分析するのに役立ちそうです。

触ってみた感想
これまで Sysdig や Falco で監視していたシステムコールを Wireshark のような UI で扱えるようになったということで、システムコール解析の敷居が下がることが期待できそうです。実は私は今回初めてシステムコールのキャプチャを見たのですが、UI が見慣れているというだけでここまで取っつきやすいものなのだと感じました。
また、CTF の Network ジャンルでは PCAP ファイルを扱う問題はとても多いですが、Stratoshark のようなオープンソースツールができたことで SCAP ファイルの解析といった問題も今後登場するかもしれませんね。
今回は紹介していませんが、"Wireshark for the Cloud" とうたうだけあって AWS の CloudTrail ログを解析することもできるようになっています。Azure や Google Cloud など他のパブリッククラウドへの対応や、Windows や macOS のネイティブシステムコールキャプチャも今後期待されます。