API 要求の異常の調査
多くの場合、データ侵害が発生したかを判断するため、または無害として排除するために、API 要求の異常をさらに調査する必要があります。
必要なエディション
| Salesforce Classic (使用できない組織もあります) および Lightning Experience の両方で使用できます。 |
使用可能なエディション: Enterprise Edition、Unlimited Edition、および Developer Edition Salesforce Shield または Salesforce Event Monitoring アドオンサブスクリプションが必要です。 |
Shield ユーザーの場合は、リアルタイムイベント監視イベントに、調査を実施するために必要な情報が提示されます。具体的には、次のようになります。
- ApiAnomalyEvent とその情報を保存する ApiAnomalyEventStore では、ユーザーによる API コールの実行に関する異常を追跡します。これらのオブジェクトが調査の出発点になります。
- ApiEventStream とその情報を保存する ApiEvent では、ユーザーが開始した参照のみの API コールを追跡します。これらのオブジェクトは、リアルタイムのレポート実行または API 実行履歴を確認するために使用します。
- LoginEventStream (とその情報を保存する LoginEvent) は、組織のすべてのログイン活動を追跡します。
たとえば、ユーザーの API コールにおける異常の可能性を示す ApiAnomalyEvent を組織が受信したとします。ここで最初にすることは、イベントの関連する項目を確認し、異常に関する次のような基本情報を得ることです。
- Score: このユーザーの API 活動が通常の活動とどれほど異なっているかを表す数値。数値が大きいほど、逸れていることになります。
- UserId: ユーザーの一意の ID。
- EventDate: API 要求が発生した時刻。
- SecurityEventData: 行数や曜日など、この異常検知に対する寄与度が最大の特性を示す JSON 項目。
- Summary: イベントのテキスト形式の概要。
項目の完全リストについては、API ドキュメントを参照してください。
次の SOQL クエリのサンプルは、上記の項目値を返します。
SELECT Score, UserId, EventDate, SecurityEventData, Summary
FROM ApiAnomalyEventStore
SecurityEventData 項目には、この異常検知をトリガーした寄与要因が示されるため、詳しく見ていきましょう。サンプルデータは次のようになります。
[
{
"featureName": "rowCount",
"featureValue": "1937568",
"featureContribution": “95.00 %"
},
{
"featureName": "autonomousSystem",
"featureValue": "Bigleaf Networks, Inc.",
"featureContribution": “1.62 %"
},
{
"featureName": "dayOfWeek",
"featureValue": "Sunday",
"featureContribution": “1.42 %"
},
{
"featureName": "userAgent",
"featureValue": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36}",
"featureContribution": “1.21 %"
},
{
"featureName": "periodOfDay",
"featureValue": “Evening”,
"featureContribution": “.09 %"
},
{
"featureName": "averageRowSize",
"featureValue": "744",
"featureContribution": “0.08 %"
},
{
"featureName": "screenResolution",
"featureValue": "900x1440",
"featureContribution": “0.07 %"
}
]
この異常検知に対する寄与度が最大 (95.00%) の特性は rowCount で、値は 1937568 です。 この特性は、ユーザーが 1,937,568 行のレポートを表示またはエクスポートしたことを示します。履歴データを見ると、このユーザーがこれほど多くのデータを表示またはエクスポートすることはほとんどありません。スコアに対する他の特性の寄与度ははるかに小さくなっています。たとえば、このユーザーはレポートを日曜日に実行していますが、この特性による全体スコアに対する寄与度はわずか 1.42% です。
こうしたデータがあれば、調査をさらに進めることができます。

