intern2015 02

20
カード業界の勉強 ペネトレーションテスト CheckoutHelperのバージョンアップ セキュリティ調査 インフラ、プロビジョニングツールの整備 動作確認 インターンでやったこと

Upload: line-corporation

Post on 16-Apr-2017

9.276 views

Category:

Technology


0 download

TRANSCRIPT

➡ カード業界の勉強

➡ ペネトレーションテスト

➡ CheckoutHelperのバージョンアップ

➡ セキュリティ調査

➡ インフラ、プロビジョニングツールの整備

➡ 動作確認

インターンでやったこと

セキュリティ調査

HTTPS+公開鍵暗号化

➡ ツールによる解析 ➡ Webアプリケーション攻撃テ

ストツールのbrakeman、

WebReaverを使用

➡いくつかの脆弱性と診断された

ものはあったがどれも誤診断で

あった

セキュリティ調査

HTTPS+公開鍵暗号化

➡ 手動による解析 ➡ 己の勘と嗅覚で調査をした

➡ 10個ほど懸念点が見つかった

➡ 今回はそのうち1個についてイ

ンターン中に担当することと

した

CheckoutHelperについて

➡CheckoutHelperとは?

CheckoutHelper

➡ 決済時にユーザーが購入サイトから離れずに

カード情報を入力できるようにする

JavaScriptライブラリ

➡ カード情報の入力フォームとカード情報の 

トークン化を担う

セキュリティ調査-安全でない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

セキュリティ調査-安全でないDOMの生成

iframe js.webpay.jp

jquery.js

analytics.js

4242 4242 4242 4242

xxshop.com

CheckoutHelperのバージョンアップ

➡ インターンではiframe対応をしたCheckoutHelperのv3をリリースする

ことを目標に

➡ クレジットカード業界におけるセキュリティ基準のPCI DSSのバージョ

ン3で推奨されているため、移行を予定していた

See: http://qiita.com/hokkai7go@github/items/3705120cf73b07570f9e

CheckoutHelperのバージョンアップ

➡ 実はすでに対応のためのブランチがあった

➡ リリースされていなかった理由 ➡ 動作確認やセキュリティの調査、新しいサーバの準備が必要

➡ ここらへんを対応していくことに

セキュリティ調査

本当にあった怖いXSS

?publishableKey=“ ?publishableKey=<b>test</b>

?publishableKey=</script><script>alert(1)</script>

?publishableKey=test_public_XXXXXXXX

JSON.dump

※リリース前のコードの話です

➡ scriptタグ内では、このサニタイズでは十分でない ➡ JSONで出力するのであれば、加えて<>/のエスケープ

➡ https://subtech.g.hatena.ne.jp/mala/20100222/1266843093

本当にあった怖いXSS

?publishableKey=</script><script>alert(1)</script>

➡そもそもサーバサイドで埋め込む必要なくない? ➡ クライアントサイドでパラメータの取得を行うように

サーバ構築

➡ 現状Ansibleを使ってサーバの構成を管理している

プロビジョニングツール

➡動作が遅い/もっさり ➡ 完了するまでに1時間以上かかる

➡ YAMLによる記述力不足 ➡ ignore_errors: yes, when, when, when..

➡ テンプレートエンジンがしょぼい ➡ Jinja2使いづらい

➡エージェントを先にインストールする必要がある ➡ 簡単に実行できない

➡ Chef/Puppet

https://www.flickr.com/photos/dakiny/14652227925/

Itamae➡クックパッドの荒井氏(@ryot_a_rai)を中心に開発しているOSSのプロビジョニングツール

➡RubyのDSLなので学習コストが低く、柔軟な記述が可能

➡エージェント不要で、軽快に動作する

動作確認

v2(Dynamic DOM) v3(iframe)

最終報告

➡ iframe対応をしたCheckoutHelperのv3をリリースします

➡ 利用中のマーチャントに影響が出ないよう、移行は公式ブログ等で    

アナウンスをする(記事は書いた)

最終報告

v12014/06 v2

2015/08 v3

初版 デザイン変更 モバイル対応

iframe版

NOW

しました

最終報告➡ まとめた記事は今後 WebPay Engineering Blog に掲載予定

ご清聴ありがとうございました