Accueil / Particuliers / Cybercriminalité nigériane

Cybercriminalité nigériane

L’Unité 42 publie sa dernière étude en date consacrée à la cybercriminalité nigériane. Une analyse appliquées à une série de 8 400 échantillons de malwares.

L’Unité 42 publie ce jour sa dernière étude en date consacrée à la cybercriminalité nigériane. Ses analyses évoluées, appliquées à une série de 8 400 échantillons de malwares, ont permis d’attribuer à une centaine d’acteurs ou de groupes distincts plus de 500 domaines hébergeant l’activité de logiciels malveillants. Par son étendue et sa consistance, cette étude pose un diagnostic actuel et très complet, centré sur la menace collective et non sur tel ou tel acteur.

Globalement, nous avons observé que les acteurs nigérians ont évolué depuis leurs escroqueries classiques par e-mail, de type fraude 419. Les attaques de malwares sont en constante progression depuis deux ans : représentant moins d’une centaine de cas en juillet 2014, elles se développent aujourd’hui au rythme de 5 000 à 8 000 par mois. Ces attaques, loin d’être dirigées contre des catégories de victimes bien précises, couvrent les principaux marchés verticaux et ciblent davantage les entreprises que les particuliers. Passés maîtres dans le maniement de logiciels malveillants qui se sont banalisés, les acteurs en question ont extorqué des dizaines de milliers, voire des millions de dollars aux entreprises qu’elles ont choisi pour victimes, rien que pour la seule année dernière. Au vu des données recueillies, nous estimons que les évaluations rétrospectives concernant cette menace méritent d’être revues car ces acteurs ont aujourd’hui prouvé qu’ils constituent une réelle menace pour les entreprises et les administrations du monde entier.

L’étude expose en détail les phases successives de la cybercriminalité nigériane, aborde les tactiques employées, et permet de mieux comprendre la façon dont la menace a évolué par sa dimension, son périmètre, sa complexité et son savoir-faire technique au cours des deux dernières années. Elle analyse également les aspects ci-après :

Profils des acteurs
L’analyse des acteurs révèle avant tout qu’ils sont instruits. Nombre d’entre eux ont fréquenté des établissements d’enseignement secondaire et possèdent une licence dans une discipline technique. Pour ce qui est de leur classe d’âge, elle se situe entre la fin de l’adolescence et 45 ans environ ; plusieurs générations sont donc concernées. Concrètement, des acteurs d’un certain âge, versés dans les arnaques classiques de type fraude 419 et l’ingénierie sociale, côtoient donc des plus jeunes qui, eux, sont incollables sur les malwares. Et surtout, ces acteurs parfaitement organisés se servent des réseaux sociaux pour communiquer, coordonner et partager leurs outils et techniques.

Préjudices financiers
Les préjudices causés par ces acteurs ont des répercussions significatives sur les entreprises aux quatre coins du monde. En 2015, un rapport annuel publié par l’IC3 (Internet Cyber Crime Center), dépendant du FBI, recensait 30 855 victimes d’escroqueries « classiques » de type fraude 419/remboursement d’un trop-perçu, pour un préjudice total de plus de 49 millions de dollars. Bien que ce montant soit conséquent, le 1er août 2016, Interpol annonçait l’arrestation d’un acteur nigérian apparemment à l’origine d’un détournement de plus de 60 millions de dollars au total, dont plus de 15,4 millions de dollars au préjudice d’une seule entreprise.

Techniques
Les arnaques au président, ou escroqueries aux faux ordres de virement (Business Email Compromise, BEC) et les usurpations d’e-mails d’entreprises (Business Email Spoofing, BES) sont deux techniques qui sont, depuis peu, très en vogue chez ces acteurs. Les domaines visant à imiter des entreprises légitimes, les « crypteurs » utilisés pour dissimuler des malwares ainsi que d’autres méthodes leur permettent de s’introduire sur le réseau d’une victime. Une fois dans la place, l’ingénierie sociale sert à duper les victimes en les convaincant d’effectuer un virement bancaire à un tiers pour obéir à un prétendu ordre d’un dirigeant.

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