ATT&CK Attack Chain Generator
Программный комплекс для формирования многоэтапных атак на основе базы знаний MITRE ATT&CK.
🚀 Возможности
- Парсинг данных ATT&CK — автоматическая загрузка и структурирование данных из MITRE ATT&CK
- Анализ атак — построение графов атак и анализ связей между TTPs
- Симуляция атак — генерация сценариев атак и kill chains
- Анализ рисков — оценка рисков и генерация рекомендаций по защите
- Визуализация — интерактивные графы атак с помощью D3.js
- Современный UI — веб-интерфейс на React + Material-UI
- REST API — полнофункциональное API на FastAPI
🛠 Технологии
Backend
- Python 3.11 — основной язык программирования
- FastAPI — современный веб-фреймворк для API
- SQLAlchemy — ORM для работы с базой данных
- PostgreSQL — основная база данных
- Redis — кэширование и очереди задач
- NetworkX — работа с графами атак
- mitreattack-python (>=3.0.0) — парсинг данных MITRE ATT&CK
Frontend
- React 18 — библиотека для создания UI
- TypeScript — типизированный JavaScript
- Material-UI — компоненты пользовательского интерфейса
- D3.js — визуализация графов атак
- React Router — маршрутизация
Инфраструктура
- Docker & Docker Compose — контейнеризация
- Nginx — веб-сервер (опционально)
🚀 Быстрый старт
Требования
- Docker и Docker Compose
- Git
Установка и запуск
-
Клонируйте репозиторий:
git clone <repository-url> cd md_kurs -
Запустите систему:
sudo docker-compose up --build -d -
Проверьте статус:
sudo docker-compose ps -
Откройте приложение:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
Инициализация данных
После первого запуска добавьте демонстрационные данные:
sudo docker-compose exec backend python demo_data.py
📊 Основные функции
1. Управление данными ATT&CK
- Просмотр тактик, техник, подтехник
- Фильтрация по доменам (enterprise, mobile, ics)
- Поиск и навигация по данным
- Статистика по объектам
2. Анализ атак
- Построение графов атак
- Визуализация связей между TTPs
- Анализ уязвимостей
- Поиск критических путей
3. Симуляция атак
- Генерация сценариев атак (stealth, aggressive, persistent, opportunistic)
- Создание kill chains
- Анализ рисков
- Рекомендации по защите
4. Визуализация
- Интерактивные графы атак
- D3.js визуализация
- Материальный дизайн
- Адаптивный интерфейс
🔧 API Endpoints
ATT&CK Data
GET /api/v1/attack/tactics— список тактикGET /api/v1/attack/techniques— список техникGET /api/v1/attack/stats— статистикаPOST /api/v1/attack/update-data— обновление данных
Analysis
GET /api/v1/analysis/graph— построение графаGET /api/v1/analysis/stats— статистика графаGET /api/v1/analysis/tactics— тактики для анализа
Simulation
POST /api/v1/simulation/scenario— генерация сценарияPOST /api/v1/simulation/killchain— генерация kill chainPOST /api/v1/simulation/risk-analysis— анализ рискаGET /api/v1/simulation/tactics— тактики для симуляции
📁 Структура проекта
md_kurs/
├── backend/ # Backend приложение
│ ├── app/
│ │ ├── api/ # API маршруты
│ │ ├── core/ # Конфигурация и база данных
│ │ ├── models/ # Модели данных
│ │ └── services/ # Бизнес-логика
│ ├── Dockerfile
│ └── requirements.txt
├── frontend/ # Frontend приложение
│ ├── src/
│ │ ├── components/ # React компоненты
│ │ ├── pages/ # Страницы приложения
│ │ └── services/ # API сервисы
│ ├── Dockerfile
│ └── package.json
├── data/ # Данные и скрипты
├── docker-compose.yml # Конфигурация Docker
├── README.md
└── PROJECT_DOCUMENTATION.md
🧪 Тестирование
Тестирование API
# Проверка тактик
curl http://localhost:8000/api/v1/attack/tactics
# Генерация сценария
curl -X POST "http://localhost:8000/api/v1/simulation/scenario?scenario_type=stealth"
# Генерация kill chain
curl -X POST "http://localhost:8000/api/v1/simulation/killchain"
Локальная разработка
# Backend
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload
# Frontend
cd frontend
npm install
npm start
🔒 Безопасность
- Валидация входных данных
- Обработка ошибок
- Логирование операций
- Изоляция контейнеров
📈 Производительность
- Кэширование в Redis
- Индексы базы данных
- Пагинация результатов
- Асинхронная обработка
📚 Документация
Подробная документация доступна в файле PROJECT_DOCUMENTATION.md.
🤝 Вклад в проект
- Fork репозитория
- Создайте feature branch
- Внесите изменения
- Создайте Pull Request
📄 Лицензия
Проект распространяется под лицензией MIT.
📞 Контакты
- Автор: [Ваше имя]
- Email: [your.email@example.com]
- GitHub: [github.com/yourusername]
🗺 Roadmap
v1.1.0
- Поддержка дополнительных доменов ATT&CK
- Улучшенная визуализация
- Экспорт результатов
- API для интеграции
v1.2.0
- Машинное обучение для анализа
- Автоматическое обновление данных
- Расширенная аналитика
- Мобильное приложение
v2.0.0
- Микросервисная архитектура
- Облачное развертывание
- Масштабируемость
- Enterprise функции
Description
Languages
Python
90.6%
TypeScript
9.3%