Как защитить сайт от взлома через phpMyAdmin

Как защитить сайт от взлома через phpMyAdmin

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

 

 

1. Описание проблематики

2. Что нужно для проведения успешной атаки на сайт через phpMyAdmin?

3. Как защитить свой сайт от атак через phpMyAdmin?

4. Дополнительная литература

 

Описание проблематики

Большинство владельцев VDS/VPS/DDS почти всегда используют настройки сервера по умолчанию, при этом вовне «смотрит» много лишних скриптов и сервисов, через которые сервер или сайты могут взломать. Показательным примером является инструмент для работы с базой данных phpMyAdmin, который входит в большинство панелей управления хостингом и чрезвычайно популярен среди веб-мастеров. Оставляя открытым доступ к этому инструменту, администратор сервера предоставляет возможность хакеру без особого труда взломать сайт, скомпрометировать данные в БД и закрепиться на скомпрометированом сервере.

Проблема с phpMyAdmin есть не только у владельцев выделенных серверов. Многие веб-мастера, размещающие сайты на виртуальном хостинге, оставляют phpMyAdmin открытым, причем в директориях с известными именами: /pma, /myadmin, /phpmyadmin, /phpMyAdmin. При сканировании сервера боты их с легкостью находят, а хакеры – эксплуатируют.

 

Рисунок 1. Типовое сканирование сайта на наличие открытого phpMyAdmin

Типовое сканирование сайта на наличие открытого phpMyAdmin

 

Чем опасен phpMyAdmin, выставленный вовне? Через скрипты данного инструмента можно:

  • загрузить хакерский шелл (оболочку) и любой другой произвольный файл на сервер;
  • прочитать произвольный файл на сервере;
  • выполнить произвольный код на целевой системе;
  • извлечь или модифицировать данные в базе данных (а для многих CMS, например, vBulletin/IPB/MODx внедрить вредоносный код, бэкдоры и шеллы в шаблоны страниц или плагины).

Публичных уязвимостей в «движке» всегда было достаточно, что подтверждают данные, приведенные на рисунке 2.

 

Рисунок 2. Список публичных уязвимостей phpMyAdmin с 2001 года на cvedetails.com

Список публичных уязвимостей phpMyAdmin с 2001 года на cvedetails.com

 

Что нужно для проведения успешной атаки на сайт через phpMyAdmin?

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

    Вот так в логе веб-сервера выглядит успешная атака на сайт, размещенный на выделенном сервере под управлением ISPManager с открытым доступом к phpMyAdmin:



Рисунок 3. Выдержка из access_logс успешной загрузкой веб-шелла на сайт через phpMyAdmin

Выдержка из access_log с успешной загрузкой веб-шелла на сайт через phpMyAdmin

 

  • Если версия phpMyAdmin “свежая”, для которой не анонсированы публичные уязвимости, то в большинстве случаев для проведения атаки достаточно логина и пароля от базы данных. Узнать эти данные проще, чем кажется:
    • по-прежнему невежественные веб-мастера и владельцы сайта, а порой и админы серверов оставляют открытыми бэкапы сайтов, в которых прописаны логин/пароль в открытом виде,
    • на некоторых виртуальных хостингах можно получить доступ с соседних сайтов к файлам wp-config.php, configuration.php и т.п,
    • доступы можно подсмотреть через эксплуатацию уязвимостей в скриптах CMS и другими способами.

 

Как защитить свой сайт от атак через phpMyAdmin?

Если вам жизненно важно наличие данного инструмента на сайте или хостинге:

  1. обновите его до последней доступной версии;
  2. закройте доступ к директории со скриптами данного «движка» (аутентификация по IP, с помощью серверной авторизации, по кодовому слову). Достаточно разместить .htaccess файл в каталоге phpMyAdmin с кодом

Order Deny,Allow
Deny from All
Allow from 1.2.3.4
Где 1.2.3.4 – это ваш IP

Для информации: у VDS серверов с ISPManager скрипты данного инструмента расположены в каталоге /usr/share/phpMyAdmin.

  1. Убедитесь, что на вашем сайте недоступна копия phpMyAdmin по одному из перечисленных адресов, так как боты сканируют в первую очередь по ним:
  • http://ваш_сайт/phpmy/
  • http://ваш_сайт/phpmyadmin/
  • http://ваш_сайт/phpMy/
  • http://ваш_сайт/_phpmyadmin/
  • http://ваш_сайт/pma/
  • http://ваш_сайт/MyAdmin/
  • http://ваш_сайт/scripts/setup.php
  • http://ваш_сайт/dumper.php
  • http://ваш_сайт/admin/phpmyadmin
  • http://ваш_сайт/admin/pma
  • http://ваш_сайт/dbadmin
  • http://ваш_сайт/mysql-admin
  • http://ваш_сайт/mysqlmanager
  • http://ваш_сайт/mysql
  • http://ваш_сайт/phpadmin
  • http://ваш_сайт/phpmanager
  • http://ваш_сайт/phpmyadmin1
  • http://ваш_сайт/phpmyadmin2
  • http://ваш_сайт/phpMyAdmin-2
  • http://ваш_сайт/php-myadmin
  • http://ваш_сайт/phpmy-admin
  • http://ваш_сайт/pma2005
  • http://ваш_сайт/PMA2005
  • http://ваш_сайт/p/m/a
  • http://ваш_сайт/pma
  • http://ваш_сайт/sqlmanager
  • http://ваш_сайт/sqlweb
  • http://ваш_сайт/typo3/phpmyadmin
  • http://ваш_сайт/webadmin
  • http://ваш_сайт/webdb
  • http://ваш_сайт/web/phpMyAdmin
  • http://ваш_сайт/xampp/phpmyadmin
  • http://ваш_сайт/myadminscripts/setup.php
  • http://ваш_сайт/mysqladmin
  • http://ваш_сайт/php-my-admin
  • http://ваш_сайт/phpmyadmin
  • http://ваш_сайт/websql
  • http://ваш_сайт/myadmin
  • http://ваш_сайт/sql/
  • http://ваш_сайт/mysql/

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

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

 

Дополнительная литература

Для интересующихся веб-мастеров и владельцев сайтов про уязвимости phpMyAdmin приводим дополнительную информацию для изучения:

Anti-Malware Яндекс ДзенПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

RSS: Новые статьи на Anti-Malware.ru