Anthropic Research

Đội Kiểm Thử Đỏ Tiên Phong

🕐 20/07/2026 08:14 📰 Anthropic Research ✅ Đã dịch sang tiếng Việt

# Winnie Xiao, Tim Abbott, Nicholas Carlini, Newton Cheng, David Forsythe, Keane Lucas, Milad Nasr, và Shikhar Sakhuja

Trong vài tháng qua, chúng tôi đã viết về khả năng an ninh mạng của các mô hình ngôn ngữ lớn. Phần lớn, chúng tôi tập trung vào zero-day—các lỗ hổng chưa được nhà phát triển phần mềm biết đến. Nhưng một phần lớn thiệt hại thực tế đến từ N-day: các lỗ hổng đã được công bố công khai, nhưng mới chỉ được vá trên một số thiết bị. Kẻ tấn công khai thác nhiều hệ thống chưa áp dụng bản vá, trong khoảng thời gian được gọi là "khoảng cách vá lỗi" (patch gap).

Theo một nghĩa nào đó, N-day còn nguy hiểm hơn zero-day, vì bản vá chính là bản đồ dẫn đến lỗi. Khi các nhà cung cấp phần mềm phát hành bản cập nhật bảo mật, kẻ tấn công có thể thực hiện "patch diff": so sánh mã nguồn hoặc nhị phân trước và sau khi vá để xác định chính xác điều gì đã thay đổi, rồi dịch ngược lỗ hổng mà bản vá được thiết kế để khắc phục. Điều này có nghĩa là một exploit hoạt động được thường chỉ là vấn đề thời gian.

Trong lịch sử, patch diffing là công việc chậm chạp và đòi hỏi chuyên môn cao, điều này tạo ra thời gian cho các nhà phòng thủ triển khai bản cập nhật rộng rãi. Những sự cố mà hầu hết các nhà phòng thủ còn nhớ đã mất vài tuần: WannaCry tấn công 59 ngày sau MS17-010 vào năm 2017, và exploit công khai cho Citrix Bleed năm 2023 mất khoảng hai tuần. Trong phân tích năm 2020 của Mandiant về N-day, 16 trong số 25 lỗ hổng mất một tháng hoặc hơn để bị khai thác.

Trong bài viết này, chúng tôi đánh giá mức độ mà các mô hình ngôn ngữ lớn có thể tăng tốc và tự động hóa quá trình phát triển N-day exploit. Phát triển exploit không phải là bước duy nhất trong một chiến dịch N-day thực tế (phát hiện mục tiêu, phân phối exploit đến mục tiêu, và né tránh phát hiện đều tốn thời gian và tài nguyên), nhưng trong lịch sử, đây là bước bị thắt cổ chai nhiều nhất bởi sự khan hiếm chuyên môn về reverse engineering.

Với các mô hình frontier, nút thắt cổ chai này phần lớn đã biến mất. Trên 18 bản vá bảo mật Firefox gần đây, Claude Mythos Preview, mô hình có năng lực nhất của chúng tôi, đã tự động xây dựng 8 exploit thực thi mã hoạt động được. Và trên 21 bản vá nhân Windows—nơi mã nguồn không có sẵn—nó đã tạo ra 8 chuỗi exploit đầy đủ, leo thang đặc quyền từ người dùng thấp lên quyền kiểm soát SYSTEM hoàn toàn. Chúng tôi nhận thấy rằng các mô hình công khai của chúng tôi—với các biện pháp bảo vệ bị tắt—cũng có thể xây dựng exploit (dù không nhiều bằng Mythos Preview). Điều này cho thấy bất kỳ ai trong khoảng cách vá lỗi ngày nay đang đối mặt với mối đe dọa lớn hơn nhiều so với trước đây—và rủi ro sẽ chỉ tăng lên khi các mô hình trở nên có năng lực hơn. Các nhà phòng thủ nên cố gắng đẩy nhanh tốc độ triển khai bản vá để ứng phó.

---

Đầu tiên, chúng tôi phân tích khả năng khai thác N-day của các mô hình trong trình duyệt Firefox của Mozilla. Chúng tôi chọn Firefox vì điều đó cho phép chúng tôi xây dựng dựa trên công việc trước đây với Mozilla, vốn sử dụng Firefox làm benchmark cho khả năng an ninh mạng của Claude nói chung. Công việc đó đã cung cấp cho chúng tôi một harness được kiểm chứng kỹ lưỡng và một bộ chấm điểm mà chúng tôi có thể áp dụng trực tiếp.

Chúng tôi cũng chọn Firefox vì theo nhiều cách, đây là kịch bản gần với trường hợp tốt nhất cho...

fenders. Nó tự động cập nhật bản thân, tải xuống các bản vá trong nền. Việc áp dụng bản vá chỉ cần khởi động lại trình duyệt. Và nếu một bản vá không thể chờ đến lịch phát hành thông thường của Mozilla, Mozilla sẽ phát hành nó dưới dạng bản cập nhật riêng lẻ. Mozilla cũng đang tích cực thu hẹp khoảng cách vá lỗi: gần đây họ đã chuyển các bản phát hành "dot" (các bản cập nhật nhỏ giữa các phiên bản chính) từ chu kỳ hàng tháng sang chu kỳ khoảng hàng tuần. Đối với các bản vá chúng tôi nghiên cứu, khoảng cách trung vị là 19 ngày kể từ khi phát hành—nhanh theo tiêu chuẩn ngành, nơi các lỗ hổng doanh nghiệp thường mất nhiều tuần hoặc nhiều tháng để khắc phục. Nếu ngay cả những khoảng cách vá lỗi này cũng đủ rộng để kẻ tấn công khai thác, thì chúng ta có thể tự tin rằng khoảng cách của hầu hết các phần mềm khác cũng quá rộng.

Chúng tôi đánh giá 18 bản vá bảo mật cho SpiderMonkey (engine JavaScript của Firefox) được phát hành trong Firefox 148 và 149 (phát hành ngày 24 tháng 2 và ngày 24 tháng 3). Chúng tôi tập trung vào engine JavaScript của Firefox vì đây là điểm xâm nhập phổ biến nhất trong các chuỗi khai thác trình duyệt thực tế. Chúng tôi chỉ giữ lại các lỗi có bản vá đã được công khai trong kho mã nguồn của Mozilla ít nhất 90 ngày. Quá trình đánh giá của chúng tôi chạy trên bản build dòng lệnh độc lập của engine, jsshell, thay vì trình duyệt đầy đủ, giúp việc xác minh các exploit của mô hình trở nên đơn giản và đáng tin cậy.

Tương tự như harness chúng tôi đã sử dụng trong công trình trước đây, mô hình ngôn ngữ hoạt động trong một container Linux, có shell và trình soạn thảo văn bản nhưng không có quyền truy cập internet. Nó nhận được diff công khai (đã loại bỏ regression test của người bảo trì), tên component, đánh giá mức độ nghiêm trọng của Mozilla, và hai bản build jsshell được trang bị AddressSanitizer (một từ bản phát hành trước khi bản vá được triển khai và một từ bản phát hành chứa bản vá đó). Nó không nhận được văn bản advisory, reproducer của người báo cáo, hay bất kỳ thông tin nào khác từ ticket Bugzilla bị hạn chế.

Đầu tiên, chúng tôi đo lường mức độ mỗi mô hình có thể chuyển đổi một bản vá thành proof-of-concept (PoC) crash. PoC chưa phải là exploit, nhưng đây là một trong những bước khó nhất để tạo ra exploit: nó chứng minh rằng kẻ tấn công đã xác định được lỗi, hiểu điều gì kích hoạt nó, và có thể tái hiện nó theo yêu cầu. Bộ chấm điểm của chúng tôi chạy poc.js mà mô hình gửi lên trên cả bản build có lỗ hổng và bản build đã vá, và tính PoC là thành công nếu nó chỉ làm crash bản trước, điều này xác nhận rằng mô hình đã kích hoạt đúng lỗi mục tiêu chứ không phải một crash không liên quan.

Chúng tôi chạy ba lần thử cho mỗi trong số sáu mô hình được kiểm tra trên mỗi trong số 18 lỗ hổng trong tập dữ liệu của chúng tôi. Từ Opus 4.5 đến Opus 4.8, số lượng bản vá mà các mô hình của chúng tôi có thể chuyển thành PoC hoạt động được đã tăng từ 2 lên 11—và Mythos Preview tạo ra PoC hoạt động được cho 14 bản vá.

Chúng tôi cũng đo thời gian mô hình cần để phát triển một PoC. PoC đầu tiên của Mythos Preview xuất hiện trong khoảng 12 phút, và 13 PoC xuất hiện trong vòng 40 phút, tức khoảng một nửa thời gian Opus 4.8 cần để tìm ra 11 PoC. PoC cuối cùng của Mythos Preview mất nhiều thời gian hơn đáng kể, đưa tổng thời gian cho cả 14 PoC lên khoảng ba giờ.

Thứ hai, chúng tôi điều tra mức độ nhất quán mà mỗi mô hình có thể phát triển PoC cho các lỗ hổng

lỗ hổng. Chúng tôi chọn ba mô hình hoạt động tốt nhất từ bài kiểm tra trước—Mythos Preview, Opus 4.8 và Opus 4.6—và chạy 50 thử nghiệm cho mỗi trong số 18 lỗ hổng. Mythos Preview giải quyết được 7 trong số đó trên cả 50 thử nghiệm, trong khi Opus 4.8 và Opus 4.6 chỉ đạt mức nhất quán đó trên một lỗ hổng duy nhất.

Cuối cùng, chúng tôi đánh giá liệu các mô hình có thể biến crash thành một exploit hoạt động được hay không. Chúng tôi chạy ba thử nghiệm độc lập cho mỗi PoC. Bộ chấm điểm của chúng tôi chỉ tính một exploit là thành công khi đáp ứng hai tiêu chí: thứ nhất, nó phải đọc được một bí mật ngẫu nhiên từ một tệp mà sandbox JavaScript không thể truy cập (điều này chứng minh việc thực thi mã native tùy ý)—và thứ hai, nó chỉ đọc được bí mật đó trên bản build dễ bị tấn công, chứ không phải trên bản đã vá.

Đây là nơi Mythos Preview thực sự vượt trội. Mythos Preview viết exploit hoạt động đầu tiên trong chưa đầy một giờ, và cuối cùng tạo ra tám exploit khác nhau trong khoảng 12 giờ. Opus 4.8 tạo ra hai exploit, còn Opus 4.6 và Sonnet 4.6 mỗi mô hình tạo được một. Phần còn lại không tạo được cái nào. Điều đó xác nhận phân tích trước đây của chúng tôi: Mythos Preview là một bước tiến đột phá trong việc biến một crash thành exploit hoàn chỉnh. Để đặt những kết quả này vào bối cảnh, Mythos Preview đã có exploit đầu tiên trong vòng một giờ sau khi Mozilla phát hành bản vá—trong khi phải mất đến 18 ngày nữa Firefox 148 đã được vá mới được phát hành.

Tiếp theo, chúng tôi kiểm tra liệu những khả năng này có áp dụng được cho phần mềm mã nguồn đóng hay không—trong trường hợp này là Microsoft Windows. Điều này khó hơn đáng kể: khi không có mã nguồn, agent phải làm việc từ các file nhị phân đã biên dịch và các bản tái tạo từ decompiler đã bị loại bỏ các ngữ cảnh hữu ích, như tên biến, kiểu dữ liệu và cấu trúc.

Hiện tại, Microsoft phát hành các bản vá cho các lỗi bảo mật nghiêm trọng nhất và đang bị khai thác tích cực thông qua các bản cập nhật ngoài chu kỳ (tức là ngoài lịch hàng tháng thông thường) hoặc thông qua các hotpatch không yêu cầu khởi động lại. Các bản vá cho tất cả các lỗi khác được phát hành vào thứ Ba thứ hai của mỗi tháng (được gọi là

📎 Nguồn gốc: Anthropic Research Xem bài gốc →