Accueil / Cybersécurité / Espionnage Spy / Réseau de faux cabinets : soupçons d’une opération de recrutement chinoise

Réseau de faux cabinets : soupçons d’une opération de recrutement chinoise

Un réseau de sites vitrines aurait ciblé d’anciens fonctionnaires américains par de fausses offres d’emploi, selon une enquête du think tank Foundation for Defense of Democracies (FDD).

Des chercheurs du FDD ont mis au jour un ensemble de sites internet soupçonnés d’être liés à une opération de renseignement chinoise. Sous couvert de fausses sociétés de conseil et de think tanks fictifs, ce réseau baptisé « Foresight Network » aurait tenté de recruter d’anciens employés fédéraux et des experts en politiques publiques. Parmi les méthodes utilisées, des annonces proposant jusqu’à 8 500 $ (7 900 €) mensuels pour des postes d’analystes à distance. Si l’esthétique maladroite des sites intrigue, elle n’empêche pas leur efficacité potentielle, rappellent les analystes, citant des précédents judiciaires. Le FBI confirme surveiller ces tactiques de recrutement en ligne visant aussi bien les détenteurs d’habilitations que les spécialistes civils et académiques.

Un réseau de sites fictifs

Le site Foresight and Strategy a publié en mai une annonce offrant un poste d’analyste politique à distance, payé jusqu’à 8 500 $ (7 920 €) par mois. L’offre visait des profils issus d’organismes internationaux, d’agences publiques ou de think tanks. Derrière ce site se cacheraient deux autres vitrines, International Affairs Review et Institute of International Studies. Les trois partagent la même infrastructure numérique et un serveur de messagerie commun. Les recherches de Max Lesser et Maria Riofrio (FDD) indiquent que tous ont été enregistrés en Chine, Foresight en février 2022, les deux autres en décembre 2021. L’ensemble semble avoir profité de l’essor du télétravail post-COVID.

Deux autres plateformes, Asia Pacific Political Review et Global Strategic Outlook, aujourd’hui inaccessibles, pourraient également appartenir au même réseau. Si le lien direct avec les services de renseignement chinois reste non démontré, le schéma fait écho à d’autres opérations d’influence déjà documentées.

Méthodes simples, risques réels

Les pages incriminées présentent un anglais maladroit et des contenus visiblement factices. Témoignages signés de « John Doe », photos empruntées à des modèles WordPress ou coordonnées invalides illustrent ce bricolage. Pourtant, préviennent les analystes, ce type d’opération peut avoir des conséquences graves. La récente condamnation d’un haut fonctionnaire du département d’État américain à quatre ans de prison pour avoir transmis des documents classifiés à des agents chinois en est un exemple. Selon l’acte d’accusation, ces agents se présentaient comme membres de cabinets internationaux, exactement comme dans le scénario observé par le FDD.

Pour Lesser, même un camouflage minimal suffit à engager le premier contact. « Il n’est pas nécessaire de créer une société-écran : un site web rudimentaire suffit », résume-t-il.

Réactions officielles et alertes sécuritaires

Interrogée, l’ambassade de Chine à Washington a rejeté toute implication, dénonçant des accusations « sans fondement factuel ». De son côté, le FBI n’a pas commenté directement le réseau, mais a confirmé surveiller activement les tentatives de recrutement en ligne visant d’anciens agents, des experts techniques et des chercheurs. Le Bureau conseille de signaler toute offre suspecte aux services de sécurité compétents.

Le National Counterintelligence and Security Center avait déjà mis en garde, en avril, contre l’usage croissant de ces techniques par la Chine. En mars, CNN rapportait que Pékin et Moscou intensifiaient leurs efforts pour cibler des fonctionnaires américains frustrés ou en reconversion. Brian Harrell, ancien responsable du DHS, souligne que l’afflux de candidats après les récentes vagues de licenciements fédéraux rend le terrain encore plus propice à ces approches.

La faible sophistication technique de ces sites ne doit pas masquer leur potentiel opérationnel. Dans quelle mesure les services occidentaux sauront-ils anticiper ces approches numériques à bas coût, mais potentiellement dévastatrices ? (FWC)

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