[Enhancement] [integration] Add EclecticIQ Advanced CSV Outgoing feed integration - #8465
Conversation
|
💚 CLA has been signed |
|
Pinging @elastic/security-external-integrations (Team:Security-External Integrations) |
|
/test |
|
/test |
|
@petarc-eiq Looks like the CI is failing on older README file. Can you run |
- Removed reference to non-existent log reference section - Added one more way to filter TI results to show only EclecticIQ data
done! |
|
/test |
🌐 Coverage report
|
|
@petarc-eiq @zed-eiq The CI is now failing on pipeline tests. Can you please check if they are successful on your end and commit updated |
|
/test |
|
/test |
|
/test |
|
/test |
|
/test |
|
@petarc-eiq Looks like the system tests are failing now. Can you check on your local if they are successfully running? |
| @@ -0,0 +1,41 @@ | |||
| format_version: 2.8.0 | |||
| name: ti_eclecticiq | |||
| title: EclecticIQ Outgoing Feeds Integration | |||
There was a problem hiding this comment.
@petarc-eiq @kcreddy as discussed, can we shorten the title to EclecticIQ and also reflect those changes in data stream names, documentation, etc too.
| version: 1.0.0 | ||
| source: | ||
| license: Elastic-2.0 | ||
| description: Download data from EclecticIQ IC outgoing feeds |
There was a problem hiding this comment.
@petarc-eiq @kcreddy can we adjust this description to ensure alignment with other integrations. Ingest threat intelligence indicators from EclecticIQ with Elastic Agent
kcreddy
left a comment
There was a problem hiding this comment.
@petarc-eiq Based on the changes Jamie suggested to the integration's title and description, I added some changes you need to make.
| @@ -0,0 +1,143 @@ | |||
| # EclecticIQ Outgoing Feeds Integration | |||
There was a problem hiding this comment.
| # EclecticIQ Outgoing Feeds Integration | |
| # EclecticIQ Integration |
| @@ -0,0 +1,143 @@ | |||
| # EclecticIQ Outgoing Feeds Integration | |||
|
|
|||
| The EclecticIQ Outgoing Feeds integration | |||
There was a problem hiding this comment.
| The EclecticIQ Outgoing Feeds integration | |
| The EclecticIQ integration |
| ## Data streams | ||
|
|
||
| The EclecticIQ Outgoing Feeds integration | ||
| collects one type of data streams: logs. | ||
|
|
||
| **Logs** collected from this integration | ||
| are collections of threat intelligence observables | ||
| ingested from the connected EclecticIQ Intelligence Center outgoing feed. |
There was a problem hiding this comment.
| ## Data streams | |
| The EclecticIQ Outgoing Feeds integration | |
| collects one type of data streams: logs. | |
| **Logs** collected from this integration | |
| are collections of threat intelligence observables | |
| ingested from the connected EclecticIQ Intelligence Center outgoing feed. | |
| ## Data streams | |
| The EclecticIQ integration | |
| collects one type of data: logs. | |
| **Logs** collected from this integration | |
| are collections of threat intelligence observables | |
| ingested from the connected EclecticIQ Intelligence Center outgoing feed. These are available in the datastream named `threat`. |
| ### Update strategies | ||
|
|
||
| You must set the **same** _Update strategy_ for | ||
| both the EclecticIQ Outgoing Feeds Integration instance |
There was a problem hiding this comment.
| both the EclecticIQ Outgoing Feeds Integration instance | |
| both the EclecticIQ Integration instance |
| @@ -0,0 +1,43 @@ | |||
| title: "Poll Outgoing feed" | |||
There was a problem hiding this comment.
| title: "Poll Outgoing feed" | |
| title: EclecticIQ Threat |
There was a problem hiding this comment.
(i didn't realise that github has a "commit suggestion" feature 😅 )
I'm leaving this as "Poll Outgoing feed" if that's okay! This refers to functionality on EIQ IC, and makes it clear that the outgoing feed feature is what's being used here (there are other ways to get data out of EIQ IC)
| - name: event.dataset | ||
| type: constant_keyword | ||
| description: Event dataset | ||
| value: ti_eclecticiq.outgoing_feed |
There was a problem hiding this comment.
| value: ti_eclecticiq.outgoing_feed | |
| value: ti_eclecticiq.threat |
| - name: "@timestamp" | ||
| type: date | ||
| description: Event timestamp. | ||
| - name: eclecticiq.outgoing_feed |
There was a problem hiding this comment.
| - name: eclecticiq.outgoing_feed | |
| - name: eclecticiq.threat |
| @@ -0,0 +1,31 @@ | |||
| source: | |||
| index: | |||
| - "logs-ti_eclecticiq.outgoing_feed-*" | |||
There was a problem hiding this comment.
| - "logs-ti_eclecticiq.outgoing_feed-*" | |
| - "logs-ti_eclecticiq.threat-*" |
| latest: | ||
| unique_key: | ||
| - event.dataset | ||
| - eclecticiq.outgoing_feed.observable_id |
There was a problem hiding this comment.
| - eclecticiq.outgoing_feed.observable_id | |
| - eclecticiq.threat.observable_id |
| delay: 120s | ||
| retention_policy: | ||
| time: | ||
| field: eclecticiq.outgoing_feed.deleted_at |
There was a problem hiding this comment.
| field: eclecticiq.outgoing_feed.deleted_at | |
| field: eclecticiq.threat.deleted_at |
|
we're pending one more README change to include the list of IoCs we support/don't support in this version 🙏 |
|
/test |
|
/test |
🚀 Benchmarks reportTo see the full report comment with |
kcreddy
left a comment
There was a problem hiding this comment.
@petarc-eiq @zed-eiq Looks like the CI is passing now 🚀
PR LGTM 👍🏼
Is there anything else you would like to add to this PR or can I proceed merging it?
Hello @kcreddy we're doing a round of smoke testing with the latest updates, should be done soon. When we get verification, we are good to go! We will send confirmation as soon as possible. Thanks! |
|
i'm done with readme updates! we're good to go from our end 🙏 |
|
Package ti_eclecticiq - 0.1.0 containing this change is available at https://epr.elastic.co/search?package=ti_eclecticiq |
Proposed commit message
Add Eclectic IQ integration with Advanced CSV Observables Outgoing Feed data stream.
The integration's data stream downloads outgoing feed content blocks data in CSV format, parses the CSV data and submits it to the ingestion pipeline.
Ingestion pipeline takes the input data and populates appropriate ECS fields.
The integration has a transform that creates "latest" index and populates it with records from data stream index that doesn't have "deleted_at" date, which is populated only for input records that are deleted from source dataset. This way, result index has only the latest data and provides a retention policy.
Checklist
changelog.ymlfile.Author's Checklist
How to test this PR locally
Prerequiseites
Steps: