{"id":4572,"date":"2026-08-22T00:40:53","date_gmt":"2026-08-22T03:40:53","guid":{"rendered":"https:\/\/tucumandevelopers.com\/index.php\/2026\/08\/22\/topowatch-audita-el-attack-success-rate-de-tu-workspace-contra-inyeccion-indirecta\/"},"modified":"2026-08-22T00:40:53","modified_gmt":"2026-08-22T03:40:53","slug":"topowatch-audita-el-attack-success-rate-de-tu-workspace-contra-inyeccion-indirecta","status":"publish","type":"post","link":"https:\/\/tucumandevelopers.com\/index.php\/2026\/08\/22\/topowatch-audita-el-attack-success-rate-de-tu-workspace-contra-inyeccion-indirecta\/","title":{"rendered":"topowatch: audita el Attack Success Rate de tu workspace contra inyecci\u00f3n indirecta"},"content":{"rendered":"<div>\n<div><\/header>\n<div data-article-id=\"4457896\" id=\"article-body\">\n<p>Tu agente de c\u00f3digo lee tu workspace. Un archivo envenenado en cualquier rinc\u00f3n<br \/> puede llevar instrucciones que el agente ejecuta. \u00bfSabes qu\u00e9 fracci\u00f3n de tu<br \/> workspace tiene que leer para que eso ocurra? <code>topowatch<\/code> mide eso.<\/p>\n<h2> <a name=\"el-problema-no-es-el-prompt-es-la-topolog%C3%ADa\" href=\"#el-problema-no-es-el-prompt-es-la-topolog%C3%ADa\"> <\/a> El problema no es el prompt, es la topolog\u00eda <\/h2>\n<p>El paper <em>Workspace Topology as an Attack Vector in Agentic Coding Assistants<\/em><br \/> (arXiv:2608.14876, Day et al., 2026) demostr\u00f3 algo que intu\u00edamos pero no<br \/> med\u00edamos: la <strong>topolog\u00eda del workspace afecta mediblemente el Attack Success<br \/> Rate (ASR)<\/strong> de la inyecci\u00f3n indirecta. Los entornos altamente modulares<br \/> muestran ASR significativamente menor que los planos.<\/p>\n<p>La raz\u00f3n es mec\u00e1nica: si el agente acota su lectura al m\u00f3dulo de la tarea,<br \/> nunca llega al archivo envenenado. Si hace un <em>wide read<\/em> de todo el workspace,<br \/> lo lee siempre.<\/p>\n<h2> <a name=\"qu%C3%A9-es-topowatch\" href=\"#qu%C3%A9-es-topowatch\"> <\/a> Qu\u00e9 es topowatch <\/h2>\n<p><code>topowatch<\/code> es una herramienta de l\u00ednea de comandos que, dado un workspace,<br \/> mide el ASR de una inyecci\u00f3n indirecta de referencia bajo varias configuraciones<br \/> de topolog\u00eda, y reporta qu\u00e9 estructura minimiza el ASR.<\/p>\n<p>Fundamentado en arXiv:2608.14876. Determinista y reproducible sin claves ni red:<br \/> usa un agente sint\u00e9tico configurable y un fixture con tres topolog\u00edas (monolito,<br \/> modular, nesting profundo). <\/p>\n<div>\n<pre><code>pip <span>install<\/span> <span>-e<\/span> <span>\".[test]\"<\/span> topowatch <span>--json<\/span> <\/code><\/pre>\n<div>\n<\/p><\/div>\n<\/p><\/div>\n<h2> <a name=\"resultados\" href=\"#resultados\"> <\/a> Resultados <\/h2>\n<p>Sobre el fixture de referencia (200 trials, semilla fija):<\/p>\n<div>\n<table>\n<thead>\n<tr>\n<th>Topolog\u00eda<\/th>\n<th>ASR<\/th>\n<th>% le\u00eddo<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Monolito (plano)<\/td>\n<td>1.000<\/td>\n<td>100%<\/td>\n<\/tr>\n<tr>\n<td>Modular (acotado)<\/td>\n<td>0.000<\/td>\n<td>28.5%<\/td>\n<\/tr>\n<tr>\n<td>Nesting profundo<\/td>\n<td>0.000<\/td>\n<td>66.6%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>El reporte incluye <code>read_budget<\/code> (fracci\u00f3n del workspace que lee el agente) y el<br \/> veredicto del defense contract: <code>modular &lt; monolito<\/code>.<\/p>\n<h2> <a name=\"honestidad-sobre-v01\" href=\"#honestidad-sobre-v01\"> <\/a> Honestidad sobre v0.1 <\/h2>\n<p>v0.1 usa un <strong>agente sint\u00e9tico<\/strong>, no un coding assistant real (Claude Code \/<br \/> Codex). El claim &#8220;modularidad \u2192 ASR menor&#8221; est\u00e1 anclado al fixture reproducible,<br \/> no a una medici\u00f3n contra un assistant real \u2014 eso es v0.2 (feature 002). El<br \/> objetivo de v0.1 es darte una herramienta para medir y recomendar modularidad,<br \/> no simular un ataque completo.<\/p>\n<h2> <a name=\"roadmap\" href=\"#roadmap\"> <\/a> Roadmap <\/h2>\n<ul>\n<li> <strong>v0.2<\/strong>: medici\u00f3n contra coding assistants reales (sandbox, sin credenciales)\n<ul>\n<li>m\u00e9trica de <code>read_budget<\/code> continua.<\/li>\n<\/ul>\n<\/li>\n<li> <strong>v0.3<\/strong>: recomendaci\u00f3n autom\u00e1tica de reestructuraci\u00f3n + plugin CoreDefense.<\/li>\n<\/ul>\n<h2> <a name=\"d%C3%B3nde-est%C3%A1\" href=\"#d%C3%B3nde-est%C3%A1\"> <\/a> D\u00f3nde est\u00e1 <\/h2>\n<p>Repositorio: <a href=\"https:\/\/github.com\/amurlaniakea\/topowatch\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/amurlaniakea\/topowatch<\/a> \u2014 AGPL-3.0-or-later.<br \/> Autor: Pedro Sordo Mart\u00ednez.<\/p>\n<\/p><\/div>\n<\/article>\n<p> <!-- Bottom content skipped via SKIP_BOTTOM_CONTENT config --> <\/div>\n<p> <\/main> <\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Fuente: <a href=\"https:\/\/dev.to\/magopredator\/topowatch-audita-el-attack-success-rate-de-tu-workspace-contra-inyeccion-indirecta-2klh\">Art\u00edculo original<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tu agente de c\u00f3digo lee tu workspace. Un archivo envenenado en cualquier rinc\u00f3n puede llevar instrucciones que el agente ejecuta. \u00bfSabes qu\u00e9 fracci\u00f3n de tu workspace tiene que leer para que eso ocurra? topowatch mide eso. El problema no es el prompt, es la topolog\u00eda El paper Workspace Topology as an Attack Vector in Agentic [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4571,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"webixso_pending_account_ids":""},"categories":[41],"tags":[],"class_list":["post-4572","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devto"],"jetpack_publicize_connections":[],"_links":{"self":[{"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/posts\/4572","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/comments?post=4572"}],"version-history":[{"count":0,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/posts\/4572\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/media\/4571"}],"wp:attachment":[{"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/media?parent=4572"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/categories?post=4572"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/tags?post=4572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}