提到渗透测试,我们通常会想到攻击、漏洞、权限提升和漏洞利用。但如果换一个角度看,会发现很多安全问题背后都有一个共同点:欺骗。
让应用程序相信一份伪造的数据,让用户相信一个虚假的身份,让大模型相信一段不可信的指令,甚至让攻击者相信一个精心布置的假目标。
这些行为看似发生在不同领域,本质上却有着相似的逻辑:利用目标的信任机制,让它产生错误判断。
从这个角度来看,渗透测试不只是寻找程序中的缺陷,更是在研究目标如何建立信任,以及这种信任能否被操纵。
01. 欺骗应用程序:漏洞的本质
程序没有真正的判断力,它只会按照开发者设计的规则执行。
开发者认为某个输入是可信的,程序就可能直接使用;开发者认为某个状态不可能出现,程序就可能缺少相应的检查。
而漏洞,往往就藏在这些被默认成立的判断里。
1.1 输入欺骗:把数据伪装成指令
正常情况下,用户输入应该被当作普通数据处理。但当程序没有正确区分数据和指令时,就可能出现安全问题。
SQL 注入就是典型例子。
应用程序原本希望用户提供查询条件,却因为不安全的查询拼接,让用户输入影响了数据库实际执行的语句。
XSS 也有类似的信任问题:应用程序没有正确处理外部输入,导致浏览器将不可信内容当作可执行脚本。
它们的共同点是:
程序误判了输入的性质,把不应该被信任的内容当成了可信内容。
1.2 身份欺骗:让系统认错人
身份认证解决的是一个基本问题:你是谁?
但系统如何确认你的身份,依赖的是具体的认证机制和校验逻辑。
如果身份验证存在缺陷,或者系统错误地信任客户端提供的信息,就可能出现身份伪造、越权访问等问题。
例如,一个系统仅仅根据客户端提交的用户 ID 判断访问权限,却没有在服务端重新验证用户身份和资源归属,那么用户身份与实际访问权限之间就可能出现错位。
这里真正值得关注的不是用户提交了什么,而是:
系统凭什么相信这个身份?
1.3 逻辑欺骗:利用规则之间的漏洞
有些漏洞并不依赖复杂的技术,而是利用业务规则本身的矛盾。
例如,一个电商平台在前端限制商品价格,却没有在后端重新校验订单金额;或者一个系统允许用户修改订单状态,却没有验证当前状态是否允许发生这种变化。
单独看每个功能,它们似乎都能正常工作。但当多个功能组合在一起时,就可能出现开发者没有考虑到的结果。
这就是业务逻辑漏洞。
它提醒我们:安全问题不一定来自某一行代码,也可能来自多个正常功能之间的不合理关系。
程序最大的弱点,有时不是没有规则,而是过于相信自己设计的规则。
02. 欺骗人:社会工程学的艺术
如果说漏洞利用针对的是程序的信任机制,那么社会工程学针对的就是人的信任机制。
人不像程序一样严格执行固定规则。人的判断会受到情绪、经验、身份认知和环境压力影响。
攻击者正是利用这些特点,让目标主动配合。
2.1 利用权威:让人放弃怀疑
人们通常更容易相信具有权威身份的人。
例如,攻击者冒充企业 IT 管理员、系统维护人员或公司领导,让对方认为当前操作具有合理性。
当身份看起来足够可信时,人们可能不会继续核实信息来源。
2.2 利用紧迫感:让人来不及思考
“账号即将被冻结”“系统正在升级”“请立即处理付款”。
这些话的共同点是制造时间压力。
人在紧迫状态下,更容易关注如何尽快解决问题,而不是仔细判断事情是否真实。
攻击者不一定需要突破复杂的安全系统,只需要让目标在错误的时间做出错误的决定。
2.3 利用熟悉感:让异常看起来正常
如果一条消息来自熟悉的邮箱地址、常用的沟通平台,或者使用了符合日常工作习惯的表达方式,人们往往会降低警惕。
这也是为什么社会工程学越来越难以单纯依靠技术手段识别。
它攻击的不是某个系统接口,而是人与人之间长期建立的信任关系。
因此,社会工程学防御不能只依赖安全软件,还需要建立身份核验、重要操作二次确认和安全意识培训等机制。
技术可以验证账号,但未必能验证一个人为什么要你执行某项操作。
03. 欺骗大模型:AI 安全的新战场
大模型的出现,让欺骗有了新的目标。
传统应用程序通常按照明确的程序逻辑处理输入,而大模型需要结合指令、上下文和外部信息理解任务。
这带来了更灵活的能力,也引入了新的信任问题。
尤其当大模型接入网页、邮件、知识库、文件系统和外部工具后,它接触的信息来源变得更加复杂。
3.1 Prompt Injection:指令也可能被伪装
提示词注入是大模型安全中一个非常典型的问题。
假设用户让 AI 总结一份网页内容,而网页中恰好包含一段专门针对 AI 的恶意指令,试图让模型忽略原本任务,转而执行其他操作。
如果模型没有正确区分用户指令与网页内容,就可能受到干扰。
这里有一个重要区别:
用户让模型阅读网页,并不意味着网页中的所有内容都拥有指挥模型的权限。
外部内容应该是被分析的对象,而不是天然可信的指令来源。
这也是提示词注入与传统输入安全问题之间一个很有意思的联系。
3.2 Jailbreak:试图突破安全边界
Jailbreak 通常被称为越狱,指通过特定的提示方式,试图绕过模型原有的安全限制。
它利用的是模型对上下文、角色设定和指令之间关系的理解特点。
不过,越狱并不意味着模型真的获得了新的权限,而是试图让模型在回答时偏离原本的安全约束。
这也说明,大模型安全不能只依赖提示词本身,还需要在模型之外建立可靠的权限控制和安全校验机制。
3.3 数据投毒:从信息源头影响判断
如果说提示词注入是在交互过程中干扰模型,那么数据投毒则可能从数据源头影响模型。
例如,训练数据或知识库中混入错误、恶意或带有偏见的信息,模型就可能在后续任务中受到影响。
尤其对于依赖外部知识库的 AI 系统,知识内容是否可信、是否经过审核、是否能够追溯来源,都非常重要。
3.4 模型幻觉:不一定是欺骗,却可能造成误导
大模型有时会生成看起来合理、实际上并不准确的内容,这种现象通常称为模型幻觉。
需要注意的是,幻觉不等于恶意欺骗。
但从安全角度看,两者可能产生相似的后果:使用者相信了错误的信息,并据此做出决策。
当 AI 被用于查询资料、分析数据或辅助业务操作时,结果验证就显得尤为重要。
3.5 从回答错误到执行错误
过去,我们担心 AI 给出错误答案。
现在,随着 AI Agent 的发展,模型可能进一步获得读取邮件、访问网页、处理文件和调用工具的能力。
这意味着风险发生了变化。
一个普通聊天机器人给出错误建议,影响可能停留在信息层面;一个拥有工具权限的智能体如果误信恶意指令,就可能进一步执行不恰当的操作。
因此,AI 安全需要重点关注几个问题:
指令隔离:区分用户指令、系统规则和外部数据。
权限控制:只授予模型完成任务所必需的权限。
操作确认:对敏感操作设置人工确认机制。
结果校验:对模型输出和工具执行结果进行验证。
AI 安全的核心,不是让模型相信更多信息,而是让它知道哪些信息不应该被相信。
04. 反向欺骗:防御者的艺术
欺骗并不只属于攻击者。
在安全防御中,我们同样可以主动制造假象,让攻击者暴露自己的行为。
这种思路通常被称为欺骗式防御(Deception Technology)。
与传统防御被动等待攻击不同,欺骗式防御会主动布置一些看似有价值、实际经过监控的目标,观察攻击者是否接近以及如何行动。
4.1 蜜罐:一个精心布置的假目标
蜜罐(Honeypot)是一种典型的主动防御技术。
它通常模拟真实服务,例如数据库、服务器或管理后台,但并不承载正常业务。
正常用户没有理由访问这些诱饵资源,因此一旦出现访问行为,就值得安全人员重点关注。
蜜罐的价值不仅在于发现入侵,还可以帮助防御人员观察攻击者使用的工具、访问路径和行为特征。
4.2 蜜网:从单个诱饵到完整环境
如果说蜜罐是一个假目标,那么蜜网(Honeynet)就是一组相互关联的诱饵系统。
它可以模拟更完整的网络环境,让防御人员从多个角度观察攻击行为。
例如,攻击者访问某个诱饵服务后,是否继续尝试访问其他资源?是否表现出特定的扫描和探测行为?
这些信息能够帮助防御人员更好地理解攻击者的活动方式。
4.3 诱饵文件:让异常访问主动暴露
诱饵文件(Decoy Files)也是一种常见手段。
防御人员可以在受控环境中放置看似有价值、实际经过监控的文件。
当文件被非预期访问时,系统可以触发告警。
它的优势在于不必等待真实数据受到影响,就有机会提前发现异常行为。
4.4 为什么欺骗式防御有效?
传统安全防御通常需要判断某个行为是否异常,但正常业务中本身就存在大量复杂操作,误报和漏报都很难完全避免。
而欺骗式防御有一个特殊优势:
诱饵资源本身就不应该被正常用户访问。
因此,对诱饵资源的访问往往具有更高的可疑程度。
当然,蜜罐和诱饵文件并不是万能的。它们需要与真实业务隔离,并配合日志记录、告警分析和应急响应机制,否则可能带来额外风险。
05. 从攻击到防御:信任边界才是关键
把前面几个领域放在一起,就会发现它们其实有着相同的逻辑。
无论攻击对象是程序、人还是 AI,真正值得研究的都是同一个问题:
目标为什么会相信某些信息?又凭什么认为这些信息是可信的?
对于开发者来说,需要明确数据边界、身份边界和权限边界,不能把客户端输入、外部数据或未经验证的状态当成可信事实。
对于安全人员来说,需要从攻击者的视角审视系统,寻找那些被默认信任、却没有得到充分验证的环节。
对于 AI 系统来说,更需要明确指令与数据的区别,避免外部内容越过权限边界。
而对于防御者来说,有时最有效的方式不是一味隐藏真实资产,而是设计受控的假目标,让异常行为主动暴露。
06. 结语:信任,是攻防的起点
安全的本质并不是让所有人都无法进入系统,而是让系统能够正确识别谁可以进入、谁可以执行操作,以及哪些信息值得相信。
攻击者研究如何利用信任,让目标产生错误判断;防御者研究如何识别这些错误,甚至主动利用欺骗发现攻击者。
从传统漏洞到社会工程学,从提示词注入到蜜罐技术,技术形态一直在变化,但背后的逻辑并没有改变。
攻击者想知道:你什么时候会相信我?
防御者想知道:你什么时候会露出马脚?
而渗透测试,就是不断寻找这些信任边界的过程。
这,或许就是欺骗的艺术。