気軽にネットワーク機能を作ったり改造したり、気軽に色々ためしてみよう。
Do It Yourself でスイッチ, ルータ, ファイヤーウォール, nat を そのまま使ったり改造してみよう。
自分で新しい通信プロトコルや新しい攻撃防御ロジックを作ってみよう。
この NW-DIY は、ネットワーク機能を気軽に試してみるためのライブラリ群です。 「性能を追求しない」「ハード制約なし」「OS制約なし」と割り切ることで、 ハードウェアやカーネルなどの複雑な知識を前提とすることなく、スクリプトを組む 程度の軽い感覚でネットワーク機能を作ったり改造したりすることができます。
このリポジトリは現在、ruby 2.3 で実装しています。 ただし、今後ほかにも様々な言語で使えるようにしたいと考えています。
- pktcap
- pktcap はパイプやリダイレクトでパケットを処理するので、直感的に分かりやすい
- パイプやリダイレクトは双方向に流れないので、パケット往復の概念がなく、コネクション管理できない
| 必要なもの | 理由 |
|---|---|
| Linux | 実在するインターフェースからパケットを送受信するのに必要 |
| (libpcap) | (Windows からパケット送受信するために使いたい) |
| ruby | コマンドやライブラリは ruby で記述しています |
各フォルダそれぞれ下記の用途になっています。 詳細については、各フォルダの README.md をご参照ください。
- lib / NW-DIY の本体であるライブラリ群です。
- util / NW-DIY を利用した簡易的なツール群です。
- demo / プレゼン等で利用しているデモ動画を動かすためのスクリプト群です。
- spec /
rspec用のテストスクリプト群です。
ライブラリの使いかたについては、まだうまくドキュメント化できていません。 手始めに util/pinger.rb や util/repeater.rb を参照して、 なんとなくこんなもんかなというところを掴んでみてください。
Copyright (c) 2016-2017 KASHIMA Hiroaki kashima@jp.fujitsu.com 本ツールは Apache License 2.0 ライセンスで公開します。 著作権については ./LICENSE もご確認ください