Accueil / Cybersécurité / Téléphonie / Des millions de smartphone à petit prix infectés par du code malveillant

Des millions de smartphone à petit prix infectés par du code malveillant

Selon des spécialistes présents lors de l’événement Black Hat Asia, des développeurs peu scrupuleux ont réussi à infecter des millions de smartphones Android avec des micrologiciels malveillants avant même que les appareils ne soient mis en vente.

Des experts ont souligné, lors du rendez-vous Black Hat Asia, que cela affectait principalement les modèles d’appareils Android moins chers. Le problème réside dans l’externalisation, qui permet aux acteurs de la chaîne de production, tels que les développeurs de micrologiciels, d’introduire clandestinement du code malveillant.

Les spécialistes de Trend Micro ont qualifié ce problème de « croissant » pour les utilisateurs et les entreprises. Fedor Yarochkin de Trend Micro explique la situation de la manière suivante : « Quel est le moyen le plus simple d’infecter des millions d’appareils mobiles ? Faites-le à l’usine. Cela peut être comparé à un arbre qui absorbe un liquide : si vous apportez l’infection à la racine, elle se propagera partout, y compris chaque branche et chaque feuille.« 

Selon Yarochkin, cette pré-installation de logiciels malveillants a commencé à se répandre après la baisse des prix des smartphones. La concurrence entre les développeurs de micrologiciels est devenue si intense qu’ils ne pouvaient plus demander des sommes importantes pour leurs produits.

Cependant, il n’y a rien de gratuit dans cette situation. Par conséquent, les développeurs ont commencé à introduire des plug-ins appelés « silencieux« . L’équipe de recherche de Trend Micro a étudié plus d’une douzaine d’images de micrologiciels et a découvert plus de 80 de ces plug-ins. Leur fonction est de voler des données et de fournir certaines informations, ce qui aide les développeurs à générer des revenus. Les logiciels malveillants préinstallés en usine transforment les appareils mobiles en proxy utilisés pour voler des SMS et accéder aux comptes de réseaux sociaux. Ils facilitent également la fraude au clic.

50 fournisseurs de téléphones montrés du doigt !

Les experts ont souligné qu’ils ont pu détecter des logiciels malveillants préinstallés sur les téléphones d’au moins dix fournisseurs, et il est présumé qu’environ 40 autres fabricants pourraient être confrontés à une situation similaire. L’équipe de Yarochkin recommande aux utilisateurs de choisir des smartphones Android de marques connues (donc plus chers) afin de ne pas être victimes de logiciels malveillants préinstallés.

Cette situation est principalement observée sur les modèles d’appareils Android moins chers. Les acteurs de la chaîne de production, tels que les développeurs de micrologiciels, exploitent l’externalisation pour introduire clandestinement du code malveillant. Ces logiciels malveillants préinstallés en usine transforment les smartphones en outils de vol de données, d’accès aux comptes de réseaux sociaux et de fraude au clic. ZATAZ vous alertait de cette situation concernant des claviers d’ordinateurs, ainsi que les boîtiers vidéos vendus sur des plateformes telles qu’Amazon ou AliBaba.

Bien qu’aucun appareil ne soit totalement immunisé contre les menaces, investir dans un smartphone de meilleure qualité peut réduire le risque d’infection par des logiciels malveillants préinstallés. Il est également important de prendre d’autres mesures de sécurité pour protéger son appareil. Les utilisateurs doivent être prudents lors du téléchargement et de l’installation d’applications, en vérifiant leur source et en lisant les avis des utilisateurs. Il est recommandé de garder son système d’exploitation et ses applications à jour en installant régulièrement les mises à jour de sécurité fournies par le fabricant. De plus, l’utilisation d’une solution antivirus fiable sur son appareil peut contribuer à détecter et à bloquer les logiciels malveillants.

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