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.

Intern2015 02

9,894 views

Published on

LINE 2015 エンジニアインターン

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Intern2015 02

  1. 1. ➡ カード業界の勉強 ➡ ペネトレーションテスト ➡ CheckoutHelperのバージョンアップ ➡ セキュリティ調査 ➡ インフラ、プロビジョニングツールの整備 ➡ 動作確認 インターンでやったこと
  2. 2. セキュリティ調査 HTTPS+公開鍵暗号化 ➡ ツールによる解析 ➡ Webアプリケーション攻撃テ ストツールのbrakeman、 WebReaverを使用 ➡ いくつかの脆弱性と診断された ものはあったがどれも誤診断で あった
  3. 3. セキュリティ調査 HTTPS+公開鍵暗号化 ➡ 手動による解析 ➡ 己の勘と嗅覚で調査をした ➡ 10個ほど懸念点が見つかった ➡ 今回はそのうち1個についてイ ンターン中に担当することと した
  4. 4. CheckoutHelperについて ➡ CheckoutHelperとは? CheckoutHelper ➡ 決済時にユーザーが購入サイトから離れずに カード情報を入力できるようにする JavaScriptライブラリ ➡ カード情報の入力フォームとカード情報の  トークン化を担う
  5. 5. セキュリティ調査-安全でないDOMの生成 xxshop.com DOM in xxshop.com jquery.js analytics.js 4242 4242 4242 4242 PAN: 4242 4242 4242 4242 EXPIRE: 08/18 NAME: YAMADA… CVC: 123 analytics.com
  6. 6. セキュリティ調査-安全でないDOMの生成 iframe js.webpay.jp jquery.js analytics.js 4242 4242 4242 4242 xxshop.com
  7. 7. CheckoutHelperのバージョンアップ ➡ インターンではiframe対応をしたCheckoutHelperのv3をリリースする ことを目標に ➡ クレジットカード業界におけるセキュリティ基準のPCI DSSのバージョ ン3で推奨されているため、移行を予定していた See: http://qiita.com/hokkai7go@github/items/3705120cf73b07570f9e
  8. 8. CheckoutHelperのバージョンアップ ➡ 実はすでに対応のためのブランチがあった ➡ リリースされていなかった理由 ➡ 動作確認やセキュリティの調査、新しいサーバの準備が必要 ➡ ここらへんを対応していくことに
  9. 9. セキュリティ調査
  10. 10. 本当にあった怖いXSS ?publishableKey= ?publishableKey=<b>test</b> ?publishableKey=</script><script>alert(1)</script> ?publishableKey=test_public_XXXXXXXX JSON.dump ※リリース前のコードの話です
  11. 11. ➡ scriptタグ内では、このサニタイズでは十分でない ➡ JSONで出力するのであれば、加えて<>/のエスケープ ➡ https://subtech.g.hatena.ne.jp/mala/20100222/1266843093 本当にあった怖いXSS ?publishableKey=</script><script>alert(1)</script> ➡ そもそもサーバサイドで埋め込む必要なくない? ➡ クライアントサイドでパラメータの取得を行うように
  12. 12. サーバ構築
  13. 13. ➡ 現状Ansibleを使ってサーバの構成を管理している プロビジョニングツール ➡ 動作が遅い/もっさり ➡ 完了するまでに1時間以上かかる ➡ YAMLによる記述力不足 ➡ ignore_errors: yes, when, when, when.. ➡ テンプレートエンジンがしょぼい ➡ Jinja2使いづらい ➡ エージェントを先にインストールする必要がある ➡ 簡単に実行できない ➡ Chef/Puppet
  14. 14. https://www.flickr.com/photos/dakiny/14652227925/ Itamae ➡ クックパッドの荒井氏(@ryot_a_rai)を中心に 開発しているOSSのプロビジョニングツール ➡ RubyのDSLなので学習コストが低く、柔軟な 記述が可能 ➡ エージェント不要で、軽快に動作する
  15. 15. 動作確認
  16. 16. v2(Dynamic DOM) v3(iframe)
  17. 17. 最終報告
  18. 18. ➡ iframe対応をしたCheckoutHelperのv3をリリースします ➡ 利用中のマーチャントに影響が出ないよう、移行は公式ブログ等で     アナウンスをする(記事は書いた) 最終報告 v1 2014/06 v2 2015/08 v3 初版 デザイン変更 モバイル対応 iframe版 NOW しました
  19. 19. 最終報告 ➡ まとめた記事は今後 WebPay Engineering Blog に掲載予定
  20. 20. ご清聴ありがとうございました

×