Вопрос: Загрязнены ли файлы EXE для серверов Linux?


Я запустил сканер вредоносных программ на своем сайте, и он поместил кучу файлов в формате zip EXE в качестве потенциальных файлов риска (эти файлы были загружены пользователями). Поскольку я могу распаковать файлы на своем Mac, я предполагаю, что это настоящие ZIP-файлы, а не просто что-то вроде переименованных файлов PHP.

Таким образом, файл ZIP не должен представлять опасности для моего веб-сервера, верно?


49
2017-12-22 08:49


Источник


Звучит как сканер вредоносных программ для мусора. - Nick T
Вы знаете, что можете проверить, находятся ли они в формате ZIP с file foo.zip, или даже проверить, действуют ли они с 7z t foo.zip (то есть распаковать и проверить контрольные суммы CRC, не извлекая их на локальные файлы на диске). (7z использует синтаксис, несколько похожий на tar.) Или unzip -l foo.zip для отображения содержимого. Во всяком случае, я просто подумал, что странно, что вы говорите о проверке файлов на другом компьютере, когда вы могли бы легко проверить их на сервере. - Peter Cordes
Какой веб-сайт вы принимаете? Не похоже, что хорошая идея заключается в том, чтобы содержимое пользователя и ваш веб-сервер с прямой видимостью отображались в одном окне. - oldmud0
@NickT. Самораспаковывающиеся ZIP-файлы могут иметь дополнительный вредоносный код, прикрепленный к исполняемой части. - chrylis


Ответы:


Если они действительно зашифрованы Windows exe-файлы, они должны быть безвредны для вашей системы Linux, если у вас нет чего-то вроде Wine на месте, которое могло бы попытаться их выполнить.

Но если они находятся на вашем веб-пути, они могут быть вредоносными программами и представлять собой большой риск для посетителей ваших веб-сайтов (и, в свою очередь, если вы в конечном итоге помечены как источник вредоносных программ, а пользователи получат уродливые предупреждения при попытке посетить ваш сайт).


85
2017-12-22 08:55



Интересно, может ли хостинг такого «загруженного пользователем мусора» Google заклеймить ваш сайт как «этот сайт может быть взломан» или вызвать Chrome, отображающий гигантскую красную страницу предупреждения. Тогда «Безвредный» может быть немного неправильным. - Nick T
@NickT: Это, безусловно, может, и это то, о чем я говорил в моем втором абзаце. - Sven♦
Теоретически кто-то может создать неправильный .zip файлы, которые пытаются устранить недостатки в конкретных реализациях unzip. - jamesdlin
Моно, скорее всего, будет установлено на сервере, чем Wine, и может выполнять файлы CLR .exe. - Rhymoid


Так как я могу разжать файлы на моем mac, я предполагаю, что это настоящие zip-файлы, а не просто что-то вроде переименованных php-файлов.

Пока вы вероятно в этом случае ваше предположение может не всегда выполняться. ZIP-архив остается в силе, даже если вы добавляете к нему произвольные данные, поэтому вполне возможно создать файл, который одновременно является действительным ZIP-архивом, содержащим невинные данные, а также вредоносный PHP-скрипт. Это даже не особенно сложно; просто конкатенируйте PHP-код и ZIP-файл и убедитесь (например, используя __halt_compiler()), что PHP не будет пытаться проанализировать добавленные данные ZIP-архива.

Этот трюк законно используется для создания самораспаковывающихся ZIP-файлов, но вполне возможно заранее добавить любые другие скрытые данные или исполняемый код в ZIP-файл. Некоторые программы могут отказаться от открытия таких модифицированных ZIP-файлов (но если это так, они технически нарушают спецификацию формата ZIP), или они могут идентифицировать файл как нечто, отличное от ZIP-файла, по умолчанию, но, как правило, если вы кормите такую файл в код, который ожидает ZIP-файл, он, вероятно, будет принят как один.

Более распространенное вредоносное использование таких трюков заключается в том, чтобы замаскировать код эксплойта в контейнере на основе ZIP (например, файл JAR) как что-то безвредное (например, изображение GIF, как в GIFAR эксплойт), но нет причин, по которым он не может быть использован в другом направлении, например. для обхода наивного фильтра загрузки файлов, который запрещает загрузку скриптов PHP, но позволяет ZIP-файлы, не проверяя, может ли загруженный файл быть одновременно.


63
2017-12-22 15:00



+1 для GIFAR, интересно узнать о конкретном примере этого эксплойта на практике. - caesay


Есть, по крайней мере, два примечательных соображения, которые вы должны учитывать:

  1. Если эти файлы распространяются на вашем веб-сайте, вы можете нести ответственность, если кто-то получает вредоносное ПО с вашего сайта. По крайней мере, ваш сайт может быть помечен для вредоносного ПО. Если вы решите игнорировать предупреждения о вредоносном программном обеспечении, вы должны, по крайней мере, уведомить загрузчика и возможных загрузчиков о том, что файл может быть вреден (например, EXE, загруженные из Интернета).
  2. Выполняете ли вы какую-либо обработку этих файлов, кроме сканирования вредоносного ПО? Автоматическая обработка вложений или других таких загрузок всегда потенциально опасна, потому что содержимое файла может быть любым. Вам даже не нужно выполнять EXE-файл, если ваше служебное программное обеспечение уязвимо для какого-либо эксплойта, и, казалось бы, хороший zip / exe содержит опасный контент, предназначенный для вашей утилиты. Я бы не позволял серверу обрабатывать что-либо, что не позволяет сканировать вредоносное ПО.

Таким образом, в зависимости от того, что ваш сервер может сделать файл потенциально быть вредными для вашего сервера или других пользователей. Поскольку я довольно осторожен в отношении EXE, загруженных из Интернета, я бы сказал, что потенциальные загрузчики являются наиболее потенциальными пользователями, подверженными риску.


11
2017-12-23 09:31





Поскольку я могу распаковать файлы на своем Mac, я предполагаю, что это настоящие ZIP-файлы, а не просто что-то вроде переименованных файлов PHP.

Были атаки, которые вставляют данные и все еще представляют файлы как действительные. На некорректно настроенном сервере или в некорректно закодированном приложении это может привести к тому, что код будет запущен на вашем сервере.

Поэтому, осторожно с этим.


3
2017-12-24 03:03





Вы можете проверить, будут ли файлы выполняться на вашем Linux-сервере, просто проверив их с помощью file FILENAME.exe команда. Элитные двоичные файлы (исполняемый формат, используемый в Linux) можно назвать с помощью .exe расширение, чтобы запутать ничего не подозревающий администратор Linux, поэтому, вероятно, неплохо сделать эту проверку, прежде чем вслепую доверять, что эти файлы не выполняются.


2
2017-12-25 00:17





Я удивлен, что никто не упомянул, что любые данные могут быть (или могут быть вредными) для любой (багги) программы. Это основа для путаницы. Например, у вас может быть JPEG (или JPEG-подобный) файл, который вызывает переполнение буфера на (определенных?) JPEG-декодерах, что приводит к чему-либо от отказа в обслуживании до произвольного выполнения кода. Речь идет о подрыве существующей программы обработки данных; нет необходимости вводить новый исполняемый файл! И именно по этой причине необходимы песочница, вводная санитария и принципы наименьших привилегий.

Итак, в вашем случае у вас может быть ZIP-файл, вызывающий проблемы с (специфическими?) Механизмами ZIP-декодирования. Нет необходимости, чтобы ZIP-файл содержал встроенный исполняемый файл, чтобы он был вредным.

Сказав это, ваш сканер работает на другом, более грубом уровне. Если какой-то риск, о котором я говорю, существует в этих файлах, вы уже попали в тот момент, когда вы их обработали :).


2
2017-12-25 22:44





Дополнительную проверку, которую вы в идеале должны Метод php finfo чтобы проверить, действительно ли файлы, загруженные пользователями, являются тем, что вы разрешили, а не тем, что пользователи переименовали файлы, чтобы обмануть систему.


0
2017-12-26 04:57





Unzipped .exe также безвреден для серверов Linux.


-6
2017-12-22 16:09



Не обязательно так - .exe это не более чем часть имени файла, и это также может быть выбрано как имя для ELF-двоичного файла. - Sven♦
Также возможно установить WINE. Конечно, большинство вредоносных программ для Windows, вероятно, не будут работать под WINE, но риск присутствует. В лучшем случае распакованные файлы .exes на Linux в основном безвредны. - Ray
@Ray Зависит от конфигурации. Если по какой-либо причине Mono или Wine установлены, то binfmt_misc может быть сконфигурирован так, что .exe фактически является исполняемым. - Rhymoid