狠狠撸

狠狠撸Share a Scribd company logo
業務系クラウドサービスが
取り組んでいるセキュリティ対策
2016/04/20
「VAddy」ユーザーミートアップ Vol.2
ヴェルク田向祐介
? 田向祐介(@fw_tx76129)
? ヴェルク株式会社
? フューチャーアーキテクト→ベンチャー
→起業
? 現在起業して6年目
? スマホアプリ開発?クラウド?Webシス
テム開発など
自己紹介
产辞补谤诲について
https://the-board.jp
見積書?請求書の作成?発行から
発注管理?売上見込管理?経営分析など
個人事業主?中小規模の会社の
業務?経営をサポートするシステム
自分が会社を経営していく上で
欲しいから作った
见积书や请求书のサービスはあるよね?
書類を作ることも大事だけど
経営する上では
いかにして売上の見込みを把握するが重要
既存の見積書?請求書サービスだと
経営管理のために別途Excelで
集計しないといけなかったので
経営者視点で設計?開発
ドッグフーディングしながら开発している
产辞补谤诲でのセキュリティに対する考え
ユーザの方々の
大事なデータを預かっている
セキュリティに
十分な時間とお金をかけるのは
業務系クラウドサービス
としての責務
“予算がないから”
“時間がないから”
といって
セキュリティを軽視しない
产辞补谤诲のセキュリティ対策?システム编
機密情報の暗号化
? 重要なデータは暗号化して保存
? 流出時の被害防止
? 内部持ち出しの予防
? 会社(アカウント)ごとに異なる暗号化キー
? 暗号化キーはサーバと別の場所に保管
WAF(Web Application Firewall)
? クラウド型WAFのScutumを導入
? XSS?SQLインジェクション等のアプリケーションレ
イヤの攻撃をブロック
? 自社ではなく、第三者のセキュリティの専門家が運用
しているということが重要
? 導入も簡単で、コストも手頃なので、積極的に導入し
た方がよい(受託案件でもよく提案している)
IDS?IPS
? トレンドマイクロのDeep Securityを導入
? サーバへの不正侵入を検知?ブロック
? 非常に高価なイメージがあるが、最近は価格も下がっ
てきて、導入しやすくなった
不正プログラム(ウイルス等)対策
? トレンドマイクロのDeep Securityを導入
? ファイルアップロード機能があるため、万が一に備え
て導入
セキュリティテスト
? リリース時に、外部にセキュリティテストを依頼
? 現在は、継続的セキュリティテストサービスのVAddy
を導入
? WAFとレイヤはかぶるが、より確実にブロックするた
め、また「脆弱性はバグなのでテストしよう」という
ことで導入
产辞补谤诲のセキュリティ対策?运用编
セキュリティアップデート
? セキュリティアップデートを自動通知
? 内容の緊急度を元に、即日?1週間程度でアップデー
トする運用
? 今後は、Linux用脆弱性スキャナー「Vuls」を試して
みたい
? https://github.com/future-architect/vuls
アクセス権の管理
? 内部持ち出し対策
? 責任者以外は、サーバやDBへのアクセスができない
? 暗号化キーの保管場所も同様に、責任者以外はアクセ
スできない
? 運用上、本番のサーバ?DBにアクセスする必要性は
ないはずなので、アクセス権の管理は厳格に行う
产辞补谤诲のセキュリティ対策?机能编
ユーザ向けのセキュリティ対策機能
? 一定回数ログインに失敗したらアカウントをロック
? IP制限
? 2段階認証
? 操作履歴の自動記録
产辞补谤诲での痴础诲诲测の活用
E2Eテストの整備
? VAddyにクロールさせるため、E2Eテストを整備
? RSpec+turnip+Capybara
? PoltergeistとSeleniumのどちらでも動くようにする
? 普段はCircleCIからPoltergeistでE2Eテスト
? SeleniumはVAddyクロール用
E2Eとセキュリティテストのニーズの違い
? VAddyへのクロールは、同じ画面を1回操作すればOK
? E2Eテストでは、テスト内容に応じて、複数回同じ画
面を操作する可能性がある
? E2Eテストを全てクロールさせると、セキュリティテ
ストとしては、重複したテストを実施してしまい、や
たら時間がかかる
VAddyを考慮したE2Eテストの整備
? featureファイルを細かく分割
? 画面単体のテストとシナリオテスト的な内容を分ける
? VAddyに流すのは、画面単体のテストのみ
? 細かく分けていると、変更があった箇所だけテストで
きる
VAddyのラベル機能を活用する
? 前回のミートアップ後に追加されたラベルを活用する
? 細かく分割したテストごとにクロールさせ、ラベルを
つけていく
VAddyにクロールさせるスクリプト
? VAddyクロール用モードでrspecを実行できるようし、
自動的に以下の処理を行うようにする
? クロール用のプロキシ設定
? SeleniumでFirefox起動
? クロール開始用URLにアクセス
? E2Eテストを実行
? クロール終了用URLにアクセス
CircleCIからVAddy実行
? 指定のブランチにpushされたら、CircleCIからVAddy
のラベル指定で順次実行
git clone git@github.com:vaddy/vaddy-api-ruby.git
cd ./vaddy-api-ruby/
ruby vaddy.rb $VADDY_TOKEN $VADDY_USER $VADDY_HOST 001_login
ruby vaddy.rb $VADDY_TOKEN $VADDY_USER $VADDY_HOST 002_settings
???
ただ、全てのテストを実行すると2時間以上かかるため、
pushのタイミングではなく1日1回などにする必要があり
そう
VAddyクロール情報の更新
? E2Eテストが更新されたら、そのテストだけ、VAddy
に再クロールさせる
? 同じラベル名を付けておくと、最新のクロール情報が
使用される
VAddyのメリット
? 一度クロールさせれば、非常に簡単にテストが実施で
きる
? 通常の開発?テストでは、脆弱性に気づく機会は意外
と少ない。
? セキュリティの勉強にもなる
? CSRFトークンの扱いなどもきちんと考慮してくれる
? E2Eテストを整備するモチベーションになった
VAddy運用上の課題
? システムの規模が大きくなれば、単純にE2Eテストを
クロールさせれば良いというわけにはいかない
? テスト時間短縮のため、無駄な操作を省きたい
? ただしE2Eテストとの二重管理は避けたい
? 問題が見つかった時の該当箇所の特定
エンジニア募集しています!
enjoy life and creation
ご静聴ありがとうございました

More Related Content

业务系クラウト?サーヒ?スか?取り组んて?いるセキュリティ対策