La cybersécurité dans l'économie sociale et solidaire, vue de l'intérieur.
Pendant neuf semaines, trente-cinq structures de l'ESS — associations, coopératives, SCOP, fondations, SAS à mission, établissements publics — ont vu leur surface d'attaque cartographiée et auscultée. Ce panorama compile ce que ces audits révèlent : un secteur où la conscience du risque numérique reste sous-dimensionnée par rapport à la sensibilité des données traitées, mais où des correctifs simples suffisent souvent à reprendre le contrôle.
Pourquoi ce panorama existe
Quand on parle cybersécurité dans l'ESS, deux discours coexistent et s'évitent. Le premier, institutionnel, énumère les bonnes pratiques recommandées par l'ANSSI ou la CNIL et constate que « les associations devraient s'en préoccuper davantage ». Le second, vécu, vient des bénévoles et des prestataires : pas de budget, pas d'admin sys, des outils empilés sur dix ans, une dépendance lourde à des agences web qui livrent puis disparaissent. Entre les deux, peu de chiffres.
Ce baromètre s'appuie sur un matériau qui n'existait pas : trente-cinq audits pédagogiques conduits sur neuf semaines, sur des cibles allant de l'association de quartier au groupement public de plus de mille agents. Chaque audit a suivi le même protocole — reconnaissance passive, fingerprinting, énumération, tests actifs sous autorisation — et a produit un rapport, un email de signalement et une présentation de remédiation. L'agrégat de ces audits, c'est ce panorama.
Il ne prétend pas être représentatif au sens statistique : un échantillon de trente-cinq cibles, choisi par opportunité, ne se substitue pas à une enquête nationale. Mais il est suffisamment varié — par taille, secteur, statut juridique, choix techniques — pour faire émerger des récurrences solides. Quand dix-huit cibles sur trente-cinq laissent le DMARC en mode permissif, ce n'est plus une coïncidence : c'est un pattern. Et un pattern, ça se traite.
Comment ces audits ont été conduits
Phase 0 — Cartographie
Identification de la surface visible : domaines, sous-domaines (via Certificate Transparency logs), pile technique (CMS, framework, hébergeur), services exposés, dépendances tierces, présence sur les réseaux sociaux et les dépôts publics (GitHub, npm).
Phase 1 — OSINT passive
Renseignement à partir de sources ouvertes uniquement, sans interaction intrusive avec la cible : configuration DNS, archives Wayback, fuites publiques (Have I Been Pwned), fichiers de configuration laissés en accès libre, indexation Google, métadonnées de documents.
Phase 2 — Tests actifs (autorisation)
Sondages réseau, exploitation de surface, validation d'hypothèses. Conduits uniquement après accord explicite de la structure, ou sur des comptes créés via les formulaires publics (logique d'inscription auto-suffisante). Aucune extraction de données réelles au-delà de la preuve de concept.
Le score /10
Chaque cible reçoit une note synthétique sur 10, dérivée d'une grille interne pondérant la sévérité des findings, le nombre de couches défensives présentes (WAF, MFA, segmentation, monitoring), et la qualité de l'hygiène générale (mises à jour, gestion des secrets, configuration TLS, headers HTTP, posture email). C'est un repère pédagogique, pas une métrique normative.
| Tranche | Lecture | Posture |
|---|---|---|
| 0–3 | Faiblesses critiques accessibles sans effort | Compromission probable à court terme |
| 4 | Plusieurs vecteurs d'entrée non protégés | Exposition haute, remédiation prioritaire |
| 5–6 | Bases en place, défauts de configuration | Niveau attendu d'une PME sans RSSI |
| 7–8 | Posture défensive cohérente | Top quart de l'échantillon ESS |
| 9–10 | Hygiène professionnelle, défense en profondeur | Non observé dans cet échantillon |
Limites assumées
- Échantillon non aléatoire. Les cibles ont été retenues par opportunité (intérêt pédagogique, accessibilité, diversité). Le résultat n'est pas extrapolable mécaniquement à l'ensemble du secteur ESS.
- Profondeur variable. Certaines cibles ont fait l'objet de cinq sessions de creusage, d'autres d'une seule. Le score reflète ce qui a été observé, pas une certitude exhaustive.
- Biais d'observabilité. Une cible bien défendue à l'extérieur peut cacher des défauts internes invisibles depuis Internet (postes Windows non patchés, réseaux Wi-Fi mal segmentés, PDF stockés en clair sur Google Drive).
- Pas de mesure du facteur humain direct. Aucun phishing test n'a été conduit. Or, statistiquement, c'est le vecteur n°1 sur les PME françaises.
Trente-cinq structures, un éventail volontairement large
| # | Profil de l'organisation | Secteur | Statut juridique | Taille | Score |
|---|---|---|---|---|---|
| 01 | Recyclage / économie circulaire — multi-clients B2B | Économie circulaire | SAS (ESS) | PME (~50) | 3 |
| 02 | Tech solidaire — plateforme de référencement national | Tech for good | Association | Startup associative (~30) | 3 |
| 03 | Reconversion professionnelle d'impact | Insertion / impact | Association loi 1901 | Micro (3–5) | 4 |
| 04 | Aide alimentaire étudiante | Solidarité étudiante | Association | Petite (bénévoles + 2–3) | 4,5 |
| 05 | Formation au numérique et insertion | Formation / insertion | GIE / coopérative | ETI (~200) | 4 |
| 06 | Environnement et plaidoyer territorial | Environnement | Association | Petite (~10 + bénévoles) | 6,5 |
| 07 | Anti-gaspillage alimentaire — collecte de surplus | Alimentaire | Association | Petite (~15) | 5 |
| 08 | E-commerce solidaire — réemploi à grande échelle | E-commerce solidaire | SCIC | PME (~30) | 5 |
| 09 | Santé mentale étudiante — écoute pair-à-pair | Santé mentale | Association | Micro (bénévoles) | 4 |
| 10 | Service numérique coopératif et éthique | Tech coopérative | SCIC | PME (~20) | 8 |
| 11 | Chambre consulaire territoriale | Public consulaire | EPA | Grande (>1 000) | 6,5 |
| 12 | Artisanat B2B export (WordPress managé) | Artisanat / export | Entreprise | TPE | 5 |
| 13 | Action de solidarité intergénérationnelle | Lien social | Association reconnue d'utilité publique | Grande (sal. + milliers de bénévoles) | 6 |
| 14 | Aménagement urbain métropolitain | Aménagement public | Société d'économie mixte | PME (~80) | 4 |
| 15 | Valorisation des déchets alimentaires | Économie circulaire | SAS (ESUS) | PME (~50–100) | 4 |
| 16 | Logement temporaire pour jeunes actifs | Logement | SA (ESUS) | PME (multi-résidences) | 5 |
| 17 | Santé cognitive et diagnostic médical | Santé / médico-social | Association loi 1901 | Petite | 6 |
| 18 | Tech for good et bénévolat de compétences | Tech for good | Association loi 1901 | Petite (~10 + bénévoles) | 6 |
| 19 | Transport à la demande et mobilité partagée | Mobilité | SAS | PME | 6 |
| 20 | Interprétariat et traduction médico-sociale | Médico-social | SAS (ESS) | PME (~50) | 3 |
| 21 | Plateforme associative médico-juridique | Médico-social / juridique | Association loi 1901 | Petite | 2 |
| 22 | Association nationale d'aide aux réfugiés et à l'asile | Solidarité internationale | Association loi 1901 | Grande (plusieurs centaines de sal., multi-sites) | 3 |
| 23 | Fournisseur d'énergie renouvelable | Énergie / coopératif | SCIC | ETI (multi-régions) | 3 |
| 24 | Action sociale et hébergement d'urgence | Action sociale | Association loi 1901 | Grande (plusieurs centaines de sal.) | 4 |
| 25 | Insertion par l'activité économique | Insertion / propreté urbaine | Association loi 1901 | PME (~100 sal.) | 2 |
| 26 | Cabinet de conseil pour représentants salariés | Conseil / représentation | SCOP | ETI (multi-sites) | 1 |
| 27 | Carte cadeau éco-solidaire (commerçants durables) | E-commerce solidaire | SCIC SA (ESUS) | Petite (milliers de commerçants partenaires) | 2 |
| 28 | Épicerie anti-gaspillage en réseau | Alimentaire / réemploi | SAS (ESS) | PME (~50 magasins) | 5 |
| 29 | Fondation philanthropique de lutte contre la pauvreté | Solidarité / mécénat | Fondation | Petite | 6 |
| 30 | SaaS B2B d'alerte et de gestion de crise | Tech / sécurité civile | Société B2B | PME | 5 |
| 31 | Entreprise à mission — rénovation globale de copropriétés | Rénovation / bâtiment | Entreprise à mission | PME | 7 |
| 32 | École de formation aux métiers du bâtiment durable | Formation / bâtiment | SAS | PME (multi-campus) | 7,5 |
| 33 | Association d'égalité des chances éducative (jeunesse) | Insertion / éducation | Association loi 1901 | PME (équipe IT structurée) | 6,5 |
| 34 | Plateforme d'engagement citoyen (jobs à impact, communautés) | Engagement / impact | Association loi 1901 | PME (multi-pays) | 6,5 |
| 35 | Cabinet d'études thermiques — rénovation énergétique | Rénovation / BET | SAS | Petite | 7 |
Ce que voit un attaquant en 2026
Trois constats émergent
1. Le ventre mou domine, mais la queue basse s'alourdit. Avec l'élargissement de l'échantillon à trente-cinq cibles, neuf plafonnent entre 1 et 3 — incluant désormais une SCOP de conseil (SQL injection WLangage confirmée → RCE) et deux autres structures à 2/10 (M365 en passoire, profileur django-silk en production). Le ventre mou — score 4 à 6 — concentre 22 cibles. Au total, 89 % de l'échantillon se trouve sous le seuil 7.
2. Quatre cibles dépassent 7, une seule atteint 8. Le sommet est porté par une coopérative qui a fait du privacy by design un argument commercial. L'arrivée d'autres PME au-dessus de 7 — combinant frontal managé, hébergement edge, SSO professionnel et email durci en p=reject — confirme qu'une organisation avec une équipe IT moderne peut viser le haut du tableau. Le « plafond ESS » est culturel, pas structurel.
3. Le statut juridique compte moins que la culture interne. Une SCOP de conseil à 1/10 (SQLi WLangage exploitable) descend en-dessous d'une association environnementale à 6,5/10. Une SAS à 7,5/10 dépasse une SCIC à 5/10. Les déterminants structurants ne sont pas le statut, mais la présence ou l'absence d'un référent technique compétent dans la durée — et la capacité à choisir une stack managée plutôt qu'une dette WebDev de 2018.
L'arrivée des structures « grand public » bouge les chiffres
L'élargissement de l'échantillon à des organisations à fort impact public — coopérative d'utilité collective, association nationale humanitaire, structures sociales et d'interprétariat — puis l'ajout d'une SCOP de conseil (1/10, SQLi WLangage exploitable), d'une structure d'insertion (2/10 sur le tenant M365) et d'une plateforme e-commerce solidaire (2/10, profileur de debug en prod) fait osciller le score moyen entre 4,7 et 4,9. Ce n'est pas que ces structures soient pires que les autres en proportion : c'est qu'elles sont plus grandes, traitent des données plus sensibles (mineurs, populations vulnérables, sociétaires, négociations sensibles), et exposent plus de surface (plateforme métier WLangage, app mobile, M365 multi-domaines). Le ratio « surface / capacité de défense » se dégrade avec la taille, dès lors que la professionnalisation de la sécurité ne suit pas.
Distribution par stack technique
GetCredentialType — révèle un angle mort symétrique : 34 % des structures auditées (12/35) ont un tenant M365, et dix d'entre elles laissent encore Basic Auth ouvert ou n'enforce pas la MFA. C'est désormais le vecteur n°1 de compromission PME en France (~80 % des incidents) et il échappe complètement à l'audit web classique.
Distribution, sévérité, fréquence
Top 10 des familles de vulnérabilités
Plutôt que d'aligner des CVE individuelles, on regroupe les findings par cause technique. Ce tableau classe les patterns par fréquence d'apparition dans l'échantillon.
Carte de risque exploitabilité × impact
Une vulnérabilité ne se mesure pas à sa technicité, mais au croisement de la facilité avec laquelle un attaquant peut la déclencher (exploitabilité) et de ce qu'il peut en faire (impact). Cette carte synthétise où se concentrent les risques observés dans l'échantillon ESS.
Les dix-huit critiques observées en 2026
Voici la liste exhaustive, anonymisée, des dix-huit vulnérabilités classées critiques dans cet échantillon. La majorité aurait pu être évitée par une configuration par défaut plus restrictive ; aucune ne demandait un attaquant sophistiqué.
| # | Type de faille | Vecteur | Impact observé |
|---|---|---|---|
| C1 | IDOR : mot de passe en clair de tout utilisateur via API | Endpoint API « lookup compte » accessible à tout client authentifié | Plusieurs dizaines de milliers de comptes accessibles en clair, dont la direction. Account takeover sur interprètes, hôpitaux, administrateurs. Mots de passe stockés en clair côté serveur (champ pass_text). |
| C2 | 4 buckets S3 multi-tenants en upload sans authentification | POST /upload sur 4 API (deux structures, prod + dev) délivrant des pre-signed URLs sans aucun contrôle | Upload arbitraire avec content-type contrôlable → XSS stockée servie depuis le domaine de l'API. Buckets public-read. Une même brique de code partagée entre deux structures = même faille dans les deux. |
| C3 | Pipeline de mise à jour APK mobile avec mot de passe client-side | Panneau d'administration WebDev/WinDev exposé sur Internet, mot de passe hardcodé dans le JavaScript de la page. Vérification 100 % côté client. | Supply chain mobile : un attaquant peut publier un APK malveillant qui sera distribué automatiquement à tous les utilisateurs de l'application (interprètes, hôpitaux, médico-social). |
| C4 | Fuite massive de PII via DDP Meteor non authentifié | Méthodes getPersonById, getAllPersonsByEmail, getQuestionnaire, downloadfile appelables sans aucune session | Plusieurs milliers de profils sociétaires extractibles, dont mineurs (date de naissance, adresse), IBAN et BIC en clair, numéros de téléphone, références bancaires. Confirmé sur trois profils réels par chaînage cooperativeId → personId. |
| C5 | Hébergement de fichiers et admin Joomla 3.x EOL exposé | CMS et composants tiers (K2, JCE, Fabrik) en fin de vie depuis 2023, panneau /administrator/ ouvert sans WAF ni IP filtering | Plusieurs listes publiquement énumérables, surface multiple de SQL injection et de path traversal connues, plus aucun patch officiel. Cible : association nationale d'aide aux réfugiés (centaines de sal., données médico-juridiques de demandeurs d'asile). |
| C6 | SQL injection avec bypass de parser (Apache Superset self-hosted) | Compte « guest » par défaut + bypass ts_stat() + chr() | Extraction de plusieurs dizaines de milliers de comptes (emails, noms, hashes bcrypt, téléphones, devTokens JWT staff). |
| C7 | n8n self-hosted, trois CVE CVSS ≥ 9,9 | Webhook content-type confusion | RCE non authentifiée (mitigée par UUIDs non découvrables — chance, pas posture défensive). |
| C8 | RDS Gateway Windows exposé, NTLM info disclosure, sans rate limiting | /Rpc/rpcproxy.dll NTLM révèle domaine AD, hostname, OS | Surface complète de password spray sur des centaines d'usernames identifiables via LinkedIn. Aucun lockout observé sur 8 essais. Cible : association d'action sociale. |
| C9 | WordPress en version obsolète > 18 mois | CMS | Défacement, takeover, ransomware. Multi-cible. |
| C10 | Origin server non protégé derrière CDN | DNS history, balise meta generator | Bypass complet du WAF Cloudflare en 30 secondes. |
| C11 | Stack obsolète, 22 CVE cumulées | Composants tiers EOL | Compromission probable. |
| C12 | Réunions Zoom à URL permanente avec mot de passe en clair dans le DNS public | DNS | Zoom-bombing, écoute d'entretiens RH. |
| C13 | Kill chain : API publique → emails → admin Django sans rate limiting | Chaîne | Compromission back-office RH d'une PME logement. |
| C14 | Kill chain : brute force admin → file manager (RCE elFinder) → .env / .git | Chaîne | Compromission serveur de formation, données apprenants. |
| C15 | DoS HTTP/2 sur origin non protégé | Configuration nginx | Indisponibilité d'un service avec un VPS à 5 €/mois. |
| C16 | SQL injection sur portail métier WLangage / WEBDEV legacy | Formulaire login d'un portail PC SOFT WEBDEV exposé sur Internet. Payloads triviaux ' OR 1=1-- et admin'-- déclenchent erreurs MySQL 1064 affichées dans une popup JavaScript. | Stack technique révélée (IP DB interne, fragment de requête SQL, accès natif MySQL sans paramétrage). Vecteur RCE documenté via fonctions WLangage ExeRun()/LanceAppli(). Cible : cabinet de conseil pour représentants salariés (plusieurs centaines de consultants). |
| C17 | Profiler django-silk exposé en production sans authentification | /silk/requests/, /silk/profiling/, /silk/cleardb/ accessibles sans login. Des milliers de requêtes loggées avec POST bodies et URLs en clair. | Vol direct de cartes cadeaux : les URLs « magic link » contenant le numéro de carte en clair sont leakées en continu. Téléchargement immédiat du PDF de carte sans authentification. Endpoint destructif /silk/cleardb/ ouvert. Cible : plateforme de carte cadeau éco-solidaire (milliers de commerçants partenaires). |
| C18 | Basic Auth Exchange Online + MFA contournable + énumération massive | IMAP / SMTP submission / EAS / EWS annoncent AUTH=PLAIN et BasicChallengeAdded: True. ROPC OAuth ne renvoie pas AADSTS50079 mais AADSTS50126 (wrong password) → MFA non forcé en première ligne. Des dizaines de requêtes GetCredentialType sans throttling, OneDrive personnels énumérables par UPN, Smart Lockout absent à 8 essais. | Compromission par password spray sans aucun MFA challenge. Vecteur n°1 BEC/ransomware pour les PME M365 depuis 2022. Cible : structure d'insertion (~100 salariés, plusieurs dizaines de comptes M365 cartographiés en quelques minutes). Le score web (~6/10) ne reflète pas le risque réel. |
curl, et la lecture du code JavaScript public.
« Le problème n'est pas la qualité technique des outils choisis — qui sont souvent excellents — mais leur exposition publique sans contrôle d'accès périmétrique. » Observation cross-audits
Pourquoi ces failles existent — et pourquoi elles persistent
1. Pas d'admin système dédié
Les outils sont déployés par un développeur, un bénévole, un stagiaire, un prestataire ponctuel — puis oubliés. Personne ne surveille les mises à jour ni la surface d'exposition. Trois ans plus tard, le service tourne sur une version EOL connue de tous les scanners.
2. Exposition par défaut
Les services sont exposés sur Internet sans VPN ni restriction d'IP, parce que c'est plus simple pour le staff distribué et les bénévoles. cPanel, RabbitMQ, Vaultwarden, panels admin Django — tout finit en .assoc.fr accessible à toute la planète.
3. Shadow IT
Utilisation de comptes personnels ou institutionnels externes pour des besoins de l'organisation : Zoom personnel, Google Forms, Drive partagé, Trello d'un autre employeur. Les données sortent du périmètre maîtrisé sans qu'aucune décision n'ait été prise.
4. Sous-domaines fantômes
DNS créés pour un besoin ponctuel — staging, CDN d'agence, campagne marketing — jamais nettoyés ensuite. Ils restent indexés dans les Certificate Transparency logs, exploitables des années plus tard pour du subdomain takeover.
5. Le développeur est parti
Le prestataire ou le bénévole qui a monté l'infrastructure n'est plus là. Les mots de passe d'admin sont chez lui, dans son gestionnaire perso. Personne ne sait maintenir, encore moins moderniser. Le service continue de tourner — jusqu'à la première CVE qui mord.
6. Budget sécurité = 0 €
Aucune ligne budgétaire dédiée à la sécurité. Pas d'audit annuel, pas de bug bounty, pas de SOC, pas de SIEM. Quand un incident survient, on improvise — souvent dans l'urgence, parfois pendant le week-end. Le coût d'un incident dépasse alors l'investissement annuel qu'aurait coûté sa prévention.
7. Multi-tenancy mal maîtrisée
Une même plateforme sert plusieurs clients (b2b solidaire, plateforme mutualisée, Moodle multi-écoles). L'authentification est globale, mais la segmentation des données reste imparfaite. Un client peut, sous certaines conditions, accéder aux données d'un autre.
8. Dépendance au prestataire
L'organisation n'a aucune visibilité sur la sécurité du code livré par l'agence web. Le contrat ne prévoit ni audit, ni mises à jour de sécurité, ni période de garantie. Une fois la facture payée, plus personne ne touche au code — sauf un pentester quelques années plus tard.
Facteurs aggravants spécifiques à l'ESS
| Facteur | Mécanisme | Conséquence |
|---|---|---|
| Turnover des bénévoles | Les comptes ne sont pas révoqués, les mots de passe partagés ne sont pas renouvelés, la connaissance se perd à chaque rotation. | Comptes orphelins, secrets toujours valides, dette de gouvernance. |
| Direction non-technique | Les décideurs ne comprennent pas les risques numériques, priorisent les fonctionnalités visibles, considèrent la sécurité comme un sujet « pour plus tard ». | Pas d'arbitrage budgétaire en faveur de la sécurité. |
| Données sensibles sous-estimées | « On est une asso, qui voudrait nous attaquer ? » alors que les données traitées (santé mentale, précarité, mineurs, personnes âgées isolées) sont parmi les plus rentables sur les marchés noirs. | Sous-estimation systémique de la valeur de l'actif informationnel. |
| Prestataires low-cost | Agences web ESS-friendly qui livrent du WordPress ou du Drupal sans durcissement, à bas prix, sans contrat de maintenance sécurité. | Stack par défaut, jamais durcie, vieillissante. |
| Pas de politique de mot de passe | Mots de passe partagés par email ou messagerie, pas de gestionnaire central, pas d'authentification multifacteur. | Une seule fuite suffit à compromettre l'ensemble. |
| RGPD perçu comme une contrainte | Politique de confidentialité copiée d'un autre site, registre des traitements inexistant ou symbolique, pas de DPO opérationnel. | Non-conformité formelle ; risque de sanction CNIL en cas d'incident. |
« Le diagnostic n'est pas la stack est mauvaise, mais il manque un périmètre de sécurité. Les outils choisis sont bons — il faut juste arrêter de les exposer en clear-net. » Audit anonymisé
Le no-code est-il plus sûr que le sur-mesure ?
| Approche | Score moyen observé | Avantages sécurité | Risques résiduels |
|---|---|---|---|
| SaaS / no-code WebflowAirtableOdoo.shWeWeb |
6 – 8 / 10 | Surface d'attaque serveur quasi nulle, mises à jour gérées, WAF inclus, hardening par défaut. Le vendor a plus à perdre que l'organisation. | Données chez un tiers (souvent US), dépendance totale, configuration applicative parfois trop laxiste (Supabase RPC, Firebase rules). |
| Cloudflare en frontal CDNWAFDDoS |
7 – 8 / 10 | WAF, protection DDoS, certificats SSL automatiques, masquage de l'origin. Effet immédiat sur le profil de risque. | Contournable si l'origin est exposé directement (DNS history, balise meta). Une cible auditée avait Cloudflare et un origin DigitalOcean joignable : protection nulle. |
| Managed hosting WordPress.comFirebaseVercel |
5 / 10 | Mises à jour automatiques, isolation réseau, support technique. Pour les petites structures, le meilleur rapport sécurité / effort. | Configuration applicative encore sous responsabilité du client (xmlrpc, Firebase Security Rules, plugins WP). Le vendor ne sécurise pas le contenu. |
| Mutualisé classique o2switchOVH webGandi |
4 – 5 / 10 | Isolation basique, certaines protections (Tiger-Protect chez o2switch), prix bas, hébergement souverain. | Accès cPanel souvent exposé, PHP parfois ancien, pas de VPN, pas de WAF par défaut. Configuration laissée au client. |
| Cloud sur-mesure AWSGCPDigitalOcean |
3 – 6 / 10 | Scalabilité, services managés (RDS, EKS), IAM granulaire, segmentation réseau. Quand bien fait, excellent. | Complexité de configuration. Erreurs IAM coûteuses, secrets dans le code, services exposés à 0.0.0.0/0 par négligence. Forte hétérogénéité. |
| VPS / dédié self-hosted OVH dédiéScaleway |
2 – 4 / 10 | Contrôle total, possibilité de durcissement profond, conformité fine. | Le pire scénario observé. Nécessite un admin sys compétent dans la durée. Souvent abandonné après le déploiement initial. Toutes les cibles avec un score < 4 utilisent du self-hosted. |
Ce que l'échantillon nous apprend
1. Le self-hosted sans admin sys est le pire scénario
Tous les scores ≤ 4 de l'échantillon impliquent du self-hosted vieillissant : une plateforme de jeu vidéo en PHP 5.6 abandonnée depuis 2018, un webmail Lotus Domino EOL depuis cinq ans, un ownCloud 2015 figé sur le filesystem avec sa base morte. Le contrôle total qu'offre le self-hosted devient une dette quand personne ne l'exerce.
2. Le no-code est sous-représenté dans les findings
Webflow, Odoo.sh, Wix, Airtable n'apparaissent presque jamais dans la liste des sources de critiques. Pas parce qu'ils sont parfaits, mais parce qu'ils n'ont quasiment pas de surface d'attaque côté serveur exposée à l'auditeur. Le risque est ailleurs : externalisation, vendor lock-in, RGPD.
3. Cloudflare est excellent — quand l'origin est protégé
Une cible auditée affichait fièrement le bouclier Cloudflare. La balise <meta name="generator"> de la page contenait l'IP DigitalOcean de l'origin. Trente secondes pour la trouver, accès direct au serveur, DoS HTTP/2 avec un VPS à 5 €/mois. Le WAF n'a servi à rien.
4. Les stacks custom ne sont pas plus vulnérables — elles demandent plus de discipline
Django, Laravel, Node.js bien faits sont solides. Les failles observées ne sont pas des CVE de framework, mais des oublis humains : une route oubliée sans @auth, un admin sans rate limiting, un CORS * laissé en dev. Le framework ne protège pas contre l'inattention.
Une arborescence de décision pour 2026
Pour une organisation qui démarre ou qui restructure son SI, voici l'arbre de décision qui maximise la posture de sécurité dans le contexte ESS :
| Si vous êtes… | Choisir | Éviter |
|---|---|---|
| Une asso de moins de 10 salariés, site vitrine | WordPress.com (Business), Webflow, ou WP managé chez OVH/Infomaniak avec WAF | VPS auto-hébergé, hébergement chez un bénévole |
| Une asso avec une plateforme métier (gestion de bénéficiaires, dons, événements) | SaaS spécialisé ESS (HelloAsso, AssoConnect, Eudonet) ou solution open source managée | Développement custom sans contrat de maintenance ≥ 3 ans |
| Une PME ESS avec data sensibles (santé, mineurs, précarité) | Cloudflare frontal + hébergeur français certifié HDS si santé + MFA obligatoire | Mutualisé classique exposé à l'Internet brut |
| Une coopérative ou EPA > 100 salariés | Cloud managé (AWS/Azure FR) + DSI ou DPO opérationnel + audit annuel | Stack custom sans architecte sécurité |
Les outils qui apparaissent le plus souvent dans les findings
| Service | Problème observé | Risque | Sév. |
|---|---|---|---|
| WordPress xmlrpc.php | Endpoint ouvert par défaut, brute force amplifié (jusqu'à 1 000 essais par requête), pas de rate limiting natif. | Compromission admin, takeover de site. | H |
| Apache Superset (self-hosted) | Compte « guest » par défaut, SQL injection via bypass parser ts_stat() + chr(), JWT mal segmentés. |
Extraction de bases de données complètes — plusieurs dizaines de milliers de comptes observés sur une cible. | C |
| n8n (self-hosted) | Trois CVE CVSS ≥ 9,9 dont une RCE non authentifiée via webhook content-type confusion. | Exécution de code à distance sur le serveur d'automatisation. | C |
| Zoom (Personal Meeting ID) | URLs avec mot de passe en clair laissées dans des entrées DNS publiques pour faciliter l'accès. | Zoom-bombing, écoute clandestine d'entretiens RH ou de réunions sensibles. | H |
| cPanel exposé | Interface d'administration serveur accessible sur Internet sans VPN ni MFA. | Compromission complète de l'hébergement par brute force ou phishing. | C |
| Vaultwarden / Bitwarden self-hosted | Gestionnaire de mots de passe d'organisation exposé sur Internet. | En cas de compromission : tous les secrets de l'organisation, en une fois. | C |
| IBM Lotus Domino 9 | Webmail professionnel en fin de vie, plus de patches de sécurité depuis plusieurs années. | Compromission email + pivot vers AD interne. | H |
| Google Forms | Données sensibles (candidats bénévoles, bénéficiaires) collectées sur infrastructure US, sans contrat ni DPA. | Non-conformité RGPD, perte de contrôle des données. | M |
| ownCloud 8.x abandonné | Instance zombie, base de données déconnectée mais filesystem intact, dix ans de CVE non patchées si la DB est restaurée. | Bombe à retardement — exploitable instantanément à la moindre restauration. | H |
| Django admin sans rate limiting | Panel d'administration métier sans django-axes, sans CAPTCHA, sans MFA, alimenté par les emails fuités via l'API publique. |
Compromission du back-office (RH, comptabilité, bénéficiaires). | C |
| DRF root listing | L'URL /api/v1/ liste toutes les routes disponibles — cartographie offerte de la surface API. |
Énumération exhaustive, accélération du fuzzing, exposition des endpoints internes. | H |
| Supabase (defaults) | /auth/v1/signup distingue comptes existants et nouveaux ; fonctions RPC appelables sans authentification ; PostgREST leake les noms de fonctions via les hints. |
Énumération d'utilisateurs, pollution de DB, cartographie de l'API interne. | H |
| Pritunl VPN — UI publique | Interface web d'admin VPN accessible sur Internet, oracle d'énumération auth_invalid_username, pas de rate limiting visible. |
Brute force d'identifiants, accès VPN, pivot vers le réseau interne. | H |
| FreeSWITCH / BBB SIP | Port 5060 exposé, INVITE accepté sans authentification — bypasse le mot de passe de la salle de visio et la salle d'attente. | Écoute clandestine de visioconférences (cours, réunions médicales, entretiens RH). | H |
| Meteor DDP (méthodes RPC) | Méthodes serveur appelables via WebSocket DDP sans aucune authentification par défaut. getPersonById, downloadfile exploitables tant que le développeur n'a pas écrit son propre checkAuth. |
Fuite massive de PII (plusieurs milliers de sociétaires, IBAN, BIC, mineurs) sur une coopérative à sociétaires. | C |
| WebDev / WinDev (PC SOFT) | Logique de validation de mot de passe écrite côté navigateur, mot de passe en clair dans le bundle JavaScript. Pattern récurrent de la stack : la séparation client/serveur n'est pas naturelle au framework. | Pipeline de mise à jour APK contournable en 30 secondes, supply chain mobile sur app médico-sociale. | C |
| Joomla 3.x + composants tiers (K2, JCE, Fabrik) | Joomla 3.x EOL depuis août 2023, composants tiers souvent encore plus anciens (Fabrik archivé fin 2024). Version disclosure massive (header K2, README.txt, manifests XML), CVE 2023–2024 non patchées. | SQL injection (CVE-2024-30471), XSS, surface admin ouverte. Cible : association d'aide aux réfugiés. | C |
| Laravel + endpoints API ad hoc | Les frameworks ne forcent pas l'autorisation par objet. Quand un développeur écrit User::where('email', $request->email)->first() dans un contrôleur partagé, n'importe quel utilisateur authentifié récupère n'importe quel autre utilisateur. Aggravé par stockage du mot de passe en clair (pass_text). |
IDOR critique chez deux cibles, dont plusieurs dizaines de milliers de comptes interprètes/hôpitaux exposés. | C |
Trois récits de chaînes d'attaque réalistes
Une association porte une plateforme de référencement de structures sociales, opérée pour le compte de plusieurs collectivités. Stack moderne — Node.js, PostgreSQL, Apache Superset pour le pilotage interne, n8n pour l'automatisation. Bonne idée, bonnes intentions, exécution technique soignée. Mais.
Surface exposée
Outre le site principal, deux outils internes sont accessibles sur Internet : une instance Superset destinée aux équipes (avec un compte « guest » oublié activé par défaut) et un n8n hébergé sur un sous-domaine standard. Tous deux dans des versions dépassées de plusieurs trimestres.
Chaîne d'attaque
superset.* via Certificate Transparency→ [2] Authentification en compte
guest par défaut→ [3] Bypass du parser SQL via
ts_stat(chr(83)||...) + jsonb_object_keys()→ [4] Extraction du schéma complet : plus de vingt clés top-level, dont
password, passwordToken, devToken→ [5] Filtrage par
status='admin' : plusieurs centaines de comptes administrateurs identifiés→ [6] Récupération des
devToken = JWT signés HS256 valides pour l'API métier→ Compromission complète : plusieurs dizaines de milliers de comptes utilisateurs accessibles, dont des données nominatives de bénéficiaires en situation de précarité.
Leçon
Les trois ingrédients de cette chaîne — un sous-domaine indexé, un compte par défaut activé, une version Superset trop ancienne — sont chacun corrigeables en quelques minutes. Aucun n'a été corrigé pendant trois ans. La compromission n'a pas demandé une attaque sophistiquée mais une lecture attentive de la documentation publique du logiciel.
Une coopérative de plusieurs centaines de salariés forme à la programmation des dizaines de milliers d'apprenants, opère des centaines de dépôts publics sur GitHub, un site vitrine impeccable sous Webflow et Cloudflare. La façade est exemplaire. Derrière, sept ans d'accumulation technique.
Le contraste
- Vitrine : Webflow + Cloudflare = score 8/10.
- GitLab interne : à jour, propre, configuré.
- Toolbox métier : Laravel + Backpack v3 + elFinder 2.1.53 (2020) avec trois CVE dont une RCE 9.8.
- Plateforme de jeu vidéo abandonnée : WordPress 5.x sur PHP 5.6, EOL depuis sept ans.
- BBB de visioconférence : composant SIP (port 5060) qui accepte les INVITE sans authentification.
Chaîne d'attaque la plus directe
toolbox.*.org/admin→ [2] Pas de rate limiting · dizaines de milliers de tentatives possibles sans blocage
→ [3] Compromission via brute force (rockyou) ou via un GitHub leak (dump SQL avec hash admin craqué en 1s)
→ [4] Accès elFinder 2.1.53 (post-auth) — exploitation CVE-2020-7980 RCE
→ [5] Lecture
.env + .git/ (les deux sont sur le serveur, 403 = ils existent)→ [6] Credentials base de données apprenants
→ Exfiltration de données nominatives, certificats de formation, conventions OPCO.
Leçon
Le pattern « façade moderne, arrière-boutique en dette technique » est le plus fréquent de l'échantillon. Il s'installe quand l'organisation grandit plus vite que sa capacité à entretenir l'existant. Le site vitrine attire les médias et les financeurs ; les outils métier, eux, vieillissent dans l'ombre — jusqu'au jour où ils sortent au grand jour, par incident.
Une centaine de salariés, plateforme SaaS multi-villes. Infrastructure AWS EKS, Terraform, ArgoCD, Sentry self-hosted, Trivy scan dans la CI. L'équipe DevOps est compétente, le périmètre réseau est rigoureux : plusieurs dizaines de sous-domaines en Certificate Transparency, une vingtaine d'outils DevOps accessibles uniquement aux salariés, IPs AWS scannées et toutes en 403.
Pourquoi pas de critique ?
Parce que les fondamentaux sont là. WAF, segmentation, IAM rigoureux, mises à jour régulières. Cinq sessions d'audit n'ont pas trouvé de chemin direct vers une compromission. Cela ne veut pas dire qu'il n'y a rien — cela veut dire que la barre est nettement plus haute que dans la moyenne ESS.
Ce qui reste à corriger
· CAPTCHA API custom : Swagger UI public, OAuth2 déclaré mais non enforced
· DNS bavard — chaque outil DevOps a son propre sous-domaine en clair plutôt qu'une zone interne
· Posture email faiblement durcie : DMARC
p=none sur deux domaines, DKIM absent sur un· Domaine legacy historique encore actif et réutilisable pour du typo-squatting
Leçon
Quand l'infrastructure est gérée par une équipe DevOps compétente, les vulnérabilités se déplacent : elles ne sont plus dans le serveur principal mais dans les services périphériques (VPN, CAPTCHA, monitoring) et dans la posture email. C'est la dernière marche : un score 6 bien construit demande maintenant un travail de finition pour atteindre 8. Pas un changement d'architecture.
Une cinquantaine de salariés, plateforme d'interprétariat à destination des hôpitaux et des services sociaux. Site vitrine WordPress propre derrière un WAF mutualisé, REST API protégée, pas d'xmlrpc exposé, plugins à jour. La façade tient. À côté, l'application mobile pour les interprètes est servie par une infrastructure WebDev/WinDev, dont l'organisation a probablement sous-traité le développement.
Le pipeline de mise à jour de l'APK
Une page « Update mobile » accessible publiquement présente un panneau d'administration : upload Android APK, upload iOS IPA, modification des notes de version, fréquence de polling. L'accès est protégé par un mot de passe — saisi dans une boîte modale en JavaScript.
Chaîne d'attaque
view-source: sur la page d'admin · Ctrl+F sur la variable JavaScript du mot de passe→ [2] Lecture en clair de la variable WebDev contenant le mot de passe
→ [3] Saisie du mot de passe → accès au panneau d'upload
→ [4] La fonction de vérification client ne renvoie pas
false en cas d'échec — l'AJAX part de toute façon→ [5] Upload d'un APK signé (clé attaquant) remplaçant la version officielle
→ L'APK malveillant est distribué automatiquement à tous les interprètes lors du polling de mise à jour.
Pourquoi c'est emblématique
Le risque ne porte pas sur le site web — il porte sur l'infrastructure mobile invisible. Une supply chain attack mobile ne se voit pas dans un audit web classique : il faut chercher la console d'admin du dispositif de mise à jour. Les utilisateurs (interprètes médicaux) deviennent les victimes finales d'une faille que l'organisation ne soupçonne pas. La leçon : auditer non seulement le site mais aussi le canal de distribution des applications.
Coopérative de plusieurs milliers de sociétaires, modèle SCIC, multi-régions. La plateforme métier — partagée avec d'autres coopératives sœurs — est bâtie sur Meteor, un framework Node.js qui expose, par défaut, des « méthodes RPC » accessibles via WebSocket DDP depuis le navigateur des sociétaires connectés.
Le défaut Meteor mal compris
Meteor invite à écrire du code rapide : on définit une Meteor.method('getPersonById', function(id) { return Persons.findOne(id); }) et le navigateur peut l'appeler. Le framework ne force pas le développeur à vérifier qui appelle. Si le check d'authentification est oublié — et il l'est très souvent quand le développeur compte sur la session client — la méthode est appelable par n'importe qui, y compris depuis l'extérieur de l'application.
Chaîne d'attaque
→ [2] Connexion WebSocket DDP
wss://métier.cible.fr/sockjs/... sans authentification→ [3] Appel
getAllPersonsByEmail("") · 1 profil retourné (oracle email)→ [4] Appel
getPersonForUniqueNationalNumberSelf("", coopId) · 1 personId par coopérative→ [5] Appel
getPersonById(personId) · profil complet : nom, naissance, adresse, mobile, email, IBAN, BIC, idCardNumber, coopératives, parts→ [6] Chaînage par
cooperativeId dans le retour · plusieurs milliers de profils énumérables→ [7] Méthode
downloadfile(coopId, docId) · téléchargement d'un PDF sans authentification→ PoC validée sur trois profils réels — dont un mineur (date de naissance, adresse, tuteur légal).
Pourquoi c'est emblématique
Aucune CVE Meteor n'a été exploitée. Le framework n'est pas en cause : il est utilisé conformément à sa documentation. La faille est dans la convention de codage — un code qui « marche » fonctionnellement mais n'a jamais été audité du point de vue sécurité. Les données fuites incluent des données bancaires (IBAN/BIC), donc dans le périmètre RGPD article 9 (données financières) et un mineur (article 8). Le coût d'une notification CNIL pour un incident de cette ampleur dépasse de très loin le coût qu'aurait représenté l'ajout d'un if (!Meteor.userId()) throw new Meteor.Error('unauthorized') dans chaque méthode.
Plateforme associative à vocation médico-juridique, plusieurs dizaines de milliers d'utilisateurs (professionnels de santé, services sociaux, juristes). Stack Laravel + React, hébergement mutualisé français. Inscription ouverte, sans validation email, sans CAPTCHA — un attaquant peut se créer un compte en trente secondes.
L'endpoint qui ne devrait pas exister
L'API expose POST /api/client-all-acounts. La logique métier suppose que ce sont les administrateurs qui l'appellent, depuis leur back-office. Le contrôleur reçoit un email, fait User::where('email', $email)->first() et renvoie l'objet utilisateur complet. Aucune vérification d'autorisation par rôle. Et l'objet utilisateur retourné contient un champ pass_text — le mot de passe en clair.
Chaîne d'attaque
/api/signup · compte client actif immédiatement→ [2] Récupération du JWT (durée de validité : 365 jours)
→ [3] Énumération via
/api/send-pass · 200 = email existe, 500 = n'existe pas→ [4] Appel
POST /api/client-all-acounts {"email":"cible@..."}→ [5] Réponse JSON avec
pass_text = mot de passe en clair→ Account takeover de tout utilisateur — interprète, hôpital, administrateur. Confirmé sur le compte de la direction (mot de passe trivial :
123456) et sur le compte de contact.
Pourquoi c'est emblématique
Deux fautes professionnelles cumulées : l'absence de contrôle d'accès objet (IDOR) et le stockage des mots de passe en clair (toute base professionnelle stocke des hashes salés). À elles deux, elles transforment une plateforme métier en répertoire de credentials directement utilisables — pour du credential stuffing massif, des interprètes hospitaliers étant susceptibles de réutiliser leur mot de passe sur leurs comptes hospitaliers. Le risque dépasse largement le périmètre de l'organisation.
Ce que ces six cas ont en commun
Six profils différents — startup associative, organisme de formation, PME mobilité, PME de services médico-sociaux, coopérative à sociétaires, plateforme associative médico-juridique — six scores différents — 3, 4, 6, 3, 3, 2 — et pourtant des patterns identiques :
- Une façade défendable, qui rassure l'organisation et ses parties prenantes (site vitrine, certifications visibles, communication).
- Une infrastructure métier moins surveillée, où s'accumulent les configurations par défaut, les versions vieillissantes, les endpoints internes pensés comme « pas accessibles » mais accessibles.
- Une dépendance à un framework dont la sécurité dépend d'une discipline du développeur : Meteor exige un check d'auth manuel sur chaque méthode, Laravel n'oblige pas la vérification d'autorisation par objet, WebDev/WinDev ne sépare pas naturellement client et serveur.
- Aucune compromission n'a été menée, mais les chaînes d'attaque démontrées tiennent en cinq étapes, accessibles avec un navigateur et la lecture attentive du JavaScript public. La barrière n'est pas technique — elle est juridique (le pentester s'arrête à la PoC).
- Les données touchées ne sont pas anodines : sociétaires d'une coopérative, mineurs, demandeurs d'asile, interprètes médicaux, bénéficiaires d'aide sociale. Ce sont précisément les populations dont le droit à la protection de la vie privée est le plus fragile et dont l'exploitation aurait l'impact humain le plus élevé.
Que faire, dans quel ordre, à quel coût
Les dix quick wins universels
Si vous ne devez en retenir que dix, retenez ceux-là. Ils s'appliquent à 80 % des cibles auditées et représentent la première journée de travail d'un référent technique sérieux.
Roadmap par profil d'organisation
Au-delà des quick wins, voici une trajectoire de maturation typique selon la taille et la maturité.
| Profil | 0–3 mois | 3–12 mois | 12–36 mois |
|---|---|---|---|
| Asso < 10 sal. aucun référent technique |
10 quick wins. Migration vers managed hosting (WordPress.com, Webflow). MFA M365. | Audit annuel léger. Convention RGPD avec prestataires. Formation phishing du staff. | DPO mutualisé. Plan de continuité d'activité (PCA) écrit. Test de restauration de sauvegarde annuel. |
| Asso 10–50 sal. un référent à temps partiel |
Quick wins. Cloudflare frontal. Inventaire des services tiers. Désactivation xmlrpc. | Politique de mots de passe. Gestionnaire central. Migration des services EOL. | Pentest annuel externe. Politique de gestion des accès (RBAC). Charte numérique signée par tous. |
| PME ESS 50–200 sal. équipe IT (interne ou externalisée) |
Audit complet de surface. Recensement des comptes admin. MFA sur tous les services critiques. | SIEM léger ou SOC managé. Pentest annuel. Plan de réponse à incident. Tests phishing trimestriels. | RSSI dédié ou mutualisé. ISO 27001 si appel d'offres l'exige. Bug bounty privé pour les apps métier. |
| Coopérative / EPA > 200 sal. DSI structurée |
Inventaire exhaustif (CMDB). Cartographie des données sensibles (RGPD). | SOC 24/7 (interne ou managé). EDR sur les postes. Authentification SSO + MFA obligatoire. | Plan de continuité testé. Cyber-assurance dimensionnée. Audit ANSSI ou équivalent. |
Le risque oublié : email et facteur humain
L'audit web est un exercice nécessaire mais insuffisant. Les chiffres nationaux le rappellent : ~80 % des compromissions PME en France passent par le phishing, donc par l'email. Or, sur les trente-cinq cibles auditées, seules sept avaient une posture email correcte (DMARC en p=reject, DKIM signé, SPF strict). Et sur les douze structures testées sur leur tenant Microsoft 365, dix exposaient encore Basic Auth Exchange Online ou n'avaient pas forcé la MFA en première ligne.
Pour les organisations dont le profil de risque est dominé par l'email plutôt que par le web (Microsoft 365, équipe distribuée, échanges réguliers avec partenaires/financeurs/bénéficiaires), les priorités diffèrent :
- MFA Microsoft 365 ou Google Workspace sur tous les comptes — annule 95 % des password spray, qui sont eux-mêmes alimentés par l'énumération via
GetCredentialType. - DMARC
p=rejectpour bloquer l'usurpation du domaine. - Politique de mots de passe + gestionnaire central pour éviter le partage informel.
- Test de phishing trimestriel avec restitution pédagogique au staff.
- Procédure d'offboarding écrite pour les comptes orphelins après départs.
Vingt questions pour situer votre organisation
Identité et exposition
| # | Question | Réponse idéale |
|---|---|---|
| 01 | Avez-vous un référent technique nommément identifié et joignable en cas d'incident, 7 jours sur 7 ? | Oui |
| 02 | Connaissez-vous la liste exhaustive de vos sous-domaines actifs ? (vérifiable en 5 min via crt.sh) | Oui |
| 03 | Savez-vous combien de services tiers traitent des données de vos bénéficiaires/donateurs/salariés ? | Oui, < 30 |
| 04 | Avez-vous un registre RGPD à jour (article 30) avec une date de dernière mise à jour < 12 mois ? | Oui |
| 05 | Avez-vous identifié les 3 catégories de données les plus sensibles de votre SI ? | Oui |
Authentification et accès
| # | Question | Réponse idéale |
|---|---|---|
| 06 | L'authentification multifacteur (MFA) est-elle obligatoire pour tous les comptes administrateurs M365 / Google ? | Oui |
| 07 | Utilisez-vous un gestionnaire de mots de passe organisationnel (Bitwarden, 1Password) ? | Oui |
| 08 | Existe-t-il une procédure d'offboarding écrite pour révoquer les accès quand quelqu'un part ? | Oui |
| 09 | Vos panels d'administration (CMS, hébergeur, base de données) sont-ils restreints par IP ou via VPN ? | Oui |
| 10 | Avez-vous des comptes administrateurs partagés entre plusieurs personnes ? | Non |
Email et fraude
| # | Question | Réponse idéale |
|---|---|---|
| 11 | Votre domaine email a-t-il un enregistrement DMARC en p=reject ? | Oui |
| 12 | Vos emails sortants sont-ils signés DKIM ? | Oui |
| 13 | Savez-vous repérer un email de fraude au président (CEO fraud) et avez-vous une procédure de double validation pour les virements > X € ? | Oui |
| 14 | Avez-vous mené un test de phishing interne dans les 12 derniers mois ? | Oui |
Maintenance et sauvegardes
| # | Question | Réponse idéale |
|---|---|---|
| 15 | Tous vos CMS, frameworks et serveurs sont-ils dans une version actuellement supportée ? | Oui |
| 16 | Avez-vous un mécanisme de sauvegarde 3-2-1 (3 copies, 2 supports, 1 hors site) ? | Oui |
| 17 | Avez-vous testé la restauration d'une sauvegarde dans les 6 derniers mois ? | Oui |
| 18 | Avez-vous un plan de réponse à incident écrit, même court (1 page) ? | Oui |
| 19 | Disposez-vous d'une cyber-assurance ? | Oui (selon taille) |
| 20 | Avez-vous mené un audit ou pentest externe dans les 24 derniers mois ? | Oui |
Lecture du score
Pour décoder le vocabulaire de la cybersécurité
- API REST
- Interface permettant à des programmes (sites, applis mobiles, partenaires) de dialoguer avec un service. C'est la « porte arrière » qui sert souvent à transférer des données entre un site et une application mobile, par exemple. Mal protégée, elle peut révéler des données nominatives à toute personne qui sait l'interroger.
- Brute force
- Tentative automatisée de découvrir un mot de passe en essayant des millions de combinaisons. Une attaque est dite « amplifiée » quand elle peut faire plusieurs tentatives par requête (xmlrpc en WordPress permet 1 000 essais en une seule requête).
- CMS (Content Management System)
- Logiciel permettant de gérer un site web sans coder : WordPress, Drupal, Joomla, Wagtail. Les CMS sont à la fois la solution la plus simple pour avoir un site et la principale source de vulnérabilités quand ils ne sont pas maintenus à jour.
- CDN / WAF
- Content Delivery Network : réseau qui sert le contenu de votre site depuis le serveur le plus proche du visiteur. Web Application Firewall : pare-feu applicatif qui filtre les requêtes malveillantes. Cloudflare est le plus connu et offre les deux gratuitement.
- Certificate Transparency (CT logs)
- Registre public obligatoire de tous les certificats SSL émis sur Internet. Outil légitime pour la transparence, il permet aussi à n'importe qui de découvrir la liste de vos sous-domaines en 5 secondes — y compris ceux que vous croyiez « cachés » (staging, preprod, dev). À consulter via crt.sh.
- CVE / CVSS
- Common Vulnerabilities and Exposures : identifiant unique d'une faille de sécurité connue (exemple : CVE-2024-6387). Common Vulnerability Scoring System : score de gravité de 0 à 10. Au-delà de 9, on parle de critique.
- DMARC / SPF / DKIM
- Triplet d'enregistrements DNS qui authentifient vos emails et empêchent les usurpateurs d'envoyer des messages en se faisant passer pour votre domaine.
p=rejectest le réglage le plus protecteur.p=nonene bloque rien — il observe seulement. - EOL (End of Life)
- Logiciel qui n'est plus supporté par son éditeur : pas de mises à jour de sécurité, même quand des failles sont publiées. PHP 5.6 est EOL depuis 2018. Drupal 9 est EOL depuis 2023. Maintenir un EOL en production équivaut à laisser une porte ouverte étiquetée « entrez ».
- HSTS / CSP / X-Frame-Options
- Famille des « security headers » : instructions envoyées par votre serveur au navigateur pour qu'il refuse certaines attaques (force HTTPS, bloque les scripts injectés, refuse l'inclusion en iframe). Ils sont gratuits, ajoutés en quelques minutes. Leur absence est un signal d'amateurisme.
- Kill chain
- Chaîne d'attaque : enchaînement de petites vulnérabilités, isolément non critiques, qui combinées permettent une compromission. Les pentesters cherchent les chemins les plus courts dans ce graphe d'opportunités.
- MFA / 2FA
- Multi-factor authentication : authentification à plusieurs facteurs. En plus du mot de passe, un code à usage unique (SMS, application Google Authenticator, clé physique YubiKey). Annule à elle seule 95 % des attaques par mot de passe volé.
- OSINT (Open Source Intelligence)
- Renseignement à partir de sources ouvertes, accessibles à tous : LinkedIn, Wayback Machine, registres DNS publics, Have I Been Pwned, Google. Les phases 0 et 1 d'un audit s'appuient exclusivement sur l'OSINT.
- PII (Personally Identifiable Information)
- Données à caractère personnel : nom, prénom, email, téléphone, adresse, photo, géolocalisation. Sous RGPD, leur traitement est encadré et leur fuite déclarable à la CNIL sous 72 h.
- RCE (Remote Code Execution)
- Exécution de code à distance : la pire des vulnérabilités, qui permet à un attaquant de faire tourner ses propres programmes sur votre serveur. Conduit généralement à une compromission complète et à du ransomware.
- Rate limiting
- Limitation du nombre de requêtes autorisées par minute, par utilisateur ou par IP. Empêche le brute force d'aboutir en multipliant le temps nécessaire par 1 000 ou 10 000. Sans rate limiting, un panel admin tombe en quelques heures de scan automatisé.
- Sécurité par défaut / Privacy by design
- Principe selon lequel un logiciel doit être sécurisé et respectueux de la vie privée à l'installation, sans configuration manuelle. À l'opposé, beaucoup de services exigent que l'utilisateur durcisse activement la configuration — sinon, il prend les défauts permissifs.
- Self-hosted
- Logiciel installé et exploité sur ses propres serveurs (par opposition à un service cloud managé). Donne le contrôle, mais exige une compétence d'administration système maintenue dans la durée.
- Shadow IT
- Outils, comptes ou services utilisés par le personnel sans validation officielle de l'organisation. Un Trello personnel pour gérer des bénéficiaires, un Drive partagé entre bénévoles, un compte Zoom pro de l'université d'à côté. Échappe à la cartographie et donc à la protection.
- Subdomain takeover
- Reprise de contrôle d'un sous-domaine orphelin pointant vers un service externe désactivé. Si
campagne2019.assoc.frpointe vers un Heroku abandonné, n'importe qui peut recréer ce Heroku et hériter du sous-domaine. - VPN
- Virtual Private Network : tunnel chiffré entre l'utilisateur et le réseau de l'organisation. Dans un contexte de sécurité, sert à restreindre l'accès aux services internes — seules les personnes connectées au VPN peuvent atteindre
/admin, par exemple. - xmlrpc.php
- Endpoint hérité de WordPress, conçu pour permettre aux applications externes de poster des articles. Activé par défaut, il est devenu le vecteur de prédilection du brute force amplifié et de plusieurs familles d'attaques DDoS. À désactiver dans la quasi-totalité des cas modernes.
Trois enseignements transversaux
1. Le secteur ESS n'est pas en crise — il est en retard.
Aucune des organisations auditées n'est en perdition totale. Aucune n'a non plus la posture professionnelle qu'on attendrait d'une PME qui traite des données de mineurs ou de bénéficiaires précaires. La distance qui sépare le score médian observé (5/10) du score souhaitable (7/10) ne se mesure pas en années de chantier, mais en jours d'attention. Les cibles qui ont franchi le pas l'ont fait avec des budgets nuls ou symboliques.
2. Le risque n°1 n'est pas le pirate solitaire — c'est l'attaque de masse opportuniste.
L'imaginaire collectif associe la cybersécurité à des attaquants ciblés et sophistiqués. La réalité observée est plus prosaïque : des scanners automatisés ratissent Internet, repèrent les services obsolètes, tentent les mots de passe par défaut, monétisent ce qu'ils trouvent. Une organisation ESS n'est pas trop petite pour être attaquée — elle est trop visible pour ne pas l'être. La question n'est pas « si » mais « quand le scanner passera ».
3. Le facteur déterminant n'est pas la technologie — c'est la gouvernance.
Deux organisations avec la même stack peuvent avoir des scores radicalement différents selon qu'elles ont, ou pas, un référent technique nommément responsable, joignable, formé. Le contrat de prestation, la procédure d'offboarding, la décision d'arbitrage budgétaire, la clarté des rôles : ce sont des sujets de direction, pas de technique. La cybersécurité commence en conseil d'administration.
« Remédiation #1 : 0 €, 30 minutes, restriction d'IP sur les panels d'administration — élimine les findings hauts les plus courants. » Observation cross-audits, panorama 2026
Pour aller plus loin
- ANSSI — Guide d'hygiène informatique (42 mesures, accessible aux non-spécialistes).
- CNIL — Guide de la sécurité des données personnelles (édition à jour, librement téléchargeable).
- Cybermalveillance.gouv.fr — plateforme d'assistance gratuite aux victimes, et dispositif Diag Cyber Asso pour les structures à but non lucratif.
- Le programme Anozr Way et les initiatives France Num pour les TPE/PME.
- Programmes gratuits dédiés au secteur associatif : Bitwarden Free for Nonprofits, Cloudflare Project Galileo, Google for Nonprofits.
- Réseaux ressources ESS : Avise, UDES, UNIOPSS.
Vous voulez situer votre propre organisation ? Notre auto-diagnostic cybersécurité ESS reprend les 16 dimensions clés du baromètre en 3 minutes, gratuit et anonyme. Voir aussi la page qui suis-je et les formations cybersécurité & numérique responsable.
Ce panorama est un état des lieux. La suite dépend des organisations elles-mêmes, de leurs prestataires, de leurs financeurs — et de la décision, partagée ou non, de prendre la sécurité au sérieux avant qu'un incident ne l'impose.