SalesforceによるセキュアなWebアプリケーション開発と開発における責任共有モデル
公開日: 2023.04.25
この記事で学べること
・SalesforceがどのようにセキュアなWebアプリケーション開発をしているか、脆弱性対策を実施しているかが理解できる
・Webアプリケーション開発におけるSalesforceとお客様の責任分界点が理解できる
1. はじめに
Salesforceが提供するSaaS とPaaSにおいてプラットフォーム部分はSalesforceの責任範囲であり、一方、利用者のアカウント管理、認証、、パスワードポリシーの設定、お客様のデータへのアクセス管理と監視等はお客様の責任範囲になりますが、このブログではWebアプリケーションの開発、特に脆弱性におけるお客様とSalesforceの責任分界点について説明します。
Salesforceが提供するSaaS とPaaSでは以下の2つの部分に分割されます。
・プラットフォームの標準部分
・プラットフォームの標準部分上にお客様が追加した部分
「プラットフォームの標準部分」におけるセキュアなWebアプリケーション開発と脆弱性診断と対応はSalesforceが責任を負います。一方、「プラットフォームの標準部分上にお客様が追加した部分」におけるセキュアなWebアプリケーション開発と脆弱性診断と対応はお客様が責任を負います。
2. Salesforceが責任を負う範囲
「プラットフォームの標準部分」におけるセキュアなWebアプリケーション開発と脆弱性診断と対応はSalesforceが責任を負います。
「プラットフォームの標準部分」におけるセキュアなWebアプリケーション開発については、Salesforceは昨今のセキュリティ・バイ・デザイン、シフトレフトの考え方を採用し、セキュア開発ライフサイクル(SSDL)に従い、脅威モデリング、セキュアコーディング、静的コードスキャン(SAST)、DAST、ファジングテストを実施し、計画・設計、開発、テストのすべてのフェーズにおいて脆弱性等のセキュリティを考慮したWebアプリケーションの開発をしています。
そのため、SalesforceはWebアプリケーションの開発段階で、以下のようなOWASP Top 10脆弱性をはじめとする様々な脆弱性の対策を実施しています。
・SOQLインジェクション
・クロスサイトスクリプティング(XSS)
・クロスサイトリクエストフォージェリ(CSRF)
・コマンドインジェクション
・HTTP/メールヘッダーインジェクション
・ディレクトリトラバーサル
・セッションハイジャック
・クリックジャッキング等
Salesforceのセキュア開発ライフサイクル(SSDL)の概要につきましては下記ホワイトペーパーをご確認ください。
「Salesforce Secure Development Lifecycle Overview」
しかし、日々あらたな脅威、脆弱性が発見されているため、Webアプリケーションの開発段階での脆弱性対策だけでは十分ではありません。
そのため、製品のリリース後、SalesforceはWebアプリケーションの「プラットフォームの標準部分」における第三者機関による脆弱性診断/ペネトレーションテストを定期的に実施しております(実施頻度は製品によって異なりますが、Salesforce Servicesの場合、年3回です)。
お客様はこの第三者機関による脆弱性診断/ペネトレーションテストの直近のサマリーレポートをSalesforceのコンプライアンスサイトからダウンロードいただき、診断結果をご確認頂くことが可能です。
また、発見された脆弱性につきましてはSalesforceの基準に従って、迅速に対応しています。
また、Webアプリケーション自体の脆弱性対策だけではなく、システムが利用しているコンポーネントについても、SalesforceのTrustチームがベンダーやその他のソースからの脆弱性に関する警告とパッチリリースに関する通知を常にモニターし、脆弱性情報を一元管理し、対応の要否を検討しています。具体的には、システムに対する脆弱性の重大度とリスクに依存しますが、セキュリティパッチは直ちに展開するようにスケジュールされる場合や、適切な計画メンテナンス間隔まで実施延期される場合があります。また、適用せずに代替の方法でセキュリティコントロールを行う場合もあります。
以上がSalesforceが責任を負う「プラットフォームの標準部分」におけるセキュアなWebアプリケーション開発と脆弱性対策になります。
続いて、お客様が責任を負う範囲についてご説明します。
3. お客様が責任を負う範囲
「プラットフォームの標準部分上にお客様が追加した部分」におけるセキュアなWebアプリケーション開発と脆弱性診断と対応はお客様が責任を負います。
お客様がノーコードまたはローコードを含むカスタム開発部分においてセキュアなWebアプリケーション開発を行っていただくために、Salesforceは以下の様々なガイドライン、ツールをご提供しております。お客様は、これらのガイドライン、ツールを使用し、お客様自身でセキュアな開発、定期的なセキュリティチェックを実施していただく責任があります。
Apex および Visualforce 開発のセキュリティガイドライン
Security Tips for Apex and Visualforce Development (英語)
※Apex、Visualforceのソースコードスキャン。 SOQLインジェクション、クロスサイトスクリプティング、クロスサイトリクエストフォージェリ等を検出可能。12ヶ月ごとに360000行は無償でご利用可能
※クロスサイトスクリプティング等の脆弱性の簡易チェック機能があります。
※過剰なアクセス権限を付与していないか等を検出する機能があります。
しかし、日々あらたな脅威、脆弱性が発見されているため、Webアプリケーションの開発段階での脆弱性対策だけでは十分ではありません。
そのため、お客様によるカスタム開発部分につきましては、お客様自身で脆弱性診断を実施していただくことを推奨しております。お客様が脆弱性診断を実施していただく手順はこちらのリンクに記載しておりますが、その中のSecurity Assessment Agreement(SAA)に診断の際の禁止事項、診断実施可能タイミング等の注意事項を記載しておりますので、こちらの内容を十分ご理解いただいた上で、診断の実施をお願い致します(診断の事前申請は不要です)。
また、お客様によるカスタム開発の責任はお客様に帰属するため、お客様の脆弱性診断で発見されたお客様によるカスタム開発部分の脆弱性につきましては、お客様にて修正等の対応を実施していただく必要があります。一方、お客様の脆弱性診断で「Saelsforce提供のプラットフォームの標準部分」の脆弱性を発見された場合は、Salesforce(security@salesforce.com)にご報告をお願い致します。その際にSalesforceへ連携していただく情報につきましてはこちらのリンクをご参照下さい。
また、CookieへのHttpOnly属性の付加、セッションハイジャック対策のためのセッションタイムアウトの設定等、お客様が設定可能な項目もございますので、こちらにつきましては以下のリンクをご参照下さい。
https://help.salesforce.com/s/articleView?id=000318378&type=1
https://help.salesforce.com/s/articleView?id=sf.admin_sessions.htm&type=5
公開日: 2023.04.25
この情報は役に立ちましたか?
ご意見お待ちしております。
フィードバックありがとうございます。
より役に立つために
役に立たなかった一番の理由を教えてください。