Skip to content

Commit

Permalink
Project description updated and extended
Browse files Browse the repository at this point in the history
  • Loading branch information
aw350m33d committed Nov 13, 2023
1 parent e9ec5a9 commit e335511
Show file tree
Hide file tree
Showing 4 changed files with 240 additions and 85 deletions.
90 changes: 82 additions & 8 deletions CONTRIBUTION.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,84 @@
# Как внести свой вклад в ERM&CK

Основной вклад от специалиста по ИБ - Pull Request с новыми знаниями в формате нашего фреймворка. Вы можете создавать новые или дополнять существующие сущности:
- сценарии реагирования
- действия реагирования
- реализации действий реагирования
- артефакты
- ПО

Подробная инструкция о том как создавать Pull Request будет опубликована позже.
---

Ваш вклад имеет большое значение и способствует развитию проекта. Если Вы являетесь специалистом по информационной безопасности, Вы можете внести свой вклад путем создания Pull Request с новыми знаниями в формате нашего фреймворка:

- 💼 **Сценарии реагирования** 🕵️‍

Сценарии реагирования представляют собой алгоритмы, состоящие из набора действий, которые необходимо предпринять при определенных типах инцидентов. Вы можете создавать новые сценарии [согласно шаблону](https://github.com/Security-Experts-Community/ERMACK/blob/develop/data/ru/response_playbooks/respose_playbook.yml.template) или дополнять [существующие](https://github.com/Security-Experts-Community/ERMACK/tree/develop/data/ru/response_playbooks).

- 🛠️ **Действия реагирования** 🔧

Действия реагирования - это отдельные шаги или операции, которые выполняются в рамках сценариев реагирования. Это могут быть технические действия, такие как блокировка IP-адреса или анализ сетевого трафика, а также организационные меры, например, уведомление о конкретном инциденте. Вы можете предложить новые действия реагирования [согласно шаблону](https://github.com/Security-Experts-Community/ERMACK/blob/develop/data/ru/response_actions/respose_action.yml.template) или [дополнить существующие](https://github.com/Security-Experts-Community/ERMACK/tree/develop/data/ru/response_actions).

- 🌟 **Реализации действий реагирования** 💡

Реализации действий реагирования представляют собой конкретные способы выполнения действий, описанных в сценариях реагирования. Их особенность в том, что они специфицированы тем ПО, для которого они актуальны. Это могут быть примеры команд, скриптов, конфигурационных файлов и другой информации, необходимой для успешного выполнения действия реагирования. Вы можете предоставить новые реализации действий реагирования или [улучшить существующие](https://github.com/Security-Experts-Community/ERMACK/tree/develop/data/ru/response_actions_implementations).

- 📜 **Ресурсы** 🔍

Ресурсы - это объекты реагирования. Обычно это то, что получает злоумышленник в процессе компрометации целевой системы. Каждое действие реагирования имеет некоторый набор ассоциированных ресурсов. Благодаря ресурсам, действия реагирования можно связывать в объяснимые последовательности. Набор ресурсов мы синхронизируем с [DAO проекта D3FEND](https://d3fend.mitre.org/dao/). Если нужного ресурса не нашлось в DAO, вы можете предложить создать новый ресурс.

- 🌐 **Программное обеспечение (ПО)** 💻

В нашем фреймворке мы ведём [реестр ПО](https://github.com/Security-Experts-Community/ERMACK/tree/develop/data/ru/software), для которого актуальны реализации действий реагирования. Это полезно для того чтобы показывать пользователю только релевантные для его инфраструктуры реализации действий. Если ваша реализация требует наличия определённого ПО, которого ещё нет у нас в реестре, то вы можете предложить добавить его в проект.

- ⚠️ **Угрозы** 🚨

Сценарии реагирования нацелены на предотвращение последствий инцидентов. Такие инциденты мы называем угрозами. В рамках нашей базы знаний мы ведём [перечень угроз](https://github.com/Security-Experts-Community/ERMACK/tree/develop/data/ru/usecases) для которых есть сценарии. Это позволит связывать знания по реагированию с другими разделами Security Operations. Например, в будущем через такие процедуры можно будет сопоставить правила выявления атак и рекомендации по устранению последствий инцидента. Вы можете предложить включить в базу знаний новые угрозы или [улучшить существующие](https://github.com/Security-Experts-Community/ERMACK/tree/develop/data/ru/usecases).

---

- **Создание Issues**: Если вы обнаружили ошибку, у вас есть предложение по улучшению или вопрос, вы можете создать [Issue](https://github.com/Security-Experts-Community/ERMACK/issues), чтобы обсудить это с участниками сообщества.
- **Создание Pull Requests**: Если вы хотите предложить конкретное изменение, вы можете создать [Pull Request](https://github.com/Security-Experts-Community/ERMACK/pulls). Это может быть добавление новых сущностей, исправление ошибок, улучшение документации и многое другое.
- **Обсуждения**: Для более общих обсуждений, вопросов или идей вы можете присоединиться к [Discussions](https://github.com/Security-Experts-Community/ERMACK/discussions). Это место для свободного обмена мнениями и опытом с другими участниками проекта.



## Обратите внимание

---

- Пожалуйста, ознакомьтесь с [Кодексом Поведения участника](https://github.com/Security-Experts-Community/.github/blob/main/CODE_OF_CONDUCT.md) и убедитесь, что ваш вклад соответствует нашим правилам.
- Ваш вклад должен соответствовать принятому в проекте стилю форматирования. Если вы создаете новые сущности, убедитесь, что они соответствуют формату и структуре проекта. Для этого у каждой сущности есть стандартный шаблон, который можно взять за основу.
- Пожалуйста, старайтесь делать ваш вклад лаконичным, точным и информативным. Помните, что ваша работа будет использоваться другими участниками.

## Как добавить новую функцию или создать Pull Request

---

Если вы хотите внести конкретное изменение в проект ERM&CK, например, добавить новую сущность, исправить ошибку, улучшить документацию или внести другие улучшения, следуйте инструкциям ниже.

1. **Форкните репозиторий**: Первым шагом является форк репозитория [ERM&CK](https://github.com/Security-Experts-Community/ERMACK). Это создаст вашу собственную копию репозитория, в которой вы сможете вносить изменения.

2. **Склонируйте репозиторий**: Склонируйте свою копию репозитория на свой компьютер с помощью команды:
```shell
git clone https://github.com/<ВАШ ЛОГИН НА GITHUB>/ERMACK.git
```

3. **Создайте новую ветку**: Чтобы изолировать изменения, создайте новую ветку для работы с помощью команды:
```shell
git checkout -b my-feature develop
```
4. **Настройте среду разработки**: Убедитесь, что у вас установлена необходимая среда разработки и зависимости. Инструкции по установке написаны здесь [INSTALLATION.md](https://github.com/Security-Experts-Community/ERMACK/blob/develop/INSTALLATION.md).

5. **Внесите изменения и проверьте код**: Внесите необходимые изменения в код, данные или документацию в вашей локальной копии репозитория. Убедитесь, что код соответствует стандартам кодирования и форматирования проекта. Запустите модульные тесты и убедитесь, что они выполняются корректно.

6. **Зафиксируйте и отправьте изменения**: Сделайте коммиты с вашими изменениями и отправьте их в вашу ветку с помощью следующих команд:
- `git add <...>` - добавьте измененные файлы для коммита, заменив `<...>` на необходимые файлы.
- `git commit -m "Описание вашего коммита"` - создайте коммит с описанием ваших изменений.
- `git push origin my-feature` - отправьте коммиты на удаленный репозиторий в вашу ветку.

7. **Создайте Pull Request на GitHub**: Предоставьте четкое описание для вашего Pull Request, включая весь контекст и актуальную информацию, такую как:
- Проблема, которую вы исправляете, её идентификатор.
- Почему вы создали этот Pull Request? Какую функциональность вы собираетесь улучшить? Какая была проблема и как вы ее исправили? Как это повлияет на других пользователей и как им следует использовать эти изменения?
- Любая другая полезную информация: ссылки на другие связанные проблемы и обсуждения на GitHub, графики, сравнения, статьи и т. д.

8. **Обсуждение и улучшения**: Ваш Pull Request будет доступен для просмотра и изучения другими участниками проекта. Возможно, потребуется внести дополнительные изменения или ответить на возникшие вопросы. Следуйте инструкциям и сотрудничайте с командой разработчиков.

9. **Принятие изменений**: После успешного рассмотрения и тестирования вашего Pull Request, он будет включен в основной репозиторий проекта. Ваши изменения станут частью проекта ERM&CK.

---

Спасибо за Вашу заинтересованность в проекте ERM&CK и Ваш вклад в создание надежной и полезной базы знаний по реагированию на компьютерные инциденты!
116 changes: 90 additions & 26 deletions INSTALLATION.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,101 @@
# Сборка базы знаний и запуск представления в формате MKDocs

## Запуск локальной копии базы знаний в Docker

1. Убедитесь, что у вас установлен и запущен Docker на вашей ОС, а также git. Процесс установки подробно описан для различных ОС на официальных сайтах:
- [Docker](https://www.docker.com) - *во избежание ошибок желательно установить последнюю версию;*
- [Git](https://git-scm.com/downloads) - *для корректной работы требуется версия не ниже **2.41.0**;*

2. Скачайте репозиторий проекта, для этого откройте терминал или командную строку и выполните команду:

```shell
git clone https://github.com/Security-Experts-Community/ERMACK.git
```

3. Убедитесь, что вы находитесь в корневой папке проекта:

```shell
cd ERMACK
```

4. Отредактируйте или создайте файл с профилем инфраструктуры (этот шаг можно пропустить)

5. Запустите контейнер, выполнив команду:

```shell
docker-compose up
```

_(Docker должен начать скачивать образ ERMACK и его зависимости)_

6. После успешного запуска контейнера, откройте браузер и введите следующий адрес:

```
http://localhost:8000
```


## Запуск локальной копии базы знаний в виртуальном окружении Python
Для запуска локальной версии базы занний или применения скриптов аналитики необходимо скачать [репозиторий с GitHub][2].

**Алгоритм:**
1. Скачиваем репозиторий
2. Вносим изменения в файл конфигурации (если необходимо)
3. Создаём файл с профилем инфраструктуры (нужно для инстанцирования действий внутри сценариев реагирования)
4. Переходим в корень проекта
5. Создаём виртуальное окружение `python -m venv .pyenv`
6. Активируем окружение
7. Устанавливаем зависимости `pip install -r requirements.txt`
8. Запускаем сборку проекта `python main.py mkdocs -ai`
9. Переходим в папку с резуьлтатами и запускаем сервер
```
cd build
python -m mkdocs serve -a 0.0.0.0:8000
```
10. Переходим по ссылке http://localhost:8000

1. Убедитесь, что на вашей ОС установлены git, Python и Pip. Процесс установки подробно описан для различных ОС на официальных сайтах:
- [Python](https://www.python.org/downloads/) - *для корректной работы требуется версия не ниже **3.11**;*
- [Git](https://git-scm.com/downloads) - *для корректной работы требуется версия не ниже **2.41.0**;*

## Запуск локальной копии базы знаний в Docker
2. Скачайте репозиторий проекта, для этого откройте терминал или командную строку и выполните команду:

```shell
git clone https://github.com/Security-Experts-Community/ERMACK.git
```

3. Убедитесь, что вы находитесь в корневой папке проекта:

```shell
cd ERMACK
```

4. Для инстанцирования действий внутри сценариев реагирования требуется создать файл с профилем инфраструктуры (этот шаг можно пропустить)

5. Установите виртуальное окружение:

```shell
python -m venv .venv
```

6. Активируйте виртуальное окружение:

- Для Windows:

```shell
.venv\Scripts\activate.bat
```

- Для Linux:

```shell
source .venv/bin/activate
```

7. Для установки всех зависимостей введите:

```shell
pip install -r requirements.txt
```

Для запуска локальной версии базы занний или применения скриптов аналитики необходимо скачать [репозиторий с GitHub][2].
8. Запустите сборку проекта:

**Алгоритм**:
1. Скачиваем репозиторий
```shell
python main.py mkdocs -i -a
```

1. Редактируем или создаём [файл с профилем инфраструктуры][3]
9. Перейдите в папку с результатами и запустите сервер:

1. Переходим в корень проекта
```shell
cd build
python -m mkdocs serve -a 0.0.0.0:8000
```

1. Запускаем контейнер
`docker compose up`
10. После успешного запуска сервера, откройте браузер и введите следующий адрес:

1. Переходим по ссылке http://localhost:8000
```
http://localhost:8000
```
Loading

0 comments on commit e335511

Please sign in to comment.