Accueil / Cybersécurité / Social engineering / Quand les virus informatiques détruisent nos complexes industriels

Quand les virus informatiques détruisent nos complexes industriels

Fin décembre, le gouvernement allemand a émis un rapport concernant une cyber-attaque contre une aciérie, qui a eu pour conséquence des dommages conséquents causés à l’usine. L’événement a été largement médiatisé depuis, de la BBC à Youtube ; le SANS Institute (SysAdmin, Audit, Network, Security) a notamment fourni une analyse détaillée de l’attaque. Nombre de ces rapports, comme celui de Wired, ont désigné l’attaque comme « le second cas confirmé dans lequel une attaque numérique a entraîné la destruction physique d’équipements », la première étant Stuxnet.

L’attaque s’est produite seulement quelques semaines après celles de BlackEnergy, ce qui a attiré mon attention, ce cas-ci constituant une attaque bien plus fondamentale contre une infrastructure majeure. L’attaque s’est concentrée sur la contamination de composants d’interface homme-machine issus de divers fournisseurs. De même que dans l’attaque sur des infrastructures américaines de gaz naturel rapportée par US-Cert en 2013, BlackEnergy représente une initiative élargie contre des capacités industrielles, bien plus sérieuse que l’attaque unique de l’aciérie allemande.

La visibilité que donne cet incident quant au risque de cyber-attaques est essentielle ; elle nous avertit que les attaques ciblées contre l’Internet des Objets en général et contre les infrastructures essentielles en particulier doivent être prises au sérieux. Certains historiens des technologies désignent juin 2010 comme le moment où tout a changé. C’est le moment où Stuxnet a frappé et aurait neutralisé un cinquième des centrifugeuses nucléaires en Iran. Depuis, le public n’a eu connaissance que de quelques autres cas d’usage de cyber-armes, mais ne vous y trompez pas : depuis 2010, les pays et « des groupes renégats » collectent des renseignements en masse et mettent au point des cyber-armes dont il peut être facilement fait usage contre un ennemi.

Les anomalies et interruptions consécutives de la connexion internet en Corée du Nord sont attribuées, sans confirmation, à des représailles suite à la récente agression d’une entreprise basée aux Etats-Unis. Suivant cette tendance, il n’est pas inimaginable que les guerres du futur se déroulent largement sur Ethernet, infligeant aux infrastructures des dommages bien plus importants et coûteux que nous ne pouvons l’imaginer.

Ce n’est pas de la science-fiction. Le directeur de la NSA, Michael Rogers, l’a annoncé publiquement : la Chine pourrait neutraliser la totalité du réseau électrique des Etats-Unis et d’autres attaques similaires pourraient être lancées, constituant des menaces concrètes pour les simples citoyens. Le trojan HAVEX récemment découvert en est un autre exemple. Ce malware a infiltré un nombre indéterminé d’infrastructures essentielles en s’intégrant à des mises à jour logicielles diffusées par des fabricants de systèmes de contrôle. Ces attaques impactent des systèmes sur lesquels nous nous appuyons quotidiennement, notamment des systèmes utilitaires, des raffineries, des systèmes de défense militaire, ou des usines de traitement des eaux.

Avec notre dépendance accrue aux technologies de l’information et nos systèmes interconnectés, nos efforts pour assurer à ces systèmes des défenses appropriées n’ont pas suivi le rythme. Par exemple, un simple pare-feu et des technologies de sécurité basées sur des règles ne garantissent pas la sûreté d’environnements diffusés ou virtuels, ni ne protègent d’attaques « jour zéro » ciblées où aucune signature n’a été développée. Les cybercriminels de niveau corporatif et les cyber-terroristes d’échelle nationale peuvent facilement tirer parti de ces brèches dans notre armure défensive et lancer la prochaine attaque d’envergure.

Lors de la mise en place de nouvelles technologies, il est essentiel de faire de la sécurité un enjeu du débat plutôt que d’y faire face par un ajout après-coup ou même suite à une attaque. Notre capacité à sécuriser les intérêts commerciaux et intérêts nationaux requiert une posture « vers l’avant » contre les scénarios de plus en plus plausibles où une arme lancée contre nous sera peut-être bien plus silencieuse mais bien plus dévastatrice lorsque nous ferons face aux cyberguerres.  (Par Christian Hiller, Président, EMC France)

Étiquetté :

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>