tempora/README.md
2025-05-16 08:56:02 +03:00

68 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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) | Автоматизация периодических задач |