Ingénieur IA, sécurité LLMs H/F

Il y a 1 jour

SaintHerblain, Pays de la Loire, France Dynabuy Temps plein
Le Pôle IA & Data de Dynabuy assure une veille technique et scientifique sur l'IA, conçoit et met en production des outils d'IA générative, automatise les processus métier et construit la plateforme data qui valorise les données de l'entreprise et de son réseau. Une petite équipe, des sujets de pointe, et des résultats qui servent directement des centaines de milliers d'entreprises

Description du poste
et Missions Dynabuy est une centrale d'achats qui négocie des conditions auprès de fournisseurs pour un réseau d'environ 364 000 entreprises adhérentes. Au sein du Pôle IA & Data, nous recherchons une/un élève ingénieure/ingénieur pour un stage de fin d'études de 6 mois. Nous exploitons en production des services d'IA générative qui traitent des documents commerciaux : LLM multimodaux, architecture RAG, embeddings et base vectorielle, exposés par API et par un serveur MCP qui permet à des agents IA de les appeler comme des outils. Ces services ingèrent des documents sur lesquels nous n'avons aucun contrôle et s'ouvrent à des agents tiers : autant de surfaces d'attaque. La protection ne peut pas reposer sur la seule robustesse native des modèles, et la littérature récente le confirme : les détecteurs d'injection publiés sont contournables, l'empoisonnement d'une base de connaissances réussit avec une poignée de documents, et les serveurs MCP réels cèdent à des attaques par description d'outil dans une proportion significative des cas. Le stage commence par un état de l'art des vulnérabilités propres aux systèmes LLM et RAG, des techniques d'attaque publiées et des mécanismes de protection existants. Sur cette base, il s'agit de construire une campagne de red teaming automatisée et reproductible : une batterie de scénarios d'attaque ciblant chaque surface exposée (API, documents ingérés, base vectorielle, serveur MCP), exécutée avant la mise en place des garde-fous pour établir une ligne de base, puis rejouée après pour mesurer leur efficacité. L'objectif final est de concevoir, implémenter et déployer un dispositif de sécurisation de bout en bout, de l'ingestion des documents à la restitution, combinant plusieurs familles de techniques : filtrage et détection d'injections, validation déterministe par un moteur de raisonnement structuré (Jev, approche de type « système 1 »), contrôles de cohérence métier pour la détection de fraude, durcissement des interfaces. Ce dispositif doit résister aux attaques connues sans dégrader le service pour les documents légitimes. Il ne s'agit pas d'empiler des garde-fous mais de savoir ce que chacun bloque, ce qu'il laisse passer et ce qu'il coûte. Vos missions
* État de l'art et modèle de menace (semaines 1 à 4) : o Cartographier les menaces propres aux systèmes documentaires à base de LLM : injection d'instructions directe et indirecte via le contenu des documents (texte caché dans les PDF, instructions typographiques ou stéganographiques dans les images lues par un modèle de vision), empoisonnement de la base vectorielle par des contenus malveillants indexés, détournement d'outils MCP (descriptions piégées, arguments manipulés), exfiltration de données par les sorties du modèle ou par des appels d'outils ; o Couvrir les attaques à objectif économique et la fraude documentaire : falsification de montants, manipulation des résultats affichés ; o Produire la surface d'attaque de notre architecture, composant par composant, avec les points d'entrée, les actifs exposés et les impacts.
* Banc d'essai et reproduction des menaces (semaines 4 à 8) : o Construire un banc de documents piégés couvrant chaque vecteur identifié et chaque surface (API, documents, base vectorielle, MCP), avec une vérité terrain : ce que le système aurait dû produire ; o Automatiser les attaques avec les outils du domaine (promptfoo, garak, PyRIT ou équivalent) et mesurer l'état initial : taux de succès des attaques, utilité conservée sur les documents légitimes, latence.
* Conception et implémentation des défenses (semaines 8 à 18) : o Séparer strictement instructions et données dans les appels aux modèles ; o Détecter les tentatives d'injection dès l'ingestion, avant vectorisation (pre-embedding), pour qu'aucun contenu malveillant n'entre dans la base vectorielle ; o Inspecter les documents avant lecture : texte invisible, calques, polices d'un pixel ; o Valider les sorties structurées par un schéma typé, en s'appuyant sur Jev, notre moteur de raisonnement structuré et déterministe, comme une technique de détection parmi d'autres ; o Mettre en place des contrôles de cohérence déterministes sur les valeurs extraites pour détecter