摘要

4月10号,美联储主席鲍威尔和财政部长贝森特把华尔街几大系统重要性银行的CEO叫到了华盛顿,主题是讨论Anthropic的新模型Claude Mythos在网络安全方面带来的威胁。本文从工程角度拆一下Mythos的零日漏洞挖掘到底是怎么做的、SWE-bench 93.9%这个数字说明了什么架构变化、开发者在AI时代该怎么搭安全体系,另外附了套Go写的安全中间件代码。


一、背景:一个AI模型把美联储叫出来了

4月7号Anthropic放了Claude Mythos Preview,没怎么宣传。48小时之后画风突变:

  • 4月10号:鲍威尔和贝森特在华盛顿财政部大楼紧急召集花旗、高盛、大摩这些银行的CEO
  • 讨论什么:Mythos批量挖零日漏洞这件事会不会危及金融基础设施
  • 股市那边:Cloudflare当天跌了13.5%,网络安全板块千亿市值级别的缩水

为什么监管层这么紧张?说到底是攻防的成本天平被掀翻了。

以前发现零日漏洞这种事,需要顶级安全研究人员投入数周甚至数月。成本很高,所以零日漏洞在黑市上动辄几十万美金一个。Mythos几小时就能批量产出来,还能自己跑完从侦察到利用的全链路。攻击端的成本直接趋近于零了,防御端的开销没变——就是这个不对称把监管的人搞紧张了。


二、Mythos的技术能力具体有多强

2.1 跑分数据

测试项 Opus 4.6 Mythos 涨了多少
SWE-bench Verified 80.8% 93.9% +13.1个百分点
SWE-bench Pro ~53% 77.8% +24.8个百分点
Terminal-Bench 92.1%

Pro版从53%拉到78%差不多,这说明什么呢——以前的模型在复杂多文件的工程级任务上经常掉链子,Mythos在这块的表现稳了很多。不是"做得更好"而是"以前做不了的事现在能做了"。

2.2 零日漏洞是怎么挖的

公开资料拼出来的攻击流程大概是这样:

侦察目标系统 → 读源码做审计 → 匹配漏洞模式 → 生成利用代码 → 在沙箱里验证能不能逃出去

几个值得注意的点:

  1. 能自己连续跑10个小时以上做安全研究,不需要人盯着
  2. 同等任务的Token消耗只有前代的五分之一
  3. 覆盖范围包括主流操作系统、浏览器、还有FFmpeg这种音视频编解码组件
  4. 已经公布的战绩:
    • OpenBSD里面藏了27年没人发现的远程崩溃漏洞
    • FFmpeg一个16年的安全隐患
    • Linux内核好几条完整的提权链
    • Firefox JS引擎方面利用效率比以前高了90倍出头

2.3 为什么传统扫描工具干不了这事

传统的SAST和DAST本质上是模式匹配,拿着已知漏洞特征去代码里ctrl+F。能找到的都是"见过的病"。

Mythos不一样,它能理解代码在干什么,在上下文里推断出可能出问题的地方。打个不太精确的比方:传统工具是查错别字,Mythos是看完文章说"你这个论证逻辑有漏洞"。能力维度不在一个层面。


三、Project Glasswing:不卖刀但帮你用

Anthropic没有把Mythos放出来,搞了个Glasswing计划代替:

  • 拉了苹果、微软、谷歌、英伟达、AWS、Linux基金会等12家进来
  • 出了1亿美金的AI使用额度加400万美金给开源社区
  • 给40多个关键设施机构开了受控访问权限
  • 思路:让Mythos主动去扫、去修,别等坏人先用上

同时发了四条安全建议,写得比较直白:

1. 补丁生成要用AI(AI写patch + 人审核)
2. 别再用C/C++开新项目了(换Rust或Go)
3. 零信任架构全铺(所有访问绑硬件密钥)
4. 安全防线AI先上,人管最终决策

我个人觉得第2条争议最大但也最有道理。那个OpenBSD的27年老洞就是内存安全问题。C语言存量太大一时半会儿替不掉,但至少新东西别再往坑里跳了。


四、Go安全中间件:零信任API网关实战

既然要拥抱内存安全语言搭零信任,直接上代码。下面是一套基于Go的零信任API安全中间件,能直接用在生产环境里。

4.1 请求签名校验

package middleware

import (
    "crypto/hmac"
    "crypto/sha256"
    "encoding/hex"
    "net/http"
    "strings"
    "time"
)

// ZeroTrustConfig 零信任相关的配置项
type ZeroTrustConfig struct {
    MaxRequestAge time.Duration // 请求过期时间,防重放
    SecretKey     []byte        // HMAC签名用的密钥
}

// VerifyRequestSignature 校验请求的HMAC签名
// 主要防两个事:重放攻击和请求篡改
func VerifyRequestSignature(cfg ZeroTrustConfig) func(http.Handler) http.Handler {
    return func(next http.Handler) http.Handler {
        return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
            // 先看时间戳,过期的直接拒
            ts := r.Header.Get("X-Request-Timestamp")
            reqTime, err := time.Parse(time.RFC3339, ts)
            if err != nil || time.Since(reqTime) > cfg.MaxRequestAge {
                http.Error(w, "request expired or invalid timestamp", http.StatusUnauthorized)
                return
            }

            // 校验HMAC
            signature := r.Header.Get("X-Request-Signature")
            payload := strings.Join([]string{
                r.Method,
                r.URL.Path,
                ts,
            }, "\n")

            mac := hmac.New(sha256.New, cfg.SecretKey)
            mac.Write([]byte(payload))
            expected := hex.EncodeToString(mac.Sum(nil))

            if !hmac.Equal([]byte(signature), []byte(expected)) {
                http.Error(w, "invalid signature", http.StatusForbidden)
                return
            }

            r.Header.Set("X-Verified", "true")
            next.ServeHTTP(w, r)
        })
    }
}

4.2 滑动窗口限流

package middleware

import (
    "net/http"
    "sync"
    "time"
)

// RateLimiter 滑动窗口限流器
// 比固定窗口精准,比令牌桶实现简单
type RateLimiter struct {
    mu       sync.Mutex
    requests map[string][]time.Time
    limit    int
    window   time.Duration
}

func NewRateLimiter(limit int, window time.Duration) *RateLimiter {
    return &RateLimiter{
        requests: make(map[string][]time.Time),
        limit:    limit,
        window:   window,
    }
}

func (rl *RateLimiter) Allow(clientID string) bool {
    rl.mu.Lock()
    defer rl.mu.Unlock()

    now := time.Now()
    cutoff := now.Add(-rl.window)

    // 扔掉窗口外的旧记录
    valid := rl.requests[clientID][:0]
    for _, t := range rl.requests[clientID] {
        if t.After(cutoff) {
            valid = append(valid, t)
        }
    }

    if len(valid) >= rl.limit {
        rl.requests[clientID] = valid
        return false
    }

    rl.requests[clientID] = append(valid, now)
    return true
}

// RateLimitMiddleware 套成HTTP中间件用
func RateLimitMiddleware(rl *RateLimiter) func(http.Handler) http.Handler {
    return func(next http.Handler) http.Handler {
        return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
            clientID := r.Header.Get("X-Client-ID")
            if clientID == "" {
                clientID = r.RemoteAddr
            }

            if !rl.Allow(clientID) {
                w.Header().Set("Retry-After", "60")
                http.Error(w, "rate limit exceeded", http.StatusTooManyRequests)
                return
            }

            next.ServeHTTP(w, r)
        })
    }
}

4.3 安全响应头

// SecurityHeaders 把该加的安全头统一加上
// 防XSS、防点击劫持、强制HTTPS这些基本操作
func SecurityHeaders(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        w.Header().Set("X-Content-Type-Options", "nosniff")
        w.Header().Set("X-Frame-Options", "DENY")
        w.Header().Set("X-XSS-Protection", "1; mode=block")
        w.Header().Set("Strict-Transport-Security", "max-age=31536000; includeSubDomains")
        w.Header().Set("Content-Security-Policy", "default-src 'self'")
        w.Header().Set("Referrer-Policy", "strict-origin-when-cross-origin")

        next.ServeHTTP(w, r)
    })
}

五、安全工具怎么选

干什么 用什么 说两句
代码审计 Claude Code + SonarQube AI先过一遍,规则引擎兜底,两层比一层靠谱
依赖扫描 Snyk 或 Trivy 容器镜像和依赖库都能扫,Trivy免费够用
运行时监控 Falco + eBPF 内核层面的异常检测,对零日有一定效果
API网关 上面那套Go中间件 + WAF 自己写的好处是可控,WAF做外层过滤
渗透测试 AI辅助 + 手动验证 Mythos级别的能力早晚开放给安全团队

六、踩过的坑

问题 怎么回事 我的建议
AI审计结果直接当真 误报率其实不低,利用链没验过不能算 AI初筛完了人必须再看一遍
第三方依赖不管 供应链才是最大的攻击面 版本锁死 + CI里加自动扫描
存量C/C++代码 全换不现实,几百万行代码呢 核心模块排优先级用Rust重写,其他先加边界检查
零信任落地困难 老系统改造阻力很大 新起的服务先做,旧的慢慢来

七、说几句自已的想法

Mythos这个事情的意义不在于"又出了个更强的模型"。它说明了一件事:AI在安全攻防这个方向上,已经过了某个临界点。

几个判断:

攻防成本的不对称性是长期的。 AI挖漏洞越来越便宜,传统的安全防御体系必须跟着重建。指望攻击成本不下降,那是自欺欺人。

Go和Rust会加速铺开。 不是因为语言好不好的问题,是因为安全出不起事了。那27年的OpenBSD洞就是C的内存管理搞出来的。

AI安全方向接下来几年会很缺人。 会拿AI做防御的工程师,价值会比会拿AI做攻击的高不少。这个供需差短期内看不到缩小的趋势。

最后,geohot说Mythos有营销包装的成分,我觉得有可能。Anthropic刚好在冲IPO。但哪怕实际能力打个五折,也已经够让整个安全行业重新想想自已该怎么干了。


你们团队开始用AI做安全审计了吗?踩过什么坑?评论区交流一下。

觉得有用就点赞收藏关注,后面会继续写AI安全方向的实战内容。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐