Чи несезофіковані файли EXE нешкідливі для серверів Linux?


49

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

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


1
Звучить як сканер шкідливих програм.
Нік Т

11
Ви знаєте, що ви можете перевірити, чи вони у форматі ZIP file foo.zip, або навіть перевірити, чи дійсні вони 7z t foo.zipдля тестування (тобто розпакувати та перевірити контрольні суми CRC, не витягаючи до локальних файлів на диску). ( 7zвикористовує синтаксис, схожий на tar.) Або unzip -l foo.zipперелічити вміст. У всякому разі, я просто подумав, що дивно, що ти говориш про перевірку файлів на іншому комп’ютері, коли ти міг би їх легко перевірити на сервері.
Пітер Кордес

6
Який веб-сайт ви хостите? Це не здається гарною ідеєю, щоб в одне поле вставити поданий користувачем вміст і ваш спрямований вперед веб-сервер.
oldmud0

@NickT Саморозпаковуються ZIP-файли можуть додавати додатковий шкідливий код до виконуваної частини.
chrylis -на страйк-

Відповіді:


84

Якщо вони справді заархівовані файли Windows exe, вони повинні бути нешкідливими для вашої системи Linux, якщо у вас не є щось на зразок Wine, яке могло б спробувати їх виконати.

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


3
Мені цікаво, якщо розміщення сміття, завантаженого таким "користувачем", може призвести до того, що Google брендує ваш сайт як "Цей сайт може бути зламана", або запустить Chrome на гігантську червону сторінку попередження. Тоді "Нешкідливий" може бути дещо помилковим.
Нік Т

11
@ NickT: Це, безумовно, може, і саме про це я говорив у своєму другому абзаці.
Свен

4
Теоретично, хтось також може створити неправильно сформовані .zipфайли, які намагаються орієнтуватись на недоліки в конкретних розпакуваннях.
jamesdlin

3
Моно швидше буде встановлено на сервері, ніж Wine, і може виконувати файли CLR .exe.
Римоїд

62

Оскільки я можу розпакувати файли на своєму mac, я припускаю, що це справжні поштові файли, а не просто щось на зразок перейменованих файлів php.

Хоча в цьому випадку ви, мабуть, праві, ваше припущення може не завжди дотримуватися. ZIP-архів залишається дійсним, навіть якщо ви додаєте до нього довільні дані , тому цілком можливо створити файл, який одночасно є дійсним ZIP-архівом, що містить невинних даних, а також шкідливий скрипт PHP. Це навіть не особливо важко; просто з'єднайте PHP-код та ZIP-файл та переконайтесь (наприклад, використовуючи __halt_compiler()), що PHP не намагатиметься розібрати додані дані архіву ZIP.

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

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


+1 для GIFAR, цікаво дізнатися про конкретний приклад цього подвигу на практиці.
чес

11

Є щонайменше два помітних міркування, які слід враховувати:

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

Так, в залежності від того, що ваш сервер робить файл може потенційно бути шкідливим для вашого сервера або інших користувачів. Оскільки я дуже насторожено ставився до EXE, завантажених з Інтернету, я б сказав, що можливі завантажувачі - це найбільш потенційні користувачі.


2

Ви можете перевірити, чи файли можуть бути запущені на вашому сервері Linux, просто перевіривши їх file FILENAME.exeкомандою. Бінарні файли Elf ​​(виконуваний формат, який використовується в Linux) можна назвати .exeрозширенням, щоб плутати нічого не підозрюючого адміністратора Linux, тому, мабуть, це гарна ідея зробити цю перевірку, перш ніж сліпо довіряти, що ці файли не можна виконувати.


2

Я здивований, що ніхто не згадав, що будь-які дані можуть бути (або зробити так, щоб вони були) шкідливими для будь-якої (баггі) програми. Це основа нечіткості. Наприклад, у вас може бути файл JPEG (або схожий на JPEG), який спричиняє переповнення буфера на (конкретні?) Декодери JPEG, викликаючи що завгодно, від відмови в службі до довільного виконання коду. Йдеться про підрив існуючої програми обробки даних; не потрібно приносити новий виконуваний файл! І це причина, чому потрібні пісочниця, санітарія введення та принципи найменших пільг.

Отже, у вашому випадку у вас може виникнути ZIP-файл, який спричиняє проблеми на (конкретних?) Двигунах декодування ZIP. Немає необхідності, щоб ZIP-файл містив нативний виконуваний файл, щоб він був шкідливим.

Сказавши це, ваш сканер працює на іншому, більш грубому рівні. Якщо такий ризик, про який я говорю, існував у цих файлах, ви вже потрапили в момент, коли ви їх обробили :).


1

Оскільки я можу розпакувати файли на своєму Mac, я вважаю, що це справжні ZIP-файли, а не просто щось на зразок перейменованих PHP-файлів.

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

Тож, обережно і з цим.


0

Додаткова перевірка, яку ви в ідеалі повинні здійснити, - це метод php finfo, щоб перевірити, чи завантажувані ними користувачі файли насправді те, що ви дозволили, а не те, що користувачі перейменували файли просто для того, щоб обдурити систему.


-6

Unzipped .exe також нешкідливі для серверів Linux.


23
Не обов'язково так - .exeце не більше, ніж частина імені файлу, і це також може бути обрано як ім'я для двійкового файлу ELF.
Свен

Також може бути встановлено WINE. Звичайно, більшість зловмисних програм, орієнтованих на Windows, ймовірно, не працюватимуть прямо під WINE, але ризик присутній. У кращому випадку розпаковані файли .exes в Linux здебільшого нешкідливі.
Рей

@Ray Залежить від конфігурації. Якщо з якоїсь причини встановлено Mono або Wine, то binfmt_misc може бути налаштований так, щоб .exe був справді виконуваним.
Римоїд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.