Entité bachue
Cette entité permet la diffusion des différents codes nécessaires au bon fonctionnement du projet nebule et des projets annexes comme sylabe.
Son identifiant : 19762515dd804577f9fd8c005a7803ddee413f264319748e30aa2aedf318ca57
Son nom vient de Bachué, mère de l’humanité. Elle sortit des eaux du lac Iguaque (Colombie) avec un enfant dans les bras pour peupler le monde.
Son rôle est de diffuser les différents codes du projet nebule ainsi que des projets annexes comme sylabe.
La protection de cette entité se fait sur trois niveaux :
– public
– diffusion
– privé
– développement
Voici le schéma du cheminement des informations autour de l’entité :
Le niveau public permet le partage à grande échelle des liens de l’entité. C’est le serveur web public xue. L’entité est accessible aux adresses http://bachue.nebule.org/ et http://bachue6.nebule.org/.
Ce serveur protégé assez classiquement comme tout serveur sur Internet. Il ne contient cependant aucune donnée sensible et aucune entité ne peut se déverrouiller dessus. La compromission du serveur ne peut être qu’une atteinte à la disponibilité de la diffusion des nouveaux liens, les anciens liens étant naturellement rediffusés par toutes les entités. Il peut être à tout moment reconstruit ailleurs sur Internet, voir être simplement dupliqué en plusieurs endroits.
En cas de perte de disponibilité du serveur, les liens peuvent être diffusés par d’autres entités. La propagation de ces liens sera dans ce cas plus lente mais ce mode de fonctionnement permet d’assurer la diffusion des liens quoi qu’il arrive.
Le niveau de diffusion n’a pas pour vocation à permettre le partage des liens de l’entité, c’est à dire qu’il ne diffuse rien publiquement. Il fait simplement l’interface entre le niveau privé et le niveau public.
Cette fonction d’interface est hébergée sur une machine dédiée. Elle est installée en FreeBSD Release 10.0 sur une vieille machine PowerPC. Elle ne supporte que IPv6 et est protégée de l’Internet par le pare-feu spartacus.
Le disque dur n’est pas encore chiffré. Le système est cependant sommairement offusqué.
Le niveau privé est dédié à la manipulation de l’entité. C’est à ce niveau uniquement que la clé privé de l’entité est disponible, donc que l’on peut déverrouiller l’entité pour signer des liens.
La machine se laquelle est utilisée l’entité est de type PC 64bits et ne supporte aucun réseau. Le système repose sur un disque dur chiffré et sur une clé USB pour démarrer le système. La clé USB contient le mot de passe du disque chiffré. Il existe un système d’offuscation sommaire sur cette machine.
L’entité bachue est sauvegardée sur le système de l’entité puppetmaster. En cas de problème, il est possible de remonter une nouvelle machine hôte.
Le système ainsi lancé échange avec le monde extérieur unique via une clé USB pré-définie. Aucun support amovible n’est monté sur le système lors de l’insertion.
Les mises à jours sont réalisées à la main en cas d’extrême nécessité. Un script est prêt à être lancé à la main au besoin.
L’entité est potentiellement vulnérable puisqu’elle exécute du code pour signer les liens. Ce code peut avoir été compromis sur le poste de développement. L’interface web sylabe ne peut pas modifier les fichiers de la machine autres que les objets et liens. Mais cette interface web pourrait faire d’autres actions comme essayer d’exfiltrer la clé privée. Pour cette raison, c’est sous forme de script bash que les liens sont signés.
A aucun moment la clé privé de l’entité ne doit sortir de son support chiffré.
Le niveau développement permet de travailler facilement sur les différents codes.
Ce poste de développement est assez sensible puisqu’il peut constituer le premier point d’entrée pour une attaque. Le but d’une attaque peut être essayer d’exfiltrer la clé privée de l’hôte en modifiant le code qui lui est transmis. Une autre attaque peut être de tout simplement modifier le code pour retirer à posteriori des mots de passes ou des clés privées d’autres entités.
La mise en place de poste de développement n’est pas encore terminée…