Безопасность сайтов

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

Скажу сразу, разобрать можно абсолютно все. Вопрос только во времени и сложности. Поэтому и надо сделать так, чтобы «взлом» сайта был как можно сложнее, а потери минимальные. Последним таким ярким примером стал ebay.com. Нам до ebay еще расти и расти, но защититься даже от школьников, впервые узнавших об уязвимостях явно стоит. Врядли они «уведут» ваш сайт, но гадостей понаделать могут. От порчи контента, до удаления базы данных.

Начнем по-порядку, с конкретных уязвимостей, до дырок в CMS.

Самые распространенные уязвимости — всевозможные инъекции.

SQL инъекция— один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.

Чем грозит: Дает возможность выполнить произвольный запрос к базам данных — чтение/записи/удаления/изменения данных.

Методика атаки: Изучается поведение скриптов и данные в POST/GET запросах, cookie, HTTP_REFERER, AUTH_USER и AUTH_PASSWORD. Злоумышленник просто перебирает параметры, подставляя произвольный код (зачастую просто кавычки). Если страница как-то неправльно на это реагирует, и не ругается на неверный формат параметров — уязвимость есть.

Защита: Тщательно фильтруем все входные параметры, значения которых используются для постороения SQL запроса.

Как проверить свой сайт: SQL Inject Me — как легко догадаться по названию, этот плагин поможет вам проверить сайт на наличие sql инъекций. Вы можете заставить его проанализировать все get параметры и формы на текущей странице. Этот плагин создает огромный трафик и иногда сайты даже падают от его работы :). Поэтому не стоит включать сразу все проверки одновременно.

Дополнение: Опасна для «соседей» по хостингу, если хостер не корректно настроил сервер (а это бывает весьма часто).

XSS-инъекции или межсайтовый скриптинг — это атака, которая позволяет злоумышленнику вставлять в HTML-код сайта вставки вредоносного HTML-кода, как правило, скрипты JavaScript.

Чем грозит: Можно выполнить произвольный JS-код в браузере жертвы — получить cookei жертвы, или даже выполнить некоторые действия от имени этого пользователя. Иногда используется для DDoS.

Методика атаки: Прикрепить скрипт к странице, рисунку, ссылке или тексту. (По поводу последнего — очень давно видела на livejournal возможность в комментах помещать скрытый frame, куда помещалось видео с ютуба, и таким образом накручивать счетчик просмотров данного видео)

Защита: Владельцу сайта:форматировать комментарии в чистый HTML, отбрасывая код. Проверять ссылки на астрибуты JS. Посетителям:не быть растяпами и посматривать переодически по каким ссылкам и куда вы ходите. Само собой, не соглашаться установить/проверить компьютер во внезапно выскочивших окошках, якобы от антивируса.

Как проверить свой сайт: XSSMe — плагин для Firefox проверяет на уязвимость к XSS.

Это две основные атаки на сайты вне зависимости от вашей CMS.

Теперь поговорим про их собственную безопасность.

Вот тут было интересное исследование на эту тему. Если лень читать, ниже краткие выдержки из статьи:

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

— В то же время среди сайтов на CMS TYPO3 не было обнаружено ни одного зараженного сайта. Мы связываем этот с тем, что команда разработки TYPO3 уделяет значительное внимание повышению безопасности своей CMS.

— Своевременно обновляемые версии CMS снижают риск появления проблем в среднем в два раза. Наиболее явно польза от перехода на свежие версии заметна на примере Joomla и WordPress.

— версия того или иного веб-сервера не является решающим фактором безопасности сайта. Т.е. все равно на Nginx, Apache или IIS ваш сайт крутится.

— Яндекс заносит сайты в черный список в два раза чаще, чем Google. При этом пересечение списков Google и Yandex составляет всего 10% от общего числа занесенных в черные списки сайтов. Всегда следите за наличием в этих списках вашего сайта.

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

— Владельцы 4500 сайтов, (из 30 000) участвовавших в исследовании, подвержены риску финансовых потерь из-за имеющихся на сайте проблем. Это почти каждый седьмой сайт.

Сайты сделанные по принципу фриланс => фрилансер с опытом несколько месяцев => joomla => +20 сторонних модулей => сдача проекта => забыли на год 100% приводит к образовыванию в сайте огромного количества дыр и врятли тут всю ответсвенность можно возможить на cms.»

Что делаем:

— Следим какие модули и откуда устанавливаем. Из непроверенных источников даже шаблон сайта может нести опасность. Особенно, если он продается, а вы его «нашли» бесплатно.

— Если есть комментарии на сайте, или возможность пользователям самим создавать контент, делаем все возможное для защиты от XSS и SQL — инъекций.

— Обновляемся, обновляемся и еще раз обновляемся. Запомните, если вы или ваш программист внес правки на сайт, которые препятсвуют обновлению — риск подхватить «заразу» в разы возрастает.

— По возможности пользуемся SFTP, шифрованным каналом вместо устаревшего FTP. Перехватить ваши данные и расшифровать их в таком случае становиться намного труднее. Просите хостера дать вам такой доступ, если не дадут под странными отмазками — нафик такого хостера.

— Если у вас VPS/VDS — сервер, наймите хорошего админа для его обслуживания, или оплатите услуги у хостинга. Племянник дяди Васи, только закончивший «крутой ВУЗ», может оказаться юным дарованием, а может и нет. За его ошибки расплачиваться вам.

— Следим за состояниям здоровья своего компьютера. Бесполезно ставить 26-ти символьные пароли, если у вас на компе троян или кейген, а куки браузера уже давно уходят на сторону.

На этом все. Будьте бдительны.

Написано специально для http://www.seobuilding.ru