More Related Content More from Isao Takaesu (19) Convolutional Neural Networkに対する攻撃手法2. About the speaker
• 職業 : セキュリティエンジニア
• 所属 : MBSD
• 趣味 : 脆弱性スキャナ作り、機械学習
• ブログ: http://www.mbsd.jp/blog/
• Black Hat Asia Arsenal, CODE BLUE / 2016
• AISECjp 共同管理者
高江洲 勲
Takaesu Isao
AISECjp
3. 元ネタの論文
Simple Black-Box Adversarial Perturbations for Deep
Networks
AISECjp
Author : Nina Narodytska
Shiva Prasad Kasiviswanathan
(Samsung Research America)
Post Date: 19 Dec 2016
arXiv:https://arxiv.org/abs/1612.06299
6. 検証したCNNモデル:VGG16 by Keras
AISECjp
_______________________________________________________
Layer (type) Output Shape
=======================================================
input_1 (InputLayer) (None, 32, 32, 3)
_______________________________________________________
block1_conv1 (Convolution2D) (None, 32, 32, 64)
_______________________________________________________
block1_conv2 (Convolution2D) (None, 32, 32, 64)
_______________________________________________________
block1_pool (MaxPooling2D) (None, 16, 16, 64)
_______________________________________________________
block2_conv1 (Convolution2D) (None, 16, 16, 128)
_______________________________________________________
block2_conv2 (Convolution2D) (None, 16, 16, 128)
_______________________________________________________
block2_pool (MaxPooling2D) (None, 8, 8, 128)
_______________________________________________________
block3_conv1 (Convolution2D) (None, 8, 8, 256)
_______________________________________________________
block3_conv2 (Convolution2D) (None, 8, 8, 256)
_______________________________________________________
block3_conv3 (Convolution2D) (None, 8, 8, 256)
_______________________________________________________
block3_pool (MaxPooling2D) (None, 4, 4, 256)
_______________________________________________________
block4_conv1 (Convolution2D) (None, 4, 4, 512)
_______________________________________________________
block4_conv2 (Convolution2D) (None, 4, 4, 512)
_______________________________________________________
block4_conv3 (Convolution2D) (None, 4, 4, 512)
_______________________________________________________
block4_pool (MaxPooling2D) (None, 2, 2, 512)
_______________________________________________________
block5_conv1 (Convolution2D) (None, 2, 2, 512)
_______________________________________________________
block5_conv2 (Convolution2D) (None, 2, 2, 512)
_______________________________________________________
block5_conv3 (Convolution2D) (None, 2, 2, 512)
_______________________________________________________
block5_pool (MaxPooling2D) (None, 1, 1, 512)
_______________________________________________________
sequential_1 (Sequential) (None, 10)
_______________________________________________________
畳み込み層:13層のNeural Network(ImageNetで学習済み)。
加えて、検証用のデータセット(CIFAR10)でFine-tuning。
8. VGG16による正常時の分類結果
AISECjp
('cat', 0.76542097)
('dog', 0.19257075)
('bird', 0.015834473)
('cat', 0.76715392)
('airplane', 0.12106296)
('dog', 0.074757278)
('horse', 0.45894068)
('dog', 0.44658324)
('cat', 0.070699759)
CIFAR10:猫
32 x 32 pixel
サイズの大きい画像:猫
6720 x 4480 pixel
クラスに無い画像:人間
193 x 197 pixel
ImageNetとCIFAR10で学習したことで、
様々なサイズ・種類の画像を尤もらしいクラスに分類可能。
⇒CIFAR10に存在しないクラスの画像(人間)は、最も近しいクラス(?)に分類。
Editor's Notes 私は三井物産セキュアディレクションという日本のサイバーセキュリティ会社でセキュリティエンジニアをやっております「タカエス」と申します。
今年の3月にシンガポールで開催されたBlack Hat Asia Arsenalに参加しており、これからお話するSAIVSと呼ぶAIを披露しました 今回は反射型のXSSを対象とします。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。
このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。 ここで、パラメータ「input」にスクリプトを入力したとします。
すると、入力したスクリプトがINPUTタグ内にこのように出力されます。
VALUE属性値が「”(ダブルクォート)」で閉じられ、また、「>(右括弧)」でINPUTタグが閉じられた後に、スクリプトが挿入されています。
その結果、JavaScriptが動作します。このように、XSS脆弱性があると、任意のJavaScriptを動作させることができます。 ここで、パラメータ「input」にスクリプトを入力したとします。
すると、入力したスクリプトがINPUTタグ内にこのように出力されます。
VALUE属性値が「”(ダブルクォート)」で閉じられ、また、「>(右括弧)」でINPUTタグが閉じられた後に、スクリプトが挿入されています。
その結果、JavaScriptが動作します。このように、XSS脆弱性があると、任意のJavaScriptを動作させることができます。 以上で私のセッションを終了します。
ご清聴、ありがとうございました。