Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
継続的Webセキュリティテスト

VAddy
2015/2/19 VAddy Meetup
1
Testing	
  Casual	
  Talks	
  #2	
  
!
株式会社ビットフォレスト	
  
市川
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
自己紹介
• 市川
• @cakephper / @ichikaway
• 福岡在住
2
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
忘れがちなテスト
• セキュリティテスト	
  
• 今回はWebの脆弱性検査の話	
  
• パフォーマンステスト	
  
• loader.ioなど
3
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
Webセキュリティテスト
• ホワイトボックス	
  
• ソースコード解析(ex.	
  brakeman)	
  
• ブラックボックス	
  
• 攻撃用HTTPリクエストを送信してレスポ
ンスを確認	
  
• ex.	
  VAddy,	
  OWASP	
  ZAP,	
  AppScan
4
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
OWASP ZAP
5
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
セキュリティテスト 現状の問題点
6
開発チーム
外部の診断会社	
  
社内の専門チーム
コーディング
単体テスト
結合テスト
脆弱性診断
開発チーム
修正
リリース
問題点	
  
!
• リリース直前に大量の脆弱性発見	
  
• スケジュール遅延	
  
• リリース後の修正・機能追加	
  
• 診断が難しい(コスト・期間)
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
7
理想的には	
  
開発初期から	
  
リリース後まで
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
8
継続的な	
  
セキュリティテスト	
  
が必要
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
世界の流れ
• Google	
  
• GTAC	
  2013:	
  Finding	
  XSS	
  at	
  Google	
  Scale	
  
• 社内で独自ツールを使ってチャレンジ中	
  
• https://www.youtube.com/watch?v=rd5TZKRg-­‐lc
9
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
世界の流れ
• カーネギーメロン大学ソフトウェア工学部	
  
• http://blog.sei.cmu.edu/post.cfm/security-­‐
continuous-­‐integration-­‐338
10
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
継続的Webセキュリティテスト
11
開発チーム
外部の診断会社	
  
社内の専門チーム
コーディング
単体テスト
結合テスト
脆弱性診断
開発チーム
修正
リリース
継続的セキュリティテスト
開発チーム
コーディング
単体テスト
結合テスト
リリース
脆弱性診断
本リリース前には、診断会社の診断を。
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
継続的Webセキュリティテストの課題
• 既存のツールを使う場合	
  
• CIのフローに乗せるのが大変	
  
• 検査に時間がかかる	
  
• 設定項目が多くノウハウを貯める必要
12
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
重要ポイント
13
アプリケーションの動作を	
  
検査ツールが把握して	
  
検査できなければ	
  
まったく意味がない
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
14
簡単に導入	
  
運用が不要

効果的な検査

CIサイクルに組込み
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
15
継続的Webセキュリティテストサービス
Vulnerability	
  Assessment	
  is	
  your	
  Buddy	
  
(脆弱性診断はあなたの相棒)
http://vaddy.net
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
VAddyの特徴
• ブラックボックスのWeb脆弱性診断	
  
• インストール不要(SaaS)	
  
• CI連携を前提に設計	
  
• WebAPI連携	
  
• 無人の運用が必須
16
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
よくある構成
17
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
VAddyの特徴
18
特別な設定なしでVAddyが

アプリケーションの動作を理解して	
  
正確に検査できるように
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
VAddyの特徴
• セキュリティ検査エンジンを独自開発	
  
• ユーザが行う設定作業を最小限に	
  
• 機械学習の機能を持ったエンジン	
  
• 無人でもうまく動作	
  
• 常にアップデート
19
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
20
継続的な	
  
セキュリティテストで	
  
安心してリリースすることが	
  
今後のトレンドになる
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
21
まずは	
  
VAddyやOWASP	
  ZAP	
  
を使って評価	
  
小さく初めてみる
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
22
Vulnerability	
  Assessment	
  is	
  your	
  Buddy(脆弱性診断はあなたの相棒)
デモ
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
VAddyの現状(2015/5 現在)
• 無料プランのみ提供中	
  
• 何度でもスキャン実行可能	
  
• SQLインジェクション、XSS	
  
• Jenkinsプラグイン提供中	
  
• Rubyクライアント提供中	
  
• CircleCI,	
  TravisCI,	
  Codeshipなどに対応
23
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
現状、可能な検査(SQLi, XSS)
• GET/POST/PUT/DELETEのパラメータの検査	
  
• RestAPI対応、パラメータがJSON対応	
  
• URLパスのパラメータ検査	
  
• www.example.com/item/view/1	
  
• フォーム認証(ログイン画面)	
  
• CSRF対策トークン(Angular.jsも含め)	
  
• SSL上のアプリケーション
24
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
25
http://vaddy.net
ご清聴ありがとう	
  
ございました
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
VAddyの操作 3ステップ
• STEP1	
  	
  テスト対象サーバ登録	
  
• Verificationファイルの設置	
  
• STEP2	
  	
  検査対象のクロール	
  
• Webアプリケーションの画面操作	
  
• STEP3	
  	
  スキャン実行(画面	
  /	
  WebAPI)	
  
• 結果参照
26
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
クロールとは?
27
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
クロールとは?
28
アプリケーションの
操作記録を保存	
  
(URL、パラメータ、
ログイン情報など)
ブラウザのProxy設
定にてVAddy	
  Proxy
をセットし、Web
アプリケーション
を操作
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
何故手動クロールが必要か?
• 自動クロールの限界	
  
• 時間がかかる	
  
• リンク切れURL	
  
• 認証画面情報	
  
• アプリケーション特有の動作
29
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
• 検査対象のアプリを一番良く知っている人	
  
• お客様(開発者、テスター、発注者)	
  
• SeleniumなどのE2Eテストが普及	
  
• このデータをクロールに流用すれば!!
30
何故手動クロールが必要か?
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
手動クロールのメリット
• 検査漏れ、設定項目を減らす	
  
• 検査時間のコントロール	
  
• スキャン不要な箇所はクロールしなけれ
ばスキャン時間が短縮できる
31
Copyright	
  (c)	
  	
  Bitforest	
  Co.,	
  Ltd.
 
現状、出来ないこと(順次対応予定)
• 蓄積型XSS、Dom	
  based	
  XSSの検査	
  
• SQLインジェクション、XSS以外の検査	
  
• ディレクトリトラバーサル	
  
• リモートファイルインクルージョンなど
32

継続的Webセキュリティテスト testing casual talks2

  • 1.
    Copyright  (c)    Bitforest  Co.,  Ltd.   継続的Webセキュリティテスト
 VAddy 2015/2/19 VAddy Meetup 1 Testing  Casual  Talks  #2   ! 株式会社ビットフォレスト   市川
  • 2.
    Copyright  (c)    Bitforest  Co.,  Ltd.   自己紹介 • 市川 • @cakephper / @ichikaway • 福岡在住 2
  • 3.
    Copyright  (c)    Bitforest  Co.,  Ltd.   忘れがちなテスト • セキュリティテスト   • 今回はWebの脆弱性検査の話   • パフォーマンステスト   • loader.ioなど 3
  • 4.
    Copyright  (c)    Bitforest  Co.,  Ltd.   Webセキュリティテスト • ホワイトボックス   • ソースコード解析(ex.  brakeman)   • ブラックボックス   • 攻撃用HTTPリクエストを送信してレスポ ンスを確認   • ex.  VAddy,  OWASP  ZAP,  AppScan 4
  • 5.
    Copyright  (c)    Bitforest  Co.,  Ltd.   OWASP ZAP 5
  • 6.
    Copyright  (c)    Bitforest  Co.,  Ltd.   セキュリティテスト 現状の問題点 6 開発チーム 外部の診断会社   社内の専門チーム コーディング 単体テスト 結合テスト 脆弱性診断 開発チーム 修正 リリース 問題点   ! • リリース直前に大量の脆弱性発見   • スケジュール遅延   • リリース後の修正・機能追加   • 診断が難しい(コスト・期間)
  • 7.
    Copyright  (c)    Bitforest  Co.,  Ltd.   7 理想的には   開発初期から   リリース後まで
  • 8.
    Copyright  (c)    Bitforest  Co.,  Ltd.   8 継続的な   セキュリティテスト   が必要
  • 9.
    Copyright  (c)    Bitforest  Co.,  Ltd.   世界の流れ • Google   • GTAC  2013:  Finding  XSS  at  Google  Scale   • 社内で独自ツールを使ってチャレンジ中   • https://www.youtube.com/watch?v=rd5TZKRg-­‐lc 9
  • 10.
    Copyright  (c)    Bitforest  Co.,  Ltd.   世界の流れ • カーネギーメロン大学ソフトウェア工学部   • http://blog.sei.cmu.edu/post.cfm/security-­‐ continuous-­‐integration-­‐338 10
  • 11.
    Copyright  (c)    Bitforest  Co.,  Ltd.   継続的Webセキュリティテスト 11 開発チーム 外部の診断会社   社内の専門チーム コーディング 単体テスト 結合テスト 脆弱性診断 開発チーム 修正 リリース 継続的セキュリティテスト 開発チーム コーディング 単体テスト 結合テスト リリース 脆弱性診断 本リリース前には、診断会社の診断を。
  • 12.
    Copyright  (c)    Bitforest  Co.,  Ltd.   継続的Webセキュリティテストの課題 • 既存のツールを使う場合   • CIのフローに乗せるのが大変   • 検査に時間がかかる   • 設定項目が多くノウハウを貯める必要 12
  • 13.
    Copyright  (c)    Bitforest  Co.,  Ltd.   重要ポイント 13 アプリケーションの動作を   検査ツールが把握して   検査できなければ   まったく意味がない
  • 14.
    Copyright  (c)    Bitforest  Co.,  Ltd.   14 簡単に導入   運用が不要
 効果的な検査
 CIサイクルに組込み
  • 15.
    Copyright  (c)    Bitforest  Co.,  Ltd.   15 継続的Webセキュリティテストサービス Vulnerability  Assessment  is  your  Buddy   (脆弱性診断はあなたの相棒) http://vaddy.net
  • 16.
    Copyright  (c)    Bitforest  Co.,  Ltd.   VAddyの特徴 • ブラックボックスのWeb脆弱性診断   • インストール不要(SaaS)   • CI連携を前提に設計   • WebAPI連携   • 無人の運用が必須 16
  • 17.
    Copyright  (c)    Bitforest  Co.,  Ltd.   よくある構成 17
  • 18.
    Copyright  (c)    Bitforest  Co.,  Ltd.   VAddyの特徴 18 特別な設定なしでVAddyが
 アプリケーションの動作を理解して   正確に検査できるように
  • 19.
    Copyright  (c)    Bitforest  Co.,  Ltd.   VAddyの特徴 • セキュリティ検査エンジンを独自開発   • ユーザが行う設定作業を最小限に   • 機械学習の機能を持ったエンジン   • 無人でもうまく動作   • 常にアップデート 19
  • 20.
    Copyright  (c)    Bitforest  Co.,  Ltd.   20 継続的な   セキュリティテストで   安心してリリースすることが   今後のトレンドになる
  • 21.
    Copyright  (c)    Bitforest  Co.,  Ltd.   21 まずは   VAddyやOWASP  ZAP   を使って評価   小さく初めてみる
  • 22.
    Copyright  (c)    Bitforest  Co.,  Ltd.   22 Vulnerability  Assessment  is  your  Buddy(脆弱性診断はあなたの相棒) デモ
  • 23.
    Copyright  (c)    Bitforest  Co.,  Ltd.   VAddyの現状(2015/5 現在) • 無料プランのみ提供中   • 何度でもスキャン実行可能   • SQLインジェクション、XSS   • Jenkinsプラグイン提供中   • Rubyクライアント提供中   • CircleCI,  TravisCI,  Codeshipなどに対応 23
  • 24.
    Copyright  (c)    Bitforest  Co.,  Ltd.   現状、可能な検査(SQLi, XSS) • GET/POST/PUT/DELETEのパラメータの検査   • RestAPI対応、パラメータがJSON対応   • URLパスのパラメータ検査   • www.example.com/item/view/1   • フォーム認証(ログイン画面)   • CSRF対策トークン(Angular.jsも含め)   • SSL上のアプリケーション 24
  • 25.
    Copyright  (c)    Bitforest  Co.,  Ltd.   25 http://vaddy.net ご清聴ありがとう   ございました
  • 26.
    Copyright  (c)    Bitforest  Co.,  Ltd.   VAddyの操作 3ステップ • STEP1    テスト対象サーバ登録   • Verificationファイルの設置   • STEP2    検査対象のクロール   • Webアプリケーションの画面操作   • STEP3    スキャン実行(画面  /  WebAPI)   • 結果参照 26
  • 27.
    Copyright  (c)    Bitforest  Co.,  Ltd.   クロールとは? 27
  • 28.
    Copyright  (c)    Bitforest  Co.,  Ltd.   クロールとは? 28 アプリケーションの 操作記録を保存   (URL、パラメータ、 ログイン情報など) ブラウザのProxy設 定にてVAddy  Proxy をセットし、Web アプリケーション を操作
  • 29.
    Copyright  (c)    Bitforest  Co.,  Ltd.   何故手動クロールが必要か? • 自動クロールの限界   • 時間がかかる   • リンク切れURL   • 認証画面情報   • アプリケーション特有の動作 29
  • 30.
    Copyright  (c)    Bitforest  Co.,  Ltd.   • 検査対象のアプリを一番良く知っている人   • お客様(開発者、テスター、発注者)   • SeleniumなどのE2Eテストが普及   • このデータをクロールに流用すれば!! 30 何故手動クロールが必要か?
  • 31.
    Copyright  (c)    Bitforest  Co.,  Ltd.   手動クロールのメリット • 検査漏れ、設定項目を減らす   • 検査時間のコントロール   • スキャン不要な箇所はクロールしなけれ ばスキャン時間が短縮できる 31
  • 32.
    Copyright  (c)    Bitforest  Co.,  Ltd.   現状、出来ないこと(順次対応予定) • 蓄積型XSS、Dom  based  XSSの検査   • SQLインジェクション、XSS以外の検査   • ディレクトリトラバーサル   • リモートファイルインクルージョンなど 32