68 lines
6.3 KiB
Markdown
68 lines
6.3 KiB
Markdown
|
||
# Tempora
|
||
|
||
Новицкий Глеб Павлович
|
||
|
||
Терехов Павел Сергеевич
|
||
|
||
Система мониторинга утечек данных предназначена для выявления инцидентов, связанных с публикацией конфиденциальной информации в открытых источниках (форумы, даркнет, Telegram-каналы). Система осуществляет непрерывный сбор, анализ и визуализацию упоминаний, связанных с потенциальными утечками.
|
||
|
||
Проект разработан в рамках учебной практики студентом направления «Информационная безопасность автоматизированных систем».
|
||
```
|
||
├── Driver/ Основной компонент для работы с веб-ресурсами
|
||
│ ├── chrome_proxy.py Работа с Chrome через undetected-chromedriver + прокси
|
||
│ └── driver_creator.py Создание и настройка экземпляра драйвера
|
||
├── Tasks/ Модуль задач парсинга
|
||
│ ├── forum_crawler.py Парсинг данных с форумов
|
||
│ └── tg_crawler.py Парсинг Telegram-каналов
|
||
├── Utils/ Вспомогательные утилиты
|
||
│ └── logg.py Логирование работы системы
|
||
├── Web/ Веб-интерфейс
|
||
│ ├── Static/ CSS/JS/Изображения
|
||
│ ├── Templates/ HTML-шаблоны
|
||
│ └── app.py Flask приложение
|
||
└── Основные файлы:
|
||
├── .env Конфигурации, секреты приложения
|
||
├── .gitignore Игнорируемые файлы для Git
|
||
├── celery_app.py Конфигурация Celery
|
||
├── celery_beat.py Планировщик задач Celery
|
||
├── initiator.py Точка входа
|
||
├── requirements.txt Зависимости Python
|
||
└── README.md Описание проекта
|
||
```
|
||
### Основные функции
|
||
|
||
* Мониторинг 3 телеграм каналов, одного форума
|
||
|
||
* Визуализация данных на веб-интерфейсе
|
||
* Централизованное логирование и уведомления об ошибках
|
||
|
||
|
||
### Запуск проекта
|
||
|
||
pip install -r requirements.txt
|
||
|
||
В отдельных окнах
|
||
|
||
python celery_beat.py
|
||
python initiator.py
|
||
|
||
### Зависимости
|
||
|
||
| Библиотека | Назначение | Область применения |
|
||
| -------------------------- | --------------------------------------------------------------------- | -------------------------------------------- |
|
||
| `requests` | HTTP-клиент для отправки запросов и получения ответов | Парсинг, работа с API |
|
||
| `setuptools` | Инструмент для упаковки Python-проектов и управления зависимостями | Сборка, установка пакетов |
|
||
| `python-dotenv` | Загрузка переменных окружения из файла `.env` | Конфигурация, безопасное хранение секретов |
|
||
| `tls-client` | Кастомный HTTP-клиент с поддержкой TLS и антибот-защиты | Парсинг сайтов с защитой |
|
||
| `undetected-chromedriver` | Модифицированный ChromeDriver, обходящий антибот-защиту | Веб-скрапинг с защитой (Cloudflare и др.) |
|
||
| `selenium` | Управление браузером для автоматизации действий | Парсинг, тестирование веб-интерфейсов |
|
||
| `grpc_interceptor_headers` | Расширение gRPC-перехватчиков с поддержкой заголовков | gRPC API, метаданные |
|
||
| `telethon` | Асинхронная библиотека для работы с Telegram API через MTProto | Мониторинг Telegram-каналов |
|
||
| `schedule` | Простое планирование задач в Python | Локальный запуск задач по расписанию |
|
||
| `psycopg2-binary` | PostgreSQL-драйвер для Python | Работа с СУБД PostgreSQL |
|
||
| `docker` | Python-интерфейс к Docker Engine API | Управление контейнерами программно |
|
||
| `asyncio` | Базовая библиотека Python для асинхронного программирования | Асинхронные задачи, неблокирующий ввод/вывод |
|
||
| `pytz` | Работа с часовыми поясами | Корректная работа с временем |
|
||
| `flask` | Легковесный веб-фреймворк | Веб-интерфейсы, REST API |
|
||
| `apscheduler` | Планировщик задач с расширенными возможностями (cron, interval, date) | Автоматизация периодических задач | |