-
Notifications
You must be signed in to change notification settings - Fork 106
Questions about prior art and specific mappings #2
Comments
Hey @chris-counteractive! Thanks for reaching out, we love to hear ATT&CK is helping you and how we further improve that! Addressing your specific questions: 1. As you saw in the blogs, we are still researching + collecting feedback/contributions on how a more refined model for data sources should be captured in ATT&CK. We have looked at existing STIX structures (and will continue to do so), but like you said in practice SCOs (though similar) are used a bit differently than what we are aiming for. Regarding ECS, I agree that's there's a wealth of existing resources that can be leveraged, but we are wary of adopting a model fit to a specific technology stack (vice something that everyone can more directly leverage). That said, we do invite contributions/lessons learned as well as for individuals to translate into whatever format works best for them! Thanks again for reaching out, and definitely keep the contributions and ideas coming! |
Thanks for the reply, @jcwilliamsATmitre, and for the clarifications! A few thoughts:
Of course, and that's totally your prerogative - I respect the thought, research, and effort you've put in. A normalization schema for information sharing is a different use-case, but to paraphrase Gene Kranz in Apollo 13, "we don't care what it was designed to do, we care about what it can do." 😀 They've put a lot of effort into the abstractions and tooling and are committed to keeping it up to date, with no effort on your part. Extending it to cover the differences might be easier than green-field development. Plus, if it's designed well, anyone with STIX-aware stuff could pull in ATT&CK integrations with lower effort (same for ECS). It's actually the diagram in your reply that brought this all to mind:
... and so on. Even those that aren't built into the model are flexibly captured with SROs. Since you'd only use the abstractions (the type definitions, basically cribbing their nomenclature), you probably wouldn't need any of the fiddly bits like identifiers. Anyway, I know it's not easy, but I could see a future where you accidentally re-create a subset of this while trying to meet your design goals. I'm all for new models when there's clear improvement (e.g., ATT&CK itself, NIST CSF), and this might be a great case for one. I just like advocating for quality, open projects that might fit the bill, if only to avoid standards proliferation.
Absolutely a sensible approach, I prefer open and platform agnostic as much as anyone. To clarify about ECS in particular, though, I think it meets that standard. It's maintained by Elastic and includes some tooling to ease interaction with elasticsearch, but it's more generally applicable:
In both cases (STIX and ECS) having a "sponsor" org that's not MITRE can be a feature not a bug so long as everything's fork-able, and the non-commercial core of the elastic stack is open source too, reducing the risk of vendor lock-in for those who use the other tooling.
I noticed that diagram too, and it could be I'm just not reading it correctly. Wouldn't those community "extensions/adoptions" need to be able to "plug in" to the abstractions somehow? I suppose I saw that as a place for inbound PRs. If not, and I just maintain my own list somewhere, it seems like a lost opportunity for me to learn from how others are doing it. That also seems pretty close to the status quo, where teams continually re-discover various resources on this topic 😀 (shout out to malware archaeology). I don't see a drawback to listing the most common concrete sources (as you show with windows security 4688s, sysmon event 1s, etc.), particularly if you qualify them somehow ("sample artifacts," "example logs," or similar), but I could certainly be wrong. If there's a better place for this type of discussion, please let me know. Thanks again! |
Put another way, I love the idea of being able to "officially" say something like: "To detect like so: "To detect T1534.003, ATT&CK suggests using data that maps to the ... which wouldn't require nearly as much heavy lifting on your part 😀 |
First off, this is a perfect venue for these discussions! We definitely want others to be able to track and build on great ideas so thanks again for sharing. Interesting point on the STIX SCOs - admittedly I am nowhere near an expert on the nuances of the standard, but I'll comb through the links you sent as well as talk to our resident SMEs next week. I do know that we aim to keep our content compliant with the standard so there may be less wiggle room, but I'll report back with more specifics later. Another interesting point about the specific mappings - like I said our objective for this repo was to build towards what would be documented within ATT&CK, but like you said that comes from raw evidence that could also benefit other users. We've seen some other projects (ex: https://github.com/OTRF/OSSEM-DM/blob/44618fa828d988837a069ef35830f67241293d53/docs/attack_ds_event_mappings.md) start to touch on those mappings but I do agree that we can work to aggregate this data - maybe in https://github.com/mitre-attack/attack-datasources/tree/main/sub_techniques_research_reference? |
Thanks, @jcwilliamsATmitre, we appreciate the engagement! I thought it'd be helpful to re-phrase my questions as an affirmative proposal, to make clearer side-by-side comparisons to your proposal. Consider the following alternative: amendment: use STIX SCO types as abstractions for data supporting ATT&CK detections and analysis
illustrationsThe structural template might look something like:
A parallel version of figure 13 in part 2 might look something like:
general comparison
Many of these also apply to ECS. use-cases
Can help you answer questions like:
If folks don't find this compelling, it'll be easier to close out this issue having made an actual proposal 😃 Thanks again! |
Another related project we use a lot is the MITRE Cyber Analytics Repository (CAR) and its CARET tool. They also built a custom abstraction layer (their "data model") explicitly inspired by CyBOX (precursor to STIX SCOs), and mapped them to concrete artifacts ("sensors"). CAR enhances current-state ATT&CK by tying techniques to concrete data sources (via analytics and their data model), and demonstrates slick visualizations that can produce real insights. You can see at a glance what sensors give you the most bang for the buck with respect to analytic, technique, and group coverage. It is, though, limited in that it:
It seems like it's still active, not sure if it'll be updated to today's new ATT&CK v8. Your colleagues there may have some lessons learned about why to use or not use an existing abstraction, vs. making a new one. Also, regarding "compliance with the standard" with respect to STIX, I thought I'd note that ATT&CK does a nice job of extending STIX when needed using the Sorry for another brain dump, but this took us down the rabbit hole! This is mostly for the benefit of those who use these other standards and tools and like to see how they interact. Thanks again! |
Yeah we're been interacting/cross-pollinating with @ikiril01 and others from CAR. Still TBD but as you said there may be some interesting opportunities to explore! And regarding STIX extensions, we looked into this before and it seems like a very reasonable route. I'll poke around into the SCOs idea and get back to you with more tangible specifics though. |
@chris-counteractive some great thoughts and discussion. I actually helped design and build much of STIX 2.x's SCOs (and CybOX back in the day), so I can speak a bit from my perspectives here:
Regarding CAR, I've also been helping drive that work as of late, so I can add a few things:
|
I appreciate the perspective, @ikiril01, along with all your work on STIX and CybOX! I'm excited to hear CAR is moving along full-speed to v8 and to non-windows platforms, and yes, I was referring to CAR not reaching the event ID level ... if I'm mistaken, please let me know! We've gotten a lot of mileage out of the CARET tool with our clients, visualizing the pareto principle at work when it comes to sensors -- thanks so much for all your efforts. As I thought through this, I needed to explore it in detail to sort through some of the edges, so I created a repo that rounds out this idea of using SCOs and custom objects: https://github.com/counteractive/scope There's a lot of detail in that readme (if you're patient enough to read it! 😃), but the TL;DR is the following:
It provides some specific examples and a tool that converts yaml SCO descriptions to html consistent with the official STIX spec. Basically, the idea is to flesh this out concretely to see how it works with existing ATT&CK, to see if it actually holds water. No feelings will be hurt if I'm missing the mark, but hopefully this ups the bar for rigorous discussion of alternatives. Thanks again! |
Admin note: closing all remaining issues and pull requests prior to archiving the repository |
Thank you for this! We love ATT&CK, but the data sources sections have always felt a bit "loose" and left mostly as an exercise for the reader. The blog series and this repo prompted a couple questions I hoped you could discuss:
Why not use/extend an existing schema for the abstractions?
For example, STIX Cyber-observable Objects (SCO) cover some of the same ground, and link nicely with STIX-formatted intel ... like ATT&CK itself. The spec for the objects and their relationships reads a bit like your yaml data sources, and they can be reified with real data. Seems like STIX SCO is a natural fit, plus it has a well-thought-out relationship model, serialization format, extensions, etc.
The Elastic Common Schema (ECS) is great too - it's permissively licensed, available for collaboration on github, has abstractions for many of the examples you provide (users, processes, etc.), and is already powering a lot of searches, visualizations, and analytics. We see it more in ops contexts, and it's perhaps a bit more flexible than SCOs. For example, you see it frequently merged with existing event data so you get the benefit of the abstractions without sacrificing the specificity of the original event.
One of the beautiful things about ATT&CK is it reduced bike-shedding over terminology and helped the infosec community focus - STIX and ECS have put a lot of similar work, seems good to stand on the shoulders of giants. Naming things is hard, and it takes time to overcome intuitions (even at the top level: e.g., to my ear the phrase "data source" connotes the place you get the data, rather than an abstraction of the observable, but I'm just one guy 🙂).
In any case, if ATT&CK leveraged one of these for the abstract entities, seems you could save energy for more ATT&CK-specific work like mapping those to (sub-)techniques or the actual concrete logs/artifacts.
Are there plans to be more specific about mappings to artifacts?
Presumably the idea is that (sub-)techniques would eventually use these new abstract data sources to replace or augment the text in the current "Data Sources" section. Unfortunately, unless I'm missing something, the proposed model doesn't seem to have a way to capture links to the concrete logs/artifacts.
For example, the mapping example in figure 13 in part 2 of the blog series illustrates this last step:
That is, it shows links from the data components to specific event logs on the right, and that last step is really useful ... but it doesn't actually live anywhere in this repo's proposed approach. For many teams that last leg is the hard part! If we took your schema, for example, maybe added something like:
Perhaps this is considered out of scope, but hopefully not; it'd be great to see something as authoritative as ATT&CK pointing folks to specific useful artifacts rather than just the abstraction. I'd love to hear your thoughts.
Thanks again for your hard work on this and all the related projects, I look forward to learning more!
The text was updated successfully, but these errors were encountered: