Answers I gave for an article about the impacts of Heartbleed

Credits: Codenomicon

Last spring, I had been invited to answer questions for an article about Heartbleed. It was an invitation extended by my friends at SaltStack. Since I use extensively automated deployment techniques with Salt Stack, they thought i’d have things to say.

I accepted to answer the questions on my personal time as the DevOps lead of, rather than directly as a W3C team member. And that, even though I had big help from my manager, Doug Schepers, and a few colleagues from the team. Their help was much useful to review and add stats to my arguments.

The article has been published on’s Tech Page One blog but only quotes a few pieces of my original contribution. Here is the full answers I gave to the questions.

What made Heartbleed such a tremendous threat?

It hit more than the epicenter of our whole Internet infrastructure, it proven true every sysadmin worst nightmare and on top of that, it impacted everybody.

OpenSSL is so widely used (estimated 2/3 of the web) that many organizations were impacted. This vulnerability has been introduced as a programming mistake for about 2 years. What gives the chills is that since the person who is exploiting the fail do not need to be the “man in the middle” nor need to gain terminal access to the servers, there are no traces left behind. We therefore had no idea how much it was used and by who.

It’s important to remember that the attacker couldn’t know what data he would get either, or if he would get anything interesting at all. And if the “good guys” didn’t know about heartbleed for so long, probably not many “bad guys” did, either.

In consequence, the world had to make a major effort to update a lot of software and people to replace many passwords, but the major impact is probably more psychological: we don’t know what was stolen and we don’t know if there is another “heartbleed” hidden in our servers.

On the bright side, the old advice we give to end users: change your password often, is still valid. This was a nuisance, for sure, but at least heartbleed didn’t change anything there.

Is there anything about the current computing landscape that made the threat greater than it might have been in the past?

The time it takes to gather infrormation through such vulnerability and the set of tools available today has increased dramatically. Ther are network port scanners, for instance, that can report with high 90-percent accuracy in less than 10 minutes.

When attackers gets insight of a vulnerability, its not hard to get the information they are searching for. In the case of heartbleed, it was as simple as searching for machines listening on TCP port 443 and keep a
list of servers using a given version of OpenSSL that is known to have the mistake. Not something hard to do at all for the attackers.

Todays’ computing landscape has better tools, but so the tools to crack them. A better solution is to strenghten the infrastructure and educate end users. Otherwise, the chain will remain as strong as its weakest link.

If there is a thing that our society should do more is to continue teaching sane privacy techniques such as strong and varied passwords.

Hopefully we’ll get to a point where companies would rely on “harder to gain” information than you mother maiden name or your date of birth.

What were the most important things that companies needed to do in the face of Heartbleed?

Companies that doesn’t maintain adequate server management techniques and tools had a lot of (manual) things to do.

The priority was to upgrade to the patched version all affected parts of the infrastructure, ensure that all system that stores passwords gets new passwords as soon as possible.

Of course, the issue had to be fixed as quickly as possible, and without interrupting the services… or belating deliverables that they were already working on.

Therefore, one of the most appreciated thing a system admin has is a way to manage his fleed of servers remotely. In the old days, we only had SSH —hopefully that one doesn’t have its own “heartbleed” problem too— but we now have tools to execute remotely such as Ansible and Salt stack that can help us quickly get the an accurate picture of the whole infrastructure.

Could a Heartbleed-level/style hack happen again?

Before heartbleed, I was an optimistic person. Besides giving chills to everybody, what heartbleed did is a loud “wake up” call.

It is only a matter of time before we learn something else to arise. Computer security is still based on “hard enough to crack” secrets and an accepted set of annoyances. This is where education and better automation tools are of great help. It’d ease the justification of existence, maintenance, and deployment of such measures to everybody.

How can companies best protect themselves and their customers moving forward?

Education, and automation; in that order. Its better to have a good answer —ideally quickly— than a quick wrong answer.

I hope to see training about security practices more often. Its not the lack of training that is the problem, but the people to take time to learn the techniques. Organizations such as the OWASP, —a group who teaches common security mistakes to web developers— is educating security vulnerabilities.

There are dozens of other potential oops. One of the most common type of security breach is what we call “SQL injection”. That’s yet another programming mistake that sends user input directly to the database server without filtering.


In the case of Heartbleed, it was a similar kind of programming error. A way to achieve peace of mind includes among others; Testing, proof techniques, “sandboxing” (protected memory), making software Open Source all helps to catch those errors.

While its still a hard problem to find the errors in all that code, using those techniques has the merit to have more than a limited set of eyes on the code.

But all security can be completely overcome by a small human mistake answering private information to the wrong person. Education about how to validate and detect the real collaborator to the potential thief is another challenge in itself.

Many people are talking about it for ages. The recent events makes their teachings more relevant than ever.


Heartbleed graphic: Codenomicon
Comic strip: XKCD #327

Créer un tunnel SSH inverse pour pouvoir supporter à distance un ami utilisant Linux

Avez-vous déjà voulu accéder a votre ordinateur Unix/Linux/MacOS d’un ami, chez ou ailleurs, et que vous avez besoin de l’aider a distance?   En tant qu’utilisateur de Linux, si vous aider quelqu’un d’autre qui n’Est pas habitué, il peut vouloir votre aide. Cette procédure peut vous aider a l’aider, a distance.

Ça vient de m’arriver. Je vais vous montrer comment j’ai fait.

Ce que j’ai utilisé:

  1. Une machine avec OpenSSH que chaque personne à accès (une instance Amazon EC2?)
  2. Créer un nouvel utilisateur temporaire pour la personne a aider
  3. Ordinateur a réparer roulant Linux/Unix/MacOS/Cygwin (qui a OpenSSH serveur et client)

Ce que j’avait fait avec, en plus de cette procédure, c’est un script RC qui créait une connection permanente, avec une connection SSH qui ne requiert pas de mot de passe.

L’idée étaait que peu importe le lieu ou mon ami se trouve, dès qu’il/elle a un lien à Internet, j’ai accès a son ordinateur portable.

Ma procédure décrit comment créer un lien entre ces deux machines.

Continue reading “Créer un tunnel SSH inverse pour pouvoir supporter à distance un ami utilisant Linux”

Procédure pour créer un serveur FTP sécurisé SSL forcé avec usager virtuels sous Ubuntu Linux avec vsFTPd

Je ne sais pas si vous êtes comme moi mais je n’aime pas laisser non crypté l’accès a un service qui me demande un mot de passe. Je devait monter un serveur cette semaine qui doit avoir les accès FTP.

J’ai pris l’initiative de sécuriser la machine avec du SSL car je crois qu’aujourd’hui c’est notre devoir de faire ce genre de chose. Ce n’est pas la première fois que je configure un serveur FTP over SSL mais je n’avait jamais pris de notes vraiment à ce jour. Je l’ai fait cette fois-ci!

Ce que cette procédure fait…

  1. Pouvoir créer des comptes FTP sans avoir a créer un utilisateur local (donc pas accès shell (SSH)).
  2. Permet les connections FTP over SSL de façon EXPLICITE sur un port non standard  (cet exemple utilisera le port 6123)
  3. Ne permet pas d’utilisateur ni de connexions anonymes
  4. Bannit les hôtes qui tentent de se connecter (LOGIN FAILED) via fail2ban
  5. Utilise le system PAM interne pour l’authentification
  6. Ne requiert pas d’usager local (pas de risque de tentative de connection SSH, usager séparés)
  7. Le serveur FTP roule sur son propre usager

Continue reading “Procédure pour créer un serveur FTP sécurisé SSL forcé avec usager virtuels sous Ubuntu Linux avec vsFTPd”

Comment dire à Apache le mime-type d’un document Office 2007

J’ai entendu parler de certains Problèmes avec les documents .docx qui son considérés comme étant des fichiers zip. J’ai pensé partager avec vous comment j’ai réparé la situation.

Il est possible que le serveur apache ne considère pas les fichiers doc sur le serveur comme étant des fichiers office. Normalement un navigateur téléchargera le fichier et ouvrira avec le programme qu’il considère comme étant le bon.

A moins que l’ordinateur du visiteur ait pas de bonne association de fichier, dans ce cas, on peut rien y faire.

Pour aider, on peut annoncer au serveur web les associations MIME.

Le problème avec cette méthode qui ne sert presque a rien, c’est que ça ne changera rien si

  1. Le visiteur n’a pas de bonne association sur son système d’exploitation
  2. Le visiteur n’a pas Microsoft Office 2007 ou Open Office

Continue reading “Comment dire à Apache le mime-type d’un document Office 2007”

Une VM Linux qui sert au développement PHP 5.3 avec Eclipse – partie II

Ce billet est le deuxième d’une série d’articles décrivant la fabrication d’une Machine Virtuelle (VM) de développement pour une équipe de dévelopeurs.

Ce billet expliquera comment j’installe un système Linux que je considère de base pour une infrastructure d’hébergement applicatif. Je ne couvrirai pas les configurations plus avancés pour améliorer la sécurité. Je risque de le faire plus tard.
Continue reading “Une VM Linux qui sert au développement PHP 5.3 avec Eclipse – partie II”

Un firewall simple sous Linux avec «Ferm»

Attention: Article Technique!

Dans le but de faire profiter la postérité et ma mémoire personnelle voici mon premier post d’une série d’articles spécialisée sur Linux.

Ces articles proviennent de ma voûte documentaire professionnelle et personnelle.

Évidemment pour les publier ici je dois censurer les détails sensibles, vous me comprendrez (!)

Le fait de les avoir dans le format Wiki Markup de Confluence… et les traduire ici demande du temps pour les reformatter pour mon blogue.

D’autres articles spécialisés Debian Linux

D’autres articles technique (pour Debian Linux) seront aussi disponibles dans les prochaines semaines.

Voici une liste de quelques uns que je compte publier:

  1. Monter une machine en SNMP v2c en lecture seule
  2. Permettre des updates aux serveurs NTP a l’heure
  3. Installer VMware server 2 sur Debian
  4. Augumenter le niveau de sécurité pour Infra Publique sous Debian
  5. Procédure configuration SYSLOG-NG vers un serveur de log


Continue reading “Un firewall simple sous Linux avec «Ferm»”

Faire son inventaire personnel avec

Faire son inventaire personnel est une tâche qu’on remet très aisément de coté.

Pourtant faire son inventaire peut s’avérer plaisant. Avec tout les services web 2.0 qui existent aujourd’hui, pourquoi ne pas faire pareil avec ce type d’activité important mais qu’on remet toujours à demain?

Personnellement, j’ai jamais pensé à faire cette activité.

Avec Namminik, j’ai rapidement pris plaisir
J’ai un très bon ami qui a fait son inventaire avec son appareil numérique
Mon collègue Félix Martineau

Créer un tunnel SSH avec session distante en Console VMWare

Il existe plusieurs page de how-to’s pour se connecter a une application a distance. Mais j’ai envie de mettre pour mes propres archives.

Ce billet prend en considérations que…

  • Vous voulez vous connecter a un service précis (disons VMWare Server Console)
  • Sur une machine parmi un réseau de X ordinateurs
  • Le gateway (routeur) relie toutes les connections vers un host en Linux (proxysrv) qui sert a s’authentifier et accéder au reste du réseau.
  • Le serveur sur le réseau qui héberge des machines virtuelles avec VMWare Server (vmserver1).
  • Le port 902 (le port TCP que vous voulez utiliser) sur le firewall interne (de vmserver1) est ouvert. Et
  • Vous voulez vous connecter a un de ses VM.

Mise à jour

Ce billet a été écrit originalement en 2007. À l’époque il n’existait pas de VMware ESXi, ni de VMware Server 2. Les concepts sont toujours bons par contre.

Continue reading “Créer un tunnel SSH avec session distante en Console VMWare”

Lorsque gérer un réseau peut rimer avec vigilance plutôt que réparation

Les collègues qui travaillent avec moi pour le réseau savent ce que qu’implique chaque modification dans le réseau. Nous travaillons pour remonter le réseau et atteindre un certain niveau côté qualité qui rendra notre travail plus facile pour tous.

Parmi ces améliorations, il s’agit d’un moyen de savoir si tout est correct et être averti si un changement à été opéré et même savoir “où est le bobo”.

Il s’agit du service de monitoring avec Nagios. Il ne s’agit ici pas d’un howo-to technique mais plutôt ma “review” de ce que l’installation que j’ai monté peut faire.

Continue reading “Lorsque gérer un réseau peut rimer avec vigilance plutôt que réparation”