Accueil / Cybersécurité / Justice / Intesa Sanpaolo sanctionnée pour faille interne

Intesa Sanpaolo sanctionnée pour faille interne

En Italie, un accès illicite aux données de 3 573 clients vaut à Intesa Sanpaolo une lourde sanction, révélatrice d’un angle mort critique dans la surveillance interne.

L’autorité italienne de protection des données a infligé à Intesa Sanpaolo SpA une amende de 36 millions $ (31,8 millions d’euros) après la découverte d’accès injustifiés aux informations bancaires de 3 573 clients entre février 2022 et avril 2024. Le régulateur évoque de graves insuffisances dans la sécurité des données personnelles, liées à des mesures techniques et organisationnelles inadaptées. L’affaire, déclenchée après une fuite de données signalée en juillet 2024, met en lumière un défaut de détection interne, des contrôles jugés trop faibles et une gestion contestée des notifications adressées aux personnes concernées. Plusieurs clients visés étaient en outre considérés comme sensibles ou à haut risque.

Une fuite interne qui expose les failles de contrôle

L’affaire frappe l’une des plus grandes institutions financières italiennes au cœur de sa fonction la plus sensible : la protection des données bancaires. Lundi, l’Autorité italienne de protection des données a annoncé une sanction de 36 millions $ (31,8 millions d’euros) contre Intesa Sanpaolo SpA. En cause, des consultations indues d’informations bancaires concernant plus de 3 500 clients, sur une période de plus de deux ans.

Le dossier a débuté avec une fuite de données rendue publique par la banque en juillet 2024. L’enquête ouverte dans la foulée a permis d’établir qu’un salarié avait accédé, sans motif légitime, aux données de 3 573 clients entre février 2022 et avril 2024. Ce seul calendrier suffit à montrer l’ampleur du problème : il ne s’agit pas d’un incident ponctuel, ni d’une erreur isolée détectée rapidement, mais d’un accès prolongé, répété, et resté invisible durant une période exceptionnellement longue.

Le régulateur décrit des « graves lacunes en matière de sécurité des données personnelles, dues à l’inadéquation des mesures techniques et organisationnelles adoptées ». La formule est lourde de sens. Elle vise à la fois l’architecture de sécurité, les procédures de contrôle, et la gouvernance qui encadre l’accès aux informations les plus sensibles. Dans le secteur bancaire, cet empilement de protections est censé empêcher qu’un employé puisse consulter librement des comptes sans alerte immédiate. Or, selon l’autorité, ce garde-fou n’a pas tenu.

Le communiqué du régulateur insiste sur un point déterminant pour toute analyse cyber : les accès non autorisés n’ont pas été repérés par les systèmes de contrôle interne. Autrement dit, le risque ne vient pas seulement de l’acte fautif d’un employé. Il découle aussi d’une incapacité structurelle à voir, qualifier et interrompre un comportement anormal. Dans une logique de sécurité, l’échec est donc double : la prévention n’a pas suffi, la détection non plus.

Le modèle opérationnel de la banque est lui aussi explicitement mis en cause. Selon l’autorité, les opérateurs pouvaient interroger de manière exhaustive l’ensemble de la clientèle, sans que ce pouvoir soit compensé par des mécanismes aptes à prévenir ou identifier les abus. Cette remarque dépasse le cas individuel. Elle révèle un problème de conception, où l’accessibilité interne aux données l’emporte sur le cloisonnement, alors même que ce type d’exposition crée un risque évident d’espionnage économique, de surveillance ciblée ou d’exploitation de renseignements sensibles.

News & alertes actualités cyber

Enquêtes, cyberveille avec le Service de veille ZATAZ, fuites, actus, et recevez nos infos par 📧 ou par ☎️.

Des clients sensibles et une réponse jugée insuffisante

Le régulateur souligne un autre aspect particulièrement sensible : parmi les personnes concernées figuraient des clients considérés comme « à haut risque », dont des personnalités publiques bien connues. Ce détail change la portée du dossier. Lorsqu’une banque gère des profils exposés, la protection attendue ne relève plus seulement de la conformité de base. Elle touche à la prévention de scénarios plus critiques, où les données financières peuvent alimenter des pressions, des atteintes à la vie privée, des campagnes d’influence ou des opérations de ciblage.

L’autorité estime justement qu’Intesa Sanpaolo aurait dû appliquer à ces comptes des contrôles renforcés. Cette appréciation est centrale. Elle montre que le régulateur ne raisonne pas seulement en nombre de victimes, mais aussi en niveau de sensibilité des informations compromises. Dans une lecture renseignement, la valeur d’une donnée dépend du profil qu’elle concerne, du contexte dans lequel elle est consultée, et de l’usage potentiel qui peut en être fait. L’absence de vigilance supplémentaire pour des clients à risque alourdit donc mécaniquement la gravité du dossier.

L’enquête ne s’est pas arrêtée aux seuls accès illicites. D’autres irrégularités ont été constatées dans la manière dont la banque a géré l’incident après sa découverte. Selon le communiqué, les notifications adressées aux clients concernés étaient incomplètes et envoyées hors des délais prévus par la loi. Là encore, le sujet va au-delà d’un manquement procédural. Dans une crise de données, la qualité de l’information transmise aux victimes est un indicateur direct de maturité. Prévenir tard, ou prévenir partiellement, laisse les personnes exposées sans capacité immédiate d’évaluation ou de réaction.

Intesa Sanpaolo n’a pas souhaité commenter, son porte-parole ayant refusé toute déclaration. Le silence public de l’établissement ne modifie pas les éléments retenus par l’autorité, qui précise avoir calibré l’amende selon plusieurs critères : la gravité des faits, leur durée, le nombre de clients touchés et la manière dont le problème a été traité après sa découverte. Cette méthode de calcul ancre la sanction dans une logique cumulative, où chaque défaillance renforce l’autre.

Au total, cette affaire montre qu’en matière bancaire, la menace interne reste l’un des angles morts les plus dangereux lorsque les droits d’accès sont trop larges et les contrôles trop faibles.

É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>