継続的webセキュリティテスト testing casual talks2
TRANSCRIPT
Copyright (c) Bitforest Co., Ltd.
継続的WebセキュリティテストVAddy
2015/2/19 VAddy Meetup1
Testing Casual Talks #2 !
株式会社ビットフォレスト 市川
Copyright (c) Bitforest Co., Ltd.
Webセキュリティテスト
• ホワイトボックス
• ソースコード解析(ex. brakeman)
• ブラックボックス
• 攻撃用HTTPリクエストを送信してレスポンスを確認
• ex. VAddy, OWASP ZAP, AppScan
4
Copyright (c) Bitforest Co., Ltd.
セキュリティテスト 現状の問題点
6
開発チーム
外部の診断会社 社内の専門チーム
コーディング
単体テスト
結合テスト
脆弱性診断
開発チーム
修正
リリース
問題点 !•リリース直前に大量の脆弱性発見
•スケジュール遅延
•リリース後の修正・機能追加
•診断が難しい(コスト・期間)
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.
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.
VAddyの特徴
• セキュリティ検査エンジンを独自開発
• ユーザが行う設定作業を最小限に
• 機械学習の機能を持ったエンジン
• 無人でもうまく動作
• 常にアップデート
19
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.
VAddyの操作 3ステップ
• STEP1 テスト対象サーバ登録
• Verificationファイルの設置
• STEP2 検査対象のクロール
• Webアプリケーションの画面操作
• STEP3 スキャン実行(画面 / WebAPI)
• 結果参照
26
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