返回首页
最新
我构建了AegisBPF,以探索使用BPF-LSM进行确定性运行时强制执行,而不是传统的eBPF安全工具中常见的检测和警报模型。
大多数基于eBPF的运行时安全系统观察事件(tracepoints/kprobes)并异步发出警报。Aegis附加到Linux安全模块(LSM)钩子,例如:
- file_open
- inode_permission
- bprm_check_security
- socket_connect / socket_bind
这使得在系统调用完成之前,可以同步拒绝操作。
核心理念:
- 基于inode的文件强制执行(在重命名时保持稳定)
- 在内核中强制执行双栈IPv4/IPv6网络拒绝规则
- 明确的强制执行与审计姿态合同
- 具备能力感知的失败关闭模式
- 结构化状态转换(ENFORCE / AUDIT_FALLBACK / DEGRADED)
性能(示例基线,200k操作):
- 打开操作的p95开销约为2-3%
- 连接操作的开销约为0.5-1%
- 无论规则数量如何,查找映射的时间复杂度为O(1)
该项目包括:
- 签名的策略包(Ed25519)
- 能力/姿态报告
- 内核兼容性矩阵持续集成
- 记录的威胁模型和TOCTOU分析
我撰写了两篇技术深入文章,解释设计理念:
- 第1部分 – 通过eBPF-LSM实现同步内核级拒绝
[链接](https://medium.com/@erenari27/part-1-synchronous-kernel-level-denial-via-ebpf-lsm-a-case-against-the-detect-and-alert-paradigm-281e9f54764f)
- 第2部分 – 确定性强制执行合同与姿态语义
[链接](https://medium.com/@erenari27/part-2-deterministic-enforcement-contracts-in-aegisbpf-posture-semantics-failure-modes-and-7876791e8890)
欢迎讨论钩子选择的权衡、验证器约束、seccomp与LSM的比较、Landlock的比较或强制执行失败模式。
我开发这个工具是为了自己解决一个问题——在使用GPT-4/Claude时,针对那些Gemini Flash能够很好处理的提示支付费用。
InferShrink将您现有的OpenAI/Anthropic/Google客户端用三行代码封装起来。它会对提示的复杂性进行分类,并将其路由到能够处理该复杂性的最便宜的模型。使用同一提供商,避免意外切换。
工作流程如下:分类 → 压缩(LLMLingua,可选) → 检索(FAISS,可选) → 路由 → 跟踪。当所有阶段结合时,可以在混合工作负载上实现10倍以上的成本降低。
关键设计决策:
• 仅限同一提供商路由。如果您使用OpenAI,它将始终保持在OpenAI上。没有跨提供商的意外情况。
• 子毫秒级的分类开销
• 可选的FAISS检索 + LLMLingua压缩,用于RAG管道
• 进行了539次测试,使用Semgrep和Trivy进行扫描
您可以通过以下命令安装:pip install infershrink
有关此工具设计思路的博客文章: [https://musashimiyamoto1-cloud.github.io/infershrink-site/blog/hidden-cost-of-llm-overprovisioning.html](https://musashimiyamoto1-cloud.github.io/infershrink-site/blog/hidden-cost-of-llm-overprovisioning.html)
欢迎随时询问有关路由启发式或压缩权衡的问题。
嗨,HN,我是Cristian,Corteza的创始人(<a href="https://corteza.app" rel="nofollow">https://corteza.app</a>)。
问题:产品团队在Slack线程、Miro白板、Confluence页面、会议等地方容易丢失决策信息。三个月后,没人记得为什么某个东西是以特定方式构建的,团队不断重新讨论同样的决策。
Corteza的解决方案:你可以在任何Slack频道中输入 `/decision [什么] [为什么] [考虑的替代方案]`,或者通过我们的Chrome扩展程序来实现。这个机器人会将决策及其完整上下文存储起来。之后,任何人都可以用自然语言提问,比如“我们为什么选择PostgreSQL?”并获得确切的决策信息,包括理由、做出决策的人和时间——即使他们使用完全不同的措辞。
技术:Node.js + Slack Bolt SDK,MongoDB Atlas向量搜索用于语义检索,Claude 3.5 Sonnet用于对话界面,Railway用于托管。
我们有一个实时演示(无需Slack):<a href="https://app.corteza.app/demo" rel="nofollow">https://app.corteza.app/demo</a>
目前处于早期阶段——我们希望找到对这个问题感到沮丧并想尝试的产品团队。特别希望HN社区能对我们的检索方法提供反馈(我们使用OpenAI嵌入 + 余弦相似度,然后由Claude重新排序和解释)。