
Сканер уязвимостей «чёрного ящика» и анализатор индикаторов компрометации для CVE-2020-6287 (RECON) в Java-приложениях SAP NetWeaver, обеспечивающие быструю оценку подверженности и журнально-ориентированное криминалистическое расследование.
RECON (Remotely Exploitable Code On NetWeaver) — это критическая (CVSSv3 10) уязвимость, затрагивающая ряд бизнес- и технических приложений SAP, работающих на стеке SAP NetWeaver Java. Эта уязвимость была обнаружена исследовательской лабораторией Onapsis, которая тесно сотрудничала с SAP для разработки и выпуска патча 14 июля 2020 года. Учитывая критичность этой проблемы, CISA при DHS США, BSI CERT-Bund и несколько других государственных органов выпустили предупреждения, призывая клиентов SAP защитить уязвимые приложения, в первую очередь — интернет-ориентированные.
После наблюдения значительной вредоносной активности, нацеленной на RECON в дикой природе, и учитывая количество уязвимых интернет-ориентированных приложений SAP, а также чувствительность данных и процессов, которые обычно поддерживаются этими системами, Onapsis решила как можно быстрее разработать и выпустить этот инструмент с открытым исходным кодом. Цель — помочь командам информационной безопасности и администраторам всех клиентов SAP защитить их критически важные приложения, предоставив им возможность оценить свою подверженность риску и определить, могли ли их системы SAP быть скомпрометированы. Мы планируем и дальше развивать этот инструмент по мере получения новых данных об угрозах и криминалистических данных от наших продуктов, исследовательской группы и более широкого сообщества.
Этот инструмент может:
Этот инструмент не может:
Однако существуют несколько известных ограничений этого инструмента, и его использование не должно считаться гарантией того, что SAP-приложения не подвержены RECON (и другим уязвимостям) или что приложения не были скомпрометированы. Различные условия могут влиять на состояние оцениваемых приложений и/или файлов журналов, что приводит к ложноположительным и/или ложноотрицательным результатам.
Если IoC выявлены, настоятельно рекомендуется провести углубленное криминалистическое исследование оцениваемых систем (и связанных с ними), чтобы определить масштаб и степень потенциальной компрометации.
Этот инструмент предоставляется «как есть» и без каких-либо гарантий.
Альтернативная онлайн-версия
Чтобы помочь клиентам SAP в быстрой оценке RECON для интернет-ориентированных систем, мы также разработали бесплатную онлайн-версию, которая поддерживает оба варианта использования. При желании вы можете воспользоваться этим сервисом по адресу https://recon.onapsis.com.
Скрипты разработаны на Python 3 и требуют установки следующих зависимостей:
# python3 -m venv .venv
# . .venv/bin/activate
# pip install -r requirements.txt
После установки зависимостей вы можете использовать Python для запуска обоих скриптов и получения справки из командной строки.
Для обнаружения уязвимостей выполните следующий скрипт:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -h
Скрипт должен выполняться в системе, имеющей сетевое соединение с анализируемым целевым SAP-приложением. Порт HTTP(s) сервера приложений SAP NetWeaver JAVA должен быть доступен (то есть для экземпляра 00 это будет порт 50000 для HTTP, но он может быть открыт через прокси/балансировщик нагрузки и/или быть доступен через другие TCP-порты, такие как 80 или 443).
Следует использовать параметр -u для указания действительного URL в качестве параметра для тестирования уязвимости RECON:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -u http://myinternalportal.mycompany.com:50000/
Вы также можете использовать параметр -f для оценки нескольких URL, указав файл, содержащий все URL для анализа:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls
Результаты оценки выводятся в stdout. Их можно перенаправить в файл следующим образом:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls >> results
Для обнаружения индикаторов компрометации выполните следующий скрипт:
python3 RECON_CVE-2020-6287_ioc_scanner.py -h
Скрипт принимает имя файла и анализирует его на предмет IoC, основанных на использовании приложения LM CTC. Принимаются следующие типы файлов:
applications_xx.y.log
Требуемые файлы находятся в следующей папке:
Linux: /usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/
Windows: \usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\
responses_xx.y.trc
При использовании конфигурации формата по умолчанию. Если в стандартную конфигурацию формата журнала были внесены изменения, парсинг может завершиться неудачей. В этом случае внутреннее регулярное выражение должно быть вручную скорректировано с учетом нового формата. Требуемые файлы находятся в следующей папке:
Linux: /usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/system/httpaccess/
Windows: \usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\system\httpaccess\
Вы можете выполнить скрипт для анализа конкретных файлов с помощью параметра -f:
python3 RECON_CVE-2020-6287_ioc_scanner.py -f path_to_logfile
Вы можете использовать bash-скрипт для одновременного запуска скрипта для нескольких файлов. Например, если каталог, содержащий несколько журналов, находится в /tmp/sap_RECON_logs/, выполнение будет выглядеть так:
path_to_log_folder="/tmp/sap_RECON_logs/";for log_file in `ls $path_to_log_folder`; do python RECON_CVE-2020-6287_ioc_scanner.py -f $path_to_log_folder/$log_file -o csv; done
Команда экспертов Onapsis по кибербезопасности готова ответить на любые дополнительные вопросы или помочь вам получить более полное представление о выявленных индикаторах. Вы можете связаться с Onapsis по адресу [email protected].