LogScan — консольная утилита на Python для анализа лог-файлов, поиска IPv4-адресов и SHA256-хэшей.
Программа проверяет найденные индикаторы через VirusTotal API или в тестовом Mock-режиме и сохраняет результаты в JSON или CSV.
logscan/
├── main.py
├── requirements.txt
├── README.md
├── modules/
│ ├── log_parser.py
│ ├── virustotal.py
│ └── report_generator.py
├── logs/
│ └── sample.log
└── output/
Назначение основных файлов:
main.py— запуск программы и обработка аргументов.log_parser.py— поиск IP-адресов и SHA256-хэшей.virustotal.py— проверка через VirusTotal API и Mock.report_generator.py— создание JSON и CSV-отчётов.requirements.txt— зависимости проекта.logs/— исходные лог-файлы.output/— отчёты и журнал работы программы.
Для работы потребуется установленный Python.
Проверка версии:
python --versionСкачать проект можно двумя способами.
Для этого необходим установленный Git.
Откройте PowerShell и выполните:
git clone https://github.com/n1ckdevops/logscan.gitGit скачает репозиторий в папку logscan.
- Откройте страницу репозитория на GitHub.
- Нажмите
Code→Download ZIP. - Распакуйте архив в удобное место.
После скачивания перейдите в папку проекта через терминал.
Если проект скачан через Git:
cd logscanЕсли проект скачан через ZIP, откройте терминал в распакованной папке или перейдите в неё через cd.
Проверьте содержимое:
dirВ папке должны находиться main.py, requirements.txt и остальные файлы проекта.
Важно: все дальнейшие команды выполняются из папки, содержащей main.py.
В терминале выполните:
python -m pip install -r requirements.txtКоманда установит необходимые библиотеки, включая requests для работы с VirusTotal API.
LogScan автоматически ищет в текстовых файлах:
- IPv4-адреса.
- SHA256-хэши.
Для первого запуска используйте готовый файл:
logs/sample.log
Также можно создать собственные тестовые файлы.
Пример файла с IP-адресом:
Set-Content logs/ip_test.log "8.8.8.8"Пример файла с SHA256-хэшем:
Set-Content logs/hash_test.log "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"Программа автоматически определяет найденные индикаторы. Отдельно выбирать IP или SHA256 не требуется.
LogScan поддерживает два режима работы.
Mock позволяет использовать программу без API-ключа и подключения к VirusTotal.
Результаты проверки заранее подготовлены и не являются реальными данными об угрозах.
Mock-функции находятся в:
modules/virustotal.py
mock_check_ip()— тестовая проверка IP.mock_check_hash()— тестовая проверка SHA256.
Если в терминале ранее был установлен API-ключ, удалите его из текущей сессии:
Remove-Item Env:VT_API_KEY -ErrorAction SilentlyContinueЗапуск в Mock-режиме:
python main.py -log-file logs/sample.log -format json -output output/report.jsonЭтот режим отправляет запросы к VirusTotal API.
Шаг 1. Получите API-ключ
- Перейдите на https://www.virustotal.com/.
- Создайте аккаунт или авторизуйтесь.
- Откройте настройки аккаунта.
- Найдите свой API-ключ.
Шаг 2. Подключите API-ключ
В PowerShell выполните:
$secureKey = Read-Host "VirusTotal API key" -AsSecureString
$env:VT_API_KEY = [System.Net.NetworkCredential]::new("", $secureKey).PasswordВведите API-ключ по запросу.
Шаг 3. Проверьте подключение
python -c "import os; print(bool(os.getenv('VT_API_KEY')))"Если вывод:
True
Python видит переменную окружения. Это ещё не подтверждает успешную авторизацию в VirusTotal.
Шаг 4. Запустите проверку IP
python main.py -log-file logs/ip_test.log -format json -output output/ip_report.jsonИли проверку SHA256
python main.py -log-file logs/hash_test.log -format json -output output/hash_report.jsonЕсли API-ключ доступен, программа использует VirusTotal вместо Mock.
Важно:
- Не публикуйте API-ключ в GitHub.
- Не храните ключ непосредственно в исходном коде.
- Учитывайте ограничения запросов VirusTotal.
- Переменная, заданная через PowerShell таким способом, действует в текущей сессии терминала.
Общая команда:
python main.py -log-file ПУТЬ_К_ЛОГУ -format ФОРМАТ -output ПУТЬ_К_ОТЧЁТУПараметры:
| Аргумент | Назначение | По умолчанию |
|---|---|---|
-log-file |
Путь к лог-файлу | Обязательный |
-api-key |
Ключ VirusTotal | Переменная VT_API_KEY |
-format |
Формат CSV или JSON | csv |
-output |
Путь сохранения отчёта | output/report.csv |
python main.py -log-file logs/sample.log -format json -output output/report.jsonПрограмма прочитает sample.log, найдёт IP и SHA256, выполнит проверки и сохранит JSON-отчёт в папку output.
python main.py -log-file logs/sample.log -format csv -output output/report.csvpython main.py -log-file logs/sample.logВ этом случае используется формат CSV и стандартный путь output/report.csv.
Режим проверки зависит от наличия API-ключа.
Все отчёты сохраняются в папку, указанную параметром -output.
Для просмотра через PowerShell:
Get-Content output/report.jsonПример записи с тестовыми данными:
[
{
"type": "IP",
"value": "8.8.8.8",
"result": {
"malicious": 2,
"suspicious": 1,
"harmless": 65,
"undetected": 10
},
"date": "2026-11-11 12:00:00"
}
]Описание полей:
type— тип индикатора: IP или HASH.value— найденный IP-адрес или SHA256.result— результаты проверки.date— дата формирования отчёта.
Если result равен null, результат проверки не был получен.
CSV содержит найденные индикаторы и статистику их проверки.
Файл можно открыть в Excel или текстовом редакторе.
LogScan записывает события и ошибки в logscan.log.
При стандартном пути отчёта журнал находится здесь:
output/logscan.log
Для просмотра последних десяти записей:
Get-Content output/logscan.log -Tail 10В журнале фиксируются запуск программы, количество найденных индикаторов, выбранный режим, сохранение отчёта и ошибки файловых операций.
Для просмотра доступных аргументов выполните:
python main.py -h