
Скрипт на Python для анализа журналов событий Ivanti Secure Connect (ICS), предназначенный для поддержки расследований уязвимостей CVE-2025-0282, CVE-2023-46805 и CVE-2024-21887.
Этот репозиторий предоставляет скрипт на Python, предназначенный для преобразования лог-файлов Ivanti Secure Connect .vc0 в формат CSV для цифровой криминалистики и реагирования на инциденты. В частности, парсер:
.vc0).
Инструмент изначально разрабатывался в ходе расследования CVE-2025-0282 (уязвимость удаленного выполнения кода без аутентификации, затрагивающая некоторые устройства Ivanti). Согласно отчетам Mandiant и других компаний, злоумышленники могут удалять или изменять записи логов, чтобы скрыть свою активность. Анализируя эти файлы .vc0, исследователи могут легче обнаружить признаки компрометации, необычные удаления или другое подозрительное поведение.

В ходе нескольких расследований инцидентов с участием Ivanti Secure Connect было обнаружено, что на некоторых устройствах логи были неполными или измененными — на некоторых не было никаких записей вплоть до обнаружения эксплуатации CVE-2025-0282 и перезагрузки устройства. Кроме того, встроенные проверки целостности, которые обычно выполняются каждые два часа, могут быть отключены или изменены злоумышленником. Преобразуя файлы .vc0 в более удобный формат CSV, этот инструмент помогает исследователям выявлять аномалии, такие как отсутствующие записи логов, неожиданные попытки аутентификации и возможные признаки манипуляции данными.

PS F:\Case20250109001> python .\ics_logs_parser.py -h
usage: ics_logs_parser.py [-h] --input INPUT --output OUTPUT --mapfile MAPFILE
Process .vc0 files and convert them to .csv files.
options:
-h, --help show this help message and exit
--input INPUT Directory containing .vc0 files
--output OUTPUT Directory to save .csv files
--mapfile MAPFILE CSV file mapping [MessageCode, MessageType, Description]
python .\ics_logs_parser.py --input "F:\Case20250109001\root_runtime.img\[root]\runtime\logs" --output .\logs\ --map .\logmessages_map.csv
--input: Каталог, содержащий файлы .vc0, извлеченные из Ivanti Secure Connect.--output: Каталог, в который будут записаны CSV-файлы.--mapfile: CSV-файл, сопоставляющий каждый код сообщения с типом сообщения и описанием.
Файл logmessages_map.csv содержит известные коды сообщений и соответствующие им типы и описания. Хотя этот список (основанный на общедоступной документации Ivanti и исследованиях сообщества) является обширным, он может не включать все существующие коды сообщений. Мы рекомендуем пользователям проверять или настраивать сопоставление в соответствии со своей средой. См. раздел «Ресурсы» для получения оригинальных источников.
По умолчанию временные метки преобразуются в UTC. Если вам нужно задать локальный часовой пояс или другой формат, вы можете изменить вызов datetime.fromtimestamp(...) в функции process_subline().

Если у вас есть вопросы, предложения или вам нужна помощь, обращайтесь по адресу [email protected].