Подтвердить что ты не робот

Как сервер станет уязвимым с помощью chmod 777?

Я часто читаю статьи, в которых говорится что-то вроде

chmod 777 это плохо!

Я размышлял:

Как стать уязвимым, когда я запускаю chmod 777 для файла?

Что является реальным примером этого, что я могу воспроизвести?

4b9b3361

Ответ 1

Он позволяет любому файлу содержимого просматривать и/или модифицировать: предполагая, что злоумышленник уже имеет общий системный доступ, который очень распространен на общедоступных платформах хостинга. Некоторые из них более "закалены", чем другие от начала. Вот небольшой неполный список возможных атак:

  • "ваш безопасный код" может быть перезаписан "их вредоносным кодом" , который работает в пределах одного и того же контекста веб-сервера.. может украсть пароли/трояны, выставить БД, удалить контент и т.д. есть, чужой код может работать под вашим контекстом безопасности.
  • Содержимое (например, "script source" ) можно просмотреть вне контекста веб-сервера (или владельца). У вас есть "безопасный" пароль для подключения к БД? Ну, не больше...
  • Если контент был защищен разрешениями (например, веб-сервер не мог получить доступ до этого), веб-сервер может иметь доступ к конфиденциальной информации/список... не очень хорошо, если вы не сделали этого, t означает поделиться им. Различные конфигурации веб-сервера также будут обрабатывать "списки" по-разному, что также может привести к большему, чем это необходимо.

В вышеизложенном я также предполагаю, что "группа" включает в себя принципала веб-сервера и что есть веб-сервер (и/или общий хостинг), который может использоваться как основной вектор атаки и/или уязвимость безопасности. Однако, и я подчеркиваю это снова: приведенный выше список не является полным.

Хотя это не "гарантированная безопасность", использование наиболее конкретных разрешений может уменьшить некоторые уязвимости/подверженность.

Ответ 2

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

Например, предположим, что у вас есть сайт WordPress, и там есть ошибка, которая позволяет злоумышленнику выполнить произвольный PHP-код под учетными данными сервера-демона (это случалось много раз в прошлом и, несомненно, повторится в будущее). Код для самого WordPress хранится в файлах .php, которые может прочитать демон сервера. Если эти файлы являются режимом 777, тогда злоумышленник может писать им, что означает, что они могут изменять код, изменяя то, что делает ваш сайт. Возможно, они устанавливают комплект "drive by exploit", и теперь каждый, кто посещает ваш сайт, получает взломанный браузер. Возможно, они устанавливают пакет спама для SEO, и теперь Google думает, что вы продаете Виагру (но если вы посещаете сайт напрямую, это невидимо - да, это действительно так).

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

Обратите внимание, что это означает, что функция самообновления WordPress-from-the-admin-panel является рискованной, поскольку она работает только в том случае, если WordPress может самостоятельно модифицировать себя - вы не можете иметь этого, а также иметь противника, неспособного изменять файлы один раз они могут выполнять произвольный PHP.

Обратите также внимание, что в этом отношении вы на 100% безопасны, если нет файлов и каталогов, которые может изменить демон сервера. Даже просто разрешить загрузку файлов в один каталог все еще может быть проблемой - даже если вы позволите кому-либо положить туда файлы изображений. (Если это невозможно, посмотрите http://lcamtuf.coredump.cx/squirrel/.)

Ответ 3

Каждая цифра в команде chmod представляет восьмеричное (3-битное) число. С тремя цифрами, всего 9 бит. Каждый бит представляет собой разрешение; 1 == имеет разрешение, 0 == не имеет разрешения.

Три бита в каждой цифре представляют read (двоичный 100 == decimal 4), write (двоичный 010 == decimal 2) и execute (двоичный 001 == десятичный 1). Десятичное число 7 - это чтение + запись + разрешение на выполнение.

Первая цифра команды chmod представляет разрешения владельца файла или каталога. Второй - для группы. Третий - для "вселенной", то есть для всех остальных.

Итак, chmod 777 представляет права на чтение, запись и выполнение для вас, группы и всех. Обычно это гораздо больший доступ, чем требуется.

Для вашего примера в реальном мире представьте, изменился ли файл с именем my_bank_account_credentials с помощью chmod 777. Не очень безопасно! Злоумышленник может изменить то, что там, или просто прочитать его и с радостью взять ваши деньги.

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

Ответ 4

chmod - команда CHange MODe. 777 указывает разрешения. есть три группы людей, которые могут иметь разрешения (каждый получает свою собственную цифру), чтобы: Владелец (файла или каталога, первые 7), группы (все, кто принадлежит к той же группе, что и владелец, второй 7), и мир (третий 7).

Владелец является пользователем файла - это вы. В мире * nix пользователи принадлежат к группам. Таким образом, вы можете быть пользователем/владельцем Боба в группе Marketing. Эта модель позволяет вам делать что-то вроде того, что Боб может читать/записывать файл, остальная часть маркетинга может читать только файл, а другие пользователи могут читать файл.

Каждая цифра в 777 является двоичным представлением: rwx (чтение/запись/выполнение). Таким образом, chmod из 755 означает: 111 (7) - Владелец может прочитать выполнение записи 101 (5) - другие в группе могут выполнять или читать, не писать 101 (5) - остальной мир может читать и исполнять, не писать.

Эта настройка означает, что вы можете читать/записывать и выполнять свои файлы, но люди, посещающие ваш сайт, могут только читать или выполнять файл. Таким образом, вам нужно настроить программы в вашем cgi-bin на 755, чтобы люди могли выполнять файл как программу.

Если вы установите разрешения на 'chmod 644', вы получите файл, который может быть написан вами, но может быть прочитан только остальным миром. Это полезно для прямых HTML файлов, чтобы не было никаких проблемных panky. Но попробуйте и выполните файл с разрешениями 644, и вы получите сообщение об ошибке.

CHMOD 777 позволит всем вносить изменения в файлы вашего сервера, это даст им условие WRITE, и все знают, что это плохо.

Ответ 5

Если вредоносная запись достигает вашего приложения, веб-сайта и т.д. Независимо от того, что он делает с кодом. Критическая точка находится в базе данных, и нет никакой защиты от "записи" на нее. Так что разрешения chmod 777 ничего не представляют опасности.