Windows / macOS / Linux で「どのアプリが、どこへ通信しているか」をリアルタイムに可視化し、ワンクリックでブロックできるオープンソースのアプリケーションファイアウォール「Snitch」を開発しました。Little Snitch (macOS) や LuLu に相当する機能を、クロスプラットフォーム・完全ローカル処理・AGPL-3.0 で提供します。
リポジトリ: https://github.com/aixisstudio/Snitch
サイト: https://aixisstudio.github.io/Snitch/
できること
- 全通信の可視化:アウトバウンド接続をプロセス単位でリアルタイム表示(宛先ホスト・国・ASN・プロセス名、世界地図+ノードグラフ)
- ワンクリック・ブロッキング:eBPF / NFQUEUE / nftables / Windows WFP によるプロセス単位のファイアウォール。初回接続時に許可を問い合わせるモードも搭載
- 脅威検知:Sigma互換ルールエンジン、オフライン脅威インテリジェンス、DGAドメイン検出、ICMPトンネル・ビーコニング検知
-
完全ローカル処理:パケットキャプチャは libpcap/Npcap。DNS、TLS SNI、GeoIP(DB-IP)の解析はすべてオンデバイス。APIは
127.0.0.1のみでトークン認証。テレメトリなし、アカウント不要 - 8言語対応:日本語を含む8言語のUI
技術的なポイント
- キャプチャは
ctypes → libpcap(WindowsではNpcap)。ScapyはGPL-2.0-onlyのため採用せず、IPv4/IPv6/TCP/UDP/DNS/TLS-SNIの小型パーサーを自前実装(すべて長さ上限つき) -
SNITCH_DEMO=1で合成トラフィックを実パイプラインに流せるため、root権限なしで試せます - サーバー向けの軽量Rustエージェント、認証付きREST/WebSocket API、SIEM出力(ECS/CEF/JSON/Syslog)、Docker/Helm/Ansible/GPOデプロイ、宣言的
snitch.toml設定にも対応
使い方
# macOS
brew install aixisstudio/tap/snitch
# その他: Windowsインストーラー、Docker、Electronはリリースページへ
フィードバック・Issue大歓迎です。⭐も励みになります。
