atc-project / atc-react

A knowledge base of actionable Incident Response techniques
Apache License 2.0
605 stars 113 forks source link

Extension of RA/RPs to facilitate future IDs #343

Open pjabes opened 3 years ago

pjabes commented 3 years ago

Presently, the namespace for both Response Actions and Response Plans facilitates up to 99 unique items. There has been some discussion within the ATC Slack about whether that should be increased given the large variety of different work types that could occur across.

By way of an example - If the last Identification (Stage), File (Category) was 2399 and you wanted to add another one, you can not use 2400 without a clash (and violating the naming convention).

xofolowski commented 3 years ago

Another motivation for increased ID namespaces could be custom additions that are not deemed valuable for the ATC community. Imagine I wanted to add an RA that is super specific for my environment: I could do so and just add it with a (currently unused) 4-Digit ID to my fork of the RE&CT repository. However, chances are big that the ID I chose will clash with the ID of another RA that's going to be added to the official repository in the future. If the ID was 5-Digit, it would be possible to define the upper end of the range as "user reserved"; e.g. IDs xx900 - xx999 could officially be excluded from the official RE&CT repository.

yugoslavskiy commented 3 years ago

Hello @pjabes , @xofolowski! Thank you guys for creating this ticket and your proposals.

We've been thinking a lot about IDs' future and all the points that you've brought up in the ATC Slack threads.

Let me comment on the topics separately:

If the ID was 5-Digit, it would be possible to define the upper end of the range as "user reserved"; e.g. IDs xx900 - xx999

Your idea is great. I would only adjust it a bit. Let me explain. There is another point to consider, rather than creating new custom RAs — overwriting original RAs with internal ones. I believe that there is should be YXXXX IDs, where:

It's important to provide users with the ability to create user-defined RAs with the same IDs. I believe that we can implement a merging mechanism with the option to define a way the analytics will be handled (exported) in case of the matching IDs:

We could make it configurable in the config file (so defined globally for all the analytics) or in a specific RA/RP.

Also, here is how we are going to avoid clashes (2399 + 1):

1. Group RAs to make them more high-level. Let use the RA3101-3111 (Containment stage, Network category) as an example for such grouping:

They all could be grouped into something like:

And that's it. What is the resource exactly is (user, IP address, domain) as well as how exactly it could be done (by port, by user, URL or protocol etc) could be defined on the sub-RA level:

2. Move to the more detailed description in sub-RAs (ATT&CK way), i.e. 2390.001 (+1000 options for high-level RA). I believe that this is the future. This is the way how we could connect with ATT&CK on the RA level. I will describe our proposals in the https://github.com/atc-project/atc-react/issues/291 soon.

There is another point of doing that — we will move to the new version of the ATT&CK Navigator, and later would be able to use ATT&CK website source code to create new (better) web UI for RE&CT. To do that, we need to:


This way we will have lots of free ID numbers for users to utilize. We also will provide them with the option to keep all data even in case of an intersection. What do you guys think?

yugoslavskiy commented 3 years ago

sorry, forgot one point — "user reserved" IDs could be also applied. How about Y8000-Y9999? 1-6 are existing Response Stages. We could leave 0 and 7 reserved for us, and 8-9 — for users. what do you guys think?

xofolowski commented 3 years ago

Hi @yugoslavskiy, sorry for the late response - last weeks kept me quite busy. Your proposal looks quite sensible in my eyes.

However, in general, what is the advantage in your opinion of having a somehow schemed numbering for RAs/RPs over just using UUIDs? Any information that is in the numbering scheme right now could just be put in RA/RP metadata (as it is already partly done, e.g. for the response phase). Having just UUIDs one could

Mapping to ATT&CK techniques / subtechniques could be achieved by referencing either the respective IDs directly, or maybe even via the techniques' STIX-UUIDs.

What do you think?