Анализ веб-сервисов на наличие уязвимостей на примере сайта «XI Санкт-Петербургский конгресс „Профессиональное образование, наука и инновации в XXI веке"»
Кузьменкова Е. Ю., Саркисян А. Р., Кузнецов Д. А., Диасамидзе С. В. Петербургский государственный университет путей сообщения Императора Александра I
Санкт-Петербург, Россия [email protected], [email protected]
Аннотация. Статья посвящена вопросам обеспечения безопасности веб-сайтов в интернете. Рассматриваются основные угрозы безопасности сайтов и методы защиты от них. В качестве объекта исследования информационной защищенности рассмотрен сайт «XI Санкт-Петербургский конгресс „Профессиональное образование, наука и инновации в XXI веке"», работающий под управлением системы WordPress - управления содержимым сайта. Описываются анализ сайта, его исходного кода и базы данных, включая проверку правильности настройки индексирования сайта, тестирование на проникновение. Для установления защищенного соединения между сервером и браузером пользователя получен SSL-сертификат сайта. Рассмотрен наиболее распространенный вид атаки на базу данных - SQL-инъекция (внедрение в запрос произвольного SQL-кода).
Ключевые слова: защита информации, безопасность данных, база данных, разработка сайта, конфиденциальность, WordPress, SQL.
Введение
Проблема безопасности вебсайтов ещё никогда не стояла так остро, как в XXI веке. Конечно, это связано со всеобъемлющим распространением сети Интернет практически во всех отраслях и сферах деятельности человека. Каждый день хакеры и специалисты по безопасности находят по нескольку новых уязвимостей сайтов. Многие сайты тут же закрываются либо дорабатываются владельцами и разработчиками, а некоторые остаются незащищенными, чем и пользуются злоумышленники. А ведь с помощью взломанного сайта можно нанести большой вред как его пользователям, администраторам, так и серверам, на которых он размещён.
Исследования показывают, что, например, в 2013 г. в среднем на каждое веб-приложение приходилось 15,6 случаев уязвимости, а в 2014 г. данный показатель возрос до 29,9. Таким образом, среднее количество увеличилось за год почти в два раза. При этом для уязвимостей высокой степени риска данный показатель возрос более чем в два раза (с 2,8 до 7,5). Несмотря на наличие множества уязвимостей, которые могли быть обнаружены и их использование пресечено средствами защиты, механизмы безопасности по-прежнему используются очень мало. Из сказанного можно сделать вывод, что внимание к проблемам безопасности веб-приложений все еще остается на низком уровне.
Предметом исследования статьи является анализ информационной защищенности сайта «XI Санкт-Петербургский конгресс „Профессиональное образование, наука и инновации в XXI веке"» (http://congress-2017.ru). Сайт работает под управлением WordPress - одной из самых популярных систем управления содержимым сайта. В системе WordPress помимо основных блоков управления сайтом (управления контентом, дизайном, работы с медиафайлами) встроен модуль работы с базами данных и сервером баз данных MySQL, к которому предъявляются более высокие требования по защите информации.
Необходимым этапом разработки любого сайта как программного компонента информационных систем, взаимодействующих с критичными ресурсами (базой данных), является исследование разработанных программных решений в контексте информационной безопасности [1-4].
Для создания максимально эффективной подсистемы защиты сайта «XI Санкт-Петербургский конгресс „Профессиональное образование, наука и инновации в XXI веке"» проведен анализ основных угроз информационной безопасности вебсайтов и методов защиты от атак различного рода. Можно выделить следующие основные типы угроз:
• конфиденциальности - несанкционированный доступ к данным;
• целостности - несанкционированное искажение или уничтожение данных;
• доступности - ограничение или блокировка доступа к данным.
Для выявления типовых уязвимостей, через которые могут быть реализованы перечисленные угрозы, проведен аудит сайта. Процедуру аудита веб-сервиса с привязанной базой данных можно разделить на два этапа: анализ непосредственно самого сайта и его исходного кода и анализ базы данных.
Анализ сайта и его исходного кода
Сегодня WordPress [5] является самым популярным среди систем управления контентом. Его доля составляет 60,4 % общего числа сайтов, использующих CMS-движки. За 12 лет существования веб-движка в нем было обнаружено 242 уязвимости.
На первом этапе аудита выполнена проверка правильности настройки индексирования сайта с помощью запроса Google Dorks site: congress-2017.ru inurl:/wp-content/. Такие запросы из Google Dork или Google Dork Queries (GDQ) помогают выявить скрытые данные, являющиеся при этом общедо ступными.
Указанный запрос позволил проверить, какие права доступа к различным веб-страницам сайта определены. В результате обнаружено, что у неавторизованных пользователей нет доступа к конфиденциальной информации на данном сайте, например, к информации об установленных плагинах и темах, к конфиденциальным данным или резервным копиям баз данных.
На следующем шаге аудита проводилось тестирование на проникновение. Чтобы подобрать нужный для взлома сайта эксплойт (компьютерную программу, фрагмент программного кода или последовательность команд, использующие уязвимости в программном обеспечении и применяемые для атаки на вычислительную систему), злоумышленнику необходимо знать используемую при разработке версию WordPress. Такая информация содержится в исходном коде главной веб-страницы в метатеге generator (рис. 1).
25 clink rel="EditURI" type="application/rsd+xml" title="RSD"
26 <link rel="Lrjlwmanifeït" type="application/wlwnianife5t+xiTil"
<meta name=,r generator" content=,rWordPress 4.8.2"/
2Д <style type=nl text/es5,r media= "print">#wpadminbar-[dÍ5play:nc 20 <style type=nl text/cs5,r media=ME creen" >html{[nargin-top: 32px
body{margin-top :46px! importa"t:}}</style> 3d </head>
<body class = "contalner11 >
«header class="main-header">
<div clas5="container clearfix">
Рис. 1. Выявление использованной версии WordPress через исходный код страницы сайта
Злоумышленник может подобрать данные учетной записи легального пользователя с помощью подачи запроса congress-2017.ru/?author=1 и перебора всех возможных значений идентификатора пользователя.
Зная имя пользователя, можно попробовать подобрать пароль к панели администратора. Проблема подбора пароля решается путем либо использования стойких паролей, состоящих из 12 и более символов и включающих буквы верхнего
и нижнего регистра, числа и спецсимволы, либо, например, встраивания плагина Login LockDown, который ограничивает количество неудачных попыток авторизации.
В целях безопасности в текст сайта были дополнительно установлены следующие плагины:
• Revisium WordPress Theme Checker - позволяет выявлять типичные вредоносные фрагменты в темах WordPress;
• Sucuri Security - позволяет проводить мониторинг и обнаруживать вредоносный код;
• iThemes Security - многофункциональный плагин для организации защиты платформы WordPress.
Для запрета доступа к критичной информации был изменен файл конфигурации htaccess. В этот файл добавлены опции запрета доступа к директориям и файлам, блокировки SQL-инъекций и вредоносных скриптов [2-4]. Это реализуется с помощью добавления в файл следующих правил:
1) закрытие списка файлов и папок: Options+FollowSym Links-Indexes;
2) противодействие скриптам, пытающимся установить глобальные переменные или изменить переменную _REQUEST через URL: RewriteCond %{QUERY_STRING}GLOBALS (=|\[|\%0 [0-9A-Z]{0,2}) [OR]RewriteCond %{QUERY_ STRING}_REQUEST (=|\[|\ % [0-9A-Z]{0,2});
3) ограничение доступа к критичным по отношению к безопасности файлам с помощью правил Order Allow, Deny и Deny from all.
К таким файлам можно отнести:
• wp-config.php - содержит имя БД, имя пользователя, пароль и префикс таблиц;
• .htaccess - файл конфигурации веб-серверов;
• readme.html и ru_RU.po - содержат версию WordPress;
• install.php - для работы с php.
Для установления защищенного соединения между сервером и браузером пользователя был получен SSL-серти-фикат сайта. SSL-сертификат [1] - цифровая подпись сайта, подтверждающая его подлинность. Он даёт возможность владельцу применить к своему сайту технологию SSL-шиф-рования. Информация передаётся в зашифрованном виде, и расшифровать её можно только с помощью специального ключа, являющегося частью сертификата. Тем самым гарантируется сохранность данных. Схема действия SSL представлена на схеме (рис. 2).
Рис. 2. Схема действия SSL
Когда пользователь заходит на защищённый сайт, выполняются проверка DNS и определение IP-адреса хоста веб-сайта. Затем, если запись веб-сайта найдена, происходит переход на веб-сервер хоста, а затем посылается запрос безопасного SSL-соединения с хоста веб-сайта. Хост отвечает валидным SSL-сертификатом. Таким образом устанавливается защищённое соединение и передаваемые данные шифруются.
Анализ базы данных
Наиболее распространенным видом атаки на базу данных является SQL-инъекция. Эта атака основана на внедрении в запрос произвольного SQL-кода. Это может дать возможность атакующему выполнить произвольный запрос к базе данных, например, прочитать содержимое любых таблиц, удалить, изменить или добавить данные, получить возможность чтения и/или записи локальных файлов и выполнения произвольных команд на атакуемом сервере.
Для работы с базами данных в WordPress предусмотрен класс $wpdb, включающий в себя метод prepare () для обеспечения защиты от SQL-инъекций. Запросы к базе данных выглядят следующим образом:
$sql = $wpdb->prepare ('query' [, value_parameter, value_ parameter ...]).
Также необходимо заблокировать запросы к URL, содержащие определенные ключевые слова. Сделать это можно, добавив в файл .htaccess следующие строки:
RewriteCond %o{query_string} concat.*\([NC, OR] RewriteCond %o{query_string} union.*select.*\([NC, OR] RewriteCond %o{query_string} union.*all.*select [NC] RewriteRule л (.*)$ index.php [F, L]
Еще одним способом обеспечения защиты информации в базе данных является резервное копирование данных на случай их потери или удаления. Для этого используется соответствующая утилита BackUpWordPress.
Заключение
WordPress - довольно крупный и сложный продукт, который обладает своими достоинствами и недостатками. Среди последних имеется большое количество уязвимостей. В нашей статье рассмотрены и устранены наиболее типичные из них. Тем самым были сведены к минимуму шансы злоу-
мышленника на компрометацию ресурса. В числе зарубежных публикаций по вопросу обеспечения информационной безопасности сайтов, на наш взгляд, можно рекомендовать статьи [6-10].
Литература
1. Корниенко А. А. Информационная безопасность и защита информации на железнодорожном транспорте: в 2 ч. / А. А. Корниенко, М. А. Еремеев, В. Н. Кустов и др.; под ред. А. А. Корниенко. - Ч. 2: Программно-аппаратные средства обеспечения информационной безопасности на железнодорожном транспорте. - М.: УМЦ ЖДТ, 2014. 447 с.
2. Глухарев М. Л. Современные модели, методы и средства обеспечения безопасности семантических баз данных / М. Л. Глухарев, М. Ф. Исаева // Интеллектуальные системы на транспорте: материалы V междунар. науч.-практич. конф. «ИнтеллектТранс-2015». - СПб.: ПГУПС, 2015. С. 323-327.
3. Глухарев М. Л. Применение криптографических средств защиты информации в СУБД SQL Server: метод. указания / М. Л. Глухарев. - СПб.: ПГУПС, 2015. 16 с.
4. Vieira M. Using web security scanners to detect vulnerabilities in web services / M. Vieira, N. Antunes, H. Madeira // Dependable Systems & Networks 2009. DSN'09. IEEE/IFIP Int. Conf. 2009. P. 566-571.
5. WordPress. - URL: https://en.wordpress.com.
6. Wang H. Detecting syn flooding attacks / H Wang, D. Zhang, K. G. Shin // INF0C0M-2002. 21 Annual Joint Conf. IEEE Com-put. and Communications Soc. Proc. IEEE, vol. 3. 2002. P. 15301539.
7. Ertaul L. Implementation of a Web Application for Evaluation of Web Application Security Scanners / L. Ertaul, Y. Mar-tirosyan // Proc. Int. Conf. on Security and Management. - 2012. P. 82-89.
8. Rafique S. Systematic Review of Web Application Security Vulnerabilities Detection Methods / S. Rafique, M. Humayun, Z. Gul et al. // J. Comput. Commun. 2015. Vol. 3. P. 28-40.
9. Karumba M. C. A Hy-brid Algorithm for Detecting Web Based Applications Vulnerabilities / M. C. Karumba, S. Ruhiu, C. A. Moturi // Am. J. Comput. Res. Repository. 2016. Vol. 4 (1). P. 15-20.
10. Singh U. K. Information security assessment by quantifying risk level of network vulnerabilities / U. K. Singh, J. Chancha-la, G. Neha // Int. J. Comput. Appl. 2016. Vol. 156.2. P. 37-44.
Настоящая статья опубликована при поддержке Федеральным государственным бюджетным образовательным учреждением высшего профессионального образования «Петербургский государственный университет путей сообщения Императора Александра I» инициативных научных работ, выполняемых студенческими научными коллективами.
Analysis of Web Services for Vulnerabilities on the Example of Site „XI St. Petersburg Congress 'Professional Education, Science and Innovations in the 21st Century'"
Kuzmenkova E. Yu., Sarkisyan A. R., Kuznetsov D. A., Diasamidze S. V. Emperor Alexander I St. Petersburg State Transport University St. Petersburg, Russia [email protected], [email protected]
Abstract. Article is devoted to questions of safety of web sites on the Internet. The main security risks of the websites and methods of protection against them are considered. As an object of a research of information security the website „The XI St. Petersburg congress 'Professional Education, Science and Innovations in the 21st Century'" working under control of the WordPress system - website content management is considered. The analysis of the website and its source code and the analysis of the database is described, including: validation of setup of index of the website, testing for penetration. For establishment of the protected connection between the server and the user's browser, the SSL certificate of the website is received. The most widespread type of the attack to the database - a SQL injection is considered (implementation in a request of arbitrary SQL code).
Keywords: information protection, information security, database, website development, privacy, WordPress, SQL.
References
1. Kornienko A. A., Eremeev M.A., Kustov V. N., Yakov-lev V. V., Borodulin M. E., Glukharyov M. L., Diasamidze S. V. Information Security and Protection of Information on the Railway Transport [Informatsionnaya bezopasnost' i zashchita informatsii na zheleznodorozhnom transporte]: at 2 pm; ed. A. A. Kornienko. Part 2: Software and Hardware for information Security in Railway Transport [Programmno-apparatnye sredstva obespecheniya informatsionnoy bezopasnosti na zheleznodorozhnom transporte]. Moscow, Training Center for Railway Education, 2014. 447 p.
2. Glukharev M. L., Isaeva M. F. Modern Models, Methods and Tools for Ensuring the Safety of Semantic Databases [Sovre-mennye modeli, metody i sredstva obespecheniya bezopasnosti
semanticheskikh baz dannykh]. Intelligent systems in transport: Proc. 5th Int. Sci. Practical Conf. "IntellektTrans-2015" [Intellektual'nye sistemy na transporte: materialy Vmezhdunaro-dnoy nauchno-prakticheskoy. konferenzii "IntellektTrans-2015"]. St. Petersburg, PGUPS, 2015. Pp. 323-327.
3. Glukharev M. L. Application of Cryptographic information Security Tools in SQL Server. Methodical instructions [Primenenie kriptograficheskikh sredstv zashchity informatsii v SUBD SQL Server: metod. Ukazaniya]. St. Petersburg, PGUPS, 2015. 16 p.
4. Vieira M., Antunes N., Madeira H. Using Web Security Scanners to Detect vulnerabilities in Web Services. Dependable Systems & Networks, DSN'09, IEEE/IFIP Int. Conf., 2009, pp. 566-571.
5. WordPress. Available et: https://en.wordpress.com.
6. Wang H., Zhang D., Shin K. G. Detecting syn Flooding Attacks, INFOCOM-2002. 21 Annual Joint Conf. IEEE Com-put. and Communications Soc. Proc. IEEE, vol. 3, 2002, pp. 1530-1539.
7. Ertaul L., Martirosyan Y. Implementation of a Web Application for Evaluation of Web Application Security Scanners, Proc. Int. Conf. Security and Management, 2012, pp. 82-89.
8. Rafique S., Humayun M., Gul Z., Abbas A., Javed H. Systematic Review of Web Application Security Vulnerabilities Detection Methods, J. Comput. Communications, 2015, vol. 3, pp. 28-40.
9. Karumba M. C., Ruhiu S., Moturi C. A. A Hybrid Algorithm for Detecting Web Based Applications Vulnerabilities, Am. J. Comput. Res. Repository, 2016, vol. 4 (1), pp. 15-20.
10. Singh U. K., Chanchala J., Neha G. Information security assessment by quantifying risk level of network vulnerabilities, Int. J. Comput. Appl., 2016, vol. 156.2, pp. 37-44.