2作者: AgastyaTodi5 个月前
我一直在和构建 AI 智能体的创始人交流,他们涉及金融科技、开发者工具和生产力领域——但几乎没有人真正构建了安全层。他们的智能体读取电子邮件、调用 API、执行代码,并写入数据库,基本上没有任何安全防护措施,除了“我们信任 LLM”。 因此,我构建了 AgentArmor:一个开源框架,它为任何基于智能体的架构封装了 8 个独立的安全层,每个层都针对智能体数据流中的不同攻击面。 这 8 个安全层包括: * L1 – 摄入:提示词注入 + 越狱检测(20 多个模式,DAN,提取尝试,Unicode 隐写术) * L2 – 存储:静态 AES-256-GCM 加密 + 向量数据库的 BLAKE3 完整性校验 * L3 – 上下文:指令-数据分离(类似于参数化 SQL,但用于 LLM 上下文),金丝雀令牌,提示词加固 * L4 – 规划:行动风险评分(READ=1 → DELETE=7 → EXECUTE=8 → ADMIN=10),链深度限制,批量操作检测 * L5 – 执行:网络出口控制,基于操作的速率限制,带条件规则的人工审批门 * L6 – 输出:通过 Microsoft Presidio 进行 PII redaction + 正则表达式备用方案 * L7 – 智能体间:HMAC-SHA256 相互认证,信任评分,委托深度限制,时间戳绑定重放保护 * L8 – 身份:智能体原生身份,JIT 权限,短期凭证 我针对 2025 年 12 月规范中所有 10 个 OWASP ASI(基于智能体的安全完整性)风险进行了测试。红队测试套件包含在代码库中。 AgentArmor 的工作方式:(a) 一个 Python 库,您可以将其封装在工具调用周围,(b) 一个用于框架无关部署的 FastAPI 代理服务器,或 (c) 一个用于在 CI 中扫描提示词的 CLI。 集成的框架包括:LangChain、OpenAI Agents SDK、MCP 服务器。 我使用本地 Ollama 智能体(qwen2:7b)进行了实时运行——您可以看到它在 L8(权限检查)处阻止了 `database.delete`,在 L6 处从文件内容中删除 PII,并在提示词到达模型之前在 L1 处阻止了提示词注入。 GitHub: [https://github.com/Agastya910/agentarmor](https://github.com/Agastya910/agentarmor) PyPI: pip install agentarmor-core 非常欢迎反馈,特别是来自那些实际构建了生产级智能体并遇到了我尚未考虑到的安全问题的用户。 标签:安全、python、llm、ai、智能体
1作者: Olsberg5 个月前
大多数关于 PowerSchool 事件的讨论都将其描述为支持账户被入侵。<p>如果查看系统内部的操作链,大致如下:<p>入口:被入侵的支持凭证 执行:通过 PowerSource 支持门户进行的维护远程支持操作 记录系统:学生信息系统 (SIS) 数据库<p>该支持账户并未直接访问客户数据。<p>相反,操作是通过 PowerSource 支持界面执行的,该界面可以触发对客户数据库的操作。<p>实际上,支持门户充当了对生产数据库执行操作的执行机制。<p>这使得该事件与其说是直接访问数据库,不如说是与支持界面中嵌入的执行权限有关。
1作者: sangeet015 个月前
嗨 HN,我是在尼泊尔的本科生。 在过去的 35 年里,计算化学和 AI 药物发现一直依赖 SMILES 来表示分子。这在 20 世纪 80 年代很棒,但如今却成为了一个巨大的瓶颈。它不是规范的,它的立体化学解析很脆弱,并且在尝试表示有机金属、合金或聚合物时会完全崩溃。为了可靠地解析它,你基本上需要一个 300MB 的 C++ 依赖项(RDKit),它依赖于数十年的硬编码启发式方法。 我感到很沮丧,并意识到表示物质不是一个图论问题,而是一个语言学问题。 为了解决这个问题,我构建了 SCRIPT(纯文本中的结构化学表示)。我将核心解析器建立在 Pāṇini 的梵语语法的生成语言学之上。SCRIPT 没有将分子视为一串哑节点,而是将其视为一个由词根、状态(Vibhakti)和关系(Sandhi)组成的语言。 我今天在圆周率日发布了 V3 版本。 它的工作原理和修复内容: * 芳香性,没有混乱:SMILES 使用小写字母 (c1ccccc1),这会导致无休止的解析歧义。SCRIPT 在环闭合上使用 Anubandha(治理标记)。C1CCCCC&amp;6:明确告诉解析器 DFS 路径中的最后 6 个原子是共振的。 * Vāk 顺序立体化学:在 SCRIPT 中,手性使用深度优先搜索序列顺序作为原生坐标系进行内在解析,使其在数学上与顺序无关。 * 有机金属和材料:由于语法设计,SCRIPT 原生支持配位键 (*5)、分数合金 (Ti&lt;~0.9&gt;N&lt;~0.1&gt;)、晶相 ([[Rutile]] Ti(O)2) 和随机聚合物 ({[CC]}n)。 * 独立于 RDKit:核心引擎使用纯 Python Lark 语法。它在解析过程中捕获六价碳,生成 100% 原生往返,并在不依赖 RDKit 的 C++ 后端的情况下达到 95.9% 的 RDKit InChI 奇偶校验。 示例: 阿司匹林 (SMILES):CC(=O)Oc1ccccc1C(=O)O(或许多其他有效的字符串) 阿司匹林 (SCRIPT):CC(=O)OC1=CC=CC=C1C(=O)O(确定性规范化) 顺铂:Pt&lt;sqp&gt;(Cl)2(NH3)2@(保留平面正方形几何形状和顺式构型) 我只是一个像蹒跚学步的孩子一样在代码中嬉戏的傻瓜本科生(我的湿实验室滴定一团糟,是的,我用嘴吸取移液管)。 我非常希望得到您最严厉的技术反馈,尤其是来自解析器极客、化学信息学家或任何从事 AI 药物发现的人。很乐意回答有关语法或解析器架构的任何问题!