概要
Salesforceパッケージのセキュリティレビュー手順(2018.4.23時点)を残したいと思います(引継ぎも兼ねてw)
公式サイトである程度の情報が掲載されていますが、初めてやる方はどこから始めていいのかがわからないので、私が管理しているパッケージのセキュリティレビュー手順を残したいと思います
また、パートナー向けのセキュリティレビュー資料が古かったりと・・・初心者にはハードルが高い
パッケージの構成としてはSalesforce Classic向けアプリケーションで外部コールアウトのないSalesforce上で処理が完結しているアプリケーション
外部アプリと連携するアプリケーションも基本的な流れは下記同様なので、参考になれば幸いです
違いとしてコードスキャンに「CHIMERA」や「OWASP」を用いて、外部アプリの脆弱性の確認やレビュー作成時に外部システムの情報を記載するぐらいかと思います
手順
1. セキュリティレビューのケース
毎年Salesforce Partner Communityのケースから案内が来ます
※前回のセキュリティレビュー担当者宛にケースが発行される(担当者が退職した場合は、どうなるのだろう・・・)
2. SourceScannerによるセキュリティ自動診断
Partner Security Portal(パッケージのリリース組織にログインできるアカウント)にログインし、「Create New Source Code Scan」で対象の組織とそのログインユーザを選択し、新規スキャンを作成します
**スキャン対象の組織のログインユーザのメールアドレスがフリーメールのドメイン(gmail、yahooなど)だと拒否されますので、予め変更すること!**社用がgmailだったらどうするのだろう・・・あわせて要求事項も確認しましょう
※スキャン開始されるまでに最大1営業日?かかりますので、事前の作業調整をしっかりしたほうがいいです
※SSOログイン先の組織は最新パッケージの開発環境になります
※ログインユーザはApexの開発権限があるユーザになります
SSOログインエラーの対応
Partner Security PortalにSSOログイン中に以下のようなエラーが発生した場合は、
REGISTRATION_HANDLER_ERROR: Error: Org ID not attached to your Appexchange Publishing Console
該当の組織を事前にAppExchangeの公開コンソールに組織を追加する必要があります(昔こんな手順なかったのにな・・・)
※反映されるまでに5分ほどかかります
3. SourceScannerの結果の確認
手順2でログインしたユーザ宛にスキャン終了メールが送信されます。
Partner Security Portalでレポートを確認します
※レポート結果で修正済みの脆弱性が検出されることがあります。その際は公開コンソールのレビュー提出時にレポートを添付してください
結果に問題アリの場合
3-1. パッチ組織を作成
開発組織からパッチ組織を作成してください
組織を作成した場合は、上記の公開コンソールにパッチ組織との関連付けを行ってください
すでに最新バージョンのパッケージがパッチ組織にある場合は、作成不要です
3-2. コード修正
スキャン結果で検出された脆弱性を修正
3-3. 再度コードスキャン
再度SourceScannerによるコードスキャン
スキャン結果で脆弱性が残っている場合は、脆弱性が解決されるまで手順「3-1-2」と「3-1-3」を繰り返してください
3-4. リリースパッケージの作成
脆弱性が解消されたら、リリースパッケージを作成する
※パッケージのバージョンが上がりますが、仕様上仕方ない
結果に問題ナシの場合
手順4に進んでください
4. セキュリティレビュー用の組織の作成
環境ハブからセキュリティレビュー用のテスト/デモ組織を作成します
エディションは「Partner Enterprise」一択でよい?
5. 最新版のパッケージをインストール
その時点の最新版のパッケージを上記で作成したレビュー組織にインストールします
※コードをデプロイするのではなく、パッケージインストールになります
※開発中のパッケージではなく、AppExchangeに公開されているパッケージが対象になります
6. テスト用ユーザの作成
パッケージを操作するために必要なユーザを作成し、適切な権限(プロファイル、権限セット、パッケージのライセンス)を付与します
簡単な動作確認も行ってください
7. テスター向けにIPアクセス制限の開放
新規ブラウザの確認メールでテスターが組織にアクセスできないので、
テストユーザのプロファイルの「ログイン IP アドレスの制限」を以下のように変更してください
また、SMSなどの2段階認証を設定している場合は、解除してください
開始IPアドレス「0.0.0.0」
終了IPアドレス「255.255.255.255」
8. パッケージのレビューの作成
AppExchangeの公開コンソールでレビューに必要な情報(パッケージの説明、テストユーザのアカウント、コードスキャン結果)を入力または更新する必要があります
パッケージをリリース(アップロード)した場合
前述でパッケージのコード修正が発生し、新たにリリースパッケージを作成した場合は、該当パッケージを公開コンソールに登録する必要があります
8-1. 新規レビューの作成
「AppExchange」-「公開コンソール」-「パッケージ」-「リストの編集」
「リスト」-「アプリ」-「パッケージを選択」-「レビュー開始」
入力内容はこちらを参照ください
※「レビュー開始」で即座にレビューが開始されるわけではないので、安心して押してください(後述のケースでの返信にてレビューが開始されます)
※パッケージのリリース(アップロード)後しばらく時間が経たないと該当のバージョンのパッケージが一覧に表示されない
新規パッケージをリリースしていない場合(脆弱性修正がなかった場合)
8-1. レビューの更新
「AppExchange」-「公開コンソール」-「パッケージ」-「合格」を選択し、各種情報を更新してください
テスト組織のテストユーザの情報、コードスキャン結果の記載を忘れずに!
9. レビューの申請
手順1で発行されたケースにセキュリティレビューの準備が完了した旨で返信します
※「開発組織ID」、「レビュー組織ID」と「レビュー対象のパッケージのインストールURL」を記載すること
10. 注文書の作成
ケースにて、Salesforce担当者から注文書の作成依頼返信が来ますので、注文書を作成し、ケースに添付して返信
11. レビュー開始
レビュー開始の旨のケース(ケースのClose)
12. レビュー結果
レビュー申請者宛にレビュー結果のメールが送付されます
レビューで問題なく合格した場合
以上、終了になります
パッケージリリースした場合は、AppExchangeへの公開を忘れないように!
レビューで残念ながら不合格だった場合
指摘事項を確認し、手順3-1以降を繰り返してください
なお、修正済みと判断した箇所で、レビュアーが未修正と判断することもありますので、その際はケースにてディスカッションしてください
セキュリティレビューの再申請は、新規ケースを作成して再申請してください
※2回目のセキュリティレビューの結果が不合格の場合は、AppExchangeでの公開が停止されるので、要注意