Skip to content

DOCS-37 - New threat intel source #5185

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 37 commits into from
Apr 8, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
2d8d4e1
Rough draft
jpipkin1 Mar 18, 2025
aa3ff34
Remove RSS logo
jpipkin1 Mar 19, 2025
ab20c32
Finish draft
jpipkin1 Mar 19, 2025
44a07e5
Move release note to Cloud SIEM
jpipkin1 Mar 21, 2025
44e0425
Updates from meeting
jpipkin1 Mar 21, 2025
0d299a6
Merge branch 'main' into docs-37-new-global-feed
jpipkin1 Mar 21, 2025
0fae206
Change name of default global feed to _sumo_global_feed_i471
jpipkin1 Mar 24, 2025
0bb4218
Merge branch 'main' into docs-37-new-global-feed
jpipkin1 Mar 24, 2025
54af0d9
Updates per review by Nitin Pande
jpipkin1 Mar 25, 2025
1d33c2d
Minor updates
jpipkin1 Mar 26, 2025
cc88d91
Updates from review
jpipkin1 Mar 26, 2025
aa12d1d
Update blog-cse/2025-04-01-application.md
jpipkin1 Mar 27, 2025
8f259d3
Updates from meeting
jpipkin1 Mar 27, 2025
88a2655
Fix broken link
jpipkin1 Mar 27, 2025
0e37d94
Fix broken link
jpipkin1 Mar 27, 2025
c6ce4bd
Add nodrop example
jpipkin1 Mar 28, 2025
5c835fd
Adjustment to nodrop
jpipkin1 Mar 28, 2025
c6682a3
New content for the mapping article
jpipkin1 Mar 31, 2025
9979e97
Update hasThreatMatch example
jpipkin1 Mar 31, 2025
cc11763
Update screenshots
jpipkin1 Mar 31, 2025
d4dcf92
Merge branch 'main' into docs-37-new-global-feed
jpipkin1 Mar 31, 2025
1cb72c4
Remove mapping article
jpipkin1 Apr 1, 2025
3f5230b
Update from Kevin Burtt
jpipkin1 Apr 1, 2025
2048c33
Minor cleanup
jpipkin1 Apr 1, 2025
95e0b75
Merge branch 'main' into docs-37-new-global-feed
jpipkin1 Apr 1, 2025
2de7bef
Fix link in vendor switch article
jpipkin1 Apr 1, 2025
8d60a7f
Remove Beta from vendor switch article
jpipkin1 Apr 1, 2025
6297eb0
Change release note date to April 3 2025
jpipkin1 Apr 2, 2025
fdeb9ac
Change date in release note
jpipkin1 Apr 3, 2025
3639817
Add support link
jpipkin1 Apr 3, 2025
5e71915
Move release note to service section
jpipkin1 Apr 3, 2025
a16a443
Add Cloud SIEM release note for new source
jpipkin1 Apr 3, 2025
12ce144
Merge branch 'main' into docs-37-new-global-feed
jpipkin1 Apr 7, 2025
e94c0af
Change release note date to April 8 2025
jpipkin1 Apr 7, 2025
e9cffc5
Merge branch 'main' into docs-37-new-global-feed
jpipkin1 Apr 8, 2025
26dd5b1
Update screenshots
jpipkin1 Apr 8, 2025
e06a5e5
Fix typo
jpipkin1 Apr 8, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions blog-cse/2025-04-08-application.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: April 8, 2025 - Application Update
image: https://help.sumologic.com/img/sumo-square.png
keywords:
- threat intel
- security
hide_table_of_contents: true
---

import useBaseUrl from '@docusaurus/useBaseUrl';

### New Threat Intelligence Source

We’re excited to announce a new default source for Sumo Logic Threat Intelligence incorporating Indicators of Compromise (IoC) from Intel 471.

For more information, [see our release note](/release-notes-service/2025/04/08/security/) in the *Service* release notes section.
20 changes: 20 additions & 0 deletions blog-service/2025-04-08-security.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
title: New Threat Intelligence Source (Security)
image: https://help.sumologic.com/img/sumo-square.png
keywords:
- security
- threat intel
hide_table_of_contents: true
---

import useBaseUrl from '@docusaurus/useBaseUrl';

We’re excited to announce a new `SumoLogic_ThreatIntel` source incorporating Indicators of Compromise (IoC) from [Intel 471](https://intel471.com/). Analysts can use this out-of-the-box default source of threat indicators to aid in security analysis.

:::warning
On April 30, 2025, we will discontinue our legacy `_sumo_global_feed_cs` source. If you have rules that explicitly point to this source, update them to use the new `SumoLogic_ThreatIntel` source.
:::

[Learn more](/docs/security/threat-intelligence/about-threat-intelligence/#sumo-logic-threat-intelligence-sources).

<img src={useBaseUrl('img/security/threat-intelligence-tab-example.png')} alt="Threat Intelligence tab" style={{border: '1px solid gray'}} width="800" />
1 change: 1 addition & 0 deletions cid-redirects.json
Original file line number Diff line number Diff line change
Expand Up @@ -3312,6 +3312,7 @@
"/Manage/Security/Set-the-Password-Policy": "/docs/manage/security/set-password-policy",
"/Manage/Threat-Intel-Ingest": "/docs/security/threat-intelligence",
"/docs/platform-services/threat-intelligence-indicators": "/docs/security/threat-intelligence",
"/docs/security/threat-intelligence/threat-intelligence-mapping": "/docs/security/threat-intelligence",
"/Manage/Users-and-Roles": "/docs/manage/users-roles",
"/Manage/Users-and-Roles/Manage-Roles": "/docs/manage/users-roles",
"/Manage/Users-and-Roles/Manage-Roles/About-Roles": "/docs/manage/users-roles/roles",
Expand Down
5 changes: 1 addition & 4 deletions docs/cse/rules/cse-rules-syntax.md
Original file line number Diff line number Diff line change
Expand Up @@ -670,13 +670,10 @@ As a best practice, always include filtering to narrow your match to just the ty
For example:
* `hasThreatMatch([dstDevice_ip], confidence > 1 AND (type="ipv4-addr" OR type="ipv6-addr"))`
* `hasThreatMatch([file_hash_imphash, file_hash_md5, file_hash_pehash, file_hash_ssdeep, file_hash_sha1, file_hash_sha256], confidence > 1 AND type="file:hashes")`
* `hasThreatMatch([device_hostname, srcDevice_hostname, dstDevice_hostname, http_hostname, http_referrerHostname, bro_ssl_serverName, bro_ntlm_domainame, bro_ssl_serverName_rootDomain, dns_queryDomain, dns_replyDomain, fromUser_authDomain, http_referrerDomain, http_url_rootDomain, http_url_fqdn], confidence > 1 AND (type="domain-name" OR type="url"))`
* `hasThreatMatch([http_url], confidence > 1 AND type="url")`
* `hasThreatMatch([srcDevice_ip], confidence > 1 AND (type="ipv4-addr" OR type="ipv6-addr"))`
* `hasThreatMatch([dstDevice_ip, srcDevice_ip], (confidence >1 AND confidence <50) AND (type='ipv4-addr' OR type='ipv6-addr'))`

Following are the standard indicator types you can filter on:
* `domain-name`. Domain name.
* `email-addr`. Email address.
* `file:hashes`. File hash. (If you want to add the hash algorithm, enter `file:hashes.<HASH-TYPE>`. For example, `[file:hashes.MD5 = '5d41402abc4b2a76b9719d911017c592']` or `[file:hashes.'SHA-256' = '50d858e0985ecc7f60418aaf0cc5ab587f42c2570a884095a9e8ccacd0f6545c']`.)
* `file`. File name.
* `ipv4-addr`. IPv4 IP address.
Expand Down
2 changes: 1 addition & 1 deletion docs/integrations/amazon-aws/waf.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ _sourceCategory=AWS/WAF {{client_ip}}
| parse "\"httpMethod\":\"*\"," as httpMethod,"\"httpVersion\":\"*\"," as httpVersion,"\"uri\":\"*\"," as uri, "{\"clientIp\":\"*\",\"country\":\"*\"" as clientIp,country, "\"action\":\"*\"" as action, "\"matchingNonTerminatingRules\":[*]" as matchingNonTerminatingRules, "\"rateBasedRuleList\":[*]" as rateBasedRuleList, "\"ruleGroupList\":[*]" as ruleGroupList, "\"httpSourceId\":\"*\"" as httpSourceId, "\"httpSourceName\":\"*\"" as httpSourceName, "\"terminatingRuleType\":\"*\"" as terminatingRuleType, "\"terminatingRuleId\":\"*\"" as terminatingRuleId, "\"webaclId\":\"*\"" as webaclId nodrop
| lookup type, actor, raw, threatlevel as malicious_confidence from sumo://threat/cs on threat=clientip
```
<!-- Replace code example with this after `sumo://threat/cs` is replaced by `threatlookup`:
<!-- Replace code example with this after `sumo://threat/i471` is replaced by `threatlookup`:
```sql title="Client IP Threat Info"
_sourceCategory=AWS/WAF {{client_ip}}
| parse "\"httpMethod\":\"*\"," as httpMethod,"\"httpVersion\":\"*\"," as httpVersion,"\"uri\":\"*\"," as uri, "{\"clientIp\":\"*\",\"country\":\"*\"" as clientIp,country, "\"action\":\"*\"" as action, "\"matchingNonTerminatingRules\":[*]" as matchingNonTerminatingRules, "\"rateBasedRuleList\":[*]" as rateBasedRuleList, "\"ruleGroupList\":[*]" as ruleGroupList, "\"httpSourceId\":\"*\"" as httpSourceId, "\"httpSourceName\":\"*\"" as httpSourceName, "\"terminatingRuleType\":\"*\"" as terminatingRuleType, "\"terminatingRuleId\":\"*\"" as terminatingRuleId, "\"webaclId\":\"*\"" as webaclId nodrop
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,10 @@ import AppInstall from '../../reuse/apps/app-install.md';

## Threat Intel optimization

The Threat Intel Quick Analysis App provides baseline queries. You can further optimize and enhance these queries for the log and events types being scanned for threats. Use the following guidelines to customize your Threat Intel queries:
The Threat Intel Quick Analysis App provides baseline queries. You can further optimize and enhance these queries for the log and events types being scanned for threats. To see the queries, open a [dashboard in the app](#viewing-threat-intel-quick-analysis-dashboards), click the three-dot kebab in the upper-right corner of the dashboard panel, and select **Open in Log Search**.

Filter out unwanted logs before you use lookup operator
Use the following guidelines to customize your Threat Intel queries:
* Filter out unwanted logs before you use lookup operator
* Use keywords
* Use the where operator
* Use general search optimization rules
Expand All @@ -43,7 +44,7 @@ _sourceCategory=cylance "IP Address"
| lookup type, actor, raw, threatlevel as malicious_confidence from sumo://threat/cs on threat=ip_address
```

<!-- Replace section content with this after `sumo://threat/cs` is replaced by `threatlookup`:
<!-- Replace section content with this after `sumo://threat/i471` is replaced by `threatlookup`:

The app provides baseline queries that utilize the [`threatlookup` search operator](/docs/search/search-query-language/search-operators/threatlookup/) to look for threat intelligence data. To see the queries, open a [dashboard in the app](#viewing-threat-intel-quick-analysis-dashboards), click the three-dot kebab in the upper-right corner of the dashboard panel, and select **Open in Log Search**.

Expand Down Expand Up @@ -98,15 +99,15 @@ Use [Field Extraction Rules (FER)](/docs/manage/field-extractions/create-field-e
1. Customize your query so you can use parsed fields from FER with the lookup operator, where src_ip is the parsed field from FER (see step # 1). For example:
```
| lookup type, actor, raw, threatlevel as malicious_confidence from sumo://threat/cs on threat=src_ip
| json field=raw "labels[*].name" as label_name
| json field=raw "labels[*].name" as label_name nodrop
| replace(label_name, "\\/","->") as label_name
| replace(label_name, "\""," ") as label_name
| where type="ip_address" and !isNull(malicious_confidence)
| if (isEmpty(actor), "Unassigned", actor) as Actor
| count as threat_count by src_ip, malicious_confidence, Actor, _source, label_name
| sort by threat_count
```
<!-- Replace the preceding step with the following after `sumo://threat/cs` is replaced by `threatlookup`:
<!-- Replace the preceding step with the following after `sumo://threat/i471` is replaced by `threatlookup`:
1. Customize your query so you can use parsed fields from the Field Extraction Rule with the [`threatlookup` search operator](/docs/search/search-query-language/search-operators/threatlookup/), where `src_ip` is the parsed field from the FER. For example:
```
| threatlookup singleIndicator src_ip
Expand All @@ -125,15 +126,15 @@ Use scheduled views with the threat lookup operator to find threats. Scheduled v
1. Create a scheduled view. For example, for Cylance, create a scheduled view, **cylance_threat**:
```
_sourceCategory=cylance | lookup type, actor, raw, threatlevel as malicious_confidence from sumo://threat/cs on threat=src_ip
| json field=raw "labels[*].name" as label_name
| json field=raw "labels[*].name" as label_name nodrop
| replace(label_name, "\\/","->") as label_name
| replace(label_name, "\""," ") as label_name
| where type="ip_address" and !isNull(malicious_confidence)
| if (isEmpty(actor), "Unassigned", actor) as Actor
| lookup latitude, longitude, country_code, country_name, region, city, postal_code, area_code, metro_code from geo://default on ip = src_ip
| count as threat_count by src_ip, malicious_confidence, Actor, _source, label_name, city, country_name, raw
```
<!-- Replace the preceding code with the following after `sumo://threat/cs` is replaced by `threatlookup`:
<!-- Replace the preceding code with the following after `sumo://threat/i471` is replaced by `threatlookup`:
```
_sourceCategory=cylance
| threatlookup singleIndicator src_ip
Expand All @@ -150,7 +151,7 @@ Use scheduled views with the threat lookup operator to find threats. Scheduled v
| count by src_ip
```

<!-- Hide this FAQ section until after `sumo://threat/cs` is replaced by `threatlookup`:
<!-- Hide this FAQ section until after `sumo://threat/i471` is replaced by `threatlookup`:

## Threat Intel FAQ

Expand Down
4 changes: 2 additions & 2 deletions docs/observability/aws/integrations/aws-dynamodb.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,15 +61,15 @@ _sourceCategory=Labs/AWS/DynamoDB account=* namespace=* "\"eventSource\":\"dynam
| where ip_address != "0.0.0.0" and ip_address != "127.0.0.1"
| count as ip_count by ip_address
| lookup type, actor, raw, threatlevel as malicious_confidence from sumo://threat/cs on threat=ip_address
| json field=raw "labels[*].name" as label_name
| json field=raw "labels[*].name" as label_name nodrop
| replace(label_name, "\\/","->") as label_name
| replace(label_name, "\""," ") as label_name
| where type="ip_address" and !isNull(malicious_confidence)
| if (isEmpty(actor), "Unassigned", actor) as Actor
| sum (ip_count) as threat_count
```

<!-- Replace code example with this after `sumo://threat/cs` is replaced by `threatlookup`:
<!-- Replace code example with this after `sumo://threat/i471` is replaced by `threatlookup`:
```sql title="All IP Threat Count"
_sourceCategory=Labs/AWS/DynamoDB account=* namespace=* "\"eventSource\":\"dynamodb.amazonaws.com\""
| json "eventName", "awsRegion", "requestParameters.tableName", "sourceIPAddress", "userIdentity.userName" as event_name, Region, entity, ip_address, user
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: threatip Search Operator
sidebar_label: threatip
---

The `threatip` operator correlates data in the `_sumo_global_feed_cs` [threat intelligence](/docs/security/threat-intelligence/about-threat-intelligence/) source based on IP addresses from your log data. This provides security analytics that helps you to detect threats in your environment, while also protecting against sophisticated and persistent cyber-attacks.
The `threatip` operator correlates data in the [Sumo Logic threat intelligence sources](/docs/security/threat-intelligence/about-threat-intelligence/#sumo-logic-threat-intelligence-sources) based on IP addresses from your log data. This provides security analytics that helps you to detect threats in your environment, while also protecting against sophisticated and persistent cyber-attacks.

<!--
You can also use the [`threatlookup`](/docs/search/search-query-language/search-operators/threatlookup/) search operator to search threat intelligence indicators.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ _sourceCategory=weblogs
| compose src_ip]
```

<!-- Add this after sumo://threat/cs is replaced by threatlookup":
<!-- Add this after sumo://threat/i471 is replaced by threatlookup":

### Threatlookup queries in dashboards

Expand Down Expand Up @@ -217,6 +217,6 @@ cat sumo://threat-intel | formatDate(toLong(_threatlookup.valid_until), "yyyy-MM
```

:::note
You cannot use the cat search operator with the `_sumo_global_feed_cs` source.
You cannot use the cat search operator with the `SumoLogic_ThreatIntel` source.
:::
-->
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ which provides results like:
| lookup raw from sumo://threat/cs on threat = hash{code}
```

<!-- Replace code example with this after `sumo://threat/cs` is replaced by `threatlookup`:
<!-- Replace code example with this after `sumo://threat/i471` is replaced by `threatlookup`:
```sql
*
| limit 1
Expand Down
2 changes: 1 addition & 1 deletion docs/search/subqueries.md
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,7 @@ _sourceCategory=weblogs
| where threatlevel = "high"
| compose src_ip]
```
<!-- Replace code example with this after `sumo://threat/cs` is replaced by `threatlookup`:
<!-- Replace code example with this after `sumo://threat/i471` is replaced by `threatlookup`:
```sql
_sourceCategory=weblogs
[subquery:_sourceCategory="Labs/SecDemo/guardduty" "EC2 Instance" "communicating on an unusual server port 22"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@ We need a way to see if any of the IP addresses we have logged are known threats
| fields - ip_address,malicious_confidence,actor,kill_chains,ip_address_types,_sourceCategory,_source | count by _timeslice
| outlier _count window=5,threshold=3,consecutive=1,direction=+-
```
<!-- Replace code example with this after `sumo://threat/cs` is replaced by `threatlookup`:
<!-- Replace code example with this after `sumo://threat/i471` is replaced by `threatlookup`:
```
_sourceCategory=Labs/AWS/CloudTrail
| parse regex "(?<ip_address>\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})"
Expand Down
Loading
Loading