脆弱性もバグ、だからテストしよう devsummifukuoka
TRANSCRIPT
Copyright (c) Bitforest Co., Ltd.
脆弱性もバグ、だからテストしよう Developers Summit 2015 Fukuoka
2015/9/14 DevSumi Fukuoka1
株式会社ビットフォレスト 市川
Copyright (c) Bitforest Co., Ltd.
2
• @cakephper / @ichikaway
• プログラマー / プロダクトマネージャ
• PHPカンファレンス福岡 実行委員長
自己紹介
Copyright (c) Bitforest Co., Ltd.
セキュリティ事故の影響
• 情報漏洩
• 改竄、マルウェアの配布
• 他サイトへのリスト型攻撃に悪用
3
損害賠償、2次被害など影響が大きい
Copyright (c) Bitforest Co., Ltd.
4
バグ(脆弱性)を テストして 立ち向かおう
Copyright (c) Bitforest Co., Ltd.
Webセキュリティテスト
• ホワイトボックス
• ソースコード解析(ex. brakeman)
• ブラックボックス
• 攻撃用HTTPリクエストを送信してレスポンスを確認
• ex. VAddy, OWASP ZAP, AppScan
5
Copyright (c) Bitforest Co., Ltd.
OWASP ZAP
6
Copyright (c) Bitforest Co., Ltd.
資料
• Web(IPA) • 安全なウェブサイトの作り方
• 安全なSQLの呼び出し方
• ウェブ健康診断仕様
• 書籍
• 安全なWebアプリケーションの作り方
7
Copyright (c) Bitforest Co., Ltd.
セキュリティテスト 現状の問題点
8
開発チーム
外部の診断会社 社内の専門チーム
コーディング
単体テスト
結合テスト
脆弱性診断
開発チーム
修正
リリース
問題点 !•リリース直前に大量の脆弱性発見
•スケジュール遅延
•リリース後の修正・機能追加
•診断が難しい(コスト・期間)
Copyright (c) Bitforest Co., Ltd.
9
理想的には 開発初期から リリース後まで
Copyright (c) Bitforest Co., Ltd.
10
継続的な セキュリティテスト
が必要
Copyright (c) Bitforest Co., Ltd.
世界の流れ
• Google • GTAC 2013: Finding XSS at Google Scale • 社内で独自ツールを使ってチャレンジ中
• https://www.youtube.com/watch?v=rd5TZKRg-‐lc
11
Copyright (c) Bitforest Co., Ltd.
世界の流れ• カーネギーメロン大学ソフトウェア工学部
• http://blog.sei.cmu.edu/post.cfm/security-‐continuous-‐integration-‐338
12
Copyright (c) Bitforest Co., Ltd.
継続的Webセキュリティテスト
13
開発チーム
外部の診断会社 社内の専門チーム
コーディング
単体テスト
結合テスト
脆弱性診断
開発チーム
修正
リリース
継続的セキュリティテスト開発チーム
コーディング
単体テスト
結合テスト
リリース
脆弱性診断
本リリース前には、診断会社の診断を。
Copyright (c) Bitforest Co., Ltd.
継続的Webセキュリティテストの課題
• 既存のツールを使う場合
• 設定項目が多くノウハウを貯める必要
• 環境構築・運用コスト
• CIのフローに乗せるのが大変
14
Copyright (c) Bitforest Co., Ltd.
継続的Webセキュリティテストの重要な点
15
アプリケーションの動作を
把握した検査
Copyright (c) Bitforest Co., Ltd.
16
ツールの設定を常に
学び続けて使わないと効果が少ない
ビジネスに関わる開発に
注力できない・・・
継続的Webセキュリティテストの課題
Copyright (c) Bitforest Co., Ltd.
17
簡単に導入 運用が不要効果的な検査
CIサイクルに組込み
Copyright (c) Bitforest Co., Ltd.
18
継続的Webセキュリティテストサービス
Vulnerability Assessment is your Buddy (脆弱性診断はあなたの相棒)
Copyright (c) Bitforest Co., Ltd.
VAddyの特徴
•ブラックボックスのWeb脆弱性診断
•インストール不要(SaaS)
• CI連携を前提に設計
• WebAPI連携
• Jenkinsプラグイン
• Travis, CircleCI, etc 連携可能
19
Copyright (c) Bitforest Co., Ltd.
よくある構成
20
Copyright (c) Bitforest Co., Ltd.
VAddyの特徴
21
特別な設定なしでVAddyがアプリケーションの動作を理解して
正確に検査できるように
Copyright (c) Bitforest Co., Ltd.
VAddyの特徴
22
機械学習を使った
セキュリティ検査の
エンジンを独自開発
Copyright (c) Bitforest Co., Ltd.
VAddyのポリシー
23
開発者が
開発に注力できるように!
Copyright (c) Bitforest Co., Ltd.
24
継続的な セキュリティテストで
安心してリリースすることが 今後のトレンドになる
Copyright (c) Bitforest Co., Ltd.
25
まずは VAddyやOWASP ZAP
を使って評価 小さく初めてみる
Copyright (c) Bitforest Co., Ltd.
26
Vulnerability Assessment is your Buddy(脆弱性診断はあなたの相棒)
DEMO
Copyright (c) Bitforest Co., Ltd.
VAddy DEMO
27
Copyright (c) Bitforest Co., Ltd.
脆弱性の種類、問題のパラメータ名
28
SQLインジェクションなどの脆弱性種類、対象のURL、問題のあるパラメータ名が分かる。 この例だと、searchというURLで利用している、IDというパラメータにSQLインジェクションが存在するため、該当のソースコードがすぐに把握できる。
Copyright (c) Bitforest Co., Ltd.
再現用の攻撃リクエスト
29
VAddyが送信した攻撃リクエストが分かるため、開発環境で再現できる
Copyright (c) Bitforest Co., Ltd.
VAddyの歩み• 2014年10月国内ベータ公開
• 2015年4月 海外ベータ公開
• 2015年9月 有料版公開
• Freeプラン
• Standardプラン $100/月
• Proプラン $300/月
30
Copyright (c) Bitforest Co., Ltd.
検査項目• SQLインジェクション
• XSS • コマンドインジェクション
• ディレクトリトラバーサル
• リモートファイルインクルージョン
31
Copyright (c) Bitforest Co., Ltd.
現状、可能な検査• RestAPI対応、パラメータがJSON対応
• URLパスのパラメータ検査
• www.example.com/item/view/1 • フォーム認証(ログイン画面)
• CSRF対策トークン(Angular.jsも含め)
• SSL上のアプリケーション
32
Copyright (c) Bitforest Co., Ltd.
33
Vulnerability Assessment is your Buddy(脆弱性診断はあなたの相棒)
ご清聴 ありがとうございました