La recherche web n'a presque pas aidé notre hacker

Conception d'agentPar l'équipe SwarmAttacker chez JolocorpPublié 6 min de lecture

Petit frelon robotique noir sous une vaste toile rouge de nœuds réseau : donner la recherche web à l'agent de pentest

À un moment donné, nous avons décidé que notre hacker devait pouvoir chercher des informations. Les vrais testeurs d'intrusion n'ont pas en tête chaque CVE, chaque configuration bizarre et chaque contournement obscur. Ils ouvrent un navigateur. Nous avons donc donné à SwarmAttacker un outil de recherche web : en pleine exécution, quand il tombe sur quelque chose d'inconnu, il peut aller se renseigner et revenir.

Cela ressemblait à un gain évident. Tout Internet, à un appel d'outil de distance. Puis nous avons désactivé l'outil et relancé toute la suite pour voir ce qu'il valait vraiment. Retirer la recherche web a coûté six benchmarks sur 104. Réel, mais modeste. Et quand nous avons lu les exécutions, ce n'était presque jamais ce qui décidait d'une cible difficile.

Benchmarks perdus quand un composant est retiré

Chaque partie de SwarmAttacker, désactivée une à une. La recherche web contribue réellement, mais peu à côté du simple fait de garder le modèle en train de répondre.

Gestion des refusFait en sorte que le modèle réponde tout court
22
SkillsLa dernière étape spécifique à la classe pour atteindre le flag
8
Recherche webConsultations de connaissances à la demande
6
PlomberieDécouvertes structurées + pilotage
5
Techniques de promptingDiscipline de prompt écrite à la main
3
−6
benchmarks perdus
88 %
taux de résolution sans recherche web

Pourquoi la recherche web a-t-elle si peu aidé ? L'agent, pas l'outil

Voici la partie que je ne voulais pas écrire, parce que l'histoire facile serait que l'outil est faible, ou que les résultats de recherche sont bruités, ou que le modèle ne sait pas lire une page. Rien de cela n'est le vrai problème. Le vrai problème, c'est nous, et plus précisément l'agent que nous avons construit autour du modèle.

Un agent insuffisamment affiné sait à peine ce qu'il regarde. Quand il fixe une sortie d'outil trouble, une réponse à moitié cassée, une erreur qui pourrait signifier trois choses différentes, un en-tête qui est soit un indice soit rien du tout, il ne parvient souvent même pas à formuler la question précise à laquelle une recherche répondrait. Et on ne peut pas se sortir par Google de quelque chose cloche ici. La recherche récompense une requête nette. Une requête vague vous renvoie votre propre confusion, avec des citations.

Le goulot d'étranglement n'a jamais été l'accès à la connaissance. C'était la maturité de l'agent qui cherchait.

L'outil était donc là, pleinement capable, à côté d'un agent qui, bien souvent, ne savait pas encore quoi lui demander. Quand l'agent comprenait déjà la situation, il avait à peine besoin de chercher, il agissait. Quand il était perdu, chercher ne le sauvait pas, parce qu'il faut nommer la chose avant de pouvoir la chercher. C'est la même difficulté que celle que j'ai décrite dans lire le signal : le plus dur n'est pas de connaître des faits, c'est de remarquer quel détail à l'écran compte vraiment.

Pourquoi je pense toujours que la recherche en vaut la peine

Rien de tout cela ne signifie que l'outil était une erreur. Six benchmarks restent six benchmarks, et sur une poignée de cibles, c'était l'étape qui transformait un blocage en résolution, généralement une recherche précise de version vers exploit où l'agent savait déjà exactement ce qu'il poursuivait. C'est le schéma : la recherche paie précisément quand l'agent est assez affûté pour poser une question affûtée.

Ce qui pointe directement vers l'endroit où se trouve le levier. Je crois, et je tiens à préciser que c'est une conviction et non quelque chose que les chiffres prouvent, qu'un agent mieux entraîné et mieux réglé tirerait bien plus du même outil de recherche web, à l'identique. Pas un meilleur outil. Le même outil, confié à un agent capable de regarder un fouillis de sortie et de dire, proprement, c'est un débogueur Werkzeug, ce format de PIN est ancien, voici ce qu'il faut vérifier. Donnez à cet agent un champ de recherche et il l'utilisera comme un professionnel. Donnez-le à un agent perdu et il y tapera sa propre confusion.

Un agent brut et mal réglé détecte à peine les vulnérabilités au départ, et aucune quantité de recherche ne répare un agent qui ne sait pas encore ce qu'il voit. C'est étrangement encourageant. Cela signifie que le plafond ici n'est pas fixé par les outils que nous pouvons greffer. Il est fixé par la qualité de l'agent lui-même, ce qui est le levier auquel je reviens sans cesse : c'est l'agent, pas le modèle, et il en va de même pour l'agent face aux outils qui l'entourent.

Nous avons donné tout Internet à notre hacker et le chiffre a bougé de six. Non parce qu'Internet est petit, mais parce que notre agent n'était pas encore curieux de la bonne manière. La chose la plus utile que la recherche web nous a apprise n'est pas ce qu'il y a à trouver dehors. C'est la marge qu'il reste pour améliorer celui qui cherche.