WithSecure Cloud Protection for Salesforceは、Salesforceユーザーをフィッシングの脅威からリアルタイムで保護します。本ソリューションは「URL保護」機能を提供しており、ファイルのアップロード時およびユーザーがリンクをクリックした時の両方でURLをスキャンするため、ユーザーがフィッシングリンクを開いたり有害なWebサイトにアクセスしたりするのを防ぎます。このセキュリティ機能は、Salesforceの標準オブジェクトおよびカスタムオブジェクトの両方のフィールドに対応しています。
Orion 2.5以降のバージョンでは、UIから直接カスタムオブジェクトおよびフィールドのURLスキャン機能を設定できるようになりました。UIを使用して標準オブジェクトおよびカスタムオブジェクトのURLスキャンの有効化/無効化を行う手順は以下のとおりです。
1. カスタムオブジェクトの作成: オブジェクトマネージャーを使用してカスタムオブジェクトを作成し、必要なフィールドを追加します。なお、URLスキャンに対応しているのはテキストフィールドおよびURLフィールドのみです。
2. URLスキャンの設定:
アプリケーションランチャーに移動し、[Cloud Protection] を開きます。
[管理] > [URL保護] に移動します。
[URLスキャン対象オブジェクトの設定] ([URL保護] > [全般] > [オブジェクトの設定]) に移動します。

3. オブジェクト選択モーダル: このモーダルは、組織内に存在するすべてのカスタムオブジェクトおよび標準オブジェクトに対応するように設計されています。デフォルトでは、すべての標準オブジェクトとそのフィールドが選択されています。
注: クリックタイム保護 (CTP) の有効化/無効化の設定場所は、以前の場所 ([URL保護] > [設定] > [URLをクリックタイム保護リンクに置き換える]) から、[URLスキャン対象オブジェクトの設定] ([URL保護] > [全般] > [オブジェクトの設定]) へ移行しています。
注: 受信または送信メールに対して単一のオブジェクトレベルでスキャンを無効化/有効化することはできません。代わりに、「EmailMessage (受信)」および「EmailMessage (送信)」という2つの異なるオブジェクトとして設定が用意されています。
すべての標準/カスタムオブジェクトとそれらのフィールド、およびクリックタイム保護の設定は、構成された設定に従って旧バージョンからOrion 2.5に引き継がれます。

4. オブジェクトの検索: 検索バーに、URLスキャンを有効にしたい標準/カスタムオブジェクトの名前を入力します。例: “Case” というオブジェクトを検索します。

5. URLスキャンを有効にする任意のカスタムオブジェクトを選択します。
6. スキャン対象フィールドの設定: URLスキャンを行うカスタムオブジェクトを選択したら、歯車アイコンを押してURLスキャンを有効にするフィールドを選択し、選択したフィールドのクリックタイム保護の有効/無効を設定します。なお、選択できるフィールド数は最大5つです。

7. 設定の保存: 必要なフィールドを選択後、[保存] ボタンを押します。トリガーの有効化を促すウィンドウが表示され、ナレッジベース記事「オブジェクトのトリガー設定方法」へのリンクが表示されます。オブジェクトのトリガーを設定する際は、同記事を参照してください。

8. トリガー状態の確認: トリガーが未設定の場合、メインの「オブジェクト選択」モーダル上のトリガー状態には「トリガーを設定」と表示されます。

9. トリガーの実行: オブジェクトマネージャーで、選択したオブジェクトのトリガーを実行します。

10. 追加のトリガー設定: 以下の手順に従って、選択したオブジェクトのトリガーを実行します。
注: 本パッケージには、以下の標準オブジェクト用トリガーが含まれています: Case、CaseComment、Lead、Task、EmailMessage、FeedItem、FeedComment。これらのオブジェクトに対してトリガーを新規作成する必要はありません。その他の標準オブジェクトやカスタムオブジェクトを設定する場合は、設定対象のオブジェクトに既存のトリガーが重複して存在しないことを確認してください。
次のようにApexトリガーを作成します:
オブジェクト設定ページの「トリガー」セクションに移動します。
新しいトリガーを作成します。
以下のコードを貼り付け、オブジェクトの詳細に合わせて角括弧 (“[ ]”) の部分を変更します。
[TRIGGERNAME] の推奨命名規則: 標準オブジェクト:オブジェクトのAPI名 + 「Trigger」カスタムオブジェクト:オブジェクトのAPI名(「__c」を除く) + 「Trigger」ただし、トリガー名には一意の名前であれば何でも使用できます。[OBJECTAPINAME]:上記のセクションに従って取得した値。例:Account、Department__c
[TRIGGERNAME] を [OBJECTAPINAME] でトリガーする(挿入前、更新前、挿入後) { AFSC.FS_CommonURLChecker.scanURLS(); }
トリガーを保存します。
テストクラスの作成: トリガーコードのテストカバー率を確保するために、テストクラスを作成する必要があります。まず、テストメソッド内でオブジェクトレコードを挿入します。必須フィールドや入力規則(バリデーションルール)を考慮して作成してください。詳細な手順については、ドキュメント「テストクラスの作成方法」を参照してください。
テストおよびデプロイ: Sandbox環境で動作検証を行った後、トリガーとテストクラスの両方を本番環境にデプロイします。デプロイには変更セットまたはその他の推奨デプロイ方法を使用できます。なお、このデプロイの際にAFSCパッケージのテストクラスを実行する必要はありません。
代替デプロイオプション: Sandbox組織を使用していない場合は、代替デプロイ方法を用いて、トリガーとテストクラスのメタデータファイルを使用してデプロイすることも可能です。
追加リソース: Salesforceのデプロイや、開発・デプロイのニーズに適したツールの選択に関する詳細は、「変更の開発およびデプロイメント用ツールの選択」を参照してください。
既にトリガーが存在する場合は、必要なすべての操作種別が含まれているか確認し、トリガーを保存します。

11. トリガー状態の更新: 目的のオブジェクトに対してトリガーが設定されると、「オブジェクト選択」モーダルの「トリガーを設定」状態が、スキャン対象に含まれるフィールドの数に表示が変わります。

12. URLスキャンのテスト: これで、カスタムオブジェクトに対するURLスキャンのテストを行う準備が整いました。

13. クリックタイム保護の有効化: 選択した2つのフィールドでクリックタイム保護が有効になっているため、悪意のあるURLはCTPリンクに置き換えられます。

14. イベントのレポート表示: 悪意のあるURLに関するイベントは、[アナリティクス] セクションにレポートとして表示されます。

15. フィールドのクリックタイム保護の無効化: 例として、オブジェクト内で選択されているフィールドの1つでクリックタイム保護を無効化してみます。

16.URLスキャンの再テスト: 再度、カスタムオブジェクトのURLスキャンをテストする準備が整いました。

17. クリックタイム保護状態の確認: 選択した2つのフィールドのうち1つでクリックタイム保護が無効化されているため、悪意のあるURLは一方のフィールドでのみCTPリンクに置き換えられ、もう一方のフィールドでは置き換えられません。

18. イベントの再レポート表示: 悪意のあるURLイベントが、再度 [アナリティクス] セクションにレポート表示されます。

19. URLスキャンからのオブジェクト削除: URLスキャンからオブジェクトを削除するには、「オブジェクト選択」モーダルに移動し、歯車アイコンをクリックして [オブジェクトを削除] をクリックします。
