Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Isao Takaesu
1,437 views
サイバーセキュリティ錬金術
ノイズから価値あるデータを生成する技術。
Software
◦
Related topics:
Cyber-Security
•
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 71
2
/ 71
3
/ 71
4
/ 71
5
/ 71
6
/ 71
7
/ 71
8
/ 71
9
/ 71
10
/ 71
11
/ 71
12
/ 71
13
/ 71
14
/ 71
15
/ 71
16
/ 71
17
/ 71
18
/ 71
19
/ 71
20
/ 71
21
/ 71
22
/ 71
23
/ 71
24
/ 71
25
/ 71
26
/ 71
27
/ 71
28
/ 71
29
/ 71
30
/ 71
31
/ 71
32
/ 71
33
/ 71
34
/ 71
35
/ 71
36
/ 71
37
/ 71
38
/ 71
39
/ 71
40
/ 71
41
/ 71
42
/ 71
43
/ 71
44
/ 71
45
/ 71
46
/ 71
47
/ 71
48
/ 71
49
/ 71
50
/ 71
51
/ 71
52
/ 71
53
/ 71
54
/ 71
55
/ 71
56
/ 71
57
/ 71
58
/ 71
59
/ 71
60
/ 71
61
/ 71
62
/ 71
63
/ 71
64
/ 71
65
/ 71
66
/ 71
67
/ 71
68
/ 71
69
/ 71
70
/ 71
71
/ 71
More Related Content
PDF
機械学習関連情報の収集方法
by
Isao Takaesu
PDF
脆弱性診断データの活用例 - Webアプリケーション診断編 -
by
Isao Takaesu
PDF
ハニーポッター技術交流会
by
Isao Takaesu
PDF
GAとGANによる検査値の自動生成
by
Isao Takaesu
PPTX
RECOMMENDER for Web security engineers - 中級編 -
by
Isao Takaesu
PDF
機械学習を使ったハッキング手法
by
Isao Takaesu
PDF
introduce "Stealing Machine Learning Models via Prediction APIs"
by
Isao Takaesu
PPTX
RECOMMENDER for Web security engineers - 初級編 -
by
Isao Takaesu
機械学習関連情報の収集方法
by
Isao Takaesu
脆弱性診断データの活用例 - Webアプリケーション診断編 -
by
Isao Takaesu
ハニーポッター技術交流会
by
Isao Takaesu
GAとGANによる検査値の自動生成
by
Isao Takaesu
RECOMMENDER for Web security engineers - 中級編 -
by
Isao Takaesu
機械学習を使ったハッキング手法
by
Isao Takaesu
introduce "Stealing Machine Learning Models via Prediction APIs"
by
Isao Takaesu
RECOMMENDER for Web security engineers - 初級編 -
by
Isao Takaesu
What's hot
PDF
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
by
Sen Ueno
PDF
Pythonと機械学習によるWebセキュリティの自動化
by
Isao Takaesu
PPTX
SecurityCamp2015「バグハンティング入門」
by
Masato Kinugawa
PDF
フリーでやろうぜ!セキュリティチェック!
by
zaki4649
PDF
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
by
Riotaro OKADA
PDF
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
by
Muneaki Nishimura
PDF
OWASPの歩き方(How to walk_the_owasp)
by
Sen Ueno
PPTX
これからのWebセキュリティ フロントエンド編 #seccamp
by
Kyo Ago
PPTX
「教養としてのサイバーセキュリティ」講座
by
Riotaro OKADA
ODP
第8回脆弱性診断入門
by
ionis111
PDF
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
by
CODE BLUE
PDF
Proxy War EPISODEⅡ
by
zaki4649
PDF
130821 owasp zed attack proxyをぶん回せ
by
Minoru Sakai
PPTX
セキュア開発の<s>3つの</s>敵
by
Riotaro OKADA
PPTX
セキュリティスキルをゲットする、たった3つの方法
by
Riotaro OKADA
PDF
アプリケーションデリバリーのバリューチェイン
by
Riotaro OKADA
PPTX
Owasp top10 HandsOn
by
masafumi masutani
PPTX
20181222 Talk about Security of Pairs without Their Permission
by
Typhon 666
PDF
Aiにwebアプリ診断をやらせてみる
by
Isao Takaesu
PDF
脆弱性検査ツールってどうよ
by
Masakazu Ikeda
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
by
Sen Ueno
Pythonと機械学習によるWebセキュリティの自動化
by
Isao Takaesu
SecurityCamp2015「バグハンティング入門」
by
Masato Kinugawa
フリーでやろうぜ!セキュリティチェック!
by
zaki4649
ビルトイン・セキュリティのススメ Dev Days 2015 Tokyo - Riotaro OKADA
by
Riotaro OKADA
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
by
Muneaki Nishimura
OWASPの歩き方(How to walk_the_owasp)
by
Sen Ueno
これからのWebセキュリティ フロントエンド編 #seccamp
by
Kyo Ago
「教養としてのサイバーセキュリティ」講座
by
Riotaro OKADA
第8回脆弱性診断入門
by
ionis111
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
by
CODE BLUE
Proxy War EPISODEⅡ
by
zaki4649
130821 owasp zed attack proxyをぶん回せ
by
Minoru Sakai
セキュア開発の<s>3つの</s>敵
by
Riotaro OKADA
セキュリティスキルをゲットする、たった3つの方法
by
Riotaro OKADA
アプリケーションデリバリーのバリューチェイン
by
Riotaro OKADA
Owasp top10 HandsOn
by
masafumi masutani
20181222 Talk about Security of Pairs without Their Permission
by
Typhon 666
Aiにwebアプリ診断をやらせてみる
by
Isao Takaesu
脆弱性検査ツールってどうよ
by
Masakazu Ikeda
Similar to サイバーセキュリティ錬金術
PDF
tut_pfi_2012
by
Preferred Networks
PDF
なぜ自社で脆弱性診断を行うべきなのか
by
Sen Ueno
PDF
超スマート社会時代のシステム&ソフトウェア品質知識体系 - SQuBOK 2020 における AI、IoT、クラウド、オープンソース、アジャイル、DevO...
by
Hironori Washizaki
ODP
ライブコーディングとデモで理解するWebセキュリティの基礎
by
Takahisa Kishiya
PDF
鷲崎弘宜, "AI/LLM時代のソフトウェエンジニアリング", 情報学科・専攻協議会 総会・研究会, 早稲田大学, 2025年7月26日
by
Hironori Washizaki
PDF
ソフトウェアエンジニアリング知識体系SWEBOK最新動向
by
Hironori Washizaki
PDF
JEITAソフトウェアエンジニアリング分科会: IPA RISE委託研究2015-16年度 測定評価と分析によるソフトウェア製品品 質の実態定量化および総...
by
Hironori Washizaki
PDF
機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)
by
Hironori Washizaki
PDF
Towards Scalable Human-aligned Benchmark for Text-guided Image Editing
by
harmonylab
PDF
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
by
Hironori Washizaki
PDF
2010 電子情報通信学会論文誌-要求変更によるソースコードへのインパクトを分析するシステムの開発と評価
by
n-yuki
PPTX
情報アクセス技術のためのテストコレクション作成
by
kt.mako
PPTX
Css2014 ruo ando_2014-10-23-01
by
Ruo Ando
PDF
集合知プログラミング 第6章 ドキュメントとフィルタリング~draft
by
Kenji Koshikawa
PDF
Semantic analysis and helpfulness prediction of text for online product reviews
by
浩気 西山
PDF
mlabforum2012_okanohara
by
Preferred Networks
PPT
ソフトウェアテストの再検討
by
ikedkana
PDF
Webマイニングと情報論的学習理論
by
Hiroshi Ono
PDF
Webマイニングと情報論的学習理論
by
Hiroshi Ono
PPTX
データマイニングにおける属性構築、事例選択
by
無職
tut_pfi_2012
by
Preferred Networks
なぜ自社で脆弱性診断を行うべきなのか
by
Sen Ueno
超スマート社会時代のシステム&ソフトウェア品質知識体系 - SQuBOK 2020 における AI、IoT、クラウド、オープンソース、アジャイル、DevO...
by
Hironori Washizaki
ライブコーディングとデモで理解するWebセキュリティの基礎
by
Takahisa Kishiya
鷲崎弘宜, "AI/LLM時代のソフトウェエンジニアリング", 情報学科・専攻協議会 総会・研究会, 早稲田大学, 2025年7月26日
by
Hironori Washizaki
ソフトウェアエンジニアリング知識体系SWEBOK最新動向
by
Hironori Washizaki
JEITAソフトウェアエンジニアリング分科会: IPA RISE委託研究2015-16年度 測定評価と分析によるソフトウェア製品品 質の実態定量化および総...
by
Hironori Washizaki
機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)
by
Hironori Washizaki
Towards Scalable Human-aligned Benchmark for Text-guided Image Editing
by
harmonylab
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
by
Hironori Washizaki
2010 電子情報通信学会論文誌-要求変更によるソースコードへのインパクトを分析するシステムの開発と評価
by
n-yuki
情報アクセス技術のためのテストコレクション作成
by
kt.mako
Css2014 ruo ando_2014-10-23-01
by
Ruo Ando
集合知プログラミング 第6章 ドキュメントとフィルタリング~draft
by
Kenji Koshikawa
Semantic analysis and helpfulness prediction of text for online product reviews
by
浩気 西山
mlabforum2012_okanohara
by
Preferred Networks
ソフトウェアテストの再検討
by
ikedkana
Webマイニングと情報論的学習理論
by
Hiroshi Ono
Webマイニングと情報論的学習理論
by
Hiroshi Ono
データマイニングにおける属性構築、事例選択
by
無職
More from Isao Takaesu
PDF
サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
by
Isao Takaesu
PDF
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
by
Isao Takaesu
PDF
CODE BLUE 2016 - 機械学習でWebアプリケーションの脆弱性を見つける方法
by
Isao Takaesu
PDF
OSSで作る機械学習を用いたペネトレーションテストツール
by
Isao Takaesu
PDF
Deep Exploit@Black Hat Europe 2018 Arsenal
by
Isao Takaesu
PDF
AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)
by
Isao Takaesu
PPTX
Convolutional Neural Networkに対する攻撃手法
by
Isao Takaesu
PDF
Discussion AIの脆弱性について
by
Isao Takaesu
PDF
CODE BLUE 2016 - Method of Detecting Vulnerability in Web Apps
by
Isao Takaesu
PDF
ITエンジニアのための機械学習理論入門 第5章
by
Isao Takaesu
サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
by
Isao Takaesu
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
by
Isao Takaesu
CODE BLUE 2016 - 機械学習でWebアプリケーションの脆弱性を見つける方法
by
Isao Takaesu
OSSで作る機械学習を用いたペネトレーションテストツール
by
Isao Takaesu
Deep Exploit@Black Hat Europe 2018 Arsenal
by
Isao Takaesu
AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)
by
Isao Takaesu
Convolutional Neural Networkに対する攻撃手法
by
Isao Takaesu
Discussion AIの脆弱性について
by
Isao Takaesu
CODE BLUE 2016 - Method of Detecting Vulnerability in Web Apps
by
Isao Takaesu
ITエンジニアのための機械学習理論入門 第5章
by
Isao Takaesu
Recently uploaded
PDF
20251122_OWASPNagoya_takei_ITU-T,X.1060,security
by
OWASP Nagoya
PPTX
JavaScript/TypeScript実力強化書 2章のアップデート Forkwell Library
by
Yoshiki Shibukawa
PDF
最高峰のストレージとバックアップ:ARTESCA+Veeam:統合型ソフトウェア
by
株式会社クライム
PDF
Gluesync:RDBMS、NoSQL,データレイク間のリアルタイム・データレプリケーション
by
株式会社クライム
PDF
Veeam&WasabiでトリプルV: クラウドへのランサムウエア対策の決定コンビ
by
株式会社クライム
PDF
N2WS Backup & Recovery と Veeam Backup for AWS
by
株式会社クライム
20251122_OWASPNagoya_takei_ITU-T,X.1060,security
by
OWASP Nagoya
JavaScript/TypeScript実力強化書 2章のアップデート Forkwell Library
by
Yoshiki Shibukawa
最高峰のストレージとバックアップ:ARTESCA+Veeam:統合型ソフトウェア
by
株式会社クライム
Gluesync:RDBMS、NoSQL,データレイク間のリアルタイム・データレプリケーション
by
株式会社クライム
Veeam&WasabiでトリプルV: クラウドへのランサムウエア対策の決定コンビ
by
株式会社クライム
N2WS Backup & Recovery と Veeam Backup for AWS
by
株式会社クライム
サイバーセキュリティ錬金術
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