Protégez votre phpMyAdmin

Ce matin (ou plutôt cette nuit), mon site web https://shikiryu.com a subit l'attaque d'un bot cherchant l'adresse de mon phpMyAdmin.
Bien sûr étant en mutualisé, le phpMyAdmin est contrôlé depuis mon hébergeur et donc totalement pas sur mon hébergement direct. Cela dit, rien ne m'empêche de l'installer aussi dans mes dossiers mais bon, l'intérêt est limité alors que le risque est grand.

Analysons un peu un exemple de logs de cette attaque :

Mon 26 Sep 2011 01:05:37

190.136.244.187 a essayé de venir sur : shikiryu.com/sql/myadmin/

User Agent = Mozilla/5.0 (compatible; Googlebot/6.66; +http://www.google.com/bot.html)

Les requêtes sont espacées de moins d'une seconde.
On peut aussi remarqué que pour ne pas prendre de risque (et ne pas être bloqué par des .htaccess refusant tous les bots sauf certains), le user-agent est réglé tel celui de google (qui refuserait l'accès à ce bot hein ? :))

L'adresse IP nous indique que l'attaque provient d'Argentine, mais ça aussi peut-être feint.

Enfin, voici la liste des dossiers scannés (liste non-exhaustive, j'ai un peu trié et retiré les doublons)

  • /sql/myadmin/
  • /sqlmanager/
  • /sqladmin/
  • /SQL/
  • /sl2/data/
  • /roundcube/
  • /qql/
  • /program/
  • /PMA2005/
  • /websql/
  • /pma2005/
  • /web/phpMyAdmin/
  • /PMA/
  • /webdb/
  • /phppma/
  • /webadmin/
  • /phpMyAdmin2/
  • /web/
  • /phpMyAdmin-2/
  • /typo3/phpmyadmin/
  • /phpmyadmin2/
  • /phpmyadmin1/
  • /sql/websql/
  • /phpmy-admin/
  • /php-myadmin/
  • /php-my-admin/
  • /sql/webdb/
  • /phpmya/
  • /phpmy/
  • /sql/webadmin/
  • /phpmanager/
  • /sqlweb/
  • /~/phpmanager/
  • /phpadmin/
  • /~/phpadmin/
  • /sql/sqlweb/
  • /mysql/web/
  • /sql/sqladmin/
  • /mysql/sqlmanager/
  • /mysql/pMA/
  • /mysql/pma/
  • /mysql/mysqlmanager/
  • /mysqlmanager/
  • /sql/sql-admin/
  • /mysql/dbadmin/
  • /mysql/db/
  • /sql/sql/
  • /mysqladminconfig/
  • /sql/phpMyAdmin2/
  • /mysqladmin/
  • /mysql/admin/
  • /mysql-admin/
  • /sql/phpmyadmin2/
  • /MyAdmin/
  • /~/myadmin/
  • /sql/phpMyAdmin/
  • /db/websql/
  • /db/webdb/
  • /sql/phpmy-admin/
  • /db/webadmin/
  • /db/phpMyAdmin2/
  • /sql/php-myadmin/
  • /db/phpMyAdmin-2/
  • /db/phpmyadmin2/
  • /sql/phpmanager/
  • /db/myadmin/
  • /db/dbweb/
  • /db/dbadmin/
  • /db/db-admin/
  • /dbadmin/
  • /db/
  • /database/phpMyAdmin2/
  • /database/phpmyadmin2/
  • /database/phpMyAdmin/
  • /database/phpmyadmin/
  • /database/database/
  • /database/
  • /cpphpmyadmin/
  • /cpdbadmin/
  • /cpanelsql/
  • /cpanelphpmyadmin/
  • /cpanelmysql/
  • /cpadmindb/
  • /cpadmin/
  • /bbs/data/
  • /admin/web/
  • /admin/sysadmin/
  • /admin/sqladmin/
  • /admin/pMA/
  • /admin/pma/
  • /admin/phpMyAdmin/
  • /admin/phpmyadmin/
  • /administrator/web/
  • /administrator/PMA/
  • /administrator/pma/
  • /administrator/phpMyAdmin/
  • /administrator/phpmyadmin/
  • /administrator/db/
  • /admin/db/
  • /administrator/admin/
  • /~/admin/
  • /3rdparty/setup.php
  • /3rdparty/pma2005/
  • /3rdparty/pma/
  • /3rdparty/phpMyAdmin/
  • /3rdparty/myadmin/
  • /3rdparty/dbadmin/
  • /3rdparty/admin/
  • /3rdparty/
  • /mysql/
  • /admin/
  • /myadmin/
  • /pma/
  • /db/phpMyAdmin/
  • /db/phpmyadmin/
  • /PHPMYADMIN/
  • /phpMyAdmin/
  • /phpmyadmin/

Conclusion :

  1. Bien évidemment, éviter tous ces noms de dossier ; mais encore une fois, c'est non exhaustif, soyez réalistes et pragmatiques.
  2. Évitez d'utiliser phpMyAdmin directement sur votre hébergement. Même avec un login/mot de passe, vous n'êtes pas en sécurité (Non, je ne suis pas parano, moins il y a d'entrée sur votre base, plus elle sera en sécurité, CQFD).
  3. Backup, surveillance réseau et logs sont vos amis, ne les ignorez pas, ils peuvent vous sauver la vie (ou au moins votre site)