-
Notifications
You must be signed in to change notification settings - Fork 519
Initial Domaintools Integration #12140
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
Conversation
|
💚 CLA has been signed |
|
Hi @andrewkroh I went ahead and signed the CLA, thank you! |
|
Hi @andrewkroh apologies if I'm missing something obvious here, first time going through this process. Was there anything else you needed from me to get this PR approved and merged? Thank you for the guidance! |
andrewkroh
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I took quick (non-thorough) look and left a few comments. I'm asking to find the right internal team to help review this.
The integration kind of sounds like it should be treated as a threat intel integration with naming to match (e.g. ti_domaintools). Is that the general use case for this data?
This will need system and pipeline testing.
packages/domaintools/data_stream/nod_feed/agent/stream/httpjson.yml.hbs
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does this timestamp represent? It is the time when the domain was registered? Or first observed through passive DNS means?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
documentation has been updated. You are correct, first observed through passive DNS.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are these going to be eTLDs only or any domain observed anywhere?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
documentation has been updated. no eTLDS. Apex-level domains (e.g. example.com but not www.example.com) that we observe for the first time, and have not observed previously with our global DNS sensor network.
packages/domaintools/docs/README.md
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This field table and the sample event should be generated from a template that is placed in the _build/ dir (see other integrations as an example).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apologies, I wasn't able to figure this one out. I’m not sure what how to generate the sample event and field table here? I don’t see any template in integrations/build directory. Am I in the wrong place?
I used the ti_recordedfuture README as an example. And just replaced the fields we export by hand. Please let me know what I'm missing here.
|
Hi @andrewkroh, Thank you for the review! Your comments make perfect sense. We've just started our company holiday, so we'll be able to address the feedback and submit an update early next year. Happy holidays to you as well! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All of our existing threat intel integrations have a prefix ti_.
I would suggest you rename the integration to ti_domaintools.
For threat intel indicators, we also want to support an expiration.
You can take a look at other ti_* integrations how it is done. Example.
Essentially you need to setup a latest transform and expire the indicators based on a time period or based on a data point.
|
/test |
|
Pinging @elastic/security-service-integrations (Team:Security-Service Integrations) |
|
@kcreddy I've renamed the integration to ti_domaintools. I've also taken a first pass at adding a latest transform to support expiration. It seems to be working as expected. I've also addressed the feedback from @andrewkroh. Can you please take another look and let me know if we're missing anything. Appreciate your patience and support as first-timers working with Elastic, thank you! |
|
@kcreddy @andrewkroh just checking in on this. Anything else needed on our side right now? As always, appreciate the patience as elastic first-timers, thank you! |
|
/test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
packages/domaintools/data_stream/nod_feed/agent/stream/httpjson.yml.hbs
Outdated
Show resolved
Hide resolved
packages/ti_domaintools/elasticsearch/transform/latest_nod/fields/ecs.yml
Outdated
Show resolved
Hide resolved
packages/ti_domaintools/elasticsearch/transform/latest_nod/fields/fields.yml
Outdated
Show resolved
Hide resolved
packages/ti_domaintools/elasticsearch/transform/latest_nod/fields/ecs.yml
Outdated
Show resolved
Hide resolved
packages/ti_domaintools/elasticsearch/transform/latest_nod/transform.yml
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suggest matching this max_age value with default interval.
So, the latest domain indicators are populated into latest indices.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Discussing with our product lead, we wanted to know if it's possible to have default interval of 10m for pulling in the feed, but expire the indicators after 7d? Reasoning is to keep the feed close to real time, but leave folks time to see them? Or let us know if we're misunderstanding max_age here. Thank you!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Got it. So, with current configuration:
interval: 10m
max_age: 7d
This would mean when these domain indicators are deleted inside your platform (or expired since no longer valid), and when the API is called next time, this indicator will not be fetched from there on. But since max_age is set to 7d, this indicator will still be present in your feed in Elastic and only deleted after 7d, does this seem okay?
|
@kcreddy I believe we've addressed your feedback. Please let me know if there are more changes to make, or if my requests around |
|
/test |
|
@wesleya, thanks for resolving comments.
The manifest.yml |
packages/ti_domaintools/elasticsearch/transform/latest_nod/transform.yml
Outdated
Show resolved
Hide resolved
|
@kcreddy thank you for the guidance, I believe I've updated the branch and things are looking as expected, testing looks good as well. You might see 2 or 3 additional force push attempts previous to my final attempt. You can ignore those, it just took me a few tries to work things out correctly. Let me know if I'm missing anything, thank you! |
|
/test |
💔 Build Failed
Failed CI StepsHistory
|
|
There's a CI error unrelated to this package. #12630 should fix the CI error. Once that is merged, CI needs to be run again. |
I will let you know as I get some updates. Right now merging is blocked. Apologies for the inconvenience. |
|
I just received this email from [email protected]:
I will re-create this PR on a brand new branch on the re-forked repo. Thank you |
|
Package ti_domaintools - 0.1.0 containing this change is available at https://epr.elastic.co/package/ti_domaintools/0.1.0/ |
Initial integration for DomainTools Newly Observed Domains feed.
Please explain:
Checklist
changelog.ymlfile.Author's Checklist
How to test this PR locally
Install and configure DomainTools integration. Search for feed results:
data_stream.dataset: "domaintools.nod_feed"