05/11/2009

PCI 11.5 : Deploy file-integrity monitoring software


Rendre sa plate-forme ecommerce PCI DSS compliant avec un logiciel de contrôle d'intégrité ?

C'est l'une des nombreuses contraintes souvent oubliées du PCI DSS : la présence d'un mécanisme de contrôle d'intégrité des fichiers critiques sur les serveurs.

Un tel mécanisme permet d'ajouter un moyen de détection d'intrusion efficace. Si un pirate pénètre le serveur, il y a de fortes chances que ce dernier installe une backdoor ou qu'il modifie le contenu du serveur à ses fins. Par exemple, un pirate pourrait ajouter des entrées dans le fichier host pour rediriger certains flux sortants, ajouter un utilisateur local ou un service caché.

Dans le cas d'un site web ecommerce PCI DSS où les numéros de carte de crédit et le code de vérification CVV des clients sont uniquement présents lors de la phase d'autorisation et immédiatement envoyés à la gateway de paiement, le risque serait que le pirate modifie le code source de l'application pour copier discrètement ces numéros et cela sans nuire au fonctionnement de l'application. Cette attaque logique s'appelle une verrue logicielle et elle peut perdurer longtemps avant que quelqu'un s'en aperçoive.

Évidemment, pour en arriver là, le pirate doit avoir contourné toutes les autres protections imposées par le PCI DSS, mais cela arrive. Il faut aussi considérer le risque provenant d'un informaticien interne à l'entreprise, cela arrive.

Les éditeurs de logiciel ont donc plongé en exploitant cette contrainte comme un argument commercial, avec des logiciels complexes et pleins de fonctionnalités.

Tout d'abord, je trouve cela assez contraire avec le principe de réduction de la complexité d'un système pour le rendre moins vulnérable.

Ensuite, le standard PCI DSS n'impose pas l'achat d'un logiciel commercial particulier, ni d'utiliser une solution off-the-shelf.
Il est tout à fait possible de développer un simple script soi-même et monitorer les fichiers qui vous paraissent réellement sensibles. Je citerai un vrac, le /etc/passwd, la ruche HKML/system/currentcontrolset/services/, le retour de la commande "net users" et surtout les fichiers (ASP, JSP, WAR, PHP) qui produisent les pages et formulaires de paiement.
Un tel script ferait simplement un hash md5 de ces fichiers à un interval régulièr et envoyerait un mail en cas de changement. Idéalement, ce script serait lancé à distance par psexec ou SSH.

Pour ceux qui veulent s'appuyer sur un code plus fiable, faisons le tour des solutions open-source :

TripWire Open Source (http://www.tripwire.org/). Eh oui, commercial, mais pas démoniaque, Tripwire contribue avec un logiciel très proche du moteur commercial et qui maintenu par un ingénieur de Tripwire : Ron Forrester. Compilable sous Linux.

Samhain (http://la-samhna.de/samhain/). Plein de fonctionnalités qui vont au-délà du simple contrôle d'intégrité, Samhain possède des fonctions de HIDS et de logs. Il fonctionne sur tous les UNIX et même Windows avec Cygwin.

Aide (http://www.cs.tut.fi/~rammer/aide.html) : conçu pour égaler Tripwire, fonctionne sous Unix et requière de la configuration fine.

Osiris (http://osiris.shmoo.com/) : Installeur pour Linux et Windows. Architecture 3-tiers.

OSSEC (http://www.ossec.net/) : Tout comme Osiris, OSSEC utilise une architecture 3-tiers : agents, serveur et console. Projet open-source sponsorisé par TrendMicro.

J'avoue ne pas aimer les architectures multi-tiers et préférer Samhain qui permet une installation stand-alone simple.

Tous comme pour les IDS/IPS, les logiciels de contrôles d'intégrité doivent être configurés finement, avec un nombre restreint de règles judicieusement choisies et surtout selon fonctionnement applicatif du serveur. L'installation par défaut d'un tel logiciel ne sert à rien et génèrera que des faux-positifs.

Aucun commentaire:

Enregistrer un commentaire