セッションハイジャックの調査
セッションハイジャック攻撃を調査するときは、次のヒントを参考にしてください。
必要なエディション
| Salesforce Classic (使用できない組織もあります) および Lightning Experience の両方で使用できます。 |
使用可能なエディション: Enterprise Edition、Unlimited Edition、および Developer Edition Salesforce Shield または Salesforce Event Monitoring アドオンサブスクリプションが必要です。 |
まず、攻撃に関する詳細情報を示す、次のリアルタイムイベント監視イベントを照会します。具体的には、次のようになります。
- SessionHijackingEvent とその情報を保存する SessionHijackingEventStore は、未承認ユーザーが、盗取したセッション識別子を使用して Salesforce ユーザーのセッションの所有権を窃取した状況を追跡します。Salesforce はこのようなイベントを検知するために、ユーザーの現在のブラウザーフィンガープリントが既知のフィンガープリントとどのくらい顕著に異なるかを評価します。Salesforce では、確率的に推測された変化の重要度を使用します。
重要 SessionHijackingEvent オブジェクトにレコードがある場合は、過去に攻撃が発生し、Salesforce セキュリティがすでにこのセキュリティ問題に対処しています。独自の目的のためにこの攻撃を調査する以外、特にすることはありません。 - LoginEventStream (とその情報を保存する LoginEvent) は、組織のすべてのログイン活動を追跡します。
たとえば、組織が SessionHijackingEvent を受信したとします。ここで最初にすることは、イベントの関連する項目を確認し、攻撃に関する次のような基本情報を得ることです。
- Score: 0.0 ~ 1.0 の数値で、新しいブラウザーフィンガープリントが以前のフィンガープリントとどのくらい顕著に異なるかを示します。数値が大きいほど、セッションハイジャック攻撃が生じた可能性が高くなります。
- UserId: ユーザーの一意の ID。 この ID を使用して、LoginEvent の詳細を照会します。
- EventDate: この攻撃がいつ発生したか。
- SecurityEventData: この異常検知に対する寄与度が最大であるブラウザーフィンガープリントの特性の現在の値と以前の値を示す JSON 項目。寄与する可能性のある特性の完全リストについては、この表を参照してください。
- Summary: イベントのテキスト形式の概要。
- Current-Previous 項目のペア: 次の項目のペアにより、ブラウザーフィンガープリントの選択した特性の現在の値と以前の値にすばやくアクセスできます。
- CurrentIp および PreviousIp: 現在および以前の IP アドレス。
- CurrentPlatform および PreviousPlatform: 現在および以前のオペレーティングシステム (Win32、MacIntel、iPad など)。
- CurrentScreen および PreviousScreen: 現在および以前の画面サイズ (ピクセル単位、(900.0,1440.0) など)。
- CurrentUserAgent および PreviousUserAgent: ブラウザー、バージョン、オペレーティングシステムなどの種別を識別する、ブラウザーのユーザーエージェントの現在の値と以前の値。たとえば、Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36 などです。
- CurrentWindow および PreviousWindow: 現在および以前のウィンドウサイズ (ピクセル単位、(1200.0,1920.0) など)。
項目の完全リストについては、API ドキュメントを参照してください。
次の SOQL クエリのサンプルは、上記の項目値を返します。
SELECT Score, UserId, EventDate, SecurityEventData, Summary
FROM SessionHijackingEventStore
SecurityEventData 項目には、この異常検知をトリガーしたブラウザーフィンガープリントが示されるため、詳しく見ていきましょう。サンプルデータは次のようになります。
[
{
"featureName": "userAgent",
"featureContribution": "0.45 %",
"previousValue": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142",
"currentValue": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36."
},
{
"featureName": "ipAddress",
"featureContribution": "0.23 %",
"previousValue": "201.17.237.77",
"currentValue": "182.64.210.144"
},
{
"featureName": "platform",
"featureContribution": "0.23 %",
"previousValue": "Win32",
"currentValue": "MacIntel"
},
{
"featureName": "screen",
"featureContribution": "0.23 %",
"previousValue":"(1050.0,1680.0)",
"currentValue": "(864.0,1536.0)"
},
{
"featureName": "window",
"featureContribution": "0.17 %",
"previousValue": "1363x1717",
"currentValue": "800x1200"
}
]
このサンプル JSON は、ウィンドウ、IP アドレス、プラットフォーム、など、ブラウザーフィンガープリントの多数の特性が変化していることを示しています。Salesforce は、ユーザーセッションが乗っ取られたと結論付けます。
この記事で問題は解決されましたか?
ご意見をお待ちしております。

