Submit Search
Upload
Seccamp 2016 チューター成果報告
•
7 likes
•
3,099 views
slankdev
Follow
セキュキャンチューター成果報告発表資料です。
Read less
Read more
Internet
Report
Share
Report
Share
1 of 28
Download now
Download to read offline
Recommended
サイボウズ・ラボユース中間報告会
サイボウズ・ラボユース中間報告会
slankdev
OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料
slankdev
libpgenでパケット操作
libpgenでパケット操作
slankdev
Seurity Camp Award 2016
Seurity Camp Award 2016
slankdev
LibPGEN 1st Step Guide
LibPGEN 1st Step Guide
slankdev
Kernel vm13lt
Kernel vm13lt
slankdev
OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料
slankdev
OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT
slankdev
Recommended
サイボウズ・ラボユース中間報告会
サイボウズ・ラボユース中間報告会
slankdev
OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料
slankdev
libpgenでパケット操作
libpgenでパケット操作
slankdev
Seurity Camp Award 2016
Seurity Camp Award 2016
slankdev
LibPGEN 1st Step Guide
LibPGEN 1st Step Guide
slankdev
Kernel vm13lt
Kernel vm13lt
slankdev
OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料
slankdev
OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT
slankdev
OSC2017Hokkaido
OSC2017Hokkaido
slankdev
Mishimasyk 3 20140705
Mishimasyk 3 20140705
Takayuki Serizawa
Rdkitの紹介
Rdkitの紹介
Takayuki Serizawa
Mishimasyk6 iwatobipen
Mishimasyk6 iwatobipen
Takayuki Serizawa
CSRを自動生成する!
CSRを自動生成する!
Taichi Ishitani
20090124shibuya Trac
20090124shibuya Trac
Kazuya Hirobe
Pcapngを読んでみる
Pcapngを読んでみる
Yagi Shinnosuke
鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04
Kenichiro MATOHARA
ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編
Daisuke Shimada
20180623 第5回python勉強会@仙台 発表資料
20180623 第5回python勉強会@仙台 発表資料
Hiroshi Onodera
RgGen ご紹介
RgGen ご紹介
Taichi Ishitani
Kotlin と Rxjava2
Kotlin と Rxjava2
Recruit Lifestyle Co., Ltd.
ロボットシステム学2015年第11回
ロボットシステム学2015年第11回
Ryuichi Ueda
Turnip
Turnip
Yoichi Toyota
最近のrubyのインストール方法
最近のrubyのインストール方法
Kazuhiro Nishiyama
ロボットシステム学2015年第12回
ロボットシステム学2015年第12回
Ryuichi Ueda
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
Ryuichi Ueda
Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2
Yuji Takayama
ニコニコ生放送のタイムシフトを無料で保存する方法
ニコニコ生放送のタイムシフトを無料で保存する方法
tani-page
ニコニコ生放送のタイムシフトを無料で保存する方法
ニコニコ生放送のタイムシフトを無料で保存する方法
tani-page
インフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccamp
Masahiro NAKAYAMA
ID連携入門 (実習編) - Security Camp 2016
ID連携入門 (実習編) - Security Camp 2016
Nov Matake
More Related Content
What's hot
OSC2017Hokkaido
OSC2017Hokkaido
slankdev
Mishimasyk 3 20140705
Mishimasyk 3 20140705
Takayuki Serizawa
Rdkitの紹介
Rdkitの紹介
Takayuki Serizawa
Mishimasyk6 iwatobipen
Mishimasyk6 iwatobipen
Takayuki Serizawa
CSRを自動生成する!
CSRを自動生成する!
Taichi Ishitani
20090124shibuya Trac
20090124shibuya Trac
Kazuya Hirobe
Pcapngを読んでみる
Pcapngを読んでみる
Yagi Shinnosuke
鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04
Kenichiro MATOHARA
ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編
Daisuke Shimada
20180623 第5回python勉強会@仙台 発表資料
20180623 第5回python勉強会@仙台 発表資料
Hiroshi Onodera
RgGen ご紹介
RgGen ご紹介
Taichi Ishitani
Kotlin と Rxjava2
Kotlin と Rxjava2
Recruit Lifestyle Co., Ltd.
ロボットシステム学2015年第11回
ロボットシステム学2015年第11回
Ryuichi Ueda
Turnip
Turnip
Yoichi Toyota
最近のrubyのインストール方法
最近のrubyのインストール方法
Kazuhiro Nishiyama
ロボットシステム学2015年第12回
ロボットシステム学2015年第12回
Ryuichi Ueda
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
Ryuichi Ueda
Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2
Yuji Takayama
ニコニコ生放送のタイムシフトを無料で保存する方法
ニコニコ生放送のタイムシフトを無料で保存する方法
tani-page
ニコニコ生放送のタイムシフトを無料で保存する方法
ニコニコ生放送のタイムシフトを無料で保存する方法
tani-page
What's hot
(20)
OSC2017Hokkaido
OSC2017Hokkaido
Mishimasyk 3 20140705
Mishimasyk 3 20140705
Rdkitの紹介
Rdkitの紹介
Mishimasyk6 iwatobipen
Mishimasyk6 iwatobipen
CSRを自動生成する!
CSRを自動生成する!
20090124shibuya Trac
20090124shibuya Trac
Pcapngを読んでみる
Pcapngを読んでみる
鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04
ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編
20180623 第5回python勉強会@仙台 発表資料
20180623 第5回python勉強会@仙台 発表資料
RgGen ご紹介
RgGen ご紹介
Kotlin と Rxjava2
Kotlin と Rxjava2
ロボットシステム学2015年第11回
ロボットシステム学2015年第11回
Turnip
Turnip
最近のrubyのインストール方法
最近のrubyのインストール方法
ロボットシステム学2015年第12回
ロボットシステム学2015年第12回
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2
ニコニコ生放送のタイムシフトを無料で保存する方法
ニコニコ生放送のタイムシフトを無料で保存する方法
ニコニコ生放送のタイムシフトを無料で保存する方法
ニコニコ生放送のタイムシフトを無料で保存する方法
Viewers also liked
インフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccamp
Masahiro NAKAYAMA
ID連携入門 (実習編) - Security Camp 2016
ID連携入門 (実習編) - Security Camp 2016
Nov Matake
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Core
slankdev
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
Masahiro NAKAYAMA
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
Masahiro NAKAYAMA
SSL/TLSの基礎と最新動向
SSL/TLSの基礎と最新動向
shigeki_ohtsu
Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話
slankdev
20160906 pplss ishizaki public
20160906 pplss ishizaki public
Kazuaki Ishizaki
Webプラットフォームのセキュリティ
Webプラットフォームのセキュリティ
Muneaki Nishimura
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
slankdev
サイボウズ・ラボ成果発表会
サイボウズ・ラボ成果発表会
Komei Kamiya
HTTP/2, QUIC入門
HTTP/2, QUIC入門
shigeki_ohtsu
セキュリティ・キャンプ参加してみた #ssmjp #seccamp
セキュリティ・キャンプ参加してみた #ssmjp #seccamp
Masahiro NAKAYAMA
SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「バグハンティング入門」
Masato Kinugawa
これからのWebセキュリティ フロントエンド編 #seccamp
これからのWebセキュリティ フロントエンド編 #seccamp
Kyo Ago
開発者を支える生産性向上チームの取り組み -CI, Browser Test, Tools and Infrastructure-
開発者を支える生産性向上チームの取り組み -CI, Browser Test, Tools and Infrastructure-
Jumpei Miyata
Java仮想マシンの実装技術
Java仮想マシンの実装技術
Kiyokuni Kawachiya
強化学習その2
強化学習その2
nishio
JavaScript難読化読経
JavaScript難読化読経
Yosuke HASEGAWA
DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発
slankdev
Viewers also liked
(20)
インフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccamp
ID連携入門 (実習編) - Security Camp 2016
ID連携入門 (実習編) - Security Camp 2016
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Core
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
SSL/TLSの基礎と最新動向
SSL/TLSの基礎と最新動向
Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話
20160906 pplss ishizaki public
20160906 pplss ishizaki public
Webプラットフォームのセキュリティ
Webプラットフォームのセキュリティ
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
サイボウズ・ラボ成果発表会
サイボウズ・ラボ成果発表会
HTTP/2, QUIC入門
HTTP/2, QUIC入門
セキュリティ・キャンプ参加してみた #ssmjp #seccamp
セキュリティ・キャンプ参加してみた #ssmjp #seccamp
SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「バグハンティング入門」
これからのWebセキュリティ フロントエンド編 #seccamp
これからのWebセキュリティ フロントエンド編 #seccamp
開発者を支える生産性向上チームの取り組み -CI, Browser Test, Tools and Infrastructure-
開発者を支える生産性向上チームの取り組み -CI, Browser Test, Tools and Infrastructure-
Java仮想マシンの実装技術
Java仮想マシンの実装技術
強化学習その2
強化学習その2
JavaScript難読化読経
JavaScript難読化読経
DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発
Similar to Seccamp 2016 チューター成果報告
S15 t0 introduction
S15 t0 introduction
Takeshi Akutsu
JAWS FESTA 東海道 2016 ブロックチェーンとは何なのか?
JAWS FESTA 東海道 2016 ブロックチェーンとは何なのか?
shigeyuki azuchi
197x Timer with Your Messages
197x Timer with Your Messages
Kuniaki Igarashi
S18 t0 introduction
S18 t0 introduction
Takeshi Akutsu
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
Shinya Takamaeda-Y
objc2swift (自動変換の野望)
objc2swift (自動変換の野望)
Taketo Sano
OSC Nagoya NETMF 160528
OSC Nagoya NETMF 160528
Atomu Hidaka
20180312 IPv6 summit-sapporo
20180312 IPv6 summit-sapporo
Akira Nakagawa
S14 t0 introduction
S14 t0 introduction
Takeshi Akutsu
S13 t0 introduction
S13 t0 introduction
Takeshi Akutsu
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Jun Omae
160608 01
160608 01
openrtm
20060520.tcp
20060520.tcp
Ken SASAKI
Security.gs fes 2010 in tokyo
Security.gs fes 2010 in tokyo
Ren Sakamoto
20161001 Sakura IoT Platform Alpha
20161001 Sakura IoT Platform Alpha
Kenichi Ohwada
MATLABの3Dプロットを簡単にする
MATLABの3Dプロットを簡単にする
Teng Tokoro
objc2swift (続・自動変換の野望)
objc2swift (続・自動変換の野望)
Taketo Sano
SDSoC でストリーム
SDSoC でストリーム
ryos36
ブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみた
mganeko
IPv6 を始めてみた
IPv6 を始めてみた
miki koganei
Similar to Seccamp 2016 チューター成果報告
(20)
S15 t0 introduction
S15 t0 introduction
JAWS FESTA 東海道 2016 ブロックチェーンとは何なのか?
JAWS FESTA 東海道 2016 ブロックチェーンとは何なのか?
197x Timer with Your Messages
197x Timer with Your Messages
S18 t0 introduction
S18 t0 introduction
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
objc2swift (自動変換の野望)
objc2swift (自動変換の野望)
OSC Nagoya NETMF 160528
OSC Nagoya NETMF 160528
20180312 IPv6 summit-sapporo
20180312 IPv6 summit-sapporo
S14 t0 introduction
S14 t0 introduction
S13 t0 introduction
S13 t0 introduction
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
160608 01
160608 01
20060520.tcp
20060520.tcp
Security.gs fes 2010 in tokyo
Security.gs fes 2010 in tokyo
20161001 Sakura IoT Platform Alpha
20161001 Sakura IoT Platform Alpha
MATLABの3Dプロットを簡単にする
MATLABの3Dプロットを簡単にする
objc2swift (続・自動変換の野望)
objc2swift (続・自動変換の野望)
SDSoC でストリーム
SDSoC でストリーム
ブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみた
IPv6 を始めてみた
IPv6 を始めてみた
Seccamp 2016 チューター成果報告
1.
プロトコルスタック自作で学ぶ OSのNW処理実装と 高速パケット処理 @slankdev IoTトラックチューター 2016.8 seccamp2016 1
2.
自己紹介 oすらんくでぶ (slankdev) ◦ Twitterとか: slankdev ◦ 学部
3年 ◦ サイボウズ・ラボユース 第5,6期生 ◦ 2015キャンプ修了生 oパケットの世界から一歩一歩レイヤを下げて生活 oタイヤを再発明するのがとっても得意 2016.8 seccamp2016 2
3.
2016.8 seccamp2016 3 ARPパケット ってc言語で 送れる? 大学入学時
4.
2016.8 seccamp2016 4 ARPパケット ってc言語で 送れる? パケット解析 ライブラリを C++で 大学入学時
5.
2016.8 seccamp2016 5 ARPパケット ってc言語で 送れる? パケット解析 ライブラリを C++で 大学入学時 自分でプロトコルス タック実装して オレオレネットワーク するんじゃ
6.
2016.8 seccamp2016 6 ARPパケット ってc言語で 送れる? パケット解析 ライブラリを C++で 大学入学時 自分でプロトコルス タック実装して オレオレネットワーク するんじゃ 現在
7.
Agenda 1. なぜプロトコルスタック開発なのか 2. 開発物の概要 3.
開発の流れ、出来事、知見、現状 4. 今後の展望 細かく説明する時間がないので、 気になった方は直接お話を!!! 2016.8 seccamp2016 7
8.
なぜプロトコルスタック o昨年度はパケット解析ツール oパケット屋さんになるはずが… oLinuxカーネルのプロトコルスタックは遅い o研究に使いたい(夢) oオレオレ物が大好き o高速化など今の僕にはいい勉強になる oサイボウズラボユース 2016.8 seccamp2016 8
9.
パケット処理高速化の手法 oLRO (Large Receive Offload) ◦ デフラグメントをHW処理 oLSO (Large Segment Offload) ◦
フラグメントをHW処理 oチェックサムをOffloading 2016.8 seccamp2016 9
10.
パケット処理高速化の手法 oLRO (Large Receive Offload) ◦ デフラグメントをHW処理 oLSO (Large Segment Offload) ◦
フラグメントをHW処理 oチェックサムをOffloading 2016.8 seccamp2016 10
11.
Segmentation Offloadとの出会い oNICに癖があってルータ自作で死んだことがあって oreadでLROされてるけど、 owriteでLSOされないから 2016.8 seccamp2016
11
12.
プロトコルスタック開発概要 o名前 stcp (slankdev’s
tcp/ip) -> 名前未定 ohttp://github.com/slankdev/stcp oユーザランドで動作 o極力ゼロコピー oマルチインターフェースをサポート oIOエンジンはDPDKを使用 oC++11で開発 2016.8 seccamp2016 12
13.
開発手法 oBSD, Linuxから勉強 oC++でまとめる oDPDKを使いこなす o読書->ソース確認->実装->テスト->読書->… o開発にかける時間の9割が読書とソースリード 2016.8 seccamp2016 13
14.
情報収集の方法 oBSDの黄色い本 oBSD >>> Linux o動的解析はLinuxでSystemTap oBSD版のSystemTapみたいなの あれば教えてください 2016.8 seccamp2016 14
15.
DPDK (Data Plane Development Kit) o (ほぼIntelNICのみサポート) ユーザランド高速パケットIOドライバ oカーネル処理より相当早い 2016.8 seccamp2016
15
16.
STCPの設計 (理想) 2016.8 seccamp2016
16
17.
STCPの設計 (現実) 2016.8 seccamp2016
17
18.
パケットの管理 ombufを使用して実装 (Linuxだとskb) -> DPDKにもmbuf相当のものがあるよ! o線形リストになっている oパケットの先頭や末尾にデータを追加、消去しやすいデー タ構造 o参照数とかのカウントや受信ポート情報とかの情報も持つ 2016.8 seccamp2016
18
19.
mbufとは 2016.8 seccamp2016 19
20.
ただのNWプログラミングだと ouint8_t [1600]みたいなのに先頭から詰める のがよくある oでも先頭にヘッダを追加したりしたい時は? oいちいちコピーし直さないといけない!! 2016.8 seccamp2016 20 パ ケ ッ ト
21.
典型的なmbufの例 2016.8 seccamp2016 21
22.
各プロトコル間やデバイスの管理 2016.8 seccamp2016 22
23.
「C++でまとめる」..とは o伝統 -> リンクリスト o今回 -> Vector oリサイズでメモリ解放してくれなかったりもっといい手法が あるかもだけどとりあえずこれで oなるべくシンプルにすることが目標 2016.8
seccamp2016 23
24.
ゼロコピーを実現 o各プロトコルモジュール間のデータ移動は線形リスト oパケット管理は DPDKがある程度束縛するのでSTLと相性悪い 2016.8 seccamp2016 24 私 DPDK C++11
25.
現状 oARP処理部分まで o現状では完全ゼロコピー oDPDKのチューニングとかで パフォーマンスは変わりそう o現在はDPDKのラップとか設 計ばかり 2016.8 seccamp2016 25
26.
今後の展望 o組み替えたりチューニングしやすいように oAPIの提供 oデータプレーンを変えられる -> 別HW…? 2016.8 seccamp2016
26
27.
感想 oさらに知りたいことがたくさん見つかる o昔は(使いやすい?)車輪を。今度は早くする工夫を oパケット処理の高速化はたくさん方法がある ◦ 処理を早くする ◦ オフローディング ◦
メモリアクセスを賢く ◦ etc.. oどんどんレイヤが下がる一方 2016.8 seccamp2016 27
28.
2016.8 seccamp2016 28 aabb
ccdd eeff 0011 2233 4455 0800 4500 2800 0001 0000 4006 b9a2 c0a8 b302 c0a8 6501 3039 3039 0000 0000 0000 0000 5001 2000 961c 0000 ありがとうございました サイボウズ・ラボユース
Download now