В последние годы в пространстве веб-разработки появилось множество отличных инструментов и услуг. Системы управления контентом (CMS), такие как Joomla, WordPress, Drupal и многие другие, позволяют владельцам бизнеса быстро и эффективно создавать онлайн-присутствие. Их чрезвычайно расширяемые архитектуры, богатые плагины, модули и расширения значительно упростили работу с веб-сайтом без необходимости обучения.

10 советов по улучшению безопасности вашего сайта

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

1 - Обновление, обновление и еще раз обновление!

Бесчисленные сайты ежедневно подвергаются риску из-за устаревшего и небезопасного программного обеспечения, используемого для их запуска. Крайне важно обновить свой сайт, как только появится новый плагин или версия CMS. Большинство хакеров в наши дни полностью автоматизированы. Боты постоянно просматривают каждый сайт, который они могут использовать для использования. Это не достаточно для обновления один раз в месяц или даже раз в неделю, потому что боты, скорее всего, обнаружат уязвимость, прежде чем исправлять ее. Если вы не используете брандмауэр веб-сайта, вам необходимо обновить его, как только будут выпущены обновления. Если вы используете WordPress, воспользуйтесь плагином «WP Updates Notifier». Он отправляет вам электронное письмо, чтобы сообщить вам, когда доступно обновление ядра плагина или WordPress.

2 - Пароли

Работая на клиентских сайтах, мне часто приходится регистрироваться на их сайте / сервере, используя их данные пользователя администратора, и меня часто беспокоят, насколько неустойчивыми являются их корневые пароли. Страшно, что я должен сказать это, но admin / admin не является безопасным именем пользователя и паролем. Если Ваш пароль появляется в этом  списке наиболее распространенных паролей, гарантируется, что ваш сайт будет взломан в какой-то момент.

Даже если ваш пароль отсутствует в этом списке, есть много неправильных представлений о «сильных» паролях. Слабые требования к большинству измерителей прочности пароля являются частью проблемы. Наши друзья в WP Engine собрали несколько интересных исследований, которые развенчают многие мифы, связанные с паролями.

Когда дело доходит до выбора пароля, необходимо соблюдать 3 ключевых требования (СДУ - Сложность, Длина, Уникальность):

  • Сложность: Пароли должны быть случайными. Не позволяйте кому-то взломать ваш аккаунт только потому, что они могут узнать дату рождения или любимую спортивную команду. Программы для взлома паролей могут угадать миллионы паролей за считанные минуты. Если у вас есть реальные слова в вашем пароле, это не безопасно. Вы можете заменить в них некоторые буквы символами, но даже это столь безопасны, как полностью случайная строка символов. Хакеры собрали несколько впечатляющих списков слов для взлома паролей.
  • Длина: пароли должны иметь длину более 12 символов. Я знаю, что некоторые из сообщества безопасности будут издеваться над 12-символьным паролем и настаивать на том, что пароли должны быть длиннее. Однако, когда речь идет о системах онлайн-входа, любая система, которая следит за простыми рекомендациями по безопасности, должна ограничивать количество неудачных попыток входа в систему. Если есть ограничение на количество неудачных попыток входа в систему, 12-символьный пароль легко остановит любого, кто угадает его всего за несколько попыток. Сказав это, добавлю, чем длиннее пароль, тем лучше.
  • Уникальность: не используйте повторно пароли! Каждый ваш пароль должен быть уникальным. Это простое правило резко ограничивает влияние любого взломанного пароля. Если кто-то узнает Ваш FTP-пароль, то данный взломанный пароль не позволит зарегистрироваться на вашем почтовом или банковском аккаунте. Вопреки распространенному мнению, мы не так уникальны, как считаем себя; если вы можете произвольно генерировать пароль, еще лучше.

Теперь я уже слышу, как вы спрашиваете: «Как я должен помнить 10 случайных паролей длиной 12 символов?» Хорошая новость заключается в том, что вам не нужно их помнить, и на самом деле вы даже не должны пытаться. Ответ заключается в использовании менеджера паролей, такого как «LastPass» (онлайн) и «KeePass 2» (офлайн). Эти блестящие инструменты хранят все ваши пароли в зашифрованном виде и могут легко генерировать случайные пароли одним нажатием кнопки. Менеджеры паролей значительно упрощают использование надежных паролей, чем запоминание пары приличных паролей. Но и эти менеджеры паролей могут представлять проблемы и возможные недостатки. 

3 - Один сайт = один контейнер

Я понимаю искушение. У вас есть «безлимитный» тариф веб-хостинга, почему бы не разместить ваши многочисленные сайты на одном сервере. К сожалению, это одна из худших мер безопасности, которые я обычно вижу. Хостинг многих сайтов в одном и том же месте создает очень большую поверхность атаки.

Например, сервер, содержащий один сайт, может иметь одну установку WordPress с темой и 10 плагинов, которые потенциально могут быть атакованы злоумышленником. Если на одном сервере размещено 5 сайтов на одном сервере, у злоумышленника могут быть три установки WordPress, две установки Joomla, пять тем и 50 плагинов, которые могут быть потенциальными целями. Хуже того, когда злоумышленник обнаружил эксплойт на одном сайте, инфекция может распространяться очень легко.

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

После того, как очистка прошла успешно, у вас теперь намного больше задач, связанных с сбросом паролей. Вместо одного сайта у вас есть несколько из них. Каждый пароль, связанный с каждым сайтом на сервере, должен быть изменен после исчезновения заражения: все ваши системы управления контентом (CMS), база данных и пользователи протокола FTP (FTP) для всех этих веб-сайтов. Если вы пропустите этот шаг, веб-сайты могут быть снова повторно заражены, и вы вернетесь к первому.

4 - разумный доступ пользователя

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

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

Благодаря тщательно определенному доступу будут ограничены любые ошибки, которые могут быть сделаны. Это уменьшает количество уязвимых учетных записей и может защитить от ущерба, нанесенного пользователями «изгоев». Это часто упускается из виду часть управления пользователями: подотчетность и мониторинг. Если люди делят учетную запись пользователя, и этот пользователь делает нежелательные изменения, как вы узнаете, какое лицо в вашей команде было ответственным?

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

5 - Измените настройки CMS по умолчанию!

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

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

Как правило, проще всего изменять эти данные по умолчанию при установке CMS, но их можно изменить позже.

6 - Выбор расширений

Одной из прекрасных особенностей сегодняшних приложений CMS является расширяемость. Однако большинство из них не понимает, что эта самая расширяемость является самой большой слабостью. Существует огромное количество плагинов, надстроек и расширений, обеспечивающих практически любую функциональность, которую вы можете себе представить. Однако реальность такова, что временами огромное количество расширений может быть обоюдоострым мечом. Часто есть несколько расширений, предлагающих аналогичную функциональность, так как вы узнаете, какое из них установить? Вот то, на что я всегда смотрю, когда решаю, какие расширения использовать.

Первое, что я ищу, - это когда последний раз обновлялось расширение. Если последнее обновление прошло более года назад, я обеспокоен тем, что автор прекратил работу над ним. Я предпочитаю использовать расширения, которые активно разрабатываются, потому что это указывает на то, что автор, по крайней мере, захочет реализовать исправление, если обнаружены или будут обнаружены какие-либо проблемы безопасности. Кроме того, если расширение не поддерживается автором, тогда нет смысла использовать его для своего веб-сайта, так как он может перестать работать в любое время.

Я также смотрю на возраст расширения и количество установок. Расширение, разработанное устоявшимся автором, имеющим многочисленные установки, гораздо более надежным, чем тот, который имеет 100 установок и был выпущен первым разработчиком. У опытного разработчика гораздо больше шансов иметь хорошее представление о лучших методах обеспечения безопасности, и они гораздо реже наносят ущерб их репутации, вставляя вредоносный код в их расширение. Что еще более важно, чем больше пользовательская база, тем больше стимулов атакующим приходится вкладывать средства в попытку сломать ее.

Это невероятно важно, что вы загружаете все свои расширения и темы из законных источников. Есть много сайтов, которые предлагают «бесплатные» версии, которые обычно являются премиальными и требуют оплаты для загрузки. Эти «бесплатные» версии пиратские и часто заражаются вредоносными программами. Веб-сайты, предлагающие эти «бесплатные» версии, создаются только с одной целью: заразить как можно больше сайтов их вредоносными программами.

7 - Резервные копии

Как и все в цифровом мире, Ваши данные могут быть утрачены в результате взлома. Мы часто не создаем резервные копии сайта, но Вы будете благодарны, если потратите некоторое время, чтобы рассмотреть решения для резервного копирования вашего сайта.

Создание резервных копий вашего веб-сайта очень важно, но сохранение этих резервных копий на вашем веб-сервере является серьезным риском для безопасности. Эти резервные копии содержат одинаковые версии вашей CMS и расширения, которые могут стать общедоступны, что позволяет хакерам легко получить доступ к вашему серверу.

8 - Файлы конфигурации сервера

Вы действительно должны знать свои конфигурационные файлы веб-сервера. Серверы Apache используют файл .htaccess, серверы Nginx используют nginx.conf, а серверы Microsoft IIS используют web.config. Эти файлы чаще всего встречаются в корневом каталоге. Эти файлы позволяют выполнять правила сервера, включая директивы, которые улучшают безопасность вашего сайта.

Если вы не знаете, какой веб-сервер вы используете, вы можете запустить свой сайт через Sitecheck и перейти на вкладку «Сведения о веб-сайте».

Вот несколько правил, которые я рекомендую вам изучить и добавить для вашего конкретного веб-сервера:

  • Предотвращение просмотра каталогов. Это предотвращает просмотр злоумышленниками содержимого каждого каталога на веб-сайте. Ограничение информации, доступной для злоумышленников, всегда является полезной мерой предосторожности.
  • Предотвращение обратных ссылок на изображения. Хотя это не сильно влияет на безопасность сайта, эта мера не позволяет другим веб-сайтам отображать изображения, размещенные на вашем веб-сервере. Если люди запускают обратные ссылки с вашего сервера, Ваш ресурс, выделенный на хостинге, может быть израсходован  трафиком с изображениями для чужого сайта.
  • Защита конфиденциальных файлов. Вы можете установить правила для защиты определенных файлов и папок. Файлы конфигурации CMS являются одним из наиболее чувствительных файлов, хранящихся на веб-сервере, поскольку они содержат данные входа в базу данных в виде простого текста. Могут быть другие местоположения, которые можно заблокировать, например, админ-зоны. Вы также можете ограничить выполнение PHP в каталогах, которые содержат изображения или позволяют загружать файлы.

Существует много других правил и опций, которые вы можете посмотреть в файле конфигурации вашего веб-сервера. Вы можете искать имя своей CMS, ваш веб-сервер и «безопасность», но убедитесь, что ваши выводы правильны, прежде чем внедрять что-либо. Некоторые люди публикуют плохую информацию в Интернете со злым умыслом.

9 - Установка SSL

На самом деле я имею в виду два вопроса о том, включать или не включать этот пункт, потому что было так много статей, которые неправильно указывали на то, что установка SSL решит все ваши проблемы с безопасностью. SSL не защищает ваш сайт от любых вредоносных атак или не позволяет ему распространять вредоносное ПО.  SSL шифрует связь между точкой A и точкой B - сервером веб-сайта и браузером. Это шифрование важно по одной конкретной причине: оно не позволяет кому-либо перехватить этот трафик, известный как атака «Человек в середине» (MITM).

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

10 - Разрешения для файлов

Разрешения на файлы определяют, кто какие операции может выполнять с файлом.

Каждый файл имеет 3 разрешения доступа, и каждое разрешение представлено числом:

  • «Чтение» (4): просмотр содержимого файла.
  • «Запись» (2): изменение содержимого файла.
  • «Выполнение»  (1): Запуск файла программы или скрипта.

Если вы хотите разрешить несколько разрешений, вам просто нужно сложить числа вместе, например, чтобы разрешить чтение (4) и запись (2), вы устанавливаете для пользователя разрешение 6. Если вы хотите разрешить пользователю чтение (4), запись (2) и выполните (1), то вы установите для пользователя разрешение 7.

Существует также 3 типа пользователей:

  • Владелец - обычно создатель файла, но он может быть изменен. Владельцем может быть только один пользователь.
  • Группа. Каждому файлу назначается группа, и любой пользователь, входящий в эту группу, получит эти разрешения.
  • Пользователь - все остальные.

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

Запись Чтение Выполнение
Владелец 2 4 0
Группа 0 4 0
Пользователь 0 0 0


Когда вы просматриваете разрешения на файл, это будет отображаться как 640.

Папки также имеют одинаковую структуру разрешений; с той лишь разницей, что флаг «Выполнение» позволяет вам сделать каталог вашим рабочим каталогом.

У большинства установок CMS все разрешения правильно настроены по умолчанию, поэтому почему я просто потратил столько времени, объясняя, как работают разрешения? При поиске решений ошибок разрешений в Интернете вы найдете массу людей, которые советуют вам изменять права доступа к файлам на 666 или разрешения на доступ к папке 777. В этом совете обычно исправляются любые ошибки разрешений, но это ужасный совет с точки зрения безопасности. Если вы установите разрешение на 666 или разрешение на доступ к папке 777, вы разрешите всем вставлять вредоносный код или удалять ваши файлы!

Вывод

Итак, у вас есть это! 10 самых простых шагов, которые вы можете предпринять, чтобы значительно повысить безопасность вашего сайта. Хотя эти шаги сами по себе не гарантируют, что ваш сайт никогда не будет взломан, последующие за ним остановят подавляющее большинство автоматических атак, уменьшив общую степень риска.

Зная об этих проблемах их понимание даст Вам ценную информацию о том, как работает базовая технология защиты сайта, и Вы сможете сделать его безопасным.

На этом сегодня все. Успехов Вам в разработке.

Добавить комментарий

Авторам некорректных комментариев доступ на сайт будет заблокирован