pcap (packet capture) とは、コンピュータネットワーク管理の分野におけるパケットスニファのためのAPIである。Unix系のシステムではpcapはlibpcapとして実装されている。Windowsではlibpcapを移植したWinPcapが使われていたが、開発が終了したためWindows Vista以降を対象としたNpcapが後継として使われている。

libpcap
開発元 The Tcpdump team
最新版
1.10.0 / 2020年12月30日 (3年前) (2020-12-30) [1]
プログラミング
言語
C、Yacclex、アセンブラ
対応OS LinuxSolarisFreeBSDNetBSDOpenBSDmacOSUnix系OS
サポート状況 開発中
種別 パケットキャプチャー用ライブラリ
ライセンス BSDライセンス
公式サイト www.tcpdump.org
テンプレートを表示
WinPcap
開発元 CACE Technologies
最新版
4.1.3 / 2013年3月8日 (11年前) (2013-03-08)
対応OS Windows
サポート状況 開発終了
種別 パケットキャプチャー用ライブラリ
ライセンス www.winpcap.org/misc/copyright.htm
公式サイト www.winpcap.org
テンプレートを表示
Npcap
開発元 the Nmap project
最新版
1.30 / 2021年4月9日 (3年前) (2021-04-09)
対応OS Windows
サポート状況 開発中
種別 パケットキャプチャー用ライブラリ
ライセンス github.com/nmap/npcap/blob/master/LICENSE
公式サイト nmap.org/npcap/
テンプレートを表示

モニタリングソフトウェアは、ネットワーク上を流れているパケットをキャプチャするためにlibpcapやWinPcapを利用することができる。さらに新しいバージョンでは、リンク層上にパケットを送り出すことや利用可能なネットワークインターフェースの一覧を取得することもできる。

libpcap/WinPcapはキャプチャしたパケットをファイルに保存したり、保存したファイルから読み出したりできる。つまり、アプリケーションはキャプチャしたネットワークのトラフィックをそのまま解析したり、いったん保存したトラフィックを解析することが、単一の解析プログラムだけで実現できる。libpcap/WinPcapのフォーマットで保存されたファイルは、そのフォーマットを理解するアプリケーションによって読み込める。

libpcap/WinPcapは、オープンソースや商用のネットワークツールのパケットキャプチャ・フィルタリングエンジンを提供している。これにはプロトコル・アナライザ(パケットスニファ)、ネットワークモニタ侵入検知システム、トラフィックジェネレータ、ネットワークテスターなどが含まれる。

pcap APIの実装はC言語C++で書かれており、Java.NET、さらにスクリプト言語などではたいていラッパーが利用可能である。

libpcap 編集

libpcapは元々ローレンス・バークレー研究所のNetwork Research Group内のtcpdumpの開発者によって作られた。tcpdumpの低レベルパケットキャプチャ、キャプチャファイルの読み込み・書き出しのソースコードを抜き出してライブラリにして、tcpdumpがそのライブラリにリンクするようになった。2019年現在、libpcapはtcpdump開発チームであるtcpdump.orgグループによって開発されている。

WinPcap 編集

トリノ工科大学のプログラマーがオリジナルのソースコードを書いた。2008年に、WinPcapの開発者らによってCACE Technologiesという企業が設立され、WinPcapの開発・維持を行っていたが、2018年9月15日に今後アップグレードする計画はないこと、バグ、質問の受付など行わないことをアナウンスし、実質的な開発終了を宣言した。

Npcap 編集

NpcapはWinPcapのNDIS6対応版としてGoogle Summer of Codeにおいて2013年から2015年にかけてYang Luoによって開発され、現在はNmapプロジェクトで開発が続けられている。

  • NDIS6の軽量フィルター(LWF)ドライバー(Windows XP、Server 2003はサポート対象から外された)。
  • インストールの際に「WinPcap互換モード」を選択した場合、既存のWinPcapを置き換える。選択しなかった場合、WinPcapとNpcapが共存できるようWinPcapとは異なるインストール先とサービス名となる。

libpcapを利用しているアプリケーション 編集

  • tcpdump 解析用のパケットをキャプチャ・ダンプするツール。Windows版はWinDump。
  • ngrep, (network grep) パケット内の文字列を分離し、人に読みやすい形でパケットを出力する。
  • Wireshark (元Ethereal) グラフィカルなパケットキャプチャ・解析ツール
  • Snort 侵入検知システム
  • ssldump SSLv3/TLSアナライザ SSLレコードを解読し出力する。
  • Nmap ポートスキャンTCP/IPスタック特徴分析英語版用のツール
  • Bro 侵入検知システムとネットワークモニタリングのプラットフォーム
  • justniffer tcp/httpのパケットスニファ "標準的な"(Webサーバー様の)、あるいはカスタマイズしたネットワークトラフィックのログを取得できる。
  • URL Snooper 音声や動画ファイルのURLを発見し、保存することができる。
  • Kismet IEEE 802.11無線LAN向け
  • L0phtCrack パスワード監査とパスワード回復を行うアプリケーション
  • NetworkMiner 転送されたファイルの抽出とOSの特定を行うネットワークフォレンジックツール
  • Xplico オープンソースのネットワークフォレンジックツール解析ツール
  • iftop 帯域の使用状況を表示するツール (topのネットワークトラフィック版)
  • EtherApe グラフィカルなトラフィックモニタリングと帯域の使用状況の表示をリアルタイムに行うツール
  • Bit-Twist libpcapベースのパケットジェネレータ・エディタ BSD、Linux、Windows向け。

libpcapファイルフォーマットをサポートするアプリケーション 編集

libpcapラッパー 編集

脚注 編集

  1. ^ TCPDUMP/LIBPCAP public repository”. 2021年1月5日閲覧。