Detection: Gsuite Drive Share In External Email

EXPERIMENTAL DETECTION

This detection status is set to experimental. The Splunk Threat Research team has not yet fully tested, simulated, or built comprehensive datasets for this detection. As such, this analytic is not officially supported. If you have any questions or concerns, please reach out to us at research@splunk.com.

Description

The following analytic detects Google Drive or Google Docs files shared externally from an internal domain. It leverages GSuite Drive logs, extracting and comparing the source and destination email domains to identify external sharing. This activity is significant as it may indicate potential data exfiltration by an attacker or insider. If confirmed malicious, this could lead to unauthorized access to sensitive information, data leakage, and potential compliance violations. Monitoring this behavior helps in early detection and mitigation of data breaches.

 1`gsuite_drive` NOT (email IN("", "null")) 
 2| rex field=parameters.owner "[^@]+@(?<src_domain>[^@]+)" 
 3| rex field=email "[^@]+@(?<dest_domain>[^@]+)" 
 4| where src_domain = "internal_test_email.com" and not dest_domain = "internal_test_email.com" 
 5| eval phase="plan" 
 6| eval severity="low" 
 7| stats values(parameters.doc_title) as doc_title, values(parameters.doc_type) as doc_types, values(email) as dst_email_list, values(parameters.visibility) as visibility, values(parameters.doc_id) as doc_id, count min(_time) as firstTime max(_time) as lastTime by parameters.owner ip_address phase severity  
 8| rename parameters.owner as user ip_address as src_ip 
 9| `security_content_ctime(firstTime)` 
10| `security_content_ctime(lastTime)` 
11| `gsuite_drive_share_in_external_email_filter`

Data Source

Name Platform Sourcetype Source Supported App
G Suite Drive N/A 'gsuite:drive:json' 'http:gsuite' N/A

Macros Used

Name Value
gsuite_drive sourcetype=gsuite:drive:json
gsuite_drive_share_in_external_email_filter search *
gsuite_drive_share_in_external_email_filter is an empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.

Annotations

- MITRE ATT&CK
+ Kill Chain Phases
+ NIST
+ CIS
- Threat Actors
ID Technique Tactic
T1567.002 Exfiltration to Cloud Storage Exfiltration
T1567 Exfiltration Over Web Service Exfiltration
KillChainPhase.ACTIONS_ON_OBJECTIVES
NistCategory.DE_AE
Cis18Value.CIS_10
Akira
Chimera
Cinnamon Tempest
Confucius
Earth Lusca
FIN7
HAFNIUM
HEXANE
Kimsuky
Leviathan
LuminousMoth
POLONIUM
Scattered Spider
Threat Group-3390
ToddyCat
Turla
Wizard Spider
ZIRCONIUM
APT28
Magic Hound

Default Configuration

This detection is configured by default in Splunk Enterprise Security to run with the following settings:

Setting Value
Disabled true
Cron Schedule 0 * * * *
Earliest Time -70m@m
Latest Time -10m@m
Schedule Window auto
Creates Risk Event True
This configuration file applies to all detections of type anomaly. These detections will use Risk Based Alerting.

Implementation

To successfully implement this search, you need to be ingesting logs related to gsuite having the file attachment metadata like file type, file extension, source email, destination email, num of attachment and etc. In order for the search to work for your environment, please edit the query to use your company specific email domain instead of internal_test_email.com.

Known False Positives

network admin or normal user may share files to customer and external team.

Associated Analytic Story

Risk Based Analytics (RBA)

Risk Message Risk Score Impact Confidence
suspicious share gdrive from $parameters.owner$ to $email$ namely as $parameters.doc_title$ 72 80 90
The Risk Score is calculated by the following formula: Risk Score = (Impact * Confidence/100). Initial Confidence and Impact is set by the analytic author.

References

Detection Testing

Test Type Status Dataset Source Sourcetype
Validation Not Applicable N/A N/A N/A
Unit Passing Dataset http:gsuite gsuite:drive:json
Integration ✅ Passing Dataset http:gsuite gsuite:drive:json

Replay any dataset to Splunk Enterprise by using our replay.py tool or the UI. Alternatively you can replay a dataset into a Splunk Attack Range


Source: GitHub | Version: 2