Piwik infecté par un trojan

Bonjour,

J’étais sur les stats d’un site, en voulant revenir à l’index j’ai eu ce message d’erreur :


There is an error. Please report the message (Piwik 2.0.3) and full backtrace in the Piwik forums (please do a Search first as it might have been reported already!).

Warning: array_replace_recursive() [function.array-replace-recursive]: Argument #2 is not an array in /home/buzi/www/piwik/core/Translate.php on line 91

Backtrace -->

#0 Piwik\Error::errorHandler(...) called at [:]
#1 array_replace_recursive(...) called at [/home/buzi/www/piwik/core/Translate.php:91]
#2 Piwik\Translate::mergeTranslationArray(...) called at [/home/buzi/www/piwik/core/Translate.php:80]
#3 Piwik\Translate::loadCoreTranslationFile(...) called at [/home/buzi/www/piwik/core/Translate.php:36]
#4 Piwik\Translate::loadEnglishTranslation(...) called at [/home/buzi/www/piwik/core/FrontController.php:325]
#5 Piwik\FrontController->init(...) called at [/home/buzi/www/piwik/index.php:61]

There is an error. Please report the message (Piwik 2.0.3) and full backtrace in the Piwik forums (please do a Search first as it might have been reported already!).

Warning: array_replace_recursive() [function.array-replace-recursive]: Argument #2 is not an array in /home/buzi/www/piwik/core/Translate.php on line 91

Backtrace -->

#0 Piwik\Error::errorHandler(...) called at [:]
#1 array_replace_recursive(...) called at [/home/buzi/www/piwik/core/Translate.php:91]
#2 Piwik\Translate::mergeTranslationArray(...) called at [/home/buzi/www/piwik/core/Translate.php:80]
#3 Piwik\Translate::loadCoreTranslationFile(...) called at [/home/buzi/www/piwik/core/Translate.php:36]
#4 Piwik\Translate::loadEnglishTranslation(...) called at [/home/buzi/www/piwik/core/Translate.php:50]
#5 Piwik\Translate::reloadLanguage(...) called at [/home/buzi/www/piwik/core/FrontController.php:417]
#6 Piwik\FrontController->init(...) called at [/home/buzi/www/piwik/index.php:61]

 There is an error. Please report the message (Piwik 2.0.3) and full backtrace in the Piwik forums (please do a Search first as it might have been reported already!).

Warning: array_replace_recursive() [function.array-replace-recursive]: Argument #2 is not an array in /home/buzi/www/piwik/core/Translate.php on line 91

Backtrace -->

#0 Piwik\Error::errorHandler(...) called at [:]
#1 array_replace_recursive(...) called at [/home/buzi/www/piwik/core/Translate.php:91]
#2 Piwik\Translate::mergeTranslationArray(...) called at [/home/buzi/www/piwik/core/Translate.php:80]
#3 Piwik\Translate::loadCoreTranslationFile(...) called at [/home/buzi/www/piwik/core/Translate.php:69]
#4 Piwik\Translate::loadCoreTranslation(...) called at [/home/buzi/www/piwik/core/Translate.php:51]
#5 Piwik\Translate::reloadLanguage(...) called at [/home/buzi/www/piwik/core/FrontController.php:417]
#6 Piwik\FrontController->init(...) called at [/home/buzi/www/piwik/index.php:61]


There is an error. Please report the message (Piwik 2.0.3) and full backtrace in the Piwik forums (please do a Search first as it might have been reported already!).

Warning: Cannot modify header information - headers already sent by (output started at /home/buzi/www/piwik/core/Log.php:455) in /home/buzi/www/piwik/core/Plugin/Controller.php on line 724

Backtrace -->

#0 Piwik\Error::errorHandler(...) called at [:]
#1 header(...) called at [/home/buzi/www/piwik/core/Plugin/Controller.php:724]
#2 Piwik\Plugin\Controller->redirectToIndex(...) called at [/home/buzi/www/piwik/plugins/CoreHome/Controller.php:57]
#3 Piwik\Plugins\CoreHome\Controller->redirectToCoreHomeIndex(...) called at [:]
#4 call_user_func_array(...) called at [/home/buzi/www/piwik/core/FrontController.php:117]
#5 Piwik\FrontController->dispatch(...) called at [/home/buzi/www/piwik/index.php:62]

Merci d’avance de votre aide, là je n’y comprends rien.

Pouvez vous ZIPPER le repertoire piwik/lang et m’envoyer le zip ?

Pour reparer le probleme ensuite, applique ce patch pour corriger le probleme Trying to fix bug · matomo-org/matomo@c3de64c · GitHub

C’est bien ce que je pensais. Quand j’ai ouvert le répertoire sur le ftp et que j’ai vu la date de dernière modification des fichiers json j’ai pensé à une infection.

En transférant le répertoire sur le pc, l’antivirus m’as tout de suite mis en quarantaine tous ses fichiers.

Piwik a manifestement été attaqué avec réussite.

Que faire ?

Edit :

J’ai commencé à auditer le site attaqué. Tous les fichiers JS du site ont été modifié le 16/01/2014 à12h40, même en dehors de ceux de piwik.
Je ne sais pas encore si le serveur a été touché en dehors de l’hébergement de ce site, je vérifierais plus tard.

Les fichiers modifiés :
Tous les fichiers .json présents dans le répertoire www où est installé piwik, même si il n’appartient pas à piwik.
Le premier autre site du serveur que j’ai testé et qui est audité par piwik n’a manifestement pas été modifié.

Vu la découverte de l’infection j’ai modifié le nom du sujet.

Un utilisateur a eu le meme probleme sur un autre post. C’etait du a un logiciel installe sur le meme serveur que Piwik. Vous utilisez peut etre un wordpress ou phpbb ou autre, qui a ete infecte aussi ? A notre connaissance il n’y a pas de virus pour Piwik. Nous aimerions avoir plus d’infos et votre confirmation que l’infection vient d’un autre software.

J’ai peur de ne pas pouvoir confirmer. Sur l’hebergement où piwik est installé il n’y a qu’un site avec codage maison. Le seul logiciel opensource sur l’hebergement est piwik.
Les fichiers JS que j’ai vu également infectés en dehors de piwik l’ont été après piwik. Je vais quand même tenter de trouver des traces dans les logs serveurs mais je suis pas un expert en infogérance de serveur.

Si vous avez des pistes je suis preneur. Il s’agit d’une release 2 d’ovh sur un serveur dédié.

Il faudrait regarder le fichier “access.log” d’apache. Ensuite essayer de trouver l’IP qui a contamine le serveur.

Ensuite une fois cette IP trouvee, voir quelles etaient les premieres requetes jusqu’a l’infiltration.

Si vous n’etes pas sur merci de m’envoyer l’URL vers le “access.log” complet je peux regarder!

Je ne trouve pas de fichier access.log. J’ai trouvé un fichier log pour l’hebergement concerné qui est buzi-access_log mais il n’aide pas. Le seul accès à un fichier piwik dans cette tranche horaire est une requête faites par un site audité vers le fichier piwik.js

Votre serveur a ete hacke, si vous ne trouvez pas la cause le hackeur a toujours access. Pouvez vous envoyer le plus d’infos possibles par email ? je voudrais m’assurer que ce n’est pas piwik…

Quels sont les infos que vous voulez ?

Le log complet de access logs des dernieres jours / semaines, depuis que les fichiers ont ete edites.

Quels autres logiciels sont sur le meme serveur?

Il n’y a qu’un site à codage maison en php avec un formulaire envoyant un email et Crawltrack. Et piwik bien entendu. Je vais regarder pour extraire ses fichiers du serveur.

Peut etre crawltrack a un bug de securite ?

J’en doute. crawltrack n’utilise pas javascript. Le tag inséré dans les sites audités est du pur PHP donc indétéctable de l’extérieur.

Donc :

  1. Comment le malware aurait détecté crawltrack pour l’attaquer ensuite
  2. Dans quel but ? Il n’utilise pas javascript et le trojan n’a modifié que les fichiers JS

Le fait que le trojan infecte les fichiers javascript indique seulement le mode d’operation du trojan. Pour infecter ces fichiers JS le trojan a access au webserver et au PHP.

Réinfection ce matin de l’installation de piwik alors qu’il n’y a aucun autre logiciel opensource sur le serveur.

Que faire ?

  • desinstallez COMPLETEMENT tous les autres logiciels (y compris Piwik !)

  • installer Piwik 2.1 RC: 301 Moved Permanently

ensuite si le probleme re-apparait alors nous saurons que cela vient de piwik (mais soyez sur de tout supprimer tous les fichiers d’abord)

Il n’y a aucun autre logiciel sur cet hebergement. Ils ont été supprimé à la première infection. Je viens d’installer piwik en version 2.1. Il ne reste plus qu’à attendre en éspérant attendre pour rien je dirais.