SlideShare a Scribd company logo
1 of 28
2017.04.25
AISECjp #10
Presented by Isao Takaesu
Convolutional Neural Networkに対する攻撃手法
- 誤分類の誘発 -
About the speaker
• 職業 : セキュリティエンジニア
• 所属 : MBSD
• 趣味 : 脆弱性スキャナ作り、機械学習
• ブログ: http://www.mbsd.jp/blog/
• Black Hat Asia Arsenal, CODE BLUE / 2016
• AISECjp 共同管理者
高江洲 勲
Takaesu Isao
AISECjp
元ネタの論文
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
概要
AISECjp
CNNへの入力画像を(人間には分からないくらいに)微小に
細工することで、CNNの誤分類を誘発(効率良く、black-boxで)。
※出典:Simple Black-Box Adversarial Perturbations for Deep Networks
original :
perturbed :
(誤分類)
stingray
sea lion
ostrich
goose
jay
junco
water ouzel
redshank
想定されるリスク
 ビデオトラッキングの迂回
CNNで顔認識(入館用カメラや防犯カメラ等)をしている場合、
顔に微小なペイントを施すことで顔を誤認識する。
⇒不正入館や要注意人物を取り逃がす可能性がある。
 自動運転自動車の誤判断
CNNで車外の物体を認識している場合、
歩行者や他の車、道路標識や信号機等を誤認識する。
⇒重大な事故に繋がる可能性がある。
・・・
AISECjp
検証した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。
検証で使用したデータセット:CIFAR10
AISECjp
※出典:https://www.cs.toronto.edu/~kriz/cifar.html
50,000枚の訓練用画像と10,000枚のテスト用画像を収録。
クラスは10クラス(airplane, automobile, … , ship, truck)
32 x 32, RGB
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に存在しないクラスの画像(人間)は、最も近しいクラス(?)に分類。
誤分類を誘発させる
AISECjp
検証方法
1. CIFAR10のテスト用画像(クラスはcat)から1枚読み込む
2. 画像内からランダムに選択した1pixelを細工する
pixel value > 128:RGB(0, 0, 0):黒
pixel value =< 128:RGB(255, 255, 255):白
3.細工した画像をCNN(VGG16)に入力
4.CNNの分類結果を観測
5.誤分類が発生したら次の画像をテストする(1に戻る)
誤分類されない場合は2~4の試行を最大100回繰り返す
AISECjp
検証結果サマリ
AISECjp
・catのテスト用画像1,000枚の内、78枚を別のクラスに誤分類
・dog, frogに誤分類する割合が多い
・誤分類に成功するpixel位置に規則性はない
誤分類したクラス 枚数
airplane 1
automobile 1
bird 8
deer 4
dog 36
frog 19
horse 4
ship 3
truck 2
検証結果の詳細(一例)
AISECjp
('cat', 0.68972313)
('dog', 0.29061893)
('bird', 0.0085681491)
('dog', 0.51095092)
('cat', 0.47476733)
('bird', 0.0056552952)
perturbedoriginal
元画像は約68%の確率で猫(cat)と正しく分類。
細工画像は約51%の確率で犬(dog)と誤分類。
('cat', 0.68972313)
('dog', 0.29061893)
('bird', 0.0085681491)
('dog', 0.51095092)
('cat', 0.47476733)
('bird', 0.0056552952)
元画像は約68%の確率で猫(cat)と正しく分類。
細工画像は約51%の確率で犬(dog)と誤分類。
検証結果の詳細(一例)
AISECjp
perturbedoriginal
細工箇所
検証結果の詳細(一例)
AISECjp
('cat', 0.57286674)
('frog', 0.26482207)
('deer', 0.088725276)
('frog', 0.55007768)
('cat', 0.29504463)
('deer', 0.094751559)
perturbedoriginal
元画像は約57%の確率で猫(cat)と正しく分類。
細工画像は約55%の確率で蛙(frog)と誤分類。
('cat', 0.57286674)
('frog', 0.26482207)
('deer', 0.088725276)
('frog', 0.55007768)
('cat', 0.29504463)
('deer', 0.094751559)
元画像は約57%の確率で猫(cat)と正しく分類。
細工画像は約55%の確率で蛙(frog)と誤分類。
検証結果の詳細(一例)
AISECjp
perturbedoriginal
細工箇所
検証結果の詳細(一例)
AISECjp
('cat', 0.48120362)
('bird', 0.40441346)
('dog', 0.059162639)
('bird', 0.48002127)
('cat', 0.42222592)
('dog', 0.047608543)
perturbedoriginal
元画像は約48%の確率で猫(cat)と正しく分類。
細工画像は約48%の確率で鳥(bird)と誤分類。
検証結果の詳細(一例)
AISECjp
perturbedoriginal
細工箇所
('cat', 0.48120362)
('bird', 0.40441346)
('dog', 0.059162639)
('bird', 0.48002127)
('cat', 0.42222592)
('dog', 0.047608543)
元画像は約48%の確率で猫(cat)と正しく分類。
細工画像は約48%の確率で鳥(bird)と誤分類。
1pixelの細工で
誤分類が誘発される
AISECjp
どうやって対策する?
AISECjp
対策案
予めノイズが乗った画像で訓練する。
元の訓練用画像に、Salt&Pepperノイズを乗せた画像を加える。
・ノイズを乗せた訓練用画像(一例)
AISECjp
⇑ 細工画像に似ているため、細工の影響を緩和できるのでは?
対策後の検証結果サマリ
AISECjp
・対策前に誤分類した78枚の内、44枚を猫(cat)クラスに正しく分類
・訓練用画像にノイズを乗せることで一定の効果がある
分類されたクラス 枚数
cat 44
automobile 2
bird 4
deer 1
dog 14
frog 5
horse 4
ship 3
truck 1
対策後の検証結果詳細(一例)
AISECjp
('cat', 0.53935719)
('dog', 0.4589588)
('bird', 0.00063569623)
('dog', 0.51095092)
('cat', 0.47476733)
('bird', 0.0056552952)
perturbed
対策前は約51%の確率で犬(dog)と誤分類。
対策後は約53%の確率で猫(cat)と正しく分類。
細工箇所
対策前 対策後
対策後の検証結果詳細(一例)
AISECjp
('cat', 0.71672058)
('frog', 0.14184321)
('deer', 0.11105834)
perturbed
対策前は約55%の確率で蛙(frog)と誤分類。
対策後は約71%の確率で猫(cat)と正しく分類。
細工箇所
対策前 対策後
('frog', 0.55007768)
('cat', 0.29504463)
('deer', 0.094751559)
対策後の検証結果詳細(一例)
AISECjp
('cat', 0.88032275)
('dog', 0.04940429)
('bird', 0.042262945)
perturbed
対策前は約48%の確率で鳥(bird)と誤分類。
対策後は約88%の確率で猫(cat)と正しく分類。
対策前 対策後
('bird', 0.48002127)
('cat', 0.42222592)
('dog', 0.047608543)
細工箇所
まとめ
・微小な細工を加えるだけで誤分類を誘発可能
・細工の有無は人間の目には分かりにくい
・細工箇所に規則性なし(猫本体や背景の細工でも誤分類する)
・任意のカテゴリに誤分類させることは困難(現手法では)
・訓練用画像にノイズを乗せると、誤分類への耐性が高まる。
⇒コントラスト調整、ぼかし、他ノイズも加えると耐性が増すか?(要検証)
AISECjp
課題
AISECjp
・サイズの大きい画像で誤分類させる
⇒ランダム選択では効率が悪いため、別手法を考える。
・なぜ誤分類するのか?CNNの原因個所を特定する
⇒分類過程の可視化やファジングで特定できるか?
・意図したクラスに誤分類させる手法を考える
⇒成功すると物体認識系にとって大きな脅威となる
検証コード
AISECjp
https://github.com/13o-bbr-bbq/machine_learning_security/tree/master/CNN_test
・finetuning.py
検証用モデルの作成。
kerasのVGG16をCIFAR10でFine-tuning。
・search_adv.py
細工画像の生成&誤分類の観測。
・predict.py
画像のクラス分類(正常画像、細工画像の確認用)。
Download “.PDF” version of this document:
≫ https://aisecjp.connpass.com/event/52104/

More Related Content

More from Isao Takaesu

OSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツールOSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツールIsao Takaesu
 
サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -Isao Takaesu
 
ハニーポッター技術交流会
ハニーポッター技術交流会ハニーポッター技術交流会
ハニーポッター技術交流会Isao Takaesu
 
サイバーセキュリティ錬金術
サイバーセキュリティ錬金術サイバーセキュリティ錬金術
サイバーセキュリティ錬金術Isao Takaesu
 
GAとGANによる検査値の自動生成
GAとGANによる検査値の自動生成GAとGANによる検査値の自動生成
GAとGANによる検査値の自動生成Isao Takaesu
 
Pythonと機械学習によるWebセキュリティの自動化
Pythonと機械学習によるWebセキュリティの自動化Pythonと機械学習によるWebセキュリティの自動化
Pythonと機械学習によるWebセキュリティの自動化Isao Takaesu
 
脆弱性診断データの活用例 - Webアプリケーション診断編 -
脆弱性診断データの活用例 - Webアプリケーション診断編 -脆弱性診断データの活用例 - Webアプリケーション診断編 -
脆弱性診断データの活用例 - Webアプリケーション診断編 -Isao Takaesu
 
RECOMMENDER for Web security engineers - 中級編 -
RECOMMENDER for Web security engineers - 中級編 -RECOMMENDER for Web security engineers - 中級編 -
RECOMMENDER for Web security engineers - 中級編 -Isao Takaesu
 
RECOMMENDER for Web security engineers - 初級編 -
RECOMMENDER for Web security engineers - 初級編 -RECOMMENDER for Web security engineers - 初級編 -
RECOMMENDER for Web security engineers - 初級編 -Isao Takaesu
 
Discussion AIの脆弱性について
Discussion AIの脆弱性についてDiscussion AIの脆弱性について
Discussion AIの脆弱性についてIsao Takaesu
 
機械学習関連情報の収集方法
機械学習関連情報の収集方法機械学習関連情報の収集方法
機械学習関連情報の収集方法Isao Takaesu
 
introduce "Stealing Machine Learning Models via Prediction APIs"
introduce "Stealing Machine Learning Models  via Prediction APIs"introduce "Stealing Machine Learning Models  via Prediction APIs"
introduce "Stealing Machine Learning Models via Prediction APIs"Isao Takaesu
 
機械学習を使ったハッキング手法
機械学習を使ったハッキング手法機械学習を使ったハッキング手法
機械学習を使ったハッキング手法Isao Takaesu
 
ITエンジニアのための機械学習理論入門 第5章
ITエンジニアのための機械学習理論入門 第5章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 AppsCODE BLUE 2016 - Method of Detecting Vulnerability in Web Apps
CODE BLUE 2016 - Method of Detecting Vulnerability in Web AppsIsao Takaesu
 
CODE BLUE 2016 - 機械学習でWebアプリケーションの脆弱性を見つける方法
CODE BLUE 2016 - 機械学習でWebアプリケーションの脆弱性を見つける方法CODE BLUE 2016 - 機械学習でWebアプリケーションの脆弱性を見つける方法
CODE BLUE 2016 - 機械学習でWebアプリケーションの脆弱性を見つける方法Isao Takaesu
 
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -Isao Takaesu
 
AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)
AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)
AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)Isao Takaesu
 
Aiにwebアプリ診断をやらせてみる
Aiにwebアプリ診断をやらせてみるAiにwebアプリ診断をやらせてみる
Aiにwebアプリ診断をやらせてみるIsao Takaesu
 

More from Isao Takaesu (19)

OSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツールOSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツール
 
サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
サイバーセキュリティ錬金術 - ノイズから価値あるデータを生成する技術 -
 
ハニーポッター技術交流会
ハニーポッター技術交流会ハニーポッター技術交流会
ハニーポッター技術交流会
 
サイバーセキュリティ錬金術
サイバーセキュリティ錬金術サイバーセキュリティ錬金術
サイバーセキュリティ錬金術
 
GAとGANによる検査値の自動生成
GAとGANによる検査値の自動生成GAとGANによる検査値の自動生成
GAとGANによる検査値の自動生成
 
Pythonと機械学習によるWebセキュリティの自動化
Pythonと機械学習によるWebセキュリティの自動化Pythonと機械学習によるWebセキュリティの自動化
Pythonと機械学習によるWebセキュリティの自動化
 
脆弱性診断データの活用例 - Webアプリケーション診断編 -
脆弱性診断データの活用例 - Webアプリケーション診断編 -脆弱性診断データの活用例 - Webアプリケーション診断編 -
脆弱性診断データの活用例 - Webアプリケーション診断編 -
 
RECOMMENDER for Web security engineers - 中級編 -
RECOMMENDER for Web security engineers - 中級編 -RECOMMENDER for Web security engineers - 中級編 -
RECOMMENDER for Web security engineers - 中級編 -
 
RECOMMENDER for Web security engineers - 初級編 -
RECOMMENDER for Web security engineers - 初級編 -RECOMMENDER for Web security engineers - 初級編 -
RECOMMENDER for Web security engineers - 初級編 -
 
Discussion AIの脆弱性について
Discussion AIの脆弱性についてDiscussion AIの脆弱性について
Discussion AIの脆弱性について
 
機械学習関連情報の収集方法
機械学習関連情報の収集方法機械学習関連情報の収集方法
機械学習関連情報の収集方法
 
introduce "Stealing Machine Learning Models via Prediction APIs"
introduce "Stealing Machine Learning Models  via Prediction APIs"introduce "Stealing Machine Learning Models  via Prediction APIs"
introduce "Stealing Machine Learning Models via Prediction APIs"
 
機械学習を使ったハッキング手法
機械学習を使ったハッキング手法機械学習を使ったハッキング手法
機械学習を使ったハッキング手法
 
ITエンジニアのための機械学習理論入門 第5章
ITエンジニアのための機械学習理論入門 第5章ITエンジニアのための機械学習理論入門 第5章
ITエンジニアのための機械学習理論入門 第5章
 
CODE BLUE 2016 - Method of Detecting Vulnerability in Web Apps
CODE BLUE 2016 - Method of Detecting Vulnerability in Web AppsCODE 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アプリケーションの脆弱性を見つける方法CODE BLUE 2016 - 機械学習でWebアプリケーションの脆弱性を見つける方法
CODE BLUE 2016 - 機械学習でWebアプリケーションの脆弱性を見つける方法
 
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
 
AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)
AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)
AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)
 
Aiにwebアプリ診断をやらせてみる
Aiにwebアプリ診断をやらせてみるAiにwebアプリ診断をやらせてみる
Aiにwebアプリ診断をやらせてみる
 

Convolutional Neural Networkに対する攻撃手法

Editor's Notes

  1. 私は三井物産セキュアディレクションという日本のサイバーセキュリティ会社でセキュリティエンジニアをやっております「タカエス」と申します。 今年の3月にシンガポールで開催されたBlack Hat Asia Arsenalに参加しており、これからお話するSAIVSと呼ぶAIを披露しました
  2. 今回は反射型のXSSを対象とします。
  3. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  4. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  5. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  6. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  7. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  8. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  9. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  10. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  11. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  12. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  13. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  14. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  15. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  16. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  17. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  18. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  19. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  20. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  21. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  22. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  23. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  24. 簡単にXSSを説明しますと、例えば超脆弱なアプリがあったとします。 このアプリはパラメータ「input」に入力した文字列が、INPUTタグのVALUE属性内に出力されます。
  25. ここで、パラメータ「input」にスクリプトを入力したとします。 すると、入力したスクリプトがINPUTタグ内にこのように出力されます。 VALUE属性値が「”(ダブルクォート)」で閉じられ、また、「>(右括弧)」でINPUTタグが閉じられた後に、スクリプトが挿入されています。 その結果、JavaScriptが動作します。このように、XSS脆弱性があると、任意のJavaScriptを動作させることができます。
  26. ここで、パラメータ「input」にスクリプトを入力したとします。 すると、入力したスクリプトがINPUTタグ内にこのように出力されます。 VALUE属性値が「”(ダブルクォート)」で閉じられ、また、「>(右括弧)」でINPUTタグが閉じられた後に、スクリプトが挿入されています。 その結果、JavaScriptが動作します。このように、XSS脆弱性があると、任意のJavaScriptを動作させることができます。
  27. 以上で私のセッションを終了します。 ご清聴、ありがとうございました。