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.

Webアプリ診断AIの開発 クローラー編

87,530 views

Published on

2015.12.19 Chainer MeetUp.

Published in: Software
  • Be the first to comment

Webアプリ診断AIの開発 クローラー編

  1. 1. Webアプリ診断A.Iの開発 - クローラー編 - Chainer MeetUp #01 2015/12/19
  2. 2. 1.自己紹介 • 名前:高江洲 勲(babaroa@bbr_bbq) • 仕事:Webアプリケーションの脆弱性診断 • 所属:三井物産セキュアディレクション • 経験:銀行系システム開発、Webアプリ開発など • 趣味:脆弱性スキャナ作り、機械学習 ・6,720分でWebアプリケーションスキャナを作る方法 ・多層パーセプトロンでCAPTCHAを認識する … http://qiita.com/bbr_bbq
  3. 3. 診断員 Internet Webサーバ Webアプリ F/W 診断員 診断環境 診断対象 Webアプリを巡回しながら診断パターン(XSS,SQLiなど)を試行。 Webアプリのレスポンスから脆弱性の有無を判定する。 2.Webアプリケーション診断とは?
  4. 4. 3.GOAL 人間の診断員と同じように、Webアプリの脆弱性を見つける。 そんな診断A.Iを作る。 ・診断対象のWebアプリを隅々まで巡回し、 ・様々な診断を実施し、 ・脆弱性を発見したら報告する。 具体的には… 完成には30年くらいかかる見込み…
  5. 5. 4.いまできること ・Webアプリの巡回  ページ種別の認識(ログイン?会員登録?)  フォームに最適なパラメータ値を入力  ページ遷移の成否を認識 ・脆弱性スキャン ・簡易レポート出力 会員登録機能でアカウントを作った後にログインを試行し、 ログイン後のページを粛々と巡回しながらスキャンする。 こんなことができます… A.Iで実現
  6. 6. 5.診断A.Iの思考フロー ① 人間から対象WebアプリのトップURLを教えて貰う ② トップURLのResから、次ページのURL・パラメータを抽出 ③ 次ページの種別を認識(ログイン?会員登録?)  Naive Bayes分類器 ④ (FORMの場合)正常遷移できる最適パラメータ値を学習  DeepじゃないDQN(Deep Q-Network) ⑤(学習結果を基に)正常遷移しながらスキャンを実行 ⑥ 診断結果を報告 繰り返す 全ページ・全パラメータの診断が終わるまで “学習→遷移→スキャン”を繰り返す。
  7. 7. 6.最適パラメータ値の学習 ・ ・ ・ 状態の入力 中間処理 行動の出力(パラメータ構成の決定) ・ ・ ・ 多層NN 95 14 ・ ・ ・ Q’値 -2 評価 報酬 or 罰則 英字のみ 英字・数字 メアド風文字列 今のページNo 次のページNo 遷移状態 87 8 6 Q値 誤差の算出 強化学習 誤差が最小になるように重みを更新 ・多層NNでChainerを利用 p1=abcd&p2=xyz・・・ p1=1234&p2=abc・・・ p1=hoge@hoge.jp・・・ ・ ・ ・
  8. 8. 7.デモ 診断対象:OWASP BWA Cyclone シグネチャ:SQLインジェクション「‘¥」 レスポンスに出力されるSQL構文エラーを検出して脆弱性判定 例)
  9. 9. 8.今後の予定 ・クローリング能力の強化  複雑なアプリの巡回(業務アプリ、ECサイトなど) CAPTCHA/画像認証の突破 ・脆弱性スキャン能力の強化  ロジック系の脆弱性にも一部対応  誤検知の低減 ・自然言語処理の組み込み ・バグバウンティプログラムへの参戦  診断A.Iによるバグ検出の実現

×