Email Security Analyzer — это мощный инструмент для командной строки, предназначенный для глубокого анализа безопасности email-файлов в формате .eml. Он помогает выявлять потенциальные угрозы, такие как фишинг, вредоносные вложения и небезопасные ссылки, предоставляя подробные HTML-отчеты для каждого проанализированного письма. Поддерживает русский и английский языки.
- DKIM валидация и анализ заголовков безопасности
- Анализ содержимого - JavaScript, Base64
- Продвинутый анализ ссылок - обнаружение сокращателей, небезопасного HTTP, несоответствия текста и адреса гиперссылки.
- Проверка вложений - разделение на вложения высокого и среднего риска (исполняемые файлы, архивы, документы с макросами).
- Обнаружение угроз - поиск фишинговых ключевых слов в теме и ссылках.
- Интерактивные HTML-отчеты с детальным анализом каждого письма.
- Оценка рисков с цветовой индикацией и подробным расчетом.
- Python 3.6+
# Клонирование репозитория
git clone https://github.com/cansolele/email-security-analyzer
cd email-security-analyzer# Анализ писем в папке mails/ (русский язык)
python main.py --lang ru
# Анализ писем в папке mails/ (английский язык)
python main.py --lang en
# Анализ писем в другой папке
python main.py /path/to/emails --lang ru
# Справка
python main.py --helpПрограмма генерирует наглядные и интерактивные HTML-отчеты для каждого проанализированного письма и сохраняет их в папку reports/. Каждый отчет содержит общую оценку риска, детальный разбор всех факторов и, при возможности, отображает содержимое письма.
Ниже приведены примеры сгенерированных отчетов, которые можно просмотреть прямо в браузере:
| Уровень | Баллы | Описание |
|---|---|---|
| 🔴 Высокий | 50+ | Обнаружены критические угрозы, такие как исполняемые вложения или явные признаки фишинга. |
| 🟡 Средний | 25-49 | Присутствуют серьезные факторы риска, например, отсутствие DKIM или вложения с макросами. |
| 🔵 Низкий | 10-24 | Найдены незначительные проблемы, такие как небезопасные ссылки или невалидная DKIM-подпись. |
| 🟢 Минимальный | 0-9 | Письмо считается безопасным, значимые угрозы не обнаружены. |
Подробный расчет критериев риска
Итоговый балл риска рассчитывается путем суммирования баллов за каждый обнаруженный фактор. Чем выше балл, тем выше вероятность угрозы.
| Фактор риска | Баллы | Описание |
|---|---|---|
| Заголовки | ||
| Отсутствие DKIM-подписи | +20 | Письмо не имеет цифровой подписи, что не позволяет проверить его подлинность. |
| Невалидная DKIM-подпись | +10 | Подпись присутствует, но не прошла проверку. Возможно, письмо было изменено при пересылке. |
| Содержимое | ||
| Наличие JavaScript | +15 | JavaScript может выполнять вредоносные действия в браузере. |
| Фишинговые слова в теме | +5 (за каждое) | Обнаружены слова, часто используемые в фишинговых атаках (например, "срочно", "пароль"). |
| Вложения | ||
| Вложение высокого риска | +25 (за каждое) | Исполняемые файлы или скрипты (.exe, .bat, .js), представляющие прямую угрозу. |
| Вложение среднего риска | +10 (за каждое) | Архивы или документы с макросами (.zip, .docm), которые могут скрывать вредоносный код. |
| Ссылки (URL) | ||
| Несоответствие гиперссылки | +15 (за каждую) | Текст ссылки (например, google.com) не соответствует реальному адресу назначения, что является классическим приемом фишинга. |
| Использование сокращателя | +10 (за каждую) | Ссылка скрыта за сервисом-сокращателем (например, bit.ly), что мешает определить конечный адрес. |
| Небезопасный протокол (HTTP) | +5 (за каждую) | Ссылка использует http:// вместо https://, что делает передачу данных уязвимой для перехвата. |
| Подозрительное слово в ссылке | +5 (за каждую) | В адресе ссылки найдено слово, ассоциирующееся с мошенничеством (например, login, secure). |
- Стандартные email файлы (RFC 5322)
- Maildir формат
- Экспорт из почтовых клиентов
email-security-analyzer/
├── core/ # Основные модули анализа
├── utils/ # Вспомогательные функции
├── mails/ # Папка с email файлами для анализа
├── reports/ # Генерируемые отчеты
└── main.py # Точка входа
Этот проект распространяется под лицензией MIT. Смотрите файл LICENSE для подробностей.