Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/atc-project/atc-react

A knowledge base of actionable Incident Response techniques
https://github.com/atc-project/atc-react

amitt dfir incident-response mitre-attack response-playbooks thehive

Last synced: about 1 month ago
JSON representation

A knowledge base of actionable Incident Response techniques

Awesome Lists containing this project

README

        

[Русская версия](README_RU.md)

# RE&CT

![](docs/images/logo_v2.png)

The project represents the following:

1. A [framework](https://atc-project.github.io/atc-react/) — knowledge base of actionable Incident Response techniques
2. A community-driven [collection](docs/Response_Playbooks) of Security Incident Response Playbooks
3. A data source of the [Atomic Threat Coverage](https://github.com/atc-project/atomic-threat-coverage) framework

## The RE&CT Framework

The RE&CT Framework is designed for accumulating, describing and classification actionable Incident Response techniques.

RE&CT's philosophy is based on the [MITRE's ATT&CK](https://attack.mitre.org/) framework.
The columns represent [Response Stages](https://atc-project.github.io/atc-react/responsestages/).
The cells repsresent [Response Actions](#response-action).

![](docs/images/react_navigator_export_v5.svg)

(Image generated by RE&CT Navigator)

The main use cases:

- Prioritization of Incident Response capabilities development, including skills development, technical measures acquisition/deployment, internal procedures development, etc
- Gap analysis — determine "coverage" of existing Incident Response capabilities

The main resources:

- [RE&CT Navigator](https://atc-project.github.io/react-navigator/) (modified [ATT&CK Navigator](https://github.com/mitre-attack/attack-navigator)) for visualization and observing the big picture
- Automatically generated RE&CT [website](https://atc-project.github.io/atc-react/) is the best place for getting details about existing analytics
- Automatically generated [Atlassian Confluence knowledge base](https://atomicthreatcoverage.atlassian.net/wiki/spaces/REACT/pages/755469668/Response+Stages) - exporting functionality demonstration

## Actionable Analytics

The ATC RE&CT project inherits the "Actionable Analytics" paradigm from the [ATC](https://github.com/atc-project/atomic-threat-coverage) project, which means that the analytics are:

- **human-readable** (`.md`) for sharing/using in operations
- **machine-readable** (`.yml`) for automatic processing/integrations
- **executable** by Incident Response Platform ([TheHive Case Templates](docs/thehive_templates/) only, at the moment)

Simply saying, the analytics are stored in `.yml` files, that are automatically converted to `.md` documents (with [jinja](https://palletsprojects.com/p/jinja/)) and `.json` TheHive Case Templates.

### Response Action

Response Action is a description of a specific atomic procedure/task that has to be executed during the Incident Response. It is an initial entity that is used to construct Response Playbooks.

Here is an example of Response Action:

Initial YAML file (click to expand)

- Automatically created [Markdown file](docs/Response_Actions/RA_2202_collect_email_message.md)
- Automatically created [mkdocs web page](https://atc-project.github.io/atc-react/Response_Actions/RA_2202_collect_email_message/)
- Automatically created [Confluence page](https://atomicthreatcoverage.atlassian.net/wiki/spaces/REACT/pages/755435640/RA2202+Collect+email+message)

Each Response Action mapped to a specific [Response Stage](https://atc-project.github.io/atc-react/responsestages/).

The first digit of the Response Action ID reflects a Stage it belongs to:

- **1**: Preparation
- **2**: Identification
- **3**: Containment
- **4**: Eradication
- **5**: Recovery
- **6**: Lessons Learned

The second digit of the Response Action ID reflects a Category it belongs to:

- **0**: General
- **1**: Network
- **2**: Email
- **3**: File
- **4**: Process
- **5**: Configuration
- **6**: Identity

This way, using Response Action ID, you can see the Stage and Category it belongs to.
For example, [RA**22**02: Collect an email message](docs/Response_Actions/RA_2202_collect_email_message.md) is related to Stage **2** (Identification) and Category **2** (Email).

The categorization aims to improve Incident Response process maturity assessment and roadmap development.

### Response Playbook

Response Playbook is an Incident Response plan, that represents a complete list of procedures/tasks (Response Actions) that has to be executed to respond to a specific threat with optional mapping to the [MITRE's ATT&CK](https://attack.mitre.org/) or [Misinfosec's AMITT](https://github.com/misinfosecproject/amitt_framework) frameworks.

Here is an example of Response Playbook:

Initial YAML file (click to expand)

- Automatically created [Markdown file](docs/Response_Playbooks/RP_0001_phishing_email.md)
- Automatically created [mkdocs web page](https://atc-project.github.io/atc-react/Response_Playbooks/RP_0001_phishing_email/)
- Automatically created [Confluence page](https://atomicthreatcoverage.atlassian.net/wiki/spaces/REACT/pages/755469546/RP0001+Phishing+email)

Response Playbook could include a description of the workflow, specific conditions/requirements, details on the order of Response Actions execution, or any other relevant information.

### TheHive Case Templates

TheHive Case Templates are built on top of the Response Playbooks. Each task in a Case Template is a Response Action (with full description).

Here is the example of an imported TheHive Case Template:

Imported TheHive Case Template, made on top of a Response Playbook (click to expand)

One of the Tasks in TheHive Case, made on top of a Response Action (click to expand)

TheHive Case Templates could be found in `docs/thehive_templates` directory and could be imported to TheHive via its web interface.

## Data source of the ATC framework

ATC RE&CT project plays a role of data source for the [Atomic Threat Coverage](https://github.com/atc-project/atomic-threat-coverage) framework, that uses it to generate Markdown and Confluence knowledge bases, ATT&CK Navigator layers, Elasticsearch indexes and [other](https://github.com/atc-project/atomic-threat-coverage#how-it-works) analytics.

Originally analytics related to Incident Response were part of the ATC, but we decided to move it into a separate project to make it easier to maintain and provide an option for integration with other projects in this area.

## Usage

1. Make sure you are compliant with the [requirements](#requirements)

2. Create configuration file by copying configuration file template `scripts/config.default.yml` to `config.yml` (root of the project). Modify it, following the guideline in the configuration file template.

3. Modify existing `.yml` files, or develop your own analytics using the templates of [Response Actions](response_actions/respose_action.yml.template) or [Response Playbooks](response_playbooks/respose_playbook.yml.template). They should be stored in the directories according to their type.

4. When `.yml` files are ready, convert them to `.md` documents, import them into Confluence, generate TheHive templates and [RE&CT Navigator](https://github.com/atc-project/react-navigator) layer using the following commands:
```
python3 main.py --markdown --auto --init
python3 main.py --confluence --auto --init
python3 main.py --thehive
python3 main.py -NAV
```
You will find the outcome in the `docs` directory and Confluence pages (according to the configuration). Also, the RE&CT Navigator layer could be opened only in the [customized application](https://github.com/atc-project/react-navigator).

5. Generate your own (private) website with your analytics, using [mkdocs](https://www.mkdocs.org/):
```
python3 main.py -MK # automatic mkdocs config (navigation) generation
python3 -m mkdocs build
```
The website will be stored in the `site` directory. You can preview it with the following command:
```
python3 -m mkdocs serve
```

### Requirements

- Python 3.7
- [PyYAML](https://pypi.org/project/PyYAML/), [mkdocs](https://pypi.org/project/mkdocs/), [jinja2](https://pypi.org/project/Jinja2/) and [stix2](https://pypi.org/project/stix2/) (optionally) Python libraries. They could be installed with the following command:
```
python3 -m pip install -r requirements.txt
```

## Contacts

- Folow us on [Twitter](https://twitter.com/atc_project) for updates
- Join discussions in [Slack](https://join.slack.com/t/atomicthreatcoverage/shared_invite/zt-6ropl01z-wIdiq3M0AEZPj_HiKfbiBg) or [Telegram](https://t.me/atomic_threat_coverage)

## Contributors

- Timur Zinniatullin, [@zinint](https://twitter.com/zinint)
- Daniil Svetlov, [@Mr_4nders0n](https://twitter.com/Mr_4nders0n)
- Andreas Hunkeler, [@Karneades](https://github.com/Karneades)
- Patrick Abraham, [@pjabes](https://github.com/pjabes)
- Lucas Berezy, [@lberezy](https://github.com/lberezy)
- Efe Erdur, [@efeerdur](https://github.com/efeerdur)
- Alejandro Ortuno, [@aomanzanera](https://twitter.com/aomanzanera)
- [@d3anp](https://github.com/d3anp)
- Christoph Bott, [@xofolowski](https://github.com/xofolowski)

Would you like to become one? You are very welcome! Our [CONTRIBUTING](CONTRIBUTING.md) guideline is a good starting point.

## Roadmap

The roadmap and related discussions could be found in the project [issues](https://github.com/atc-project/atc-react/issues) by labes:

- [Discussions](https://github.com/atc-project/atc-react/issues?q=is%3Aissue+is%3Aopen+label%3Adiscussion)
- [Questions](https://github.com/atc-project/atc-react/issues?q=is%3Aissue+is%3Aopen+label%3Aquestion)
- [Enhancements](https://github.com/atc-project/atc-react/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement)
- [Response Actions development](https://github.com/atc-project/atc-react/issues?q=is%3Aissue+is%3Aopen+label%3ARA-dev)

## License

See the [LICENSE](LICENSE) file.