Blog

Retour sur la dernière faille de sécurité majeure drupal (SA-CORE-2019-003)

slybud
28/02/2019
Retour d'expérience sur la dernière faille de sécurité du core Drupal et comment nous avons géré cela sur les sites que nous maintenons en TMA chez Axess Open Web Services
Drupal Security Alert

Vous l'avez sans doute remarqué, cela fait maintenant deux ans que les failles de sécurité majeures se multiplient sur le core de notre CMS/CMS favori (Drupal pour ceux.elles qui se seraient vraiment perdu.e.s et seraient arrivé.e.s sur ce billet de blog en tapant "croisement cochon d'inde licorne"). Deux manières de voir les choses :

  • Drupal est un CMS peu fiable et les failles de sécurité sont légion, c'est peu rassurant
  • Drupal, en tant que logiciel (libre ou non), est un ensemble de lignes de code exposé comme les autres et il faut souligner la maturité de cette outil dans la gestion de sa politique de sécurité avec une équipe dédiée à la sécurité et des process clairs.

Devinez quel point de vue nous avons adopté à AOWS ? ;-)

Il m'a semblé intéressant de vous raconter comment se passe une mise à jour de sécurité critiques pour les sites dont nous assurons la TMA (plusieurs dizaines, la plupart très sensibles), et quels process nous avons mis en place au fur et à mesure des années pour gérer sans encombre ces événements.

Pour résumer :

  • Nos architectes et chefs de projet techniques suivent de près les publications de la security team et les annonces de sécurité
  • Une faille de sécurité majeure, telle que celle du 20/02/2019, est annoncée quelques jours auparavant par la security team drupal
  • A ce moment, l'annonce est analysée par nos architectes techniques afin d'évaluer au mieux les risques
  • En parallèle, notre directeur d'activité recense les membres de l'équipe qui pourront être présents le jour J, à l'heure dite, sur la base du volontariat/en fonction des contraintes de chacun
  • La liste des sites que nous maintenons est vérifiée en amont et les mises à jour sont réparties entre les forces qui seront présentes le jour J
  • Les clients sont prévenus (Mail et/ou interface de tickets Redmine) de la future mise à jour, et éventuellement leurs hébergeurs si nous ne pouvons pas déployer nous même
  • Les pizzas et autres nourritures à forte teneur en calories techniques sont commandées
  • L'équipe attend fébrilement la sortie de la faille et du/des patch(es)
  • Ces éléments sont analysés par nos architectes techniques dés leur sortie
  • Un plan est établi en fonction des typologies de sites impactés et des priorités et les mises à jour + déploiement commencent
  • La check-list est vérifiée
  • Tout le monde peut reprendre une activité normale et dormir sur ses deux oreilles

Je ne vous ai pas parlé ici de la coopération renforcée avec les administrateurs systèmes qui dans certains cas nous permettent de court-circuiter pas mal d'étapes pour tous les sites hébergés par nos soins, en concoctant un script magique qui recherche toutes les instances drupal sur un serveur et les patche ensuite dans la foulée. Tout cela est déployé en un clic avec notre système d'orchestration Saltstack : c'est le pouvoir et la magie noire du DevOps !!

Si vous souhaitez nous confier votre projet de Site Internet et/ou de TMA drupal pour bénéficier de tous ces process, n'hésitez pas à nous contacter !

 

Retour sur le DrupalCamp Paris 2019

Nono
21/02/2019
Les 15/16/17 février 2019 s’est déroulé le Drupal Camp Paris et l’ équipe AOWS était bien sur de la partie.
Photo de la Tour Eiffel au coucher du soleil

Les 15/16/17 février 2019 s’est déroulé le Drupal Camp Paris et l’ équipe AOWS était bien sur de la partie.

Bien que certains dans l'équipe aient arrêté de compter le nombre de DrupalCamps auxquels ils ont participé, c'était pour moi le 1er (après une petite Drupal Europe à Darmstadt).

Un DrupalCamp, c’est l’occasion de voir où en est l’état de l’art dans la communauté, et j’ai pu assister à 5 présentations business (dont deux des nôtres),

Les projets présentés représentent assez bien le coeur de cible de Drupal, à savoir :

  • des projets ambitieux,
  • avec des processus métiers complexes, nécessitant des adaptations custom.
  • souvent multisites, et/ou multilingues.

Et en la matière, nous n'avons pas à rougir des dernières réalisations que nous avons pu sortir .

Et c’est bien sûr l’occasion de pouvoir assister à des conférences s’adressant aux développeurs, et d’apprendre énormément. Pour les curieux qui seraient intéressés par un bref résumé des conférences, un framapad de prises de notes collaboratives existe : https://paris2019.drupal.fr/programme/prise-de-notes-collaboratives

Je recommande d’ailleurs la lecture du compte rendu de deux présentations pour ceux qui sont comme moi en train de progresser dans Drupal :

  • Audit de sécurité d'un site Drupal
  • Drupal 8 - Best practices

Mais s’il ne devait en rester qu’une, LA présentation que je retiendrai c’est celle de Floris Moriceau

https://paris2019.drupal.fr/programme/sessions/economiser-du-temps-dintegration-dans-vos-projets-drupal

Une histoire tragique d’intégration d’un site drupal qui tourne mal, inspiré de faits réels.

  • Des maquettes construites sous photoshop et pas du tout conçues pour être responsives (colonnage plus qu'hasardeux).
  • Maquettes qui seront ensuite validées par le client, sans que l’équipe technique n'ait son mot à dire.
  • Et en plus qui seront validées, alors que le périmètre fonctionnel (ce qui sera développé) sera différent (X features en moins).
  • L'UX designeur n'a aucune connaissance des contraintes technique du CMS. Parmi les nombreuses conséquences que cela va engendrer, il y a notamment la prise en compte du principe des "régions" d'un thème, et suivant l'affichage mobile ou desktop, d'essayer d'afficher les informations aux même endroits (un block en sidebar, qui se retrouverait dans le header par exemple).
  • En plus d'être affichées dans des endroits différents, les informations en mobile sont différentes de celles en desktop, sans raison particulière.
  • Et les maquettes pour mobiles arriveront quand on est déjà en train de faire l'intégration. Bref le site est "mobile-last".
  • Des créa de pages de contenu avec un lorem ipsum qui ne dépasse jamais.
  • Les fonts, sur psd chargées en 6 variantes, en vrai c'est pas terrible.
  • Un thème de base  bien connu est choisi sans que le themeur ait son mot à dire (par exemple le tristement célèbre thème boostrap drupal). Thème de base qui sera très difficile à surcharger et rallongera considérablement le temps d'intégration, plutôt que de partir ex-nihilo.
  • Les maquettes en psd sont ensuite recréées directement en page html/css. Et c'est aux devs à faire rentrer ensuite le "vrai" site dans l'intégration. D'après Floris, c'est à minima rallonger le temps d'intégration par 1.5. D'après moi, et pour l'avoir vécu, c'est plutôt multiplié par 3.
  • Le multilingue => Pas de maquettes en plusieurs langues. Alors que certaines polices d’écriture n'ont pas des caractères spéciaux, que certaines langues sont plus verbeuses et peuvent casser la navigation. Et que certaines langues se lisent de droite à gauche. Vous vous rendrez compte de tout ceci pendant la recette évidemment.
  • En pleine recette avant livraison, un audit SEO met en évidence une hiérarchie de titrage calamiteuse (conditionnelle suivant les pages, et incohérente en général). Mais le site est déjà developpé et intégré, et la charge prévue a depuis longtemps été dépassée.
  • Afin de répondre aux diverses contraintes évoqués plus haut, vous avez (ab)user de hooks, de preprocess, de scripts JS custom, etc. C'est un peu comme faire de la chirurgie (pas très) esthétique et de découper une personne pour la faire rentrer dans une taille donnée d'habits.
  • La conséquence directe de ce découpage bizarroïde, c'est que le site est devenu lent.

J’abonde en tout cas dans le sens de la conclusion :

"Il faut qu’il y ai un échange permanent entre le designer et le themer Drupal AVANT la validation des maquettes par le client. Cela n'empêchera en rien à ce que les maquettes vendent du rêve, de l'émotion, de racontez une user story dynamique et authentique , etc."

Et ca tombe bien, cette année nous allons ouvrir le recrutement pour un thémeur et un UX designer, afin d’internaliser ces compétences et d’avoir une meilleure synergie avec les « devs ».

Drupalcamp 2019 à Paris

piotre
05/02/2019
Les 15, 16 et 17 février 2019 aura lieu le Drupalcamp 2019 à Paris. Axess Open Web Services, partenaire de l’évènement, vous donne rendez-vous !
Drupalcamp 2019 Paris

Le 10éme Drupalcamp

Pour cette 10éme édition, le Drupalcamp se tiendra à l’espace Saint-Martin à Paris 3éme du 15 au 17 février 2019.

Ouvert à tous, le Drupalcamp est l’occasion pour la communauté Drupal de se retrouver pour échanger, apprendre et partager leurs connaissances autour du logiciel Open Source Drupal.

Au programme de ce Drupalcamp 2019 :
» Des retours d’expériences d’entreprises utilisatrices de Drupal.
» Des conférences autour de thématiques nouvelles données par des membres de la communauté Drupal et des professionnels reconnus.
»Des sessions de découverte pendant lesquels des démonstrations seront données à destination d’un public plus novice.

Axess Open Web Services partenaire de l’évènement

Actif au sein de la communauté Drupal depuis 2001 et expert en développement Open Source sous Drupal, Axess Open Web Servicessera présent au Drupalcamp 2019 en tant que partenaire.

Cet évènement sera l’occasion pour nos experts d’échanger avec la communauté autour des pratiques et nouveautés de Drupal et d’enrichir leur expertise.

Nous vous donnons rendez-vous !

https://paris2019.drupal.fr/

Axess Groupe poursuit son développement avec la reprise de OWS / OWNS

slybud
07/09/2018
Axess Groupe, Entreprise du Numérique (EDN) expert dans la transformation digitale orienté métier annonce la reprise de Open Web Solutions (OWS) - acteur de référence du développement et de l’hébergement de sites internet sous le système de gestion de contenu Open Source Drupal.
Logo Axess Groupe

Axess Groupe, Entreprise du Numérique (EDN) expert dans la transformation digitale orienté métier annonce la reprise de Open Web Solutions (OWS) - acteur de référence du développement et de l’hébergement de sites internet sous le système de gestion de contenu Open Source Drupal.

En effet, dès juillet 2018, OWS et sa filiale Open Web Network Solution (OWNS), en charge de l’activité Hébergement, intègrent Axess Groupe, le fournisseur de services, de solutions logicielles et d’infrastructures pour les systèmes d’information et de communication des entreprises et des administrations. Acteur du numérique, Axess Groupe est une référence sur plusieurs marchés verticaux tels que : la santé au travail, l’éducation, la dématérialisation, les centres de formation, le PLM ou encore la distribution automobile.

« Avec la forte croissance de nos activités sur les derniers exercices, nous étions à la recherche d’un partenaire qui nous permette d’accélérer notre développement, sur nos compétences et marchés historiques, mais aussi sur des activités de services complémentaires. La stratégie et les valeurs d’Axess Groupe nous ont permis d’envisager avec enthousiasme la construction commune de ce nouveau projet » indique, Sylvain Moreau, OWS.

Avec cette acquisition, Axess Groupe poursuit le déploiement de son plan stratégique 2023, renforce son Pôle Services à valeur ajoutée et consolide sa présence en Ile-de-France. Axess Groupe compte dorénavant 235 collaborateurs pour un chiffre d‘affaires en 2018 de 22 millions d’euros.

« L’objectif de cette opération est d’accompagner nos clients dans leurs projets de transformation digitale à travers des prestations globales : logiciels métiers, infrastructures numériques et cloud, développement web, ingénierie logicielle, formation, conseil etc… L’activité d’hébergement de OWNS va aussi nous permettre de développer de fortes synergies entre nos clients actuels et ceux de OWS. Nous nous réjouissons d’accueillir les nouvelles équipes au sein de notre Groupe et je suis totalement convaincu que ce rapprochement sera bénéfique pour tous les clients qui nous rejoignent. », déclare Gilles Tréhiou, Président d’Axess Groupe.

 

A propos de Axess Groupe :

Axess Groupe est une Entreprise Du Numérique (EDN) créée en 2003 et spécialisée dans la transformation digitale des entreprises. Axess est organisé en 3 pôles : Services à valeur ajoutée (Ingénierie logicielle, Web, Conseil pour la transformation Digitale, Formation), Edition logicielle (Santé au Travail, PLM, Education, Formation, Dématérialisation), Gestionnaire d’infrastructure numérique et Hébergeur Cloud Computing. Le Groupe compte 250 collaborateurs pour un chiffre d‘affaires de plus de 23M€ en 2018 avec une présence nationale à travers 7 agences, le siège social étant basé à Valence. (Drôme)

Pour en savoir plus : www.axess.fr

#ckoitaconfig : le directeur commercial

slybud
17/07/2018
Petit aperçu des outils utilisés au quotidien par le Directeur Commercial à OWS
T-Shirt Vim

Pour démarrer notre série de billets de blog destinée à partager le quotidien de l'équipe en rentrant dans son intimité du poste de travail, on va commencer light avec le Directeur Commercial.

Le principe est le même pour tout le monde : des questions simples et des réponse argumentées de "Pourquoi j'ai choisi cet outil ?". Allez c'est parti !

Ton OS ?

 Kubuntu, dans sa dernière LTS sur mon desktop, Windows 10 sur mon laptop.

Ton navigateur web quotidien ?

Firefox, partout,  depuis toujours, j'ai même tenu bon le temps qu'ils refassent le moteur javascript

Ton client mail ?

Thunderbird, partout, depuis toujours

Tes outils d'organisation ?

Google Calendar pour les events et les TODO

Ton shell préféré ?

Zsh bien sûr

Ton IDE ?

vim me suffit pour les restes que j'ai :)

Ta config/ton setup de dev locale ?

Tour à l'ancienne : Apache/mysql/PHP configurés à la mano dans des fichiers texte

Ta manière de faire des requêtes SQL ?

CA fait longtemps que je n'en fais plus, mais sans phpMyAdmin, je suis perdu :)

Tes outils bureautiques ?

Alors pour les tableaurs j'utilise Libre Office Calc, sinon j'avoue utiliser la suite Office pour les docs et les prezs. Sur mon Desktop, je fais tourner çà dans un VM Windows 7 sour VirtualBox

Tes outils de debug ?

F12 ;-) et Firefox screenshots pour les screenshots

Les réseaux sociaux sur lesquels tu es ?

Twitter pour la veille techno, Instagram pour en prendre plein les mirettes, Pinterest pour les inspirations.

Pour finir, la petite faiblesse qui te perdra ?

Putty, je n'arrive pas à m'en séparer

 

 

Bilan #Drupalgeddon

slybud
29/06/2018
Sécurité : Retour sur les épisodes #DrupalGeddon 2018 @OWS et @OWNS
Photo de l'équipe OWS au travail le soir du DrupalGeddon2

Autant 2015, 2016, 2017 ont été des années relativement "normales" en termes de failles de sécurité sur notre CMS préféré (le dernier épisode hautement critique datant d'octobre 2014 : faille Sql injection connue sous le nom de "Drupalgeddon"), autant 2018 aura démarré déjà bien fort en nous proposant 2 failles hautement critiques dans le core drupal, toutes version confondues (8, 7 et même Drupal 6, car oui, il existe encore des Drupal6/Pressflow en production, ne faites pas les innocents).

Je profite de ce billet de blog pour féliciter toutes les équipes OWS et OWNS pour leur implication, leur préparation et leur professionnalisme au cours de ces deux événements. Pour rappel, la publication de ce genre de failles nécessite des réactions dans l'heure afin de garantir la sécurité des sites de nos clients et la non compromission de leurs systèmes d'information.

Petit rappel du (bon) déroulement des opérations , n'hésites pas à nous contacter si vous souhaitez en savoir plus ou voir comment nous pourrions vous aider à mettre ces process en place. Pour les clients disposant d'un contrat de TMA chez OWS, cela s'est passé de la manière suivante :

  • Veille technologique hebdomadaire de nos architectes techniques et lead développeurs, ayant permis de prendre connaissance une semaine avant de la SA et de la fenêtre de release des patches
  • Mobilisation des équipes pour réserver du temps de travail sur ce créneau inhabituel (20h-22h pour le premier épisode) et vérifier la disponibilité de chacun
  • Vérification de l'état de toutes les instances (preprod et prod) des drupal maintenus
  • Déploiement éventuel des développements/mises à jour en attente ou création des branches git adéquates
  • Vérification de l'intégration continue pour tous ces projets
  • Recensement des hébergeurs tiers et prise de contact pour les prévenir des déploiements nécessaires sur le créneau visé
  • Répartition des clients sur tous les membres de l'équipe disponible (à la fois pour l'application des patches, mais aussi pour les déploiements/l'intégration continue et la recette technique après déploiement)
  • Alerte de tous les clients de l'opération à venir
  • Attente du jour J et de l'heure H

En parallèle, les administrateurs systèmes de notre filiale Open Web Network Solutions ont mis en place les actions suivantes :

  • Mobilisation des équipes pour réserver du temps de travail sur ce créneau inhabituel (20h-22h pour le premier épisode) et vérifier la disponibilité de chacun
  • Préparation d'un script d'orchestration permettant de
    • recenser automatiquement toutes les instances drupal d'un serveur
    • recenser les fichiers concernés par le patch de sécurité
    • appliquer automatiquement le patch de sécurité à ce fichier
    • sortir un rapport détaillé pour les éventuelles actions manuelles à mener pour de rares cas
  • Tests de ce script sur des infras de dev
  • Prévenir les clients (hors TMA OWS

Résultat : à l'heure H du jour J, dans une ambiance détendue et d'équipe, avec de la restauration livrée dans les locaux pour ceux qui étaient sur place à l'agence, il nous a fallu 2 heures pour mettre à jour et sécuriser des centaines d'instance drupal et aller se coucher apaisés :) . Aucun site n'a d'ailleurs été compromis grâce à ces actions

Donc encore bravo et merci à toute l'équipe et aux process/méthodes éprouvées pour la TMA et linfogérance Drupal.

Pour références/aller plus loin :

 

 

 

Une star est née

slybud
05/06/2018
Il est enfin là, le nouveau ows.fr, on n'y croyait plus !
Copie d'écran de la page d'accueil du nouveau site ows.fr

Ca commence comme une mauvaise blague "Ce sont les coordonniers les plus mal chaussés", d'abord répétée par le commercial en rendez-vous clientèle, puis par toute l'équipe dans les événements Drupal, et puis ça ressurgit dans les repas de famille le dimanche, et même tata déguisée en Orelsan (à moins que ça ne soit le contraire) vous vanne sur votre site Internet vintage.

Certes, l'ancienne version (allez voir sur archive.org si j'y suis) ne nous a pas empêchés de travailler sur des projets formidables avec des clients qu'on adore, mais un moment il faut avouer qu'en termes d'image c'est un peu light. On a donc retroussé nos manches et entamé il y a bientôt un an cette refonte dont vous voyez le résultat aujourd'hui, en mode sprint pour les développements, projet pour la conception.

Alors un grand merci à :

  • Eli pour l'UX et la conception fonctionnelle et un peu d'intégration :)
  • Les copains de Merci Bien pour la charte
  • Toute l'équipe OWS pour chaque petite pierre à l'édifice !

Et on espère qu'il n'est pas déjà démodé !

OpenStack Summit

drico
09/05/2018
Nous serons présent à l'Openstack Summit 2018 à Vancouver !
openstack summit

Comme chaque année nous serons présent pour la grande conférence OpenStack. Cette année pas mal de nouveautés à venir, notamment sur les technologies de containers avec notamment plusieurs sessions autour de Kata container le nouveau venu dans le monde des containers sous openstack.

Egalement au menu :

  • des sessions ceph qui ne manqueront pas de nous donner des idées pour améliorer notre cluster de stockage
  • de la mise en place autour de kubernetes et la gestion des containers docker dans Openstack
  • la haute disponibilité des volumes Cinder
  • et bien sur les goodies de la market place

Cette année la conférence est conjointe avec un sommet autour du CI/CD ce qui également nous concerne en premier lieu afin d'améliorer nos méthodes du développeur à la mise en production.

Si vous y êtes aussi n'hésitez pas à nous faire signe, nous adorons échanger sur ces sujets !

Les DrupalCamp en France, c'est reparti !

slybud
17/05/2016
C'est l'été et les événements business autour de Drupal refleurissent : Agora CMS, Drupagora, Mon p'tit chat agora ... oups, je m'égare.
logo drupal camp Nantes

C'est l'été et les événements business autour de Drupal refleurissent : Agora CMS, Drupagora, Mon p'tit chat agora ... oups, je m'égare.

Bien sûr, nos équipes commerciales seront ravies de vous croiser à l'occasion de ces rendez-vous, notamment à Drupagora, mais ce qui nous fait le plus vibrer, c'est l'annonce d'un grand DrupalCamp en France, j'ai nommé : Drupal Camp Nantes 2016 !

Avec les Dev Days, cela reste les meilleurs rendez-vous de la communauté, l'occasion d'assister à des conférences techniques de premier ordre, de renouer le lien avec la communauté fr, et de passer de très bons moments en se formant sur les dernières innovations Drupal 8.

Fidèle à sa tradition de sponsoring des DrupalCamp en France (et pas que, nous avons même sponsorisé le Drupal Camp Los Angeles fût un temps) depuis leur création, OWS est à nouveau fière de sponsoriser ce bel événement : nous sommes donc Sponsor Or du DrupalCamp Nantes !

Concrètement cela veut dire :

  • Notre soutien sans faille à la communauté
  • Un stand OWS sur l'événement, des offres d'emploi en ligne
  • Des collègues OWS que vous pourrez croiser et saluer lors de l'événement, il seront insatiables pour vous parler de Drupal 8 et et/ou de Scald si vous le souhaitez
  • Des goodies OWS dans votre sac de conférencier. Et cette année, nous avons tenu à rendre hommage à la région Nantaise et son Muscadet pour un goodie indispensable et inédit dans l'histoire des DrupalCamp.... Suprise le 10 juin

See you in Nantes (et pas à Beyrouth, les mélomanes comprendront) !

Comment éviter des field_collection vides

jcisio
12/02/2015
Quand on utilise field_collection, dans certain cas, le dernier item d'un champ est vide (une entité field_collection est créée sans aucune donnée utile). Pour contourner ce problème, le module fournit un hook hook_field_collection_is_empty_alter() pour décider quand est-ce un item est vide.

Quand on utilise field_collection, dans certain cas, le dernier item d'un champ est vide (une entité field_collection est créée sans aucune donnée utile). Pour contourner ce problème, le module fournit un hook hook_field_collection_is_empty_alter() pour décider quand est-ce un item est vide.

Exemple :

 

/**
 * Implements hook_field_collection_is_empty_alter().
 */

function magnard_fiche_livre_field_collection_is_empty_alter(&$is_empty, FieldCollectionItemEntity $item) { if ($item->field_name == 'field_produit_auteurs' && empty($item->field_produit_auteur[LANGUAGE_NONE])) { $is_empty = TRUE; } }

 

 

Ce morceau de code évite de la création d'une field_collection field_produit_auteurs si elle n'a pas son champ field_produit_auteur (sans "s") rempli.