
Обнаружение изображений, которые, вероятно, эксплуатируют CVE-2022-44268
cve-2022-44268-detector — это программа на Go, которая анализирует PNG-изображения и сообщает, являются ли они вредоносными, созданными с помощью эксплойта для CVE-2022-44268 — уязвимости ImageMagick, позволяющей злоумышленникам читать произвольные файлы с помощью специально созданных изображений.
Для установки cve-2022-44268-detector используйте go install:
$ go install github.com/jnschaeffer/cve-2022-44268-detector@latest
Будьте осторожны при работе с непроверенными данными. Злоумышленник может создать PNG-чанк, содержащий не-zlib данные (например, shell-скрипт или код, эксплуатирующий ошибку в вашем процессе обнаружения). Случайная запись предоставленного злоумышленником кода в терминал или командную оболочку может привести к выполнению вредоносного кода. Настоятельно рекомендуется запускать детектор в виртуальной машине или изолированной вычислительной среде, чтобы снизить риск подобных сбоев безопасности.
cve-2022-44268-detector — это консольное приложение. Пример запуска:
$ cve-2022-44268-detector -filename image.png
***POTENTIAL INDICATOR OF COMPROMISE*** - keyword: 'Raw profile type' | compressed: true | id: 0 | offset: 0x72 | len: 666
Пользователи могут дополнительно выводить содержимое каждого извлечённого чанка в stdout,
указав аргумент -print. Обратите внимание: значение каждого чанка, скорее всего,
является бинарными данными, сжатыми с помощью zlib (т.е. не читаемыми для человека). Пользователям
настоятельно рекомендуется перенаправлять эти данные в файл.
Внимание: будьте предельно осторожны при использовании -print. Непроверенные PNG-файлы могут содержать данные,
которые при выводе в терминал или командную оболочку могут быть интерпретированы как исполняемый
код. Пожалуйста, примите соответствующие меры предосторожности при использовании этой функции.
Аргумент -print принимает следующие значения:
raw — записать значение чанка как есть в stdoutdecompress — распаковать значение чанка перед записью в stdoutdecompress-hexdecode — распаковать и декодировать из hex значение чанка
перед записью в stdout. ImageMagick, по-видимому, сначала кодирует данные в hex,
а затем сжимает их с помощью zlib-сжатия$ cve-2022-44268-detector -filename image.png -print raw > /tmp/out
***POTENTIAL INDICATOR OF COMPROMISE*** - keyword: 'Raw profile type' | compressed: true | id: 0 | offset: 0x72 | len: 666
$ hexdump -C /tmp/out