Soumettre la recherche
Mettre en ligne
サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
•
1 j'aime
•
672 vues
Isao Takaesu
Suivre
インターネット上で誰でも簡単に入手できるデータを、全自動で「価値あるデータ」に錬金する技術の紹介。
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 40
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
AdvancedTechNight
CSSだけで実現するグラフィック表現
CSSだけで実現するグラフィック表現
AdvancedTechNight
D3.jsと学ぶVisualization(可視化)の世界
D3.jsと学ぶVisualization(可視化)の世界
AdvancedTechNight
ブロックチェーン体験 「ブロックを作って、チェーンでつないで、理解しよう!」
ブロックチェーン体験 「ブロックを作って、チェーンでつないで、理解しよう!」
K Kimura
Rでウォーリを探してみた
Rでウォーリを探してみた
Kazuya Wada
SappoRoR#7 Rを用いた画像処理入門 -胸部X線の経時的差分画像-
SappoRoR#7 Rを用いた画像処理入門 -胸部X線の経時的差分画像-
昌彦 飛騨
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
Koichiro Matsuoka
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
Recommandé
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
AdvancedTechNight
CSSだけで実現するグラフィック表現
CSSだけで実現するグラフィック表現
AdvancedTechNight
D3.jsと学ぶVisualization(可視化)の世界
D3.jsと学ぶVisualization(可視化)の世界
AdvancedTechNight
ブロックチェーン体験 「ブロックを作って、チェーンでつないで、理解しよう!」
ブロックチェーン体験 「ブロックを作って、チェーンでつないで、理解しよう!」
K Kimura
Rでウォーリを探してみた
Rでウォーリを探してみた
Kazuya Wada
SappoRoR#7 Rを用いた画像処理入門 -胸部X線の経時的差分画像-
SappoRoR#7 Rを用いた画像処理入門 -胸部X線の経時的差分画像-
昌彦 飛騨
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
Koichiro Matsuoka
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤
aitc_jp
最低限知っておきたい Webセキュリティーについて@MT関西
最低限知っておきたい Webセキュリティーについて@MT関西
Masayuki Abe
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
判別分析
判別分析
Satoru Yamamoto
よろしい、ならばMicro-ORMだ
よろしい、ならばMicro-ORMだ
Narami Kiyokura
マーブル図で怖くないRxJS
マーブル図で怖くないRxJS
bitbank, Inc. Tokyo, Japan
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Tomoaki Shimizu
メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)
Tatsuya Ishikawa
エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎
Daiyu Hatakeyama
Javascript で暗号化
Javascript で暗号化
suno88
Azure Machine Learning services 2019年6月版
Azure Machine Learning services 2019年6月版
Daiyu Hatakeyama
(A7)cross site scripting
(A7)cross site scripting
OWASP Nagoya
introduce "Stealing Machine Learning Models via Prediction APIs"
introduce "Stealing Machine Learning Models via Prediction APIs"
Isao Takaesu
エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識
Daiyu Hatakeyama
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Atsushi Tadokoro
Tamabi media131118
Tamabi media131118
Atsushi Tadokoro
もっと早く知りたかったプログラミング技法9選
もっと早く知りたかったプログラミング技法9選
Masayuki Akiyama
“Stay Right”ペンテスト体験:SANS Holiday Hack Challenge 2017の解説 & Walkthrough
“Stay Right”ペンテスト体験:SANS Holiday Hack Challenge 2017の解説 & Walkthrough
Isaac Mathis
owasp_evening_okinawa_7_owasp_top_10-2017_injection
owasp_evening_okinawa_7_owasp_top_10-2017_injection
tobaru_yuta
Android起動周りのノウハウ
Android起動周りのノウハウ
chancelab
Deep Exploit@Black Hat Europe 2018 Arsenal
Deep Exploit@Black Hat Europe 2018 Arsenal
Isao Takaesu
OSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツール
Isao Takaesu
Contenu connexe
Similaire à サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤
aitc_jp
最低限知っておきたい Webセキュリティーについて@MT関西
最低限知っておきたい Webセキュリティーについて@MT関西
Masayuki Abe
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
判別分析
判別分析
Satoru Yamamoto
よろしい、ならばMicro-ORMだ
よろしい、ならばMicro-ORMだ
Narami Kiyokura
マーブル図で怖くないRxJS
マーブル図で怖くないRxJS
bitbank, Inc. Tokyo, Japan
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Tomoaki Shimizu
メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)
Tatsuya Ishikawa
エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎
Daiyu Hatakeyama
Javascript で暗号化
Javascript で暗号化
suno88
Azure Machine Learning services 2019年6月版
Azure Machine Learning services 2019年6月版
Daiyu Hatakeyama
(A7)cross site scripting
(A7)cross site scripting
OWASP Nagoya
introduce "Stealing Machine Learning Models via Prediction APIs"
introduce "Stealing Machine Learning Models via Prediction APIs"
Isao Takaesu
エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識
Daiyu Hatakeyama
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Atsushi Tadokoro
Tamabi media131118
Tamabi media131118
Atsushi Tadokoro
もっと早く知りたかったプログラミング技法9選
もっと早く知りたかったプログラミング技法9選
Masayuki Akiyama
“Stay Right”ペンテスト体験:SANS Holiday Hack Challenge 2017の解説 & Walkthrough
“Stay Right”ペンテスト体験:SANS Holiday Hack Challenge 2017の解説 & Walkthrough
Isaac Mathis
owasp_evening_okinawa_7_owasp_top_10-2017_injection
owasp_evening_okinawa_7_owasp_top_10-2017_injection
tobaru_yuta
Android起動周りのノウハウ
Android起動周りのノウハウ
chancelab
Similaire à サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
(20)
2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤
最低限知っておきたい Webセキュリティーについて@MT関西
最低限知っておきたい Webセキュリティーについて@MT関西
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
判別分析
判別分析
よろしい、ならばMicro-ORMだ
よろしい、ならばMicro-ORMだ
マーブル図で怖くないRxJS
マーブル図で怖くないRxJS
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)
エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎
Javascript で暗号化
Javascript で暗号化
Azure Machine Learning services 2019年6月版
Azure Machine Learning services 2019年6月版
(A7)cross site scripting
(A7)cross site scripting
introduce "Stealing Machine Learning Models via Prediction APIs"
introduce "Stealing Machine Learning Models via Prediction APIs"
エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Tamabi media131118
Tamabi media131118
もっと早く知りたかったプログラミング技法9選
もっと早く知りたかったプログラミング技法9選
“Stay Right”ペンテスト体験:SANS Holiday Hack Challenge 2017の解説 & Walkthrough
“Stay Right”ペンテスト体験:SANS Holiday Hack Challenge 2017の解説 & Walkthrough
owasp_evening_okinawa_7_owasp_top_10-2017_injection
owasp_evening_okinawa_7_owasp_top_10-2017_injection
Android起動周りのノウハウ
Android起動周りのノウハウ
Plus de Isao Takaesu
Deep Exploit@Black Hat Europe 2018 Arsenal
Deep Exploit@Black Hat Europe 2018 Arsenal
Isao Takaesu
OSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツール
Isao Takaesu
ハニーポッター技術交流会
ハニーポッター技術交流会
Isao Takaesu
サイバーセキュリティ錬金術
サイバーセキュリティ錬金術
Isao Takaesu
GAとGANによる検査値の自動生成
GAとGANによる検査値の自動生成
Isao Takaesu
Pythonと機械学習によるWebセキュリティの自動化
Pythonと機械学習によるWebセキュリティの自動化
Isao Takaesu
脆弱性診断データの活用例 - Webアプリケーション診断編 -
脆弱性診断データの活用例 - Webアプリケーション診断編 -
Isao Takaesu
RECOMMENDER for Web security engineers - 中級編 -
RECOMMENDER for Web security engineers - 中級編 -
Isao Takaesu
RECOMMENDER for Web security engineers - 初級編 -
RECOMMENDER for Web security engineers - 初級編 -
Isao Takaesu
Convolutional Neural Networkに対する攻撃手法
Convolutional Neural Networkに対する攻撃手法
Isao Takaesu
Discussion AIの脆弱性について
Discussion AIの脆弱性について
Isao Takaesu
機械学習関連情報の収集方法
機械学習関連情報の収集方法
Isao Takaesu
機械学習を使ったハッキング手法
機械学習を使ったハッキング手法
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
Aiにwebアプリ診断をやらせてみる
Aiにwebアプリ診断をやらせてみる
Isao Takaesu
Plus de Isao Takaesu
(19)
Deep Exploit@Black Hat Europe 2018 Arsenal
Deep Exploit@Black Hat Europe 2018 Arsenal
OSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツール
ハニーポッター技術交流会
ハニーポッター技術交流会
サイバーセキュリティ錬金術
サイバーセキュリティ錬金術
GAとGANによる検査値の自動生成
GAとGANによる検査値の自動生成
Pythonと機械学習によるWebセキュリティの自動化
Pythonと機械学習によるWebセキュリティの自動化
脆弱性診断データの活用例 - Webアプリケーション診断編 -
脆弱性診断データの活用例 - Webアプリケーション診断編 -
RECOMMENDER for Web security engineers - 中級編 -
RECOMMENDER for Web security engineers - 中級編 -
RECOMMENDER for Web security engineers - 初級編 -
RECOMMENDER for Web security engineers - 初級編 -
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)
Aiにwebアプリ診断をやらせてみる
Aiにwebアプリ診断をやらせてみる
Dernier
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
furutsuka
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
Dernier
(9)
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
1.
2018.09.14 Security reject Con
+ ssmjp Presented by Isao Takaesu (TW: @bbr_bbq) サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
2.
本日のお話し MBSD RejectCon +
ssmjp インターネット上で誰でも簡単に入手できるデータ を、全自動で「価値あるデータ」に錬金する手法を 紹介します。 ありふれたデータ 価値あるデータ 錬金!!
3.
本日の価値あるデータ:XSSの検査値/ブラックリスト 1 : <frameset><frame/onload=alert(1);
/> 2 : <object/data=evil.html #</a> 3 : <body onmouseover=alert(1); <canvas </basefont> 4 : <video><source onerror=¥u0061lert(1); /> 5 : <svg/onload=alert(1); </del> 5 : <script>alert(1);</script> 6 : <script>onerror=¥u0061lert(1);</script> 7 : <video><source onerror=prompt(1);> 8 : <frameset><frame/onload=alert(1); /> 9 : <iframe/onload=alert(1); /> 10 : <body onload=alert(1); /> 診断員にとっては、脆弱性診断に役立つ検査値。 サイト運営者にとっては、攻撃の防御に役立つブラックリスト。 MBSD RejectCon + ssmjp
4.
本日の価値あるデータ:XSSの検査値/ブラックリスト 1 : <frameset><frame/onload=alert(1);
/> 2 : <object/data=evil.html #</a> 3 : <body onmouseover=alert(1); <canvas </basefont> 4 : <video><source onerror=¥u0061lert(1); /> 5 : <svg/onload=alert(1); </del> 5 : <script>alert(1);</script> 6 : <script>onerror=¥u0061lert(1);</script> 7 : <video><source onerror=prompt(1);> 8 : <frameset><frame/onload=alert(1); /> 9 : <iframe/onload=alert(1); /> 10 : <body onload=alert(1); /> 診断員にとっては、脆弱性診断に役立つ検査値。 サイト運営者にとっては、攻撃の防御に役立つブラックリスト。 MBSD RejectCon + ssmjp 本手法で錬金され た検査値です。
5.
RejectCon + ssmjp 錬金の手順 MBSD 2.
GAで少数の検査値を生成 3. GANで大量の検査値を生成1. 検査値の基を収集 Step.1. 検査値の基を収集 [*] 記号やHTMLタグなど、検査値の最小構成要素(遺伝子)をWebから収集。 Step.2. 遺伝的アルゴリズム(GA)で検査値を生成 [*] 遺伝子の組み合わせ最適化(スクリプトが動作する文字列の発見)。 Step.3. 生成モデル(GAN)で大量の検査値を生成 [*] Step.2で生成した検査値を基に、多様性のある大量の検査値を生成。 Fully automatic (No human)Manual (human)
6.
RejectCon + ssmjp 錬金の手順 MBSD 2.
GAで少数の検査値を生成 3. GANで大量の検査値を生成1. 検査値の基を収集 Step.1. 検査値の基を収集 [*] 記号やHTMLタグなど、検査値の最小構成要素(遺伝子)をWebから収集。 Step.2. 遺伝的アルゴリズム(GA)で検査値を生成 [*] 遺伝子の組み合わせ最適化(スクリプトが動作する文字列の発見)。 Step.3. 生成モデル(GAN)で大量の検査値を生成 [*] Step.2で生成した検査値を基に、多様性のある大量の検査値を生成。 Fully automatic (No human)Manual (human)
7.
RejectCon + ssmjp Step.1.
検査値の基を収集 MBSD HTML解説サイトからタグや属性・イベントハンドラなどを収集。 Html tag Attribute Event handler
8.
RejectCon + ssmjpMBSD [*]
収集した検査値の基の一例 Step.1. 検査値の基を収集 タグ 属性 イベントハンドラ 記号など <script> src= onerror “ <body/ type= onload ‘ <object/ data= onmouseover alert(); <iframe/ value= onfocus evil.html <input/ name= onclick evil.js
9.
RejectCon + ssmjp 錬金の手順 MBSD 2.
GAで少数の検査値を生成 3. GANで大量の検査値を生成1. 検査値の基を収集 Step.1. 検査値の基を収集 [*] 記号やHTMLタグなど、検査値の最小構成要素(遺伝子)をWebから収集。 Step.2. 遺伝的アルゴリズム(GA)で検査値を生成 [*] 遺伝子の組み合わせ最適化(スクリプトが動作する文字列の発見)。 Step.3. 生成モデル(GAN)で大量の検査値を生成 [*] Step.2で生成した検査値を基に、多様性のある大量の検査値を生成。 Fully automatic (No human)Manual (human)
10.
RejectCon + ssmjpMBSD 環境に適合した個体(最適化された遺伝子の組み合わせ)を探索。 初期集団の生成
個体の評価 交叉突然変異 個体 ● ▲ ■ × ★遺伝子 選択 次世代へ… Step.2. 遺伝的アルゴリズムで検査値を生成 [*] 遺伝的アルゴリズム(GA)とは?
11.
RejectCon + ssmjpMBSD Step.2.
遺伝的アルゴリズムで検査値を生成 [*] 検査値はタグや属性などの要素の組み合わせで構成される。 <object/data=evil.html #</a> <object/ data= evil.html # </a> <video><source onerror=¥u0061lert(); /> <video> <source onerror= ¥u0061lert(); /> <iframe/onload=alert(); /> <iframe/ onload= alert(); /> - 各要素をGAにおける遺伝子として定義し、環境に適合した最適な遺 伝子の組み合わせを持った個体(検査値)を探索。 <svg/onload=alert(); </del> <svg/ onload= alert(); </del> -
12.
RejectCon + ssmjpMBSD Step.2.
遺伝的アルゴリズムで検査値を生成 [*] 環境への適合度を評価する手法。 評価関数を使用して各個体の適合度を求め、適合度の高い個体を 進化(交叉・突然変異)させて次世代に残す。これを繰り返す。 2. スクリプトが動作するか?1. HTML構文として正しいか?
13.
RejectCon + ssmjpMBSD Step.2.
遺伝的アルゴリズムで検査値を生成 [*] GAで生成した検査値。 Idx 検査値 1 <script>alert();</script></table><hr/ 2 <iframe/onload=alert();><select/ 3 <svg/<canvas/<select/onload=confirm();> 4 <video><source onerror=confirm();> 5 icon=<iframe/<body onload=¥u0061lert();> 6 <embed onload=alert();<script type="text/javascript"> 進化計算を繰り返すことで、数種類の検査値が生成される。 [!] 上記の検査値は、全てスクリプトが動作します。
14.
RejectCon + ssmjpMBSD https://goo.gl/LgnpGN Step.2.
遺伝的アルゴリズムで検査値を生成 [*] 詳細情報はコチラ。 日本語: 英語 :https://goo.gl/g4MfnP
15.
RejectCon + ssmjp 錬金の手順 MBSD 2.
GAで少数の検査値を生成 3. GANで大量の検査値を生成1. 検査値の基を収集 Step.1. 検査値の基を収集 [*] 記号やHTMLタグなど、検査値の最小構成要素(遺伝子)をWebから収集。 Step.2. 遺伝的アルゴリズム(GA)で検査値を生成 [*] 遺伝子の組み合わせ最適化(スクリプトが動作する文字列の発見)。 Step.3. 生成モデル(GAN)で大量の検査値を生成 [*] Step.2で生成した検査値を基に、多様性のある大量の検査値を生成。 Fully automatic (No human)Manual (human)
16.
RejectCon + ssmjpMBSD ノイズを基に、訓練データを模倣したFakeデータを大量に生成。 ・ ・ ・ Noise Generator
(G) ・ ・ ・ Generative Data ・ ・ ・ ・ ・ ・ Train Data Train Data ・・・ Discriminator (D) Probability True? [*] 生成モデル(GAN)とは? Step.3. 生成モデルで大量の検査値を生成
17.
RejectCon + ssmjpMBSD 模倣者は、お手本そっくりの贋作で騙そうとする。 鑑定士は、贋作を見破ろうとする。 騙し/見破りを繰り返すことで、お互いの能力が高まる(学習)。 G(=模倣者)
D(=鑑定士) [*] 生成モデル(GAN)とは? Step.3. 生成モデルで大量の検査値を生成 Train data(お手本) Generative data(贋作) 騙そうとする 見破る
18.
RejectCon + ssmjpMBSD 学習を繰り返すことで、徐々に訓練データに近似したデータを生成。 Step.3.
生成モデルで大量の検査値を生成 [*] 生成モデル(GAN)の簡単な実行例。 ・訓練データ ・生成データ
19.
RejectCon + ssmjpMBSD 学習の過程で訓練データとは似て非なる様々な検査値を生成。 ・ ・ ・ Noise Generator
(G) ・ ・ ・ Generative Data ・ ・ ・ ・ ・ ・ Train Data Train Data ・・・ Discriminator (D) Probability True? [*] 検査値を大量に生成するには? Step.3. 生成モデルで大量の検査値を生成 GAが生成した検査値
20.
RejectCon + ssmjpMBSD [*]
生成モデルで生成した検査値。 Idx 訓練データ(GAが生成した検査値) - <script>alert();</script></table><hr/ 生成されたデータ 1 <script>alert``;</script><table/</td> 2 <script>al¥u0065rt();</script></tr><th/ 3 <script>prompt();</script><th/<col/ 4 <script>confirm();</script><thead <table/ Step.3. 生成モデルで大量の検査値を生成 1つの訓練データから、複数種類の検査値が生成される。 [!] 訓練データとは似て非なる検査値を生成。
21.
RejectCon + ssmjpMBSD [*]
生成モデルで生成した検査値。 Idx 訓練データ(GAが生成した検査値) - <iframe/onload=alert();><select/ 生成されたデータ 1 colspan=<iframe <a onload=al¥u0065rt();> 2 <object/onload="onfocus=alert();"<script type="text/javascri pt"> 3 <iframe onload=alert``; /><select 4 icon=<iframe/<img onload=al¥u0065rt();> Step.3. 生成モデルで大量の検査値を生成 1つの訓練データから、複数種類の検査値が生成される。 [!] Idx.2は、訓練データとは全く異なる検査パターン。
22.
RejectCon + ssmjpMBSD [*]
生成モデルで生成した検査値。 Idx 訓練データ(GAが生成した検査値) - <svg/<canvas/<select/onload=confirm();> 生成されたデータ 1 <svg/onload="¥u0061lert();"></output> 2 <object/src=# onload=alert();¥n<script type="text/javascript "> 3 <script/src="data:text/html,alert();"<script></script> 4 <svg/onload=confirm();> Step.3. 生成モデルで大量の検査値を生成 1つの訓練データから、複数種類の検査値が生成される。 [!] Idx.2, 3は、訓練データとは全く異なる検査パターン。
23.
RejectCon + ssmjpMBSD [*]
生成モデルで生成した検査値。 Idx 訓練データ(GAが生成した検査値) - <video><source onerror=confirm();> 生成されたデータ 1 <video><source onerror="¥u0061lert``;"> 2 <video><source onerror="al¥u0065rt``;"> 3 <video><source/onerror=alert();> 4 <video><source onerror=prompt(1);> Step.3. 生成モデルで大量の検査値を生成 1つの訓練データから、複数種類の検査値が生成される。 [!] 訓練データとは似て非なる検査値を生成。
24.
RejectCon + ssmjpMBSD [*]
生成モデルで生成した検査値。 Idx 訓練データ(GAが生成した検査値) - icon=<iframe/<body onload=¥u0061lert();> 生成されたデータ 1 headers=<body/<body onload=alert();> 2 icon=<body <input/onload=confirm(1);> 3 kind=<body <img onload=alert``;> 4 <img src=# <keygen onerror=¥u0061lert``;> Step.3. 生成モデルで大量の検査値を生成 1つの訓練データから、複数種類の検査値が生成される。 [!] Idx.4は、訓練データとは異なる検査パターン。
25.
RejectCon + ssmjpMBSD [*]
生成モデルで生成した検査値。 Idx 訓練データ(GAが生成した検査値) - <embed onload=alert();<script type="text/javascript"> 生成されたデータ 1 <embed/onload=al¥u0065rt();¥n<script type="text/javascript"> 2 <embed onload=alert``;¥n<script type="text/javascript"> 3 <embed/onload=prompt();¥n<script type="text/javascript"> 4 <embed/src=# onload=confirm();¥n<script type="text/javascrip t"> Step.3. 生成モデルで大量の検査値を生成 1つの訓練データから、複数種類の検査値が生成される。 [!] 訓練データとは似て非なる検査値を生成。
26.
RejectCon + ssmjpMBSD [*]
もっと検査値を増やしてみよう! Idx 訓練データ(1回目のGANで生成された検査値) - <object/src=# onload=alert();¥n<script type="text/javascrip t"> 生成されたデータ 1 <object/onload=prompt();¥n<script type="text/javascript"> 2 <svg/onload=al¥u0065rt();¥n<script type="text/javascript"> 3 <iframe/*/onload=charset=alert();> Step.3. 生成モデルで大量の検査値を生成 1回目のGANで生成された検査値を訓練データにすることで、 さらなる検査値が生成される。 [!] Idx.2, 3は、訓練データとは異なる検査パターン。
27.
RejectCon + ssmjpMBSD [*]
もっと検査値を増やしてみよう! Idx 訓練データ(1回目のGANで生成された検査値) - <script/src="data:text/html,alert();"<script></script> 生成されたデータ 1 <script src="data:text/html,al¥u0065rt``;"<script></script> 2 <script src="data:text/html,confirm();"<script></script> 3 <script/src="data:text/html,alert``;"
<script></script> Step.3. 生成モデルで大量の検査値を生成 1回目のGANで生成された検査値を訓練データにすることで、 さらなる検査値が生成される。 [!] 訓練データとは似て非なる検査値を生成。
28.
RejectCon + ssmjpMBSD [*]
もっと検査値を増やしてみよう! Idx 訓練データ(1回目のGANで生成された検査値) - <img src=# <keygen onerror=¥u0061lert``;> 生成されたデータ 1 <script src=# <label onerror=confirm();¥n<script></script> 2 <img src= <meter onerror=alert();¥n<script></script> 3 <iframe src=# <keygen onload=alert();¥n<script></script> Step.3. 生成モデルで大量の検査値を生成 1回目のGANで生成された検査値を訓練データにすることで、 さらなる検査値が生成される。 [!] Idx.1, 3は、訓練データとは異なる検査パターン。
29.
RejectCon + ssmjpMBSD ノイズは[-1.0,
1.0]範囲でランダムに選んだ200次元ベクトル。 ・ ・ ・ Noise Generator (G) ・ ・ ・ Generative Data ・ ・ ・ ・ ・ ・ Train Data Train Data ・・・ Discriminator (D) Probability True? [*] もっともっと検査値を増やしてみよう! Step.3. 生成モデルで大量の検査値を生成 GAが生成した検査値 ノイズに着目!!
30.
RejectCon + ssmjpMBSD (十分に学習したGANにおいては)ノイズの値域内からサンプリン グした各ベクトルと、GANで生成される検査値は紐付いている。 [*]
Generatorに入力されるノイズの空間。 Step.3. 生成モデルで大量の検査値を生成 ノイズの値域 [-1.0, 1.0]^n <script>al¥u0065rt();</script> <svg onload=alert();src=evil.js "" /> <video><source/onerror=alert();> [-0.183, 0.752 … 0.002, -0.652] [0.723, -0.083 … 0.189, 0.044] [-0.081, -0.531 … 0.024, -0.326]
31.
RejectCon + ssmjpMBSD (スクリプトが動作する)2つの検査値に紐付くノイズの中間値を Generatorに入力すると、各検査値を併せた検査値が生成される? [*]
足し算・引き算ができるベクトルの特性を利用する。 Step.3. 生成モデルで大量の検査値を生成 <script>al¥u0065rt();</script> <svg onload=alert();src=evil.js "" /> <script src=saivs.js "></script> [*] 期待する結果。
32.
RejectCon + ssmjpMBSD [*]
2つのノイズの中間値を基に生成された検査値。 元の検査値 <object/<embed/data=evil.html <script type="text/javascrip t"> <object/src=# onload=alert();¥n<script type="text/javascrip t"> 生成されたデータ <embed/<a/onload=alert();¥n<script type="text/javascript"> 2つの検査値の特徴を併せた検査値が生成される。 [*] HTMLタグ、イベントハンドラなどが組み合わさっている。 Step.3. 生成モデルで大量の検査値を生成
33.
RejectCon + ssmjpMBSD [*]
2つのノイズの中間値を基に生成された検査値。 元の検査値 alert``;<script>al¥u0065rt``;</script> ¥u0061lert``;<script>prompt();</script> 生成されたデータ al¥u0065rt();<script>confirm();</script> 組み合わせとは言えない検査値も生成される。 [?] 元検査値の組み合わせを考慮する必要がある? ノイズ値域において、検査値やタグなどの分布を調査する 必要がある? Step.3. 生成モデルで大量の検査値を生成
34.
RejectCon + ssmjpMBSD [*]
本手法で錬金された検査値数と処理時間。 まとめ 手法 生成された検査値の総数 処理時間 遺伝的アルゴリズム(GA) 6 個 5.0 時間 生成モデル : 1回目 581 個 (+575) 2.0 時間 生成モデル : 2回目 627 個 (+146) 1.0 時間 生成モデル : ノイズ合成 643 個 ( +16) 0.5 時間 [!] 文字列として重複していない検査値をカウント。 [!] 動作パターンによる重複は排除していない。 インターネット上で誰でも簡単に入手できるデータを、 現実的な時間で価値あるデータに錬金することができた。
35.
RejectCon + ssmjpMBSD 鑑定士(D)は、お手本をまねた贋作を見破ることができる。 本日のタスクでは「お手本=検査値」とした。 よって、模倣者(G)が作る贋作も検査値。ということは・・・ G(=模倣者)
D(=鑑定士) [*] 鑑定士(D)の「見破る」能力を何かに活用できないか? Step.3. 生成モデルで大量の検査値を生成 Train data(お手本) Generative data(贋作) 騙そうとする 見破る
36.
RejectCon + ssmjpMBSD スクリプトが動作する文字列(検査値)と無害な文字列をやられサー バに送信し、Discriminatorの検知精度と応答速度を観測。 [!]
Discriminatorの出力が「0.53」以上の場合にBlock Discriminator (WAF) [*] 鑑定士(Discriminator)をWAFにする試み。 Step.3. 生成モデルで大量の検査値を生成 やられサーバテスター Block or Allow 検証環境イメージ Probability
37.
RejectCon + ssmjpMBSD Discriminatorは、FPを回避する能力が優れているが、学習が足り ないと致命的なFNを引き起こす。また、応答速度にも難がある。 [!]
実運用するには、上記課題の解決が必須(今後の課題)。 [*] 計測結果(FP=False Positive, FN=False Negative)。 Step.3. 生成モデルで大量の検査値を生成 Idx 送信文字列 検知精度 - - Discriminator Mod Security 1 <script>hello Allow [0.51] Block(FP) 2 <a/alert();>hello Allow [0.50] Block(FP) 3 <script>alert();</script> Block [0.54] Block 4 <img src=x onerror=xss> Block [0.56] Block 5 <a onmouseover=alert();> Allow(FN) [0.49] Block 平均応答速度: 約 200 [ms] 約 5~10 [ms]
38.
MBSD 今後の課題(≒ Rejectされた理由) RejectCon +
ssmjp [+] 生成した検査値/ブラックリストの実証実験 * 検査値を使用し、実サービス/製品の脆弱性を検出する。 * Webサイトでブラックリストを使用し、実際の攻撃を防ぐ。 [+] 人間では思いつかない(つき難い)検査値の生成 * WAFやフィルタをBypassする検査値を生成する。 そして、これをWAFベンダなどにフィードバックする。 [+] 他分野への応用 * 他脆弱性の検査値や他セキュリティ領域に応用する。
39.
MBSD Resource RejectCon + ssmjp https://github.com/13o-bbr-bbq/machine_learning_security/tree/master/Generator [*]
Source codes & Usage.
40.
Reference all source
codes and document: https://github.com/13o-bbr-bbq/machine_learning_security/
Télécharger maintenant