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.

20171122_VAddyMeetUp_EC-CUBEでのVAddy活用事例

540 views

Published on

2017年11月22日のVAddy MeetUpで発表した。
EC-CUBE のVAddy活用事例

Published in: Technology
  • Be the first to comment

  • Be the first to like this

20171122_VAddyMeetUp_EC-CUBEでのVAddy活用事例

  1. 1. Agenda • EC-CUBEとは • VAddy導入前 • VAddy導入のきっかけ • EC-CUBEの開発プロセス • EC-CUBEの開発プロセスに組み込む • VAddyを使ってみて
  2. 2. EC-CUBE とは
  3. 3. VAddy 導入前
  4. 4. 社内脆弱性診断ツール比較検討 • OWASP ZAPとかどうなん? • あとみんな活用できてる?
  5. 5. ネットでの評判 Price and Feature Comparison of Web Application Scanners http://www.sectoolmarket.com/price-and-feature-comparison-of-web-application-scanners-unified-list.html
  6. 6. データが古かったので取り直してみる • WAVSEP • https://github.com/sectooladdict/wavsep • ベンチマークの対象となったアプリケーション • 脆弱性の含まれる画面が大量に用意されている
  7. 7. VAddy以外の有償ツールを採用 • 高機能 • 検出できる脆弱性の種類も多い • 設定は複雑なので徐々に教育していく • 実行方法はJenkinsからキックできる仕組みを構築 • 実行時間がかかるので(数日かかることも)、リリース前にスキャン をかける
  8. 8. 社内脆弱性対策講座 • AppGoatを使った社内エンジニア向け講座を実施 • https://www.ipa.go.jp/security/vuln/appgoat/ • どのツールを使ってもレポートの内容がわからなければ意味がな い • 脆弱性を理解しておけば普段書くコードにも気を使う
  9. 9. VAddy 導入 きっかけ
  10. 10. どうやってVAddyを組み込むか? • せっかく(スキャン回数無制限)なので頻繁にスキャンさせたい • 普段の開発に負担がかからないようにしたい(仕事を増やしたくな い) • 可能な限り自動化したい
  11. 11. EC-CUBEの開発方法
  12. 12. EC-CUBEの普段の開発 • GitHub Flow • 直接pushせずにPull Reuestを送る • PHPUnitによる自動テスト • TravisCI上で実行され、すべてパスしないとマージされない • MySQL/PostgreSQL、PHP複数バージョン • Codeceptionによる自動Webテスト • 1日1回夜中に実行 • Chrome/Firefox、MySQL/PostgreSQL、PHP複数バージョン
  13. 13. VAddyを使うためにやること • アカウント作成 • 検証用サーバ構築 • クロールデータ作成 • スキャン実行
  14. 14. VAddyを使うためにやること • アカウント作成 • 検証用サーバ構築 • クロールデータ作成 ← めんどくさそう • スキャン実行
  15. 15. クロールデータ作成 • 手動 • プロキシ設定してひたすらクリックする人 • 自動 • プロキシ設定してひたすらクリックするスクリプト • 画面が追加されたときにスクリプトもメンテし続ける強い気持ち • 自分が離れたときに忘れず引き継いでもらえるか?
  16. 16. Webテストを流用する • 既存のテストケースから画面を網羅できるだけのテストケースを 抽出 • https://github.com/EC-CUBE/eccube-codeception/commit/7115700 2dcd8ff9eede9fc6faff2adc2b24828c1 • 普段のテスト実行 $ codecept run • VAddyクローラデータ作成(画面を網羅するケースだけ実行) $ codecept run --group vaddy
  17. 17. Webテスト WebDriver HTTP
  18. 18. Webテストを利用したクロールデータ作成 WebDriver internet HTTP Proxy 画面を網羅できるだけ のテストケースを実行 クロールデータを保存
  19. 19. VAddyによるスキャン internet 最後に作成したクロール データを元にスキャン
  20. 20. 脆弱性診断を行うための事前申請 • AWS他クラウドサーバーに対する脆弱性診断の事前申請につい て • 事前申請が必要だと、頻繁にはスキャンできない • さくらのクラウドは事前申請不要
  21. 21. VAddyを使ってみて • Webテストを書けばバグも脆弱性も発見できる仕組み • 実行時間が短いので早めのフィードバックが得られる • 毎日の開発に組み込むことができるのはありがたい • まだ始めたところなのでいろいろ改善していきたい • クロールデータが重複していて時間が掛かる • クロール時に削除されたページに対して、スキャン時にPOSTしてしまて る。。 • VAddy上にクロールデータが溜まり続ける • OWASP ZAPのスパイダー機能つかってクロールデータ作れないか な?
  22. 22. ご清聴ありがとう ございました。

×