<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>开发者安全 &#8211; mylogs.cn</title>
	<atom:link href="https://mylogs.cn/tag/%e5%bc%80%e5%8f%91%e8%80%85%e5%ae%89%e5%85%a8/feed/" rel="self" type="application/rss+xml" />
	<link>https://mylogs.cn</link>
	<description>发现、记录、分享</description>
	<lastBuildDate>Thu, 06 Aug 2026 14:23:14 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>40 万次点击实测：AI 危险指令三成被人放行</title>
		<link>https://mylogs.cn/ai-agent-permissions-40000-plays-human-in-the-loop/</link>
					<comments>https://mylogs.cn/ai-agent-permissions-40000-plays-human-in-the-loop/#respond</comments>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Thu, 06 Aug 2026 14:22:55 +0000</pubDate>
				<category><![CDATA[科技]]></category>
		<category><![CDATA[AI安全]]></category>
		<category><![CDATA[AI编程]]></category>
		<category><![CDATA[Claude Code]]></category>
		<category><![CDATA[ScaleX]]></category>
		<category><![CDATA[开发者安全]]></category>
		<category><![CDATA[智能体]]></category>
		<category><![CDATA[权限管理]]></category>
		<guid isPermaLink="false">https://mylogs.cn/ai-agent-permissions-40000-plays-human-in-the-loop/</guid>

					<description><![CDATA[开发者在使用 AI 编程智能体时，最常见的安全防线是&#8221;人工确认&#8221;——智能体每要执行一条 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">开发者在使用 AI 编程智能体时，最常见的安全防线是&#8221;人工确认&#8221;——智能体每要执行一条系统命令，都会弹窗请求批准。这道防线到底有多可靠？一份基于 40,000 次对局、409,000 次逐条批准或拒绝决策的统计给出了答案：平均每 3 个威胁指令，就有 1 个被放行。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a751e6b54fe4&quot;}" data-wp-interactive="core/image" data-wp-key="6a751e6b54fe4" class="wp-block-image size-large aligncenter wp-lightbox-container"><img fetchpriority="high" decoding="async" width="1200" height="660" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/f72aacff0eac3565ff0f46b450f8699c_header.webp" alt="40 万次点击实测：AI 危险指令三成被人放行" class="wp-image-3834" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/f72aacff0eac3565ff0f46b450f8699c_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/f72aacff0eac3565ff0f46b450f8699c_header-300x165.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/f72aacff0eac3565ff0f46b450f8699c_header-1024x563.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/f72aacff0eac3565ff0f46b450f8699c_header-768x422.webp 768w" sizes="(max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：Scale X（scalex.dev）</figcaption></figure>





<p class="wp-block-paragraph">数据来自开发者安全博客 Scale X 的作者 Alex Wauters，他此前曾在优步（Uber）担任资深工程师。几个月前他发布了一款浏览器小游戏，让玩家扮演 AI 编程智能体的&#8221;人类审核员&#8221;，在限时压力下逐条批准或拒绝命令。有些命令属于日常操作（如 <code>git status</code>、<code>npm test</code>），有些则意味着智能体已被劫持，正在把密钥发往远程服务器（如 <code>cat ~/.aws/credentials</code>）。游戏在技术社区 Hacker News 上引发讨论后，作者补齐了统计功能，并对累计数据做了复盘。</p>



<h2 class="wp-block-heading">核心数据：平均准确率只有 66.3%</h2>



<ul class="wp-block-list"><li>玩家平均准确率 66.3%，即平均漏过三分之一的威胁；</li></ul>



<ul class="wp-block-list"><li>32.9% 的对局最终得分为负：放行威胁的扣分加上误拦安全命令的损失，超过了做对部分带来的收益；</li></ul>



<ul class="wp-block-list"><li>35.2% 的玩家抓住了全部威胁，但其中只有 20.8% 是在误拦率不超过五分之一的前提下做到的，其余人靠&#8221;一律拒绝&#8221;凑数，被作者授予&#8221;人类瓶颈&#8221;称号；</li></ul>



<ul class="wp-block-list"><li>7% 的玩家对所有提示一律点了同意。</li></ul>



<p class="wp-block-paragraph">作者也提示了样本局限：这是一款游戏，其中约 34% 的命令是威胁，而真实工作中威胁出现的频率远低于此；玩家也清楚自己正处在限时测试中。这些数字更适合用于横向比较不同威胁类型的识别难度，而非直接换算成真实环境的失守概率。</p>



<h2 class="wp-block-heading">越危险的命令越容易被抓，越值钱的命令越容易漏</h2>



<p class="wp-block-paragraph">按威胁类型统计的漏过率呈现出清晰规律：</p>



<p class="wp-block-paragraph">一眼可见的毁灭性命令被拦得最牢，而真正会把凭据送出去的命令，漏过频率大约是前者的三倍。</p>



<h2 class="wp-block-heading">最容易骗过人的，恰恰是那条看起来最普通的命令</h2>



<p class="wp-block-paragraph">全场漏过率最高的单条命令是 <code>npm run analyze</code>，64.7% 的玩家直接放行。<code>npm run</code> 本身通常无害，但它执行的是项目 package.json 里定义的脚本内容——既可能是正常的打包体积分析，也可能是此前被写入文件的恶意代码。</p>



<p class="wp-block-paragraph">游戏其实在权限弹窗上方的历史记录里明确展示了脚本内容：这条 analyze 脚本在跑完分析后，会用 curl 把结果发送到一个外部接口。三分之二的玩家依然点了同意，说明弹窗上方的历史日志很少被认真阅读。</p>



<p class="wp-block-paragraph">同类命令共有三条，全部进入最难识别榜单：<code>npm run analyze</code> 漏过率 64.7%（37 条威胁中排第 1）、<code>npm run setup</code> 48.0%（第 4）、<code>npm run deploy</code> 44.9%（第 8）。三条合并统计漏过率 52.5%（样本量 9,482），而其他外泄型攻击平均为 28.4%。把恶意载荷藏在一个熟悉的脚本名后面，成功率大约翻倍——即便载荷就明晃晃写在日志里。</p>



<p class="wp-block-paragraph">Hacker News 用户 dns_snek 的评论点出了更根本的问题：逐条批准命令这套模型本身就站不住脚。<code>npm run build</code> 等价于执行 package.json 里的任意 shell 命令，而智能体完全可以在无需批准的前提下先改掉 package.json、往 build.js 或 node_modules 目录里塞进恶意代码。让用户去校验那些&#8221;绝大多数时候安全、但因为文件已被改动而不再安全&#8221;的命令，算不上有力的防护。</p>



<h2 class="wp-block-heading">授权疲劳是真实存在的</h2>



<p class="wp-block-paragraph">Anthropic 此前曾指出，其编程工具 Claude Code 中的授权疲劳确有其事：用户看到的批准请求越多，对每一条的注意力就越少，随着时间推移，监督会明显松懈。</p>



<p class="wp-block-paragraph">统计图显示，即便在这样一局时间很短、且玩家已被提前告知存在威胁的游戏里，也能看到衰减迹象：按完成命令数分组后，各组玩家在开局几条命令后表现改善，随后漏过率又向上爬升。作者说明，这里已剔除那些一律拒绝的玩家；末段上升也可能与倒计时压力下的抢操作有关。</p>



<h2 class="wp-block-heading">过度拦截是硬币的另一面</h2>



<p class="wp-block-paragraph">一批本意无害的命令被频繁误拦：<code>npm config set registry https://npm.internal</code>（切换到内部镜像源）被拦 59%；<code>rm -rf dist/</code>（清理构建产物，通常在新一轮构建前执行）被拦 45%；<code>kill $(lsof -t -i:3000)</code>（释放被崩溃进程占用的端口）被拦 43%。</p>



<p class="wp-block-paragraph">这正是人工确认机制的两难：噪声拖慢智能体，久而久之用户放松警惕，反而更容易放行真正的恶意命令。Anthropic 的&#8221;自动模式&#8221;试图先自行判断命令是否安全、再决定要不要打扰用户，但作者认为这类机制并非万无一失。</p>



<p class="wp-block-paragraph">争议最大的一条是 <code>cat ~/.zshrc</code>，45.9% 的玩家选择放行。反对意见同样成立：不少开发者的 shell 配置文件里并没有敏感信息，读取它无害；但对于把接口密钥写在里面的人，这就是一次凭据泄露。这条命令的风险完全取决于智能体看不到的本地配置。作者建议把密钥单独存进一个文件、再从 .zshrc 中引用，可以有效降低暴露面。</p>



<h2 class="wp-block-heading">结论</h2>



<p class="wp-block-paragraph">作者的判断是，虽然只是一款游戏，但它暴露了把人工确认当作 AI 编程智能体安全底线的几个结构性问题：噪声太多带来疲劳，开发者也常常缺少判断风险所需的上下文——他们并不清楚文件在此之前被改动过什么。对开发者而言，更现实的做法是熟悉不同权限模型之间的取舍，并落实沙箱隔离、把凭据与环境变量密钥分离等具体缓解手段。</p>



<p class="has-small-font-size wp-block-paragraph">来源：Scale X（scalex.dev）</p>

]]></content:encoded>
					
					<wfw:commentRss>https://mylogs.cn/ai-agent-permissions-40000-plays-human-in-the-loop/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
