УДК 004.056
АНАЛИЗ ПОДХОДОВ К ПОВЫШЕНИЮ БЕЗОПАСНОСТИ ИНТЕРНЕТ-САЙТОВ, РАЗВЕРНУТЫХ С ИСПОЛЬЗОВАНИЕМ СИСТЕМ НАПОЛНЕНИЯ КОНТЕНТОМ
© 2017 Д.А. Васильев1, Н.С. Прокопова2
1канд. пед. наук, доцент кафедры компьютерных технологий и информатизации образования, e-mail: [email protected] 2канд. пед. наук, доцент кафедры компьютерных технологий и информатизации образования, e-mail: Chernomordova@yandex. ru
Курский государственный университет
Статья посвящена вопросам организации безопасности интернет-сайтов, развёрнутых на базе систем управления контентом. В статье приводятся статистические данные использования систем наполнения контентом, рассматриваются наиболее популярные системы Wordpress, Joomla, Modx и др., выявляются основные подходы к организации защиты данных веб-сайтов на базе CMS. Автор приводит классификацию угроз безопасности и рассматривает основные подходы к их нейтрализации.
Ключевые слова: безопасность, Joomla, Wordpress, 1С-Битрикс, интернет-сайт, CMS, угроза безопасности, PhpMyadmin.
Статистические данные поисковых порталов Яндекс и Google за последние 5 лет говорят о том, что число сайтов на совершенно различных доменных зонах устойчиво растет [9]. Небольшие фирмы и индивидуальные предприниматели, муниципальные учреждения, больницы, школы, поликлиники представлены страницами или сайтами в сети Интернет. Одновременно с ростом количества интернет-сайтов сайтов растет и число завершенных успешных атак злоумышленников, соответственно, и пострадавших владельцев ресурсов. Статистика подтверждает и возрастание процентного соотношения использования для развертывания интернет-сайтов системы наполнения контентом (CMS). Согласно статистике, приведенной на ресурсе «Рейтинг Рунета», наиболее популярной из коробочных систем управления контентом на российском интернет-пространстве является 1С-Битрикс, за ними следуют UmiCMS и Netcat [6]. Среди условно-бесплатных CMS лидируют Wordpress, Joomla, Drupal и Modx [7]. Портал отмечает резкий рост ресурсов под управлением Wordpress - практически в два раза, также растет число индивидуальных систем наполнения контентом, разрабатываемых студиями.
Международный портал w3techs.com приводит более развернутую статистику использования CMS в мировом пространстве сети Интернет. Здесь также практически 26% из использующих CMS пользователей выбирают Wordpress [8].
Дадим определение понятию система наполнения контентом. CMS (система управления контентом) представляет собой инструментарий, предоставляющий возможность как централизованно, так и децентрализованно создавать, редактировать и публиковать различную информацию, управляя ресурсом в соответствии с установленными правилами, которые определяют целостное, связанное отображение интернет-ресурса.
Так как из определения следует, что CMS управляет и оперирует понятием контент, дадим определение последнему: под контентом будем понимать любую
единицу данных, содержащих внешнюю информацию. В качестве такой единицы данных может выступать pdf-файл, html-страница, звуковой файл либо другие единицы данных, которые представляют определенный интерес для пользователей веб-ресурса. Такие единицы данных с вложенной информацией принято называть контентом (content), и такие единицы данных имеют определенные пересекающиеся атрибуты, такие как возможность редактирования выделенной группой пользователей, необходимость добавления и публикации, причем это возможно сделать различными способами.
Анализ использования CMS показывает ряд безусловных преимуществ ее применения по сравнению с отдельной версткой страниц. К таковым относятся:
• возможность отделения содержимого web-страницы от ее реального представления. В этом случае перед пользователем не возникает требований к знанию основ разметки веб-страниц, php или javascript. Более того, для различных частей ресурса могут быть применены различные шаблоны, изменяющие его вид и юзабилити;
• предоставление прав выделенным пользователем публиковать и изменять контент. В случае реализации такого подход автор получает возможность самостоятельно создавать и редактировать страницу;
• разграничение прав публикации контента. Это позволяет разграничить разделы ресурса, в которые могут публиковаться только определенные авторы. Например, на сайте администрации района или области информацию по спортивным мероприятиям могут добавлять только работники спорткомитетов. Кроме этого может быть реализована возможность задания рабочего цикла для контента, который позволит осуществить проверку и утверждение документа до его публикации;
• реализация интеллектуального поиска. Система наполнения и управления контентом хранит информацию о контенте (категория, дата публикации или изменения, автора документа), что позволяет упорядочивать поиск в базе по определенным полям (например, по дате публикации), что, в свою очередь, организует возможность организовывать интеллектуальный быстрый поиск содержимого.
Возможные угрозы
Прямые
Брутфорс
В расширениях и изменениях
Уязвимости
в CMS
В плагинах и шаблонах
Взлом FTTP/SSH
Компрометаци я сервера
Скрытые
Г
Nulled-шаблоны
Социальная инженерия
Атаки от 'соседей"
Г
-
Закладки
Перехват и
утечка доступов
Рис. 1. Классификация возможных угроз безопасности интернет-сайта
Все вышеперечисленные преимущества позволяют поддерживать сайт и наполнять его контентом, в том числе и технически не подготовленным пользователям.
Однако в этом случае возрастает опасность взлома сайта в результате загрузки уже зараженных материалов, некорректного обращения с логинами-паролями, некорректной организации файловой системы и других нюансов. В итоге общее количество нарушений безопасности интернет-сайтов под управлением CMS растет, увеличивается число атак, растут объемы опасного трафика. В результате администрирования портала технически неподготовленными пользователями теряется структура доверия к порталу, ресурсы попадают в черные списки поисковых систем, сайт теряет доверие пользователей, после чего следует потеря траффика на ресурс, и, как возможный итог, полная потеря данных, находящихся на сайте.
На рисунке 1 приведена классификция возможных угроз безопасности интернет-ресурса. Наибольшее внимание специалистов, и это заслуженно, вызывают прямые угрозы. Как показывает статистика портала w3techs.com, в количественном отношении взломы «прямого» типа составляют порядка 74-75% от общего количества, однако в последние 4 года отмечается устойчивый рост угроз «скрытого» характера. Заслуживает внимания тот факт, что порядка 5% случаев реализованных атак на системы безопасности связаны с деятельностью сторонних подрядчиков и фрилансеров, обслуживающих ресурсы.
Рассмотрим первую группу предложенной классификации угроз - прямые угрозы. Угрозы этой группы возникают вследствие эксплуатации уязвимостей, которые могут содержаться непосредственно в структуре самой CMS, например, отсутствует или недостаточна фильтрация данных, загружаемых пользователем, даже в момент регистрации. При этом такие уязвимости присутствуют как в условно-бесплатных CMS, так и в готовых коробочных решениях. Примером может служить XSS-уязвимость, выявленная в модуле регистрации пользователей системы 1С-Битрикс [4].
Анализ показывает, что в системе регистрации 1С-Битрикс данные, введенные пользователем, сохраняются полностью, например имя пользователя в запросе $_REQUEST, передаваемое по внутреннему API, не фильтруются, соответственно тэги будут сохранены. В случае передачи следующей строки в поле "имя" формы регистрации пользователя на сайте в личном кабинете:
"test"><ahref='#'><imgsrc='http://insafety.org/img/xss2.jpg'/></a><p"
Регистрационные данные
Имя
Фамилия
test"><a href='#'ximg src='http://insafety.org/img/>
Иванов
Рис. 2. Форма регистрации пользователя 1С-Битрикс
В ходе передачи данных HTML-код не будет сканирован и в результате будет записан в имени пользователя в исходном виде. Результаты сохранения отображены на рисунке 3.
По окончании сохранения таких данных в базе в регистрационной информации может содержаться угроза для целостности данных сайта. Например, ссылка на сайт с вредоносным содержимым.
В рассмотренном нами примере наличия угрозы было отмечено, что внедрялся HTML-код, тогда как типовая XSS-атака подразумевает использование JavaScript. Безусловным элементом защиты, повышающим надежность 1С-Битрикс, является фильтр проактивной защиты, блокирующий внедрение JavaScript-кода. Однако
использование большей части тегов HTML-кода проактивной защитой CMS 1C-Битрикс не фильтруется. Пользователям необходимо помнить, что в случае отключения проактивной защиты описанная выявленная уязвимость позволяет реализовывать хранимые XSS-атаки в их привычной форме.
Рис. 3. Пример панели личного кабинета при внедрении инъекции
Выявленные уязвимости передачи данных присутствуют не только в 1 С-Битрикс, но и в других CMS. Например, в ноябре 2015 г. были выявлены уязвимости в структуре Joomla 3.0, которая до этого момента считалась в достаточной степени надежной. Уязвимости позволяли перехватывать сессии администратора путем использования SQL-инъекций в дополнительных компонентах.
Основным способом защиты от внедрения инъекций и проведения XSS-атак является фильтрация входных и выходных данных, экранирование символов и использования функций для преобразования символов в сущности.
Угроза брутфорса заключается в подборе логинов/паролей в панелях администрирования ресурса. Даже в коробочных версиях CMS-логины и пароли чаще всего не генерируются администратором, а выбираются пользователем из коротких или словарных паролей. Двухфакторная идентификация чаще всего отсутствует, число неверных попыток ввода неограниченно по умолчанию (приведенный пример верен не для всех CMS, например в системе MODх блокировка панели будет «по умолчанию» осуществлена после трех неверных попыток ввода), отсутствует расширенный список доверенных IP-адресов.
Полностью защититься от веб-атак нельзя, как и невозможно обнаружить все уязвимости и устранить их на 100%, однако атаки возможно обезвреживать. Среди основных подходов к защите от прямых угроз выделим следующие.
Регулярное обновления как самой CMS, так и установленных на ней модулей, плагинов и расширений. В каждой новой версии CMS выходят исправления ошибок в исходном коде, уязвимости устраняются. Такой способ не защитит ресурс от новых уязвимостей, однако позволит бороться с широко известными старыми.
Минимизация использования сторонних плагинов и расширений. Увеличение количества используемых на ресурсе сторонних плагинов приводит к увеличению количества возможных уязвимостей. Обновления и патчи, устанавливаемые в саму CMS, устраняют известные выявленные уязвимости ее ядра, вследствие чего желательно использовать «коробочную» версию CMS. Функционал и базовые возможности CMS в пустом коробочном виде достаточно ограниченны, поэтому перед установкой расширений необходимо проверять их безопасность и защищенность.
В том случае если функционала версии CMS недостаточно, разработку новых модулей и элементов необходимо поручать опытным программистам, которые знакомы
с принципами фильтрации параметров, реализации алгоритмов аутентификации, авторизации и идентификации, организации безопасного хранения данных.
Согласно сервису статистики w3techs.com, порядка 56% трафика в сети осуществляется от бот-программ и примерно 27% от этих запросов являются атаками на интернет-ресурсы.
Использование фильтров запросов к сайту позволяет значительно снизить нагрузку на сервер, отсеять посторонний трафик, блокировать атаки. Использовать для решения задач фильтрации возможно внешние сервисы, так и модули, устанавливаемые в веб-сервер.
Фильтрация запросов к сайту блокирует атаки, паразитный трафик и снижает нагрузку при DDOS- и брутфорс-атаках. Фильтровать можно с помощью как внешнего сервиса, так и модуля, устанавливаемого на веб-сервер ("naxsi/mod_security").
Использование инструментария виртуального поиска и исправления уязвимостей WAF позволит в онлайн-режиме осуществить блокирование опасных запросов, не позволяя использовать обнаруженную уязвимость злоумышленникам, хотя полностью взять на себя все функции внешних сервисов и виртуального патчинга он не может.
Для защиты от подбора логинов/паролей возможно использовать дополнительные плагины или сервисы, например в CMS Joomla использование такого плагина позволяет изменить адрес панели от известного и легко доступного адреса "ваш_сайт/administrator/" на любой другой. Это затрудняет попытки доступа к сайту злоумышленников и программ-ботов.
Рассмотрим скрытые угрозы целостности интернет-ресурсов. Одним из распространенных методов реализации угрозы взлома интернет-сайта является его взлом с использованием «соседних» аккаунтов. Зачастую это происходит при использовании виртуальных хостов. Разработчик внимательно следит за обновлениями CMS, применяет разнообразные средства защиты, однако на этом же виртуальном пространстве могут быть размещены ресурсы с открытой админ-панелью или доступным загрузчиком файлов. Использование общего файлового пространства с зараженными ресурсами позволяет злоумышленникам добавлять в базу данных администратора, загружать вирус и в конечном итоге получить полный контроль над аккаунтом пользователя. Реализация такой скрытой угрозы приводит к массовым взломам ресурсов, располагающихся на одном виртуальном сервере.
Указанная выше уязвимость характерна как для виртуальных хостингов, так и для выделенных виртуальных серверов. Выявленная уязвимость на одной из CMS приводит к заражению всей группы сайтов, компрометируя их. Может также произойти утечка ключей на стороне хостинга, предоставляющего услуги VPS, и в этом случае может произойти заражение нескольких виртуальных выделенных серверов, что, соответственно, повлечет за собой массовое заражение всех интернет-сайтов, располагающихся на этих виртуальных площадках. Второй пример встречается значительно реже, и достоверной статистики, к сожалению, привести нельзя, так как поставщики услуг серверного пространства стараются скрывать уязвимости, возникающие вследствие их некомпетенции или невнимательности.
Основным подходом к устранению указанной выше угрозы является изолированное размещение сайтов, хотя это и несет за собой дополнительные финансовые затраты.
Достаточно распространенной угрозой безопасности веб-сайта является подбор паролей FTP-аккаунтов и к SSH-доступу. Основной подход для снижения вероятности реализации такой угрозы - это включение в SSH авторизации не по паролю, а по ключу
и увеличение сложности пароля FTP, а также его регулярная замена либо отключение возможности доступа по FTP.
Одной из распространённых угроз является взлом панели администрирования базы данных, например phpMyAdmin. PhpMyAdmin используется на 85 крупных хостингах с такими широко распространенными панелями, как ISPmanager, Pesk и другие. Панель реализует возможность администрирования базы данных, не требует дополнительных навыков.
Однако основной угрозой для ресурса при эксплуатации PhpMyAdmin является фиксированный адрес ее расположения "имя_сайта/myadmin" или "/phpmyadmin", что делает доступной панель авторизации, откроется форма авторизации phpmyadmin. В случае удачного подбора пароля к панели авторизации, злоумышленник сможет внедрять вредоносный код, создавать и внедрять инъекции или повредить базу данных, что приведет к недоступности портала и потере информации и траффика.
Рис. 4. Типовые подходы к нейтрализации угроз сайтов под управлением CMS
Одним из вариантов реализации такой угрозы является поиск резервных копий сайта. Реализация такой угрозы возможна, если резервные копии располагаются в корневом каталоге сайта или в случае, если сервер был настроен некорректно, каталог backup открыт для чтения и записи и права доступа к нему не ограничены. Возможны случаи, когда этот каталог даже индексируется поисковыми системами, поскольку каталоги резервных копий в большинстве СМБ располагаются по фиксированному
адресу: например, в Wordpress это "wp-content/uploads" или "/backups", в Joomla это "administrator/components/", "плагин_для_бекапа/backup". Учитывая, что доступ к папке организован неверно, злоумышленник может выгрузить из резервной копии конфигурационный файл, используя который возможно получить информацию о настройках панели и паролях.
Одной из основных скрытых уязвимостей является так называемый «человеческий фактор», сюда можно отнести и внутренний персонал или бывших работников, обслуживающих интернет-ресурс, сторонних разработчиков, SEO-специалистов.
Бывшие работники, или действующие, или же сторонние заказчики могут действовать сознательно, имея доступ к панелям, и, зная логины/пароли, могут внедрить вредоносный код, ссылки, размещать рекламу, рассылку и так далее. Либо случайным образом установить новые плагины или расширения, включающие в свой состав вредоносный код. Одной из угроз является загрузка вирусов с локальных машин пользователей ресурса. Порядка 8% заражений происходит за счет того, что пользователи на локальной машине не используют в достаточной мере антивирусные программы и рабочее место является зараженным. В дальнейшем пользователь, загружая файлы на сайт, отправляет туда и вредоносные элементы, которые приводят к заражению ресурса. Одной из возможностей устранения такой угрозы является ограничение на доступ к ресурсу с заранее проверенных рабочих мест.
Следующий вариант - социальная инженерия: использование рассылки от «хостеров», смс-рассылки или почтовой рассылки. Итогом воздействия будет переход на фишинговый сайт злоумышленника, в результате чего происходит кража паролей/логинов.
Таким образом, проведенный анализ позволяет выделить следующие основные подходы к нейтрализации основной группы угроз безопасности Интернет-сайта (рис. 4.):
• Обеспечение безопасности базы данных - смена стандартных префиксов таблиц, например в MODX по умолчанию используется префикс modx_, а в joomla -jos_, замена таких стандартных префиксов, например, на префикс ttt_ повышает безопасность базы данных.
• Ведение журналов и протоколов. Все доступы должны фиксироваться, при изменении прав должны меняться логины и пароли.
• Использование готовых коробочных версий и проверенных компонент для них.
• Управление доступом к файлам и папкам, ограничение на возможность удаленного доступа к ним, контроль за правами пользователей.
• Работать с ресурсом должны проверенные подрядчики и компании, должен заключаться договор, определяющий меры ответственности.
• Хостер должен быть проверенным и доверенным, перед выбором хостера необходимо ознакомиться с рейтингом на порталах Яндекс и Рунет.
• Включение в SSH авторизации не по паролю, а по ключу. Увеличение сложности пароля FTP, а также его регулярная замена либо отключение возможности доступа по FTP, переход на использование SFTP.
• Регулярное обновление как самой CMS, так и установленных на ней модулей, плагинов и расширений.
• Минимизация использования сторонних плагинов и расширений.
• Размещение интернет-сайтов изолированно друг от друга.
• Регулярное изменение паролей.
• Ограничение по доступу, выбор заранее заданных доверенных 1Р-адресов.
• Регулярная проверка журнала ошибок.
• Систематический бекап базы данных и самого ресурса. Систематическое проведение аудита безопасности.
1. Васильев Д.А. Использование системы наполнения контентом JOOMLA для организации школьного сайта // Инновационное развитие современной науки: сб. ст. Междунар. науч.-практич. конф. Уфа, 2014. С. 56-58.
2. Васильев Д.А. Особенности организации блога образовательного учреждения средствами CMS WORDPRESS // О некоторых вопросах и проблемах психологии и педагогики: сб. науч. тр. по итогам междунар. науч.-практич. конф. Красноярск, 2014. С. 111-113
3. Петренко С.А., Курбатов В.А. Политики безопасности компании при работе в Интернет. Изд-во ДМК Пресс, 2011. 396 с.
4. Резников А. Систематическая уязвимость сайтов, созданных на CMS 1С-Битрикс Блог. URL: https://habrahabr.ru/post/307734/ (дата обращения: 12.05.2017).
5. Dafydd Stuttord, Marcus Pinto. The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws 2nd ed. 880 c.
6. http://www.ratingruneta.ru/press/cms-2016/
7. http://www.ratingruneta.ru/cms/
8. https://w3techs.com/
9. https://yandex.ru/blog/webmaster/11790