Intern2015 02

9,097 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
9,097
On SlideShare
0
From Embeds
0
Number of Embeds
6,246
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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. ご清聴ありがとうございました

×