Accueil / Cybersécurité / Securite informatique / TriZetto : 3,4 millions de patients touchés

TriZetto : 3,4 millions de patients touchés

Une faille chez TriZetto Provider Solutions, filiale de Cognizant, a exposé des données de santé sensibles de plus de 3,4 millions de patients via un portail web.

TriZetto Provider Solutions, filiale de Cognizant spécialisée dans les technologies de la santé, a subi une fuite de données ayant concerné plus de 3,4 millions de patients. L’incident touche un portail web utilisé par des professionnels de santé et remonte, selon l’enquête, à un accès non autorisé apparu dès novembre 2024. Les informations potentiellement compromises incluent des données d’identité, d’assurance et de santé. Aucune donnée financière n’aurait été affectée et aucun cas de fraude ou d’usurpation d’identité n’a été signalé à ce stade. L’entreprise dit avoir mobilisé des experts en cybersécurité, prévenu les autorités compétentes et renforcé ses mesures de protection après la découverte des faits.

Un portail au cœur d’un incident de longue durée

La faille révélée chez TriZetto Provider Solutions met en lumière la sensibilité extrême des infrastructures numériques qui irriguent l’administration du système de santé. L’entreprise développe et fournit des logiciels ainsi que des services destinés aux cabinets médicaux, aux hôpitaux et aux assureurs. Ses outils couvrent notamment la facturation, la gestion du cycle de revenus, le traitement des demandes de remboursement et différents flux de travail administratifs utilisés à grande échelle dans le secteur.

C’est dans ce contexte qu’une activité suspecte a été détectée le 2 octobre 2025 sur un portail web exploité pour les professionnels de santé. L’enquête engagée ensuite a établi qu’une personne non autorisée avait pu accéder, dès novembre 2024, à des dossiers liés à des transactions de vérification d’éligibilité à l’assurance. Le décalage entre le début présumé de l’intrusion et sa détection souligne la difficulté persistante à identifier rapidement des accès illicites dans des environnements fortement interconnectés, où transitent des données administratives et médicales à grande échelle.

TriZetto indique avoir alors missionné des experts en cybersécurité, alerté les autorités compétentes et entamé le processus d’information des professionnels de santé concernés à partir de décembre 2025. Aucun groupe de pirates informatiques n’a, à ce jour, revendiqué l’attaque. En l’état, les éléments communiqués ne permettent donc pas d’attribuer publiquement l’opération ni d’en préciser le mode opératoire au-delà de l’accès non autorisé constaté.

L’entreprise a ensuite précisé qu’aux alentours du 28 novembre 2025, elle avait établi que la faille pouvait avoir exposé des données personnelles et de santé. Le volume annoncé, supérieur à 3,4 millions de patients, confère à l’incident une portée significative dans un domaine où la donnée de santé, croisée avec des identifiants administratifs, présente une valeur particulière.

 

 

News & alertes actualités cyber

Enquêtes, cyberveille, fuites, actu sécurité : recevez nos informations cyber là où vous êtes, chaque vendredi midi.

Des données identifiantes et médicales exposées

Le contenu de la notification transmise au bureau du procureur général du Maine détaille la nature des informations susceptibles d’avoir été compromises. La lettre indique : « Aux alentours du 28 novembre 2025, TPS a constaté que les données compromises pouvaient inclure votre nom, votre adresse, votre date de naissance, votre numéro de sécurité sociale, votre numéro d’assurance maladie (qui, pour certaines personnes, peut correspondre à un identifiant de bénéficiaire de Medicare), le nom de votre professionnel de santé, le nom de votre assureur, les informations concernant votre assuré principal, ainsi que d’autres informations démographiques, de santé et d’assurance maladie. »

Cet inventaire montre que la fuite ne se limite pas à des données de contact. Elle concerne aussi des éléments à fort pouvoir d’identification, comme le numéro de sécurité sociale, ainsi que des informations directement liées à la prise en charge médicale et à la couverture d’assurance. Dans l’écosystème de la santé, ce type de combinaison peut exposer les personnes concernées à des risques durables, qu’il s’agisse d’atteintes à la vie privée, d’usages frauduleux ou de tentatives d’ingénierie sociale fondées sur des données crédibles.

TriZetto affirme en revanche qu’aucune carte de paiement, aucun compte bancaire et aucune autre information financière n’ont été touchés. La notification ajoute également : « Cet incident n’a affecté aucune carte de paiement, aucun compte bancaire ni aucune autre information financière. À ce jour, nous n’avons connaissance d’aucun cas d’usurpation d’identité ou de fraude lié à l’utilisation des informations des personnes concernées, y compris les vôtres. » À ce stade, l’entreprise dit donc n’avoir observé ni exploitation frauduleuse avérée ni signalement d’usurpation d’identité en lien avec cette compromission.

Après la découverte de l’incident, TriZetto indique avoir déployé des mesures de sécurité supplémentaires pour mieux protéger ses systèmes et ses services. L’entreprise propose aussi, pendant 12 mois et à titre gratuit, un dispositif de protection d’identité comprenant la surveillance du crédit, des rapports de crédit et des alertes de score de crédit, dans une fenêtre d’inscription limitée. Une assistance proactive en matière de fraude est également annoncée via Kroll, société spécialisée dans la protection d’identité et la résolution des problèmes liés à la fraude.

Même en l’absence de fraude constatée à ce jour, les personnes potentiellement touchées sont invitées à surveiller leurs relevés bancaires, à suivre leurs rapports de solvabilité et à signaler rapidement toute activité suspecte à leur banque ou à leur établissement financier. Une ligne d’assistance dédiée a par ailleurs été mise en place. Au-delà de la gestion immédiate des victimes, cet incident rappelle que les portails administratifs du secteur de la santé sont devenus des surfaces d’exposition critiques, à la croisée de la protection des données, de la cybersécurité et de la gouvernance des flux sensibles.

Étiquetté :

Répondre

Nos partenaires




Actualités du mois

mars 2026
L M M J V S D
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Articles en UNE

Actus zataz



Réseaux sociaux


Liste des sujets


<!-- Cyber'Émission ZATAZ — badge volant (déplaçable) + réduire/fermer -->
<div class="zataz-yt-float" id="zatazYtFloat" role="region" aria-label="Cyber'Émission ZATAZ">
  <div class="zataz-yt-float__bar" id="zatazYtBar">
    <span class="zataz-yt-float__title">Cyber'Émission ZATAZ</span>

    <div class="zataz-yt-float__actions">
      <button type="button" class="zataz-yt-float__btn" id="zatazYtMin" aria-label="Réduire">—</button>
      <button type="button" class="zataz-yt-float__btn zataz-yt-float__btn--close" id="zatazYtClose" aria-label="Fermer">×</button>
    </div>
  </div>

  <a class="zataz-yt-badge" href="https://www.youtube.com/@ZATAZCOM" target="_blank" rel="noopener noreferrer"
     aria-label="Regarder Cyber'Émission ZATAZ sur YouTube (nouvel onglet)">
    <span class="zataz-yt-badge__thumb" aria-hidden="true">
      <span class="zataz-yt-badge__play" aria-hidden="true"></span>
    </span>
  </a>
</div>

<style>
  .zataz-yt-float{
    position:fixed;
    right:18px;
    bottom:18px;
    z-index:99999;
    width:320px;
    max-width:calc(100vw - 36px);
    border-radius:14px;
    overflow:hidden;
    background:linear-gradient(135deg,#111827,#0b1220 55%,#111827);
    border:1px solid rgba(255,255,255,.12);
    box-shadow:0 14px 40px rgba(0,0,0,.35);
    transform:translateZ(0);
    user-select:none;
    touch-action:none; /* drag mobile */
  }

  /* Barre de drag + boutons */
  .zataz-yt-float__bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 10px 10px 12px;
    font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    color:#fff;
    background:rgba(0,0,0,.18);
    border-bottom:1px solid rgba(255,255,255,.10);
    cursor:grab;
  }
  .zataz-yt-float__bar:active{ cursor:grabbing; }
  .zataz-yt-float__title{
    font-weight:800;
    letter-spacing:.2px;
    font-size:15px;
    line-height:1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .zataz-yt-float__actions{ display:flex; gap:8px; }
  .zataz-yt-float__btn{
    appearance:none;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(0,0,0,.28);
    color:#fff;
    width:32px;
    height:28px;
    border-radius:10px;
    font-weight:900;
    line-height:1;
    cursor:pointer;
    display:grid;
    place-items:center;
  }
  .zataz-yt-float__btn:hover{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.28); }
  .zataz-yt-float__btn--close:hover{ background:rgba(239,68,68,.22); border-color:rgba(239,68,68,.45); }

  /* Contenu (votre vignette) */
  .zataz-yt-badge{
    display:block;
    text-decoration:none;
    color:#fff;
  }
  .zataz-yt-badge__thumb{
    display:block;
    height:180px;
    background:#0f172a url("https://i.ytimg.com/vi/HUo8dnD6Swk/hqdefault.jpg") center/cover no-repeat;
    position:relative;
  }
  .zataz-yt-badge__play{
    position:absolute;
    left:50%;
    top:50%;
    width:54px;
    height:54px;
    margin:-27px 0 0 -27px;
    border-radius:999px;
    background:rgba(0,0,0,.55);
    border:1px solid rgba(255,255,255,.25);
    box-shadow:0 10px 22px rgba(0,0,0,.35);
  }
  .zataz-yt-badge__play:before{
    content:"";
    position:absolute;
    left:22px;
    top:16px;
    width:0;height:0;
    border-top:11px solid transparent;
    border-bottom:11px solid transparent;
    border-left:16px solid #fff;
  }

  .zataz-yt-float:hover{
    box-shadow:0 18px 55px rgba(0,0,0,.45);
    border-color:rgba(255,255,255,.18);
  }
  .zataz-yt-badge:active{ transform:scale(.99); }

  /* Etat réduit */
  .zataz-yt-float.is-min .zataz-yt-badge{ display:none; }
  .zataz-yt-float.is-min{ width:260px; }

  /* Mobile : plus compact */
  @media (max-width:480px){
    .zataz-yt-float{ width:280px; right:12px; bottom:12px; }
    .zataz-yt-badge__thumb{ height:158px; }
    .zataz-yt-float.is-min{ width:220px; }
  }
</style>

<script>
(() => {
  const box = document.getElementById('zatazYtFloat');
  const bar = document.getElementById('zatazYtBar');
  const btnMin = document.getElementById('zatazYtMin');
  const btnClose = document.getElementById('zatazYtClose');

  if (!box || !bar || !btnMin || !btnClose) return;

  // Réduire / restaurer
  btnMin.addEventListener('click', (e) => {
    e.stopPropagation();
    box.classList.toggle('is-min');
    btnMin.textContent = box.classList.contains('is-min') ? '▢' : '—';
    btnMin.setAttribute('aria-label', box.classList.contains('is-min') ? 'Restaurer' : 'Réduire');
  });

  // Fermer
  btnClose.addEventListener('click', (e) => {
    e.stopPropagation();
    box.remove();
  });

  // Drag (souris + tactile) via Pointer Events
  let dragging = false;
  let startX = 0, startY = 0;
  let startLeft = 0, startTop = 0;

  // Position initiale: on convertit right/bottom en left/top pour le drag
  const init = () => {
    const r = box.getBoundingClientRect();
    box.style.left = r.left + 'px';
    box.style.top  = r.top  + 'px';
    box.style.right = 'auto';
    box.style.bottom = 'auto';
  };
  init();

  const clamp = (v, min, max) => Math.min(Math.max(v, min), max);

  bar.addEventListener('pointerdown', (e) => {
    // pas de drag quand on clique sur les boutons
    if (e.target === btnMin || e.target === btnClose) return;

    dragging = true;
    bar.setPointerCapture(e.pointerId);

    const r = box.getBoundingClientRect();
    startX = e.clientX;
    startY = e.clientY;
    startLeft = r.left;
    startTop = r.top;

    e.preventDefault();
  });

  bar.addEventListener('pointermove', (e) => {
    if (!dragging) return;

    const dx = e.clientX - startX;
    const dy = e.clientY - startY;

    const r = box.getBoundingClientRect();
    const w = r.width;
    const h = r.height;

    const maxLeft = window.innerWidth - w - 8;
    const maxTop  = window.innerHeight - h - 8;

    box.style.left = clamp(startLeft + dx, 8, maxLeft) + 'px';
    box.style.top  = clamp(startTop + dy, 8, maxTop) + 'px';
  });

  const endDrag = () => { dragging = false; };
  bar.addEventListener('pointerup', endDrag);
  bar.addEventListener('pointercancel', endDrag);

  // Re-clamp au resize
  window.addEventListener('resize', () => {
    const r = box.getBoundingClientRect();
    const maxLeft = window.innerWidth - r.width - 8;
    const maxTop  = window.innerHeight - r.height - 8;
    box.style.left = clamp(r.left, 8, maxLeft) + 'px';
    box.style.top  = clamp(r.top, 8, maxTop) + 'px';
  });
})();
</script>