SlideShare ist ein Scribd-Unternehmen logo
1 von 41
パケット解析
ライブラリの開発
すらんく (@slankdev)
セキュリティ・キャンプ 2015 卒業生
Mar 4 2016 Security Camp Forum 1
Agenda
o パケット解析の現状
◦ パケット解析の定石
◦ パケット解析はもっとこうあるべき
o LibPGENの紹介
o LibPGENの設計
o LibPGENの使用例
Mar 4 2016 Security Camp Forum 2
はじめに
o このライブラリは現在CybozuLab株式会社様の「サイボウ
ズ・ラボユース」というプロジェクトで開発を支援していただ
いています。
o セキュリティ・キャンプ関係者の方々の意見なども参考に
させていただいています。
o この場を借りてありがとうございます。
Mar 4 2016 Security Camp Forum 3
本当は今日は….
o 去年の12月に公開したversion1について発表しようと思っ
ていたのですが…
oラボユースでの開発中にいろいろなことがありまして
Mar 4 2016 Security Camp Forum 4
サイボウズ ラボユースにて
Mar 4 2016 Security Camp Forum 5
ここの実装はどうしてこうなんですか?
こうしないとダメじゃないんですか?
ラボユース初期の開発打ち合わせにて
ここはry)
そもそもC++のソフトウェアなのにいろい
ろできていなry)
あ、そうです。なおします
はい、そこもです。
。。。。
Mar 4 2016 Security Camp Forum 6
全部設計しなおして作り直そう
ってことでまだ全て実装しきれてないです
注意!!
o 開発中のversion2.0の開発に関しての発表を行います
Mar 4 2016 Security Camp Forum 7
Agenda
o パケット解析の現状
◦ パケット解析の定石
◦ パケット解析はもっとこうあるべき
o LibPGENの紹介
o LibPGENの設計
o LibPGENの使用例
Mar 4 2016 Security Camp Forum 8
Agenda
o パケット解析の現状
◦ パケット解析の定石
◦ パケット解析はもっとこうあるべき
o LibPGENの紹介
o LibPGENの設計
o LibPGENの使用例
Mar 4 2016 Security Camp Forum 9
パケット解析の定石
o Wiresharkに頼った解析(ダメとは全く言っていない)
o ディスプレイフィルタや、豊富な情報処理機能が最高
o はっきり言って、解析しているのは人でなく鮫
Mar 4 2016 Security Camp Forum 10
おう、このパケットどうよ?
lengthがあってないでシャーク
おかしいでシャーク
このパケット解析だけでは…
o 鮫のしらないプロトコルの出現!!  ドウスル…
o パケット解析、処理能力の必要性
Mar 4 2016 Security Camp Forum 11
理想
現実
Agenda
o パケット解析の現状
◦ パケット解析の定石
◦ パケット解析はもっとこうあるべき
o LibPGENの紹介
o LibPGENの設計
o LibPGENの使用例
Mar 4 2016 Security Camp Forum 12
パケット解析はもっとこうあるべき
o 自由にプログラミングしたい。。もっと色々遊びたい
o 見るだけじゃ。。。キマらない
o パケットを作りたい、変えたい
Mar 4 2016 Security Camp Forum 13
おう、頼りにしてるけど
一人でもある程度出来るぜ
すごいでシャーク
すごいでシャーク
理想
o プログラミングしたい
o 簡単で自由自在にパケットを弄くり倒したい
Mar 4 2016 Security Camp Forum 14
パ
ケ
ッ
ト
解
析
な
ん
て
Agenda
o パケット解析の現状
◦ パケット解析の定石
◦ パケット解析はもっとこうあるべき
o LibPGENの紹介
o LibPGENの設計
o LibPGENの使用例
Mar 4 2016 Security Camp Forum 15
LibPGEN: とは
o 読み方は「りぶ ぴーじぇん」です
o C++で利用可能なパケット解析ライブラリ
oユーザが正しくパケットを作る補助などの機能あり
oもちろん好き勝手にいじくれるようにしました
Mar 4 2016 Security Camp Forum 16
LibPGEN: 概要
o 簡単なコードでパケットを弄り倒せる
o この界隈ではScapyが有名ですが、それのC++版みたいな
o パケット解析だけでなく、様々な機能を追加予定
Mar 4 2016 Security Camp Forum 17
LibPGEN: 特徴と新規性
o 新規性
◦ パケットを扱うライブラリ
◦ 既存ライブラリでは目的を重視
◦ このライブラリでは仮定を重視
◦ その方が勉強になるんじゃね
o 特徴
◦ 拡張しやすい設計に
◦ プロトコルの知識さえあれば弄り倒せる
Mar 4 2016 Security Camp Forum 18
LibPGEN: 特徴と新規性
o 有名どころのライブラリは…
o 目的重視 → アプリケーション開発などには最適
Mar 4 2016 Security Camp Forum 19
LibPGEN: 特徴と新規性
o LibPGENは…
o パケット単位でのプログラミング
o 通信に至る過程を重視 → いろんなことを学べるかもね
Mar 4 2016 Security Camp Forum 20
LibPGEN: 特徴と新規性
o 現在対応のプロトコル (version1では)
◦ Ethernet, ARP, IP, ICMP, TCP, UDP
o これ以外のプロトコルは拡張が容易な設計に(後述)
Mar 4 2016 Security Camp Forum 21
LibPGEN: 今後の展開
o 様々なプロトコルをサポート?
Mar 4 2016 Security Camp Forum 22
Agenda
o パケット解析の現状
◦ パケット解析の定石
◦ パケット解析はもっとこうあるべき
o LibPGENの紹介
o LibPGENの設計
o LibPGENの使用例
Mar 4 2016 Security Camp Forum 23
アーキテクチャ
Mar 4 2016 Security Camp Forum 24
IO Controller
Address Controller
Module
Packet Controller
3つのコンポーネントに分割
o IO Controller
◦ データの入出力を担当
◦ ネットワークインターフェースに送受信
◦ PCAP, PCAPNGファイルに書き込み
o Address Controller
◦ アドレス処理などを担当
◦ 文字列からアドレスなど
o Packet Controller
◦ 様々なプロトコルのパケットを解析、作成などを担当
o Module
◦ 上の三つを使って書かれたモジュール群
Mar 4 2016 Security Camp Forum 25
Packet, Address Controller
o パケットやアドレスのバイナリの生成や、解析などを行う
o 簡単なインターフェースでパケットのデータを編集などを
可能にします
o 例えばARPパケットならこんな感じ
Mar 4 2016 Security Camp Forum 26
Packet, Address class
o Packet class
◦ 各プロトコルに対応したパケットクラスがある
◦ TCPパケットなら pgen::tcp クラス
◦ (まだないけど) HTTPパケットなら pgen::http クラス
o Address class
◦ MACアドレスとIPアドレスがある
◦ pgen::macaddress クラス
◦ pgen::ipaddressクラス
Mar 4 2016 Security Camp Forum 27
IO Controller
o データの入出力を管理するクラス
◦ ネットワークインターフェース
◦ pcapファイル
◦ pcapNgファイル
o 既存のstreamクラスと使い方は全く一緒
o 以下以外の方法もあります
Mar 4 2016 Security Camp Forum 28
実装について
o 初めてC++での開発っぽいものをしたので
僕にはかなりむずかしいです (もやし)
Mar 4 2016 Security Camp Forum 29
ユーザのミスを知らせる
o 標準ではおかしいパケットを作成できないように
ユーザをある程度束縛
o プロトコルごとで依存しあう要素などがけっこうある
Mar 4 2016 Security Camp Forum 30
ユーザのミスを知らせる
Mar 4 2016 Security Camp Forum 31
o lengthに問題がある場合
◦ こんな感じに依存しあう値があると…
o 実装は…
◦ 高レイヤのフィールドから設定させる
(カプセル化の基本)
◦ パケット通信の基本どうりに作るぜ
E
T
H
I
P
U
D
P
D
a
t
a
データ長
UDPlength
IPtotallength
パケット長
拡張しやすい設計の可能性
o 新規プロトコルへの拡張を簡単に出来るようにしました
o プロトコルの拡張方法
◦ 新たなパケットクラスを実装するだけ
Mar 4 2016 Security Camp Forum 32
新規プロトコルに拡張するには
o パケットに関するクラスのナカミ (一部)
o pgen::packetクラスを継承するだけ
o pgen::packetクラスの仮装関数を実装するだけ
◦ compile() パケットのバイナリを生成
◦ analyze() バイナリをパケットとして解析
◦ summary() 情報出力
Mar 4 2016 Security Camp Forum 33
本当の
やるだけ
Agenda
o パケット解析の現状
◦ パケット解析の定石
◦ パケット解析はもっとこうあるべき
o LibPGENの紹介
o LibPGENの設計
o LibPGENの使用例
Mar 4 2016 Security Camp Forum 34
鮫ができないFollow ICMP Stream
o 現実的なメリットとかは気にせず Let’s パケット解析
o WiresharkのFollow TCP Streamは最高にクール
でもFollow ICMP Streamはない (ある必要は別に…)
o パケット解析の遊びです
o Special Thanks: イケメンパケリスト
Mar 4 2016 Security Camp Forum 35
鮫ができないFollow ICMP Stream
o 問題
◦ icmpパケットに対して画像データを分割してデータ部に
くっつけられたパケットが与えられる
◦ そこから元の画像にもどす
◦ パケットは以下を使います
https://www.cloudshark.org/captures/97e668880ded
Mar 4 2016 Security Camp Forum 36
鮫ができないFollow ICMP Stream
Mar 4 2016 Security Camp Forum 37
鮫ができないFollow ICMP Stream
Mar 4 2016 Security Camp Forum 38
これじゃ何も
わかんないから
鮫ができないFollow ICMP Stream
Mar 4 2016 Security Camp Forum 39
こうして…
こうじゃ!!
やったぜ
More Information
oライブラリの紹介サイト
http://libpgen.org
o OSPN Press に掲載していただきました。 (version1が)
http://www.ospn.jp/press/20160209no44-useit-oss.html
o僕のブログでも情報公開します
http://blog.slankdev.net
Mar 4 2016 Security Camp Forum 40
最後に
o パケットで遊ぼう
o Thanks
my packet and friends
Mar 4 2016 Security Camp Forum 41
命
よ
り
重
い
!
パ
ケ
ッ
ト
は

Weitere ähnliche Inhalte

Was ist angesagt?

Kernel vm13lt
Kernel vm13ltKernel vm13lt
Kernel vm13ltslankdev
 
OSC2017Hokkaido
OSC2017HokkaidoOSC2017Hokkaido
OSC2017Hokkaidoslankdev
 
CSRを自動生成する!
CSRを自動生成する!CSRを自動生成する!
CSRを自動生成する!Taichi Ishitani
 
20090124shibuya Trac
20090124shibuya Trac20090124shibuya Trac
20090124shibuya TracKazuya Hirobe
 
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)hiroshi oshiba
 
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くLinuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くTetsuyuki Kobayashi
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメTetsuyuki Kobayashi
 
鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04Kenichiro MATOHARA
 
Trend Micro CTF Asia Pacific & Japan -defensive100-
Trend Micro CTF Asia Pacific & Japan -defensive100-Trend Micro CTF Asia Pacific & Japan -defensive100-
Trend Micro CTF Asia Pacific & Japan -defensive100-boropon
 
140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoon140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoonRyo ONODERA
 
MenohにおけるC++実装 / C API / C++API
MenohにおけるC++実装 / C API / C++APIMenohにおけるC++実装 / C API / C++API
MenohにおけるC++実装 / C API / C++APIShintarou Okada
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版Katsuhiro Morishita
 
SECCON2014 crypt200
SECCON2014 crypt200SECCON2014 crypt200
SECCON2014 crypt200boropon
 
2016 summercamp 効率よいRTシステム運用法
2016 summercamp 効率よいRTシステム運用法2016 summercamp 効率よいRTシステム運用法
2016 summercamp 効率よいRTシステム運用法openrtm
 
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07Jun Omae
 

Was ist angesagt? (20)

Kernel vm13lt
Kernel vm13ltKernel vm13lt
Kernel vm13lt
 
OSC2017Hokkaido
OSC2017HokkaidoOSC2017Hokkaido
OSC2017Hokkaido
 
CSRを自動生成する!
CSRを自動生成する!CSRを自動生成する!
CSRを自動生成する!
 
20090124shibuya Trac
20090124shibuya Trac20090124shibuya Trac
20090124shibuya Trac
 
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
 
RgGen ご紹介
RgGen ご紹介RgGen ご紹介
RgGen ご紹介
 
Mishimasyk 3 20140705
Mishimasyk 3 20140705Mishimasyk 3 20140705
Mishimasyk 3 20140705
 
Rdkitの紹介
Rdkitの紹介Rdkitの紹介
Rdkitの紹介
 
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くLinuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書く
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
 
Mishimasyk6 iwatobipen
Mishimasyk6 iwatobipenMishimasyk6 iwatobipen
Mishimasyk6 iwatobipen
 
鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04
 
Trend Micro CTF Asia Pacific & Japan -defensive100-
Trend Micro CTF Asia Pacific & Japan -defensive100-Trend Micro CTF Asia Pacific & Japan -defensive100-
Trend Micro CTF Asia Pacific & Japan -defensive100-
 
140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoon140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoon
 
MenohにおけるC++実装 / C API / C++API
MenohにおけるC++実装 / C API / C++APIMenohにおけるC++実装 / C API / C++API
MenohにおけるC++実装 / C API / C++API
 
Turnip
TurnipTurnip
Turnip
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
 
SECCON2014 crypt200
SECCON2014 crypt200SECCON2014 crypt200
SECCON2014 crypt200
 
2016 summercamp 効率よいRTシステム運用法
2016 summercamp 効率よいRTシステム運用法2016 summercamp 効率よいRTシステム運用法
2016 summercamp 効率よいRTシステム運用法
 
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
 

Ähnlich wie Seurity Camp Award 2016

Pythonでパケット解析
Pythonでパケット解析Pythonでパケット解析
Pythonでパケット解析euphoricwavism
 
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月VirtualTech Japan Inc.
 
自分的pkgsrcの課題
自分的pkgsrcの課題自分的pkgsrcの課題
自分的pkgsrcの課題Ryo ONODERA
 
How to deploy & operate OpenStack Production
How to deploy & operate OpenStack ProductionHow to deploy & operate OpenStack Production
How to deploy & operate OpenStack ProductionVirtualTech Japan Inc.
 
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜Akira Nakagawa
 
OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編Hideki Saito
 
OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門irix_jp
 
OpenStack Summit in Atlanta 参加報告
OpenStack Summit in Atlanta 参加報告OpenStack Summit in Atlanta 参加報告
OpenStack Summit in Atlanta 参加報告Akira Yoshiyama
 
Lagopus performance
Lagopus performanceLagopus performance
Lagopus performanceMasaru Oki
 
さくらのナレッジの運営から見えるもの
さくらのナレッジの運営から見えるものさくらのナレッジの運営から見えるもの
さくらのナレッジの運営から見えるもの法林浩之
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみてKota Mizushima
 
Sbtのマルチプロジェクトはいいぞ
SbtのマルチプロジェクトはいいぞSbtのマルチプロジェクトはいいぞ
SbtのマルチプロジェクトはいいぞYoshitaka Fujii
 
Open stack+lagopus できるかな
Open stack+lagopus できるかなOpen stack+lagopus できるかな
Open stack+lagopus できるかなMasaru Oki
 
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-LINE Corp.
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識Katsuhiro Morishita
 

Ähnlich wie Seurity Camp Award 2016 (20)

Pythonでパケット解析
Pythonでパケット解析Pythonでパケット解析
Pythonでパケット解析
 
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
 
Osoljp201210 oi swift
Osoljp201210 oi swiftOsoljp201210 oi swift
Osoljp201210 oi swift
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
自分的pkgsrcの課題
自分的pkgsrcの課題自分的pkgsrcの課題
自分的pkgsrcの課題
 
How to deploy & operate OpenStack Production
How to deploy & operate OpenStack ProductionHow to deploy & operate OpenStack Production
How to deploy & operate OpenStack Production
 
統計解析ソフトR
統計解析ソフトR統計解析ソフトR
統計解析ソフトR
 
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
 
OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編OpenStack Osloを使おう - cliff編
OpenStack Osloを使おう - cliff編
 
OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門
 
OpenStack Summit in Atlanta 参加報告
OpenStack Summit in Atlanta 参加報告OpenStack Summit in Atlanta 参加報告
OpenStack Summit in Atlanta 参加報告
 
Lagopus performance
Lagopus performanceLagopus performance
Lagopus performance
 
さくらのナレッジの運営から見えるもの
さくらのナレッジの運営から見えるものさくらのナレッジの運営から見えるもの
さくらのナレッジの運営から見えるもの
 
JJUG CCC 2014 ATL
JJUG CCC 2014 ATLJJUG CCC 2014 ATL
JJUG CCC 2014 ATL
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみて
 
Sbtのマルチプロジェクトはいいぞ
SbtのマルチプロジェクトはいいぞSbtのマルチプロジェクトはいいぞ
Sbtのマルチプロジェクトはいいぞ
 
Open stack+lagopus できるかな
Open stack+lagopus できるかなOpen stack+lagopus できるかな
Open stack+lagopus できるかな
 
OpenStack Now!
OpenStack Now!OpenStack Now!
OpenStack Now!
 
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
 

Seurity Camp Award 2016