diff --git a/CONTRIBUTION.md b/CONTRIBUTION.md index e491f21d..d472e276 100644 --- a/CONTRIBUTION.md +++ b/CONTRIBUTION.md @@ -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 и Ваш вклад в создание надежной и полезной базы знаний по реагированию на компьютерные инциденты! diff --git a/INSTALLATION.md b/INSTALLATION.md index 35d7813f..746e87f6 100644 --- a/INSTALLATION.md +++ b/INSTALLATION.md @@ -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 + ``` diff --git a/README.md b/README.md index 27922d89..14bbbc65 100644 --- a/README.md +++ b/README.md @@ -1,73 +1,80 @@ # ERM&CK - Enterprise Response Model & Common Knowledge +[![Telegram chat](https://img.shields.io/static/v1?label=chat&message=Telegram&color=blue&logo=telegram)](https://t.me/s3curity_experts_community/298) + +> **ERM&CK - фреймворк и база знаний для описания реагирования на компьютерные инциденты.** + +Ознакомиться с публичной версией базы знаний можно по ссылке: https://security-experts-community.github.io/ERMACK. +Процесс запуска локальной копии подробно описан в файле [INSTALLATION.md](INSTALLATION.md) + + ## Введение За основу был взят проект [RE&CT](https://github.com/atc-project/atc-react). Мы вдохновлялись идеями авторов этого проекта, однако проект ERM&CK разрабатывается с иным взглядом на архитектуру и кейсы применения. Кодовая база практически полностью переписана. Абстрактные действия реагирования в большей своей массе взяты из RE&CT без изменений. -Основным отличием и нововведением проекта ERM&CK относительно RE&CT является расширение модели данных, благодаря чему мы можем более детально описывать реагирование на инциденты ИБ. Мы планируем собирать конкретные реализации действий реагирования для того чтобы при возникновении инцидента, у пользователя были конкретные инструкции к действию, а не абстрактные рекомендации. Наш подход предполагает, что все конкретные инструкции будут описаны в рамках единой базы знаний и провалидированы участниками сообщества. Таким образом, на выходе получается провалидированная и одобренная сообществом база знаний по реагированию. +### Основные аспекты, которые делают наш проект уникальным: +1. **Расширенная модель данных** 📝 -## Основные цели проекта: -1) Предоставить пользователю удобный инструмент для подготовки инфраструктуры к процессам реагирования на компьютерные инциденты. -2) Предоставить пользователю информацию о действиях реагирования для случаев, которые описаны в базе знаний. -3) Автоматизация построения сценариев реагирования, аналитика над данными. + Каждое действие реагирования в нашей системе способно содержать не только общее описание, но и конкретные реализации для разного ПО. Это могут быть, четкие инструкции, скрипты, настройки или рекомендации, которые могут быть применимы в случае возникновения реальных инцидентов. + Такой подход дает значительное преимущество - когда возникает инцидент, пользователь может обратиться к базе знаний ERM&CK и найти не только абстрактные рекомендации, но и точное руководство, адаптированное под конкретный тип инцидента, где шаг за шагом будет объяснено, что делать в данной ситуации. Это устраняет неопределенность и позволяет действовать с уверенностью, основанной на проверенных практиках и знаниях всего сообщества. -## Репозитории проекта -Основной: -- GitHub: https://github.com/Security-Experts-Community/ERMACK +2. **Сообщество и валидация знаний** 🤝 -Зеркала: -- Codeberg: https://codeberg.org/Security-Experts-Community/ERMACK -- GitFlic: https://gitflic.ru/project/security-experts-community/ermack + Мы предлагаем подход, при котором конкретные реализации действий реагирования могут быть провалидированы и одобрены участниками сообщества. Это обеспечивает высокую достоверность и актуальность инструкций. Участники могут предложить свои решения, способствуя накоплению опыта и лучших практик в сфере реагирования. + +3. **Удобный инструментарий** 🛠️ + + ERM&CK стремится создать удобное и понятное в использовании окружение для подготовки к процессам реагирования на инциденты. С конкретными реализациями действий реагирования и сценариев, специалисты смогут быстро ориентироваться в процессе и действовать более эффективно. + +4. **Автоматизация и аналитика** 📊 + + ERM&CK - является не только базой знаний, но и фреймворком для описания этих знаний. Благодаря формальному описанию и стуктурированию информации мы планируем автоматизировать создание сценариев реагирования. А благодаря аналитике данных давать рекомендации по улучшению поцессов реагирования. + + +ERM&CK ориентирован на практическую применимость и сотрудничество с сообществом для непрерывного улучшения базы знаний и инструментов. -## Использование базы знаний -### Поиск по публичной версии сайта -На GitHub Pages доступна публичная сборка ветки develop: -https://security-experts-community.github.io/ERMACK/ +## Основные цели проекта +Проект ERM&CK ставит перед собой ряд важных целей, достижение которых улучшит эффективность и практичность процессов реагирования на инциденты: -### Запуск локальной копии базы знаний в виртуальном окружении Python -Для запуска локальной версии базы занний или применения скриптов аналитики необходимо скачать [репозиторий с GitHub][2]. +1. **Подготовка инфраструктуры для процессов реагирования** ⚙️ -**Алгоритм:** -1. Скачиваем репозиторий -2. Вносим изменения в файл конфигурации (если необходимо) -3. Создаём файл с профилем инфраструктуры (нужно для инстанцирования действий внутри сценариев реагирования) -4. Переходим в корень проекта -5. Создаём виртуальное окружение `python -m venv .pyenv` -6. Активируем окружение -7. Устанавливаем зависимости `pip install -r requirements.txt` -8. Запускаем сборку проекта `python main.py mkdocs -i -a` -9. Переходим в папку с резуьлтатами и запускаем сервер -``` -cd build -python -m mkdocs serve -a 0.0.0.0:8000 -``` -10. Переходим по ссылке http://localhost:8000 + Поскольку подготовка инфраструктуры к процессам реагирования на инциденты является важным фактором быстрого и успешного устранения угрозы, мы стремимся предоставить пользователям удобный инструментарий для анализа и подготовки своей инфраструктуры. +2. **Предоставление информации о действиях реагирования** 📚 -### Запуск локальной копии базы знаний в Docker + Одной из ключевых целей является предоставление пользователям наиболее конкретной и полезной информации о действиях реагирования для различных инцидентов. Мы создаем и поддерживаем базу знаний с конкретными реализациями действий реагирования, что позволяет пользователям получать точные инструкции для выбранного случая. -Для запуска локальной версии базы занний или применения скриптов аналитики необходимо скачать [репозиторий с GitHub][2]. +3. **Автоматизация построения сценариев реагирования** 🤖 + + Благодаря детальной проработке модели и семантических связей между сущностями, мы стремимся выявлять причинно-следственные связи в сценариях реагирования. В дальнейшем это позволит автоматизированно создавать сценарии реагирования и адаптировать план действий даже для тех ситуаций, которые не учтены в базе знаний. + + + +## Репозитории проекта + + +**Основной:** + +- GitHub: https://github.com/Security-Experts-Community/ERMACK + +**Зеркала:** + +- Codeberg: https://codeberg.org/Security-Experts-Community/ERMACK +- GitFlic: https://gitflic.ru/project/security-experts-community/ermack -**Алгоритм**: -1. Скачиваем репозиторий -1. Редактируем или создаём [файл с профилем инфраструктуры][3] -1. Переходим в корень проекта +## Как внести свой вклад в ERM&CK -1. Запускаем контейнер -`docker compose up` -1. Переходим по ссылке http://localhost:8000 +Для того, чтобы внести свой вклад в проект, ознакомьтесь с [CONTRIBUTION.md](CONTRIBUTION.md). В данном файле вы найдете подробную информацию о процессе внесения изменений, добавления новых действий реагирования или сценариев, а также об их разработке. Пожалуйста, внимательно прочтите этот файл, чтобы быть в курсе всех рекомендаций и правил. +Проект ERM&CK приветствует активное участие и вклад со стороны сообщества. Ваш вклад может варьироваться от добавления или перевода новых действий реагирования и сценариев до улучшения существующей документации и функциональности. Любой вклад является очень ценным для нас и способствует развитию всего проекта! ---- -[1]: https://ermack.github.io -[2]: https://github.com/Security-Experts-Community/ERMACK -[3]: https://github.com/Security-Experts-Community/ERMACK/blob/develop/data/en/infrastructure_profiles/test_infrastructure_profile/test_infrastructure_profile.yml +Если у вас возникли идеи, вопросы или требуется дополнительная помощь, не стесняйтесь обращаться к участникам сообщества через наше группу в [Telegram](https://t.me/s3curity_experts_community/298). diff --git a/VISION.md b/VISION.md index 749098e7..50e671d7 100644 --- a/VISION.md +++ b/VISION.md @@ -1,9 +1,19 @@ -# Для чего создаётся проект ERM&CK +# **Для чего создаётся проект ERM&CK** -Мы планируем собирать конкретные реализации действий реагирования для того чтобы при возникновении инцидента, у пользователя были конкретные инструкции к действию, а не абстрактные рекомендации. Наш подход предполагает, что все конкретные инструкции будут описаны в рамках единой базы знаний и провалидированы участниками сообщества. Таким образом, на выходе получается провалидированная и одобренная сообществом база знаний по реагированию. +## **Цель проекта** +Проект ERM&CK (*Enterprise Response Model & Common Knowledge*) создается с целью предоставить специалистам инструмент, позволяющий эффективно реагировать на инциденты информационной безопасности. Мы стремимся улучшить практики реагирования на инциденты, предоставив пользователю **конкретные и проверенные инструкции** вместо абстрактных рекомендаций. -## Основные цели проекта: -1) Предоставить пользователю удобный инструмент для подготовки инфраструктуры к процессам реагирования на компьютерные инциденты. -2) Предоставить пользователю информацию о действиях реагирования для случаев, которые описаны в базе знаний. -3) Автоматизация построения сценариев реагирования, аналитика над данными. +Мы планируем создать **обширную базу знаний**, в которой будут описаны различные сценарии инцидентов с соответствующими рекомендациями и инструкциями к ним, что позволит обеспечить **стандартизацию подходов к реагированию и согласованность действий**. + +Немаловажным для проекта также является стремление к созданию **целой экосистемы**, где опытные специалисты по информационной безопасности смогут **обмениваться опытом, наработками и лучшими практиками**. Стремление к формированию динамичной среды, где участники могут вносить свой вклад и совместно разрабатывать наилучшие стратегии реагирования на разнообразные угрозы. + +## Наши принципы + +#### Наш проект базируется на следующих принципах и подходах: + +1. 🚀 **Конкретные инструкции реагирования**, где, шаг за шагом, расписаны инструкции для действий при возникновении инцидентов, что позволит оперативно и с высокой точностью реагировать на угрозы 🛡️ +2. 📚 **Единая база знаний**, в которой описаны инструкции реагирования на различные инциденты, что обеспечит стандартизацию и согласованность действий при реагировании 📝 +3. 🔍 **Вся информация в базе знаний будет проходить процесс проверки и валидации** со стороны участников сообщества, что обеспечит актуальность, достоверность и качество предоставляемых инструкций ✔️ +4. 📈 **Постоянное развитие и адаптация к актуальным угрозам**. Улучшение функциональности и расширение проекта для обеспечения максимальной релевантности и эффективности 🔄 +5. 🤝 **Благодаря обмену опытом и совместной работе**, создается комфортная среда, способствующая активному развитию лучших практик в области реагирования на инциденты 👥