Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Wiresharkとc言語による
パケット解析入門
Hiroki SHIROKURA @slankdev
国立セキュリティ・キャンプ同窓会
Wiresharkに負けない
c言語での
パケット解析ツール
開発入門
Hiroki SHIROKURA @slankdev
国立セキュリティ・キャンプ同窓会
準備
$ sudo apt install -y git wireshark
$ git clone http://github.com/slankdev/packet_asobi
セキュリティ・キャンプ
次代を担う世界に通用する若手そうの情報セキュリティ人材を発掘育成
産業,教育界を結集した講師による合宿形式の勉強会
世界トップのエンジニアや同世代の若手から刺激がもらえる
U22, 事前審査あり
城倉 弘樹 SHIROKURA Hiroki
- SNS: slankdev
- Web: http://slankdev.net
活動
- セキュリティキャンプ 2015,2016,2017 (16からチューター)
- サイボウズラボユース ...
概要
目的: ツールの使い方でなく、本質的なパケット解析方法
内容: c言語を用いたパケット操作ツールを簡単に作ってハック
前提とする知識
- 基本的なC言語の知識
- ネットワークパケットの概念(超あっさり)を把握しているとなおよし
難易度は...
なんでこんなことするの?
wiresharkに頼ればいいじゃん
いやいやSDN/NFV時代, 自分で作れてなんぼ
どんどんルータは使う時代から作る時代になります
DPDK (Data Plane Development Kit)
性能維持のためにkernelとは関わらない (もちろん連携可)
- ルータ (ex, Brocade Vyatta)
- Openflowスイッチ
2017.6時点のアカデミア...
目次
1. 基本編
a. パケットで遊んでみる, Wiresharkで見てみる
2. 実践編
a. パケット送信
b. パケット受信
c. Wiresharkよりクールな
パケットアナライザをつくる!!!
パケットで遊んでみる, Wiresharkで見てみる
$ ping slankdev.net
$ nslookup slankdev.net
$ wget slankdev.net
それぞれWiresharkでどのように見られるかを確認
nsl...
パケット遊び (予習)
準備 int fd = open_socket(“eth0”); // enp3s0とか,wlan0とかでも
送信 send_packet(fd, pack, packlen);
受信 size_t recvlen = ...
本題!
Wiresharkよりクールな
パケットアナライザをつくる!
Ethernet Frame
IPv4 Header
ARP Header
OSC2017Hokkaido
Upcoming SlideShare
Loading in …5
×

OSC2017Hokkaido

222 views

Published on

セミナー資料です

Published in: Technology
  • Be the first to comment

  • Be the first to like this

OSC2017Hokkaido

  1. 1. Wiresharkとc言語による パケット解析入門 Hiroki SHIROKURA @slankdev 国立セキュリティ・キャンプ同窓会
  2. 2. Wiresharkに負けない c言語での パケット解析ツール 開発入門 Hiroki SHIROKURA @slankdev 国立セキュリティ・キャンプ同窓会
  3. 3. 準備 $ sudo apt install -y git wireshark $ git clone http://github.com/slankdev/packet_asobi
  4. 4. セキュリティ・キャンプ 次代を担う世界に通用する若手そうの情報セキュリティ人材を発掘育成 産業,教育界を結集した講師による合宿形式の勉強会 世界トップのエンジニアや同世代の若手から刺激がもらえる U22, 事前審査あり
  5. 5. 城倉 弘樹 SHIROKURA Hiroki - SNS: slankdev - Web: http://slankdev.net 活動 - セキュリティキャンプ 2015,2016,2017 (16からチューター) - サイボウズラボユース 5th 「拡張可能なパケット解析C++ライブラリ」 - サイボウズラボユース 6th 「高性能ネットワークスタックon DPDK」 - IIJ研究所 アルバイト研究員「高性能パケット処理」 - 2017年 未踏事業 採択「環境に対して自動最適化する高性能通信基盤」 - DPDKコントリビュータ
  6. 6. 概要 目的: ツールの使い方でなく、本質的なパケット解析方法 内容: c言語を用いたパケット操作ツールを簡単に作ってハック 前提とする知識 - 基本的なC言語の知識 - ネットワークパケットの概念(超あっさり)を把握しているとなおよし 難易度は高くありません。手を動かして、感覚でみにつけるのが趣旨です!!!
  7. 7. なんでこんなことするの? wiresharkに頼ればいいじゃん いやいやSDN/NFV時代, 自分で作れてなんぼ どんどんルータは使う時代から作る時代になります
  8. 8. DPDK (Data Plane Development Kit) 性能維持のためにkernelとは関わらない (もちろん連携可) - ルータ (ex, Brocade Vyatta) - Openflowスイッチ 2017.6時点のアカデミアでの最速はBGP full route 145Gbps 特徴 - CPUの論理コアを1つのスレッドで占有 - ユーザランド上で 独自のポーリング専用NICドライバ - Hugepagesを用いた独自のメモリ管理
  9. 9. 目次 1. 基本編 a. パケットで遊んでみる, Wiresharkで見てみる 2. 実践編 a. パケット送信 b. パケット受信 c. Wiresharkよりクールな パケットアナライザをつくる!!!
  10. 10. パケットで遊んでみる, Wiresharkで見てみる $ ping slankdev.net $ nslookup slankdev.net $ wget slankdev.net それぞれWiresharkでどのように見られるかを確認 nslookupコマンド -> DNSの名前問い合わせをする wgetコマンド -> HTTPリクエストを投げる
  11. 11. パケット遊び (予習) 準備 int fd = open_socket(“eth0”); // enp3s0とか,wlan0とかでも 送信 send_packet(fd, pack, packlen); 受信 size_t recvlen = recv_packet(fd, packbuf, packbufsize); HEX表示 hexdump(pack, len);
  12. 12. 本題! Wiresharkよりクールな パケットアナライザをつくる!
  13. 13. Ethernet Frame
  14. 14. IPv4 Header
  15. 15. ARP Header

×