Yak 在 AI 浪潮中应该如何存活?



MCP 是 Claude 发起的一个协议,在2024年10月左右发布,在2025年2月开始逐步有大批量的 AI 应用体开始支持这个协议。这个协议目的是让 AI 同时可以感知有什么工具可以用,如果要调用这些工具的话,应该是用什么样的方式。

这个 MCP 协议会重新塑造一种新的代码交互模式,安全产品的研发的思路需要发生极大的改变:我们不仅仅需要为用户构造可用的产品,还需要为 AI 构建可用的工具。
之前我们编写的代码几乎都是人在使用,现在不一定了,我们需要让代码被 AI 来调用,来迅速为 AI 补充他没有的能力,或让 AI 来决策。

在 Yak 对 AI MCP 的支持计划中,会被分为两个阶段,这两个阶段是并行的:
-
本身安全能力完全开放给 AI 工具,我们把现有的一些稳定的能力实现 MCP 接口,在支持 MCP 客户端的地方都可以快速使用;
-
教会 AI 编写 Yak 代码,如果 AI 想实现的安全能力无法在现有模块中找到,AI 可以通过编写 Yak 代码来实现他想实现的功能,当然 Yak 代码是图灵完备的,AI 理论上可以自己写代码达成自己的目标。
截止2024年2月中旬,我们确实已经实现了MCP的初步接入:


实际上,大家用 AI 的都懂:Chat 绝对不是终极交互目标,在写代码过程中,Chat 虽然和 Cursor 的交互形式背后的引擎可能是一样的,但是实践性和可用性远远比不上 Cursor 之类的工具。AI 已经发展了有这么久了,然而在我们用户中,Yakit 的操作和基础的流量分析和发包,扫描等功能,实际上是大家花了大量时间在使用的。AI 如果真的想改造创造生产力,第一个目标应该是改造 AI 生产工具。
我们一方面需要解决 AI 能力的扩充(使用 Yak 本身的安全能力和库函数),另一方面应该着手去解决安全生产力工具的革新。这个革新绝对不是简单嵌入一个 Chat Tab 可以解决的。核心的 MCP 能力通过 Yak 来接入,符合“认知飞轮”的任务型 AI 交互模式也需要重塑。“认知飞轮”循环控制:

当然,我们上面讲的是我们如何把 Yak 中已有的功能或者生产工具开放给 AI,这仅仅只是过去的知识的用法;
如果沉迷在过去,技术工具将会止步不前,AI 也会因为没有新的技术和新的能力加入,创造力变的枯竭。因此我们也会投入大量精力放在“无语料区”,AI 会极大的帮我们从琐事中抽身,让我们投身在这些“探索性”的工作中,这些工作将在未来的很长一段时间内是竞争力的体现。


在 2025 年,Yakit 遇到第一个挑战性需求是:本地 TCP 劫持。
这是一个听起来非常离谱的需求。我们的目标是,不侵入操作系统内核的情况下,仅通过安全的网络配置劫持本地 TCP,以达到类似替代 proxifier(内核设置代理)的目的。在这个过程中,脱离操作系统内核会让这个行为变成一个纯用户行为,并且可移植性被认为是“非常好”。
这种新的劫持技术会重新改造大家对 Yakit 或者基于代理的习惯。同时也可实现之前几乎无法实现的功能:如果一个 HTTP 应用无法设置 HTTP 代理或者 Socks 代理,那应该如何劫持 HTTP 协议?
我们实际上知道,VPN 理论上是可以拿到很多流量的,但是一般 VPN 不做 MITM 的支持,这是为什么?
-
TCP 以数据帧的形式在 VPN 隧道中传输;
-
即使 TCP 数据帧被重组了后,TCP 传输内容被修改了,仍然需要重新切割数据帧保证 ID 都是连续对应的。
很多时候,我们知道数据帧重组这个事情本身是一个操作系统干的事儿(当然在一些高级产品或者应用中也有实现,比如 Wireshark 或 Yakit 的抓包系统算法中)。
如果我们能控制 TCP 数据帧重组(PDU重组)和拆分过程,那么理论上来说,VPN 的实现方式完全可以被改造为 TCP MITM。我们梳理了整个过程,并完成了一个最小原型验证 VPN 方式进行 TCP 劫持的可行性:

届此功能实现在 Yakit 与大家见面的时候,Yakit 应该是首个实现 VPN 级别 MITM 劫持的工具和产品。在这种方案的帮助下,理论上用户应该不再需要 Proxifier 之类的内核修改代理等方案定向劫持了。
值得一提的是,我们利用 gVisor 已实现了网络虚拟机的构建,可以替代任何主机与本地客户端进行握手,同时也有很多办法可以绕过系统路由表的“环路”限制。

在这个重要的产品 PoC 实现过程中,我们发现这个需求的实现几乎完全没有语料,现有的很多语料和散落的知识对这个 PoC 几乎不适用。在这个系统构建过程中,AI 的帮助几乎都是反作用:
-
gVisor 在大版本更新后,AI 无法准确了解它里面 AI 的具体含义,你想实现的功能几乎无法使用 AI 来实现。
-
AI 幻觉非常严重,一些不存在的 AI 会让你反复确认原生库中是否真的有这个代码,浪费大量时间
-
gVisor 本身仓库的构建使用 bazel 工具,主仓库无法直接使用 go get 之类的命令直接安装,需要做一些小小的额外参数,虽然改动不大,但是操作员没有深入的基础知识的情况下,AI 无法自己修复整个工具链的报错。
虽然在解决这个 PoC 过程中,Cursor 等 AI 工具仍然帮助了业务基础代码和一些小代码的生成,但是总体来说,核心时间和调试代码的工具链还是依赖于大量的“传统”并且“精准”的工具链。

我们在 Yak 开源的时候,就一直在反复提“安全能力融合”的概念。早些日子我们只能实现一些“攻击性”的安全能力,随着 Yak 项目和基础设施的逐步完善和发展,我们今年实现了除了攻击扫描类之外的安全基础设施:流量安全基础设施:兼容型流量安全规则分析引擎,流量生成器,网络虚拟机引擎;编译级静态代码分析引擎;
这些算法和引擎的代码实现在 AI 的发展下,并没有丧失他们原本的光辉,在 AI 全面改造安全技术发展过程中,会逐步发挥他们更大的威力。同样的,我们之前通过 Yaklang 这个图灵完备容器实现的“融合”效果也只会在 AI 的浪潮中变的更快更强更具有实践性。
END
YAK官方资源
Yak 语言官方教程:
Yak:致力于安全能力融合的语言 | Yak Program Language
Yakit 视频教程:
YakProject的个人空间-YakProject个人主页-哔哩哔哩视频
Github下载地址:
GitHub - yaklang/yakit: Cyber Security ALL-IN-ONE Platform
GitHub - yaklang/yaklang: A programming language exclusively designed for cybersecurity
Yakit官网下载地址:
https://yaklang.com/
Yakit安装文档:
下载安装与更新配置 | Yak Program Language
Yakit使用文档:
Yakit: 集成化单兵安全能力平台 | Yak Program Language
常见问题速查:
FAQ | Yak Program Language
相关文章:
Yak 在 AI 浪潮中应该如何存活?
MCP 是 Claude 发起的一个协议,在2024年10月左右发布,在2025年2月开始逐步有大批量的 AI 应用体开始支持这个协议。这个协议目的是让 AI 同时可以感知有什么工具可以用,如果要调用这些工具的话,应该是用什么样的方式。 这个 MCP 协…...
AI是否能真正理解人类情感?从语音助手到情感机器人
引言:AI与情感的交集 在过去的几十年里,人工智能(AI)的发展速度令人惊叹,从简单的语音识别到如今的深度学习和情感计算,AI已经深入到我们生活的方方面面。尤其是在语音助手和情感机器人领域,AI不…...
大语言模型学习--本地部署DeepSeek
本地部署一个DeepSeek大语言模型 研究学习一下。 本地快速部署大模型的一个工具 先根据操作系统版本下载Ollama客户端 1.Ollama安装 ollama是一个开源的大型语言模型(LLM)本地化部署与管理工具,旨在简化在本地计算机上运行和管理大语言模型…...
linux上面安装 向量数据库 mlivus和 可视化面板Attu
1. 确保docker(docker 19.0以上即可) 和 docker-compose(V2.2.2以上) 都已安装 2. 创建milvus工作目录 # 新建一个名为milvus的目录用于存放数据 目录名称可以自定义 mkdir milvus# 进入到新建的目录 cd milvus 3. 下载并编辑docker-compose.yml 在下载…...
虚拟机ip设置
打开上次安装的虚拟机,左上角编辑/虚拟网络编辑器 改地址 地址要看自己电脑情况配置,我这是学校电脑 都是配一样的 然后改虚拟网卡 改和刚刚一样的 是改ipv4 然后启动虚拟机 输入vi /etc/sysconfig/network-scripts/ifcfg-ens33 使用vi编辑器修改其中…...
用工厂函数简化redis配置
工厂函数(Factory Function)不同于构造函数,工厂函数就是一个普通函数,通常用于创建对象或实例。它的核心思想是通过一个函数来封装对象的创建逻辑,而不是直接使用类的构造函数。工厂函数可以根据输入参数动态地决定创…...
类和对象-继承-C++
1.定义 面向对象的三大特征之一,为了减少重复的代码 2.语法 class 子类 :继承方式 父类 (子类也叫派生类,父类也称为基类) 例:class age:public person; #include<iostrea…...
使用Maven搭建Spring Boot框架
文章目录 前言1.环境准备2.创建SpringBoot项目3.配置Maven3.1 pom.xml文件3.2 添加其他依赖 4. 编写代码4.1 启动类4.2 控制器4.3 配置文件 5.运行项目6.打包与部署6.1 打包6.2 运行JAR文件 7.总结 前言 Spring Boot 是一个用于快速构建 Spring 应用程序的框架,它简…...
RockyLinux 为 k8s 集群做准备
1.准备VM 镜像 开启虚拟机 选择安装 Rocky linux 9.5 软件选择最小安装就可以了 在 rocky 9 以后版本中 他全部 采用 network manager 去替换老的 network 去实现网络的管理 1.网卡配置 cat /etc/NetworkManager/system-connections/ens160.nmconnection 我们配置了两块网…...
安卓基础组件Looper - 02 native层面的剖析
文章目录 native使用使用总结创建Looper构造函数创建(不推荐)使用举例源代码 Looper::prepare 获取Looper可忽略初始化Looper主动休眠 pollAll主动唤醒 wake 发送消息 sendMessage轮询消息 native使用 Android Native Looper 机制 - 掘金 (juejin.cn) /system/core/libutils/…...
用大白话解释搜索引擎Elasticsearch是什么,有什么用,怎么用
Elasticsearch是什么? Elasticsearch(简称ES)就像一个“超级智能的图书馆管理系统”,专门帮你从海量数据中快速找到想要的信息。它底层基于倒排索引技术(类似书籍的目录页),能秒级搜索和分析万…...
机器学习的三个基本要素
机器学习的基本要素包括模型、学习准则(策略)和优化算法三个部分。机器学习方法之间的不同,主要来自其模型、学习准则(策略)、优化算法的不同。 模型 机器学习首要考虑的问题是学习什么样的模型(Model&am…...
二十三种设计模式
2 工厂方法模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通…...
Spring Boot 异步编程深入剖析
Spring Boot 异步编程深入剖析 1. 异步方法的使用 原理深度解析 Spring Boot 的异步方法基于 Spring 的 AOP(面向切面编程)实现。当在方法上添加 Async 注解时,Spring 会为该方法所在的类创建一个代理对象。当调用该异步方法时,…...
SqlSugar 语法糖推荐方式
//方式1:var dd _repository._Db.Queryable<ConfigAggregateRoot, UserRoleEntity>((o, p) > o.Id p.Id).Select((o, p) > new{o.Id,o.Remark,p.RoleId,});//方式2:不推荐使用,建议优先使用 Lambda 表达式,因为它更…...
SQL 全面指南:从基础语法到高级查询与权限控制
SQL:全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 。 一、SQL通用语法 在学习具体的SQL语句之前,先来了解一下SQL语言的同于语法。 1). SQL语句可以单行或多…...
Spring Cloud Gateway 网关的使用
在之前的学习中,所有的微服务接口都是对外开放的,这就意味着用户可以直接访问,为了保证对外服务的安全性,服务端实现的微服务接口都带有一定的权限校验机制,但是由于使用了微服务,就需要每一个服务都进行一…...
【Spring Cloud Alibaba】基于Spring Boot 3.x 搭建教程
目录 前言一、开发环境二、简介 1.主要功能2.组件 三、搭建过程 1 - 主体工程搭建2 - 服务注册与发现组件 —— Nacos的安装3 - 服务注册与发现 —— 服务提供者4 - 服务注册与发现 —— 服务消费者5 - 服务配置中心6 - OpenFeign服务接口调用7 - OpenFeign高级特性8 - Spring…...
JavaWeb-jdk17安装
下载jdk17 地址:https://www.oracle.com/java/technologies/downloads/#jdk17-windows 安装jdk 配置环境变量 右键点击我的电脑>属性>高级系统设置>环境变量 在系统变量Path变量中添加 测试 java -version javac -version...
docker关闭mysql端口映射的使用
需求 项目中的数据库为mysql,如果将端口映射到宿主机上,容易被工具扫描出,且随着国产化的进程推进,mysql将不被允许。为了提高安全性与满足项目需求,这里采用隐藏mysql端口方式,不映射宿主机端口ÿ…...
【银河麒麟高级服务器操作系统】服务器测试业务耗时问题分析及处理全流程分享
更多银河麒麟操作系统产品及技术讨论,欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer…...
算法1-4 蜜蜂路线
题目描述 一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房 m 开始爬到蜂房 n,m<n,有多少种爬行路线?(备注:题面有误,右上角应为 n−…...
Android 常见View的防抖
在开发Android应用时,我们经常会遇到用户快速点击按钮或者频繁触发某个事件的情况。这种行为可能会导致不必要的重复操作,例如多次提交表单、重复加载数据等。为了避免这些问题,我们需要对这些事件进行防抖处理。本文将详细介绍如何在Kotlin中…...
数据库原理SQL查询(习题+知识点)
一、查询学生表所有学生记录 1.题目内容代码编写 select * from stu; 2.知识点提醒 1)选择表中的所有属性列有两种方法 在select关键字后列出所有列名若列的显示顺序与其在表中的顺序相同,则也可用 * 表示所有列 二、查询学生表中部分信息 1.题目内…...
安路FPGA开发入门:软件安装与点灯与仿真(TangDynasty ModelSim)
文章目录 前言软件安装开发软件仿真软件 点灯测试代码编写与编译引脚分配固件下载 仿真测试ModelSim添加仿真库TangDynasty仿真设置进行仿真 后记 前言 最近因为工作需要用安路的FPGA,这里对安路FPGA开发相关流程做个记录。作为测试只需要一个核心板(我这…...
Java 导出大数据到 Excel 表格
背景 之前的项目一直是用XSSFWorkbook来做 Excel 导出,在遇到大数据导出时,经常会遇到 OOM。在 Apache Poi 3.8 之后的版本提供的 SXSSFWorkbook 可以优雅的解决这个问题。 原理 SXSSFWorkbook 被称为流式 API,主要是因为它采用了流式写入…...
浅克隆与深克隆区别
package d12_api_object;public class Test2 {public static void main(String[] args) throws CloneNotSupportedException {//目标:掌握Object类提供的对象克隆方法//1、protected Object clone():对象克隆User u1 new User(1,"min","1120",…...
关于服务器cpu过高的问题排查
1.定位是哪个程序造成的cpu过高 如果有云服务器,就用云服务器自带的监控功能,查时间段 如果没有,则使用: ps -eo pid,comm,pcpu,pmem,cputime --sort-cputime | head -n 100 2.定位到问题 发现是uwsgi的cpu消耗过高࿰…...
【缓冲区】数据库备份的衍生问题,缓冲区在哪里?JVMor操作系统?(二)
【缓冲区】数据库备份的衍生问题,缓冲区在哪里?JVMor操作系统?(二 完结) 缓冲区既属于操作系统,也属于 JVM,具体取决于你讨论的是哪个层面的缓冲区。下面我会详细解释这两者的区别和联系。 1. …...
RPA 职业前景:个人职场发展的 “新机遇”
1. RPA职业定义与范畴 1.1 RPA核心概念 机器人流程自动化(RPA)是一种通过软件机器人模拟人类操作,自动执行重复性、规则性任务的技术。RPA的核心在于其能够高效、准确地处理大量数据和流程,减少人工干预,从而提高工作…...
