aisecjp saivs(spider artificial intelligence vulnerability scanner)

27
SAIVS Spider Artificial Intelligence Vulnerability Scanner AISECjp 2016.04.26 高江洲 勲

Upload: isao-takaesu

Post on 16-Apr-2017

555 views

Category:

Software


5 download

TRANSCRIPT

Page 1: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

SAIVSSpider Artificial Intelligence Vulnerability Scanner

AISECjp 2016.04.26

高江洲 勲

Page 2: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

About the speaker

• 職業: Web security engineer.

• 会社: MBSD

• 趣味: 散歩, 脆弱性スキャナ作り

• ブログ: http://qiita.com/bbr_bbq

高江洲 勲(@bbr_bbq)

MBSD

タカエス イサオ

Page 3: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

Agenda

1. SAIVSとは?目的

2. 実装方法

3. 将来の展望

4. デモンストレーション

MBSD

Page 4: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

SAIVSとは?

MBSD

SAIVS

= Spider Artificial Intelligence Vulnerability Scanner.

Webアプリケーション診断を行うことを目指したAI.

Page 5: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

現在のWebアプリケーション診断

人間の診断員がWebアプリ診断を行う。

MBSD

診断員Web Server

Web Apps

F/W

診断ベンダー 顧客

疑似攻撃

SQLi?

XSS?

レスポンスの受信/分析

Webアプリをクローリングしながら疑似攻撃を行う。

Webアプリからのレスポンスを分析して脆弱性を見つける。

Page 6: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

GOAL

全て機械によるWebアプリ診断の実現。

MBSD

SAIVS Web Server

Web Apps

F/W

診断ベンダー 顧客

疑似攻撃

人間のようにWebアプリをクローリングしながら診断を行う。

SQLi?

XSS?

実業務や懸賞金プログラムへの参戦を目指す。

レスポンスの受信/分析

Page 7: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

現在のSAIVSの能力

MBSD

Webアプリのクローリング。

機械的なスキャンの実行。

簡易レポートの出力。

SAIVS prototype v1:

「Webアプリのクローリング」に機械学習を活用。

Page 8: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

こんなことができます

MBSD

ログインしたいけどアカウントがないのでスキップ。

会員登録機能でアカウントを作った後にログイン。

ログイン後のページをクローリングしながらスキャン。

Page 9: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

なぜクローリングに機械学習?

MBSD

Webアプリのクローリングって意外と難しい。

なぜ?

Page 10: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

このページは何でしょう?

MBSD

人間は容易にページ種別を認識できる(会員登録ページ)。

けど、機械が認識するのは困難。

Page 11: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

入力フォームに何を入れるのか?

MBSD

遷移

人間は「Name」「Email」等に適切な文字列を入力できる。

けど、機械は非常に困難(フォームの意味が解釈できない)。

???

???

???

???

???

Page 12: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

遷移は成功したのか?

MBSD

人間はエラーメッセ―ジから遷移失敗と認識できる。

けど、機械は困難(エラーの意味が解釈できない)。

Page 13: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

クローリングには複雑な思考パターンが必要

MBSD

「機械学習」でクローリングの思考パターンの実現を試みる。

思考パターン 機械学習アルゴリズム

ページ種別の認識

Naive Bayes

遷移成否の認識

(入力フォームへの)適切な入力文字列の学習Multilayer PerceptronQ-Learning

Page 14: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

Naive Bayesとは?

テキスト分類に使用される機械学習アルゴリズム。

⇒事前定義のカテゴリテーブルと確率理論に基づいて分類。

MBSD

使用例)

スパムメールフィルタ (Spam or Ham).

ブログ記事のカテゴリ分類 (はてなブログ).

WAFの攻撃検知率向上への利用 (Scutum).

Page 15: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

Naive Bayesの使用例

MBSD

SPAM:0.672 ← こっちに分類HAM:0.03

期間SPAM:10%HAM :30%

カテゴリ

限定

ココ

クリック

http://wana.jp

SPAM:40%HAM :10%

SPAM:30%HAM :40%

SPAM:70%HAM :50%

SPAM:80%HAM :5%

スパムメールフィルタ

メール本文からキーワードを抽出。

キーワードを基にSPAM/HAMの確率を求める。

Page 16: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

「ページ種別の認識」で使用するカテゴリテーブル

MBSD

カテゴリ 分類に使うキーワード

ログイン Email, User ID, Password, Sign in …

会員登録 Email, Password, Confirm, Sign up …

検索 Word, Text, String, Sort, Search …

・・・ ・・・

認識したいページ種別と、ページ種別を特徴付けるキーワードを定義。

現状は30くらいのWebアプリからキーワードを収集。

多くのキーワードを収集する = 分類精度が向上する。

Page 17: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

SAIVSでページ種別の認識を試みる

MBSD

Page 18: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

「Sign in」のHTMLソースの解析

MBSD

<h1>Sign in</h1><form action="/cyclone/sessions" method="post"><label for="email">Email</label><input id="email" name="email" type="text" /><label for="password">Password</label><input id="password" name="password" type="password" /></form>

HTMLソースをパースしてキーワードを抽出。

カテゴリテーブルを使用して、最も高い確率のカテゴリを求める。

結果:ログイン(正解)

Page 19: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

SAIVSでページ遷移成否の認識を試みる

MBSD

Page 20: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

遷移試行後のHTMLソースの解析

MBSD

<div>Invalid email or password </div>

HTMLソースをパースして キーワードを抽出。

カテゴリテーブルを使用して、最も高い確率のカテゴリを求める。

結果:遷移失敗(正解)

カテゴリ 分類に使うキーワード

遷移成功 Good, Valid, Success, Normal, Fine …

遷移失敗 Bad, Invalid, Failure, Error, Unmatch …

「遷移成否の認識」で使用するカテゴリテーブル例

Page 21: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

正常遷移するために、入力フォームに何を入力するか?

最適なパラメータ値の学習が必要。

MBSD

SAIVSで正常遷移できるパラメータ値を学習する

遷移???

???

???

???

???

Page 22: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

MBSD

Deep Q-Network(DQN)のアルゴリズムを参考にする

Google Deep Mind社が開発した人工知能。

深層学習と強化学習を組み合わせたアルゴリズム。

自己学習できるモデルとしては秀逸。

使用例)

クラッシックゲーム (Atari) の攻略.

囲碁の世界王者に勝利 (AlphaGoのベースになっている).

DQN?

Page 23: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

MBSD

Deep Q-Networkの使用例

“Playing Atari breakout with DQN” by eldubro (2015/3)

Page 24: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

SAIVSで採用した最適なパラメータ値を求めるモデル

MBSD

Deep Learningの代わりにMLPを使用。

遷移試行を繰り返しながら、最適なパラメータ値を学習。

Page 25: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

将来の展望

MBSD

クローリング能力の強化

スキャン能力の強化

実戦投入 (Google VRPに参戦するか?)

Next Step: スキャン部分へのAI技術の応用

・脆弱性検出パターンの自己学習

・ロジック系の脆弱性検出

Page 26: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

デモンストレーション

MBSD

診断対象:OWASP BWA Cyclone

デモの様子:https://www.mbsd.jp/blog/20160113_2.html

Page 27: AISECjp SAIVS(Spider Artificial Intelligence Vulnerability Scanner)

• Download “.PDF” version of this document:

≫ http://connpass.com/event/29969/

MBSD