OWASP ZAPでApp Exchangeのスキャンレポートを作成する

OWASP ZAPでApp Exchangeのスキャンレポートを作成する

SalesforceのAppExchangeアプリをリリースするには、セキュリティレビューを通過する必要があります。そのプロセスの一環として、ソーススキャン(コードやシステムの脆弱性チェック)が求められます。

特に自社のSaaSと連携する場合、AppExchange用のコンポーネントだけでなく、自社SaaS側のソーススキャンも必須となります。

Salesforceではいくつかのスキャンツールが推奨されていますが、その中の一つであるChimeraを試したところ、申請後1ヶ月経ってもプロセスが進まず…。Salesforceサポートに問い合わせたところ、「Chimeraは他社でも苦労しているのでおすすめしない」との回答でした。

代わりにOWASP ZAPを推奨されたため、導入と設定を進めました。

今回は、M1 Mac環境でのOWASP ZAPの導入手順について、備忘録として残しておきます。


OWASP ZAPインストール

まずはZAPをインストールします。Homebrewを使うと簡単です。

brew install --cask owasp-zap
open /Applications/ZAP.app

ZAPがマルウェア判定されてしまう問題

最近のMacのセキュリティ機能により、ZAPがマルウェア判定されてしまい、そのままでは開けません。 (セキュリティリスクを伴う可能性があるため、自己責任で対応してください)

  1. システム設定 > プライバシーとセキュリティ に移動
  2. 「“ZAP.app”は開発元を確認できないため、開けません」と表示されたら、「許可」ボタンをクリック
  3. 一度開こうとしただけでは許可ボタンが表示されない場合、ZAPを開き直す

ZAPの設定(プロキシー設定)

ZAPを開いたら、プロキシーの設定を行います。

  1. セッションの保存方法を聞かれる → 「適当に一番上のオプションを選択」
  2. アドオン設定は閉じてOK
  3. プロキシーのポートを設定
    1. ZAP > Settings > Network > Local Servers / Proxies
    2. ポートを空いているものに設定

Firefoxでプロキシー設定

ブラウザのリクエストをZAPのproxyを通すようにすることでスキャンが実行されます。

Firefoxだと簡単にリクエストのproxy設定をできるので、Firefoxで進めます。

  1. Firefoxの設定 > ネットワーク設定 > 手動でプロキシー設定する
  2. ここでZAPのproxy設定と同じportを指定
  3. HTTPSでも使用する、にチェック

FirefoxにZAPの証明書を設定

ZAPのプロキシ経由でサイトにアクセスすると、証明書が信頼されていないためエラーが発生します。これを回避するため、ZAPの証明書をFirefoxに登録します。

  1. ZAPのServer Certificatesから証明書を保存
  2. Firefoxの設定 > プライバシーとセキュリティ > 証明書を表示
  3. 「認証局証明書」の項目で「読み込む」を選択し、ZAPの証明書を追加
  4. ウェブサイトの識別に使用する」にチェックを入れる

ZAPでレポート生成

証明書を設定したら、実際にスキャンを実行し、レポートを作成します。

  1. Firefoxでスキャン対象のサイトにアクセス
  2. ZAPのUI上で、サイトのURLがキャプチャされていることを確認
  3. ZAPのメニューから「レポートを生成」を選択
  4. スキャン対象のURLを指定してレポートを作成

レポート例とセキュリティレビューへの対応

ZAPのレポートでは、以下のようなセキュリティリスクが指摘されます。

CSP(コンテンツセキュリティポリシー)の設定

CORS(クロスオリジンリソース共有)の設定

Cookieのセキュリティ設定

• その他の脆弱性情報

AppExchangeのセキュリティレビューに提出する前に、レポートのアラートを修正しておくことで、審査通過率を向上させることができます!

まとめ

SalesforceのChimeraはスキャンの進行が遅いため、OWASP ZAPを使うのが現実的な選択肢となります。

ZAPの導入自体は簡単ですが、Mac環境ではマルウェア判定の回避証明書の設定が必要になるため、事前に準備しておきましょう。

AppExchangeのセキュリティレビューをスムーズに通過するためにも、事前の脆弱性スキャンを活用して、安全なアプリを提供しましょう 🚀

Anycloudではプロダクト開発の支援を行っています

プロダクト開発をお考えの方はぜひAnycloudにご相談ください。

まずは相談する

記事を書いた人

村井 謙太

代表取締役

村井 謙太

Twitter

東京大学在学中にプログラミング学習サービスのProgateを立ち上げ、CTOとしてプロダクト開発に従事。 Progate退任後に株式会社Anycloudを立ち上げ、現在は多数のクライアントの技術支援を行っている。