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

Некоторые виды хакерских атак и способы их предотвращения
Существует множество различных типов атак, которые хакеры могут проводить для получения частичного или полного контроля над веб-сайтом. Как правило, самыми распространенными и опасными являются SQL-инъекции и межсайтовый скриптинг (XSS).
SQL-инъекция — это метод внедрения вредоносного кода в веб-приложение с использованием уязвимости безопасности на уровне базы данных для изменения ее поведения. Это действительно мощный метод, учитывая, что он может манипулировать URL-адресами (строками запроса) или любыми формами (поиск, вход в систему, регистрация по электронной почте) для внедрения вредоносного кода. Некоторые примеры SQL-инъекций вы можете найти на сайте
Web Application Security Consortium.
Безусловно, можно предпринять определенные меры предосторожности во избежание атак такого рода. Например, хорошей практикой является добавление прослойки между формой на стороне фронтенда и базой данных на бэкенде. В PHP расширение
PDO
часто используется для работы с параметрами (иногда называемыми заполнителями или переменными привязки) вместо внедрения пользовательского ввода непосредственно в инструкцию. Еще один очень простой метод — экранирование символов (character escaping), при котором все опасные символы, способные напрямую повлиять на структуру базы данных, экранируются. Например, каждое вхождение одинарной кавычки (“,”) в параметре должно быть заменено двумя одинарными кавычками (“,”), чтобы сформировать корректный литерал SQL-строки. Это лишь два из наиболее распространенных действий, которые вы можете предпринять для повышения безопасности сайта и предотвращения SQL-инъекций. В интернете вы можете найти множество других специфических ресурсов, соответствующих вашим потребностям (языки программирования, конкретные веб-приложения и т. д.).'Другой метод, который мы здесь рассмотрим, — это межсайтовый скриптинг (XSS). XSS — это техника внедрения вредоносного кода на веб-страницу с использованием уязвимостей безопасности веб-приложений. Этот вид атаки возможен там, где веб-приложение обрабатывает данные, полученные через пользовательский ввод, без какой-либо дополнительной проверки или валидации перед их возвратом конечному пользователю. Примеры межсайтового скриптинга можно найти на сайте''Web Application Security Consortium

Существует множество способов защиты веб-приложения от этой техники. Некоторые простые действия, которые можно предпринять, включают в себя:
Очистку входных данных, которые могут быть введены в форму (например, см. функцию.
strip tags
- в PHP);
Использование кодирования данных во избежание прямого внедрения потенциально вредоносных символов (например, см. функцию
htmlspecialchars - в PHP);
Создание уровня между вводом данных и бэкендом во избежание прямого внедрения кода в приложение.
Некоторые ресурсы по безопасности CMS - SQL-инъекции и межсайтовый скриптинг — это лишь две из множества техник, используемых хакерами для атак и взлома беззащитных сайтов. В качестве общей рекомендации по безопасности важно всегда быть в курсе вопросов безопасности и, в частности при использовании стороннего программного обеспечения, следить за установкой последней доступной версии. Многие веб-приложения строятся вокруг крупных сообществ, предлагающих постоянную поддержку и обновления.
В качестве примеров можно привести четыре крупнейших сообщества систем управления контентом с открытым исходным кодом — Joomla, WordPress, PHP-Nuke и Drupal. На своих сайтах они предлагают полезные руководства по безопасности и поддерживают крупные форумы сообщества, где пользователи могут сообщать о проблемах и просить о помощи. Например, в разделе
Hardening WordPress
на своем сайте WordPress предлагает исчерпывающую документацию о том, как усилить безопасность своей CMS. Joomla предлагает множество ресурсов по безопасности, в частности
Security Checklist
с подробным списком действий, которые веб-мастера должны предпринять для повышения безопасности сайта на базе Joomla. На сайте Drupal вы можете получить информацию о проблемах безопасности, перейдя в их раздел
Security section
.
Вы также можете подписаться на их рассылку по безопасности, чтобы постоянно быть в курсе текущих проблем. PHP-Nuke предлагает некоторую документацию по
Securityв главе 23 своего раздела «How to», посвященного управлению этой CMS-платформой. У них также есть раздел под названием
Hacked – Now what?
в котором содержатся рекомендации по устранению проблем, связанных со взломом.
Способы определения того, что ваш сайт взломан
Как упоминалось выше, существует множество различных типов атак, которые хакеры могут проводить на сайте, а также различные методы взлома беззащитных ресурсов. Когда хакеры получают полный контроль над сайтом, они могут изменить его внешний вид (дефейс главной страницы), удалить весь контент (удалить таблицы вашей базы данных) или внедрить вредоносное ПО или кражи cookie. Они также могут использовать сайт для рассылки спама, например, скрывая ссылки на спам-ресурсы или создавая страницы, перенаправляющие на сайты с вредоносным ПО. Если такие изменения в вашем приложении очевидны (как дефейс), вы можете легко обнаружить активность хакеров; но для других типов эксплойтов, особенно связанных со спамом, это не так очевидно. Google через некоторые из своих продуктов предлагает веб-мастерам способы определить, был ли сайт взломан или изменен третьей стороной без разрешения. Например, используя поиск Google, вы можете обнаружить типичные ключевые слова, добавленные хакерами на ваш сайт, и выявить скомпрометированные страницы. Просто откройте
google.com
и выполните поисковый запрос
site: по вашему веб-сайту, выполнив поиск коммерческих ключевых слов, которые хакеры обычно используют в спам-целях (таких как viagra, porn, mp3, gambling и т. д.): site:example.com viagra
.
Если вы еще не знакомы с оператором поиска site:, это способ отправки запроса в Google с ограничением поиска конкретным сайтом. Например, поиск site:googleblog.blogspot.com вернет результаты только с
Official Google Blog
. При добавлении спам-ключевых слов к запросам такого типа Google выдаст все проиндексированные страницы вашего сайта, которые содержат эти спам-слова и с высокой вероятностью взломаны. Чтобы проверить такие подозрительные страницы, просто откройте кэшированную версию, предложенную Google, и вы сможете обнаружить следы взлома, если таковые имеются. Затем вы сможете очистить скомпрометированные страницы, а также проверить наличие аномалий в конфигурационных файлах вашего сервера (например, на веб-серверах Apache:
.htaccessи
httpd.conf Если ваш сайт больше не отображается в результатах поиска Google, это может означать, что Google уже обнаружил нарушения на вашем сайте в результате взлома и мог временно удалить его из нашего индекса из-за нарушения наших webmaster quality guidelines).
Чтобы постоянно следить за появлением подозрительных ключевых слов на вашем веб-сайте, вы также можете использовать
Google Alerts.
для мониторинга запросов вроде
site:example.com viagra OR casino OR porn OR ringtones
. Вы будете получать оповещение по электронной почте всякий раз, когда эти ключевые слова будут обнаружены в содержимом вашего сайта. Вы также можете использоватьWebmaster Tools
от Google для выявления любой хакерской активности на вашем сайте. Webmaster Tools предоставляет статистику по основным поисковым запросам для вашего сайта. Эти данные помогут вам отслеживать, ранжируется ли ваш сайт по подозрительным нерелевантным спам-словам. Данные в разделе «Что видит Googlebot» также полезны, так как вы увидите, обнаруживает ли Google какие-либо необычные ключевые слова на вашем сайте, независимо от того, ранжируетесь вы по ним или нет.
Если у вас есть аккаунт Webmaster Tools и Google считает, что ваш сайт был взломан, вы часто будете получать уведомления в зависимости от типа эксплойта на вашем сайте:
Если вредоносное третье лицо использует ваш сайт для спама (например, скрывает ссылки или создает спам-страницы) и это было обнаружено нашим роботом, вы часто будете получать уведомление в Центре сообщений с подробной информацией (образец взломанных URL или анкорный текст скрытых ссылок);
Если ваш сайт используется для размещения вредоносного ПО (малевэра), вы увидите предупреждение о вредоносном ПО на странице «Обзор» в вашем аккаунте Webmaster Tools.
- Взломанное поведение устранено, что дальше?
- Ваш сайт был взломан или распространяет вредоносное ПО? Сначала разберитесь с последствиями вредоносного ПО, а затем выполните одно из следующих действий:
Если ваш сайт был взломан в спам-целях, посетите нашу страницу
reconsideration request
- через Webmaster Tools, чтобы запросить пересмотр вашего сайта;
Если ваш сайт распространял вредоносное ПО среди пользователей, отправьте запрос на проверку вредоносного ПО на странице «Обзор» в Webmaster Tools.
Мы надеемся, что эти советы окажутся полезными. Если вы хотите поделиться собственными советами или опытом, - post in our forum
.
Спасибо!
Опубликовано Паоло Петролини и Ирис Мариано, команда контроля качества поискаBest practices against hacking | Alien Road
Как мы это применяем
We archive Search Central announcements because client questions often trace back to a change that was announced years ago. Reading the original is faster than reconstructing it from second-hand summaries.
Связанные услуги