AI hacker tự đột nhập hệ thống sau khi AI code review bỏ sót lỗi: Cuộc đua agent-vs-agent đã bắt đầu
Wiz Red Agent tự phát hiện và khai thác một lỗi GitHub Actions trong repository công khai của Snowflake chỉ 5 ngày sau khi lỗi xuất hiện, trong khi lớp kiểm tra AI trước đó không phát hiện ra lỗ hổng. Vụ việc cho thấy an ninh phần mềm đang bước vào thời đại agent phòng thủ đối đầu agent tấn công.
Một pull request của Snowflake đi qua quy trình review có sự tham gia của GitHub Copilot và GitHub Advanced Security. Một lỗ hổng nghiêm trọng vẫn lọt qua. Năm ngày sau khi thay đổi được merge, một AI agent chuyên săn lỗi của Wiz tự tìm thấy điểm yếu, tự thử khai thác, tự điều chỉnh chiến thuật khi lần đầu thất bại và cuối cùng xác nhận có thể truy cập vào Jira nội bộ của Snowflake.
Vụ việc được Wiz công bố ngày 17/8/2026 và là một ví dụ hiếm hoi cho thấy hai mặt của AI trong an ninh phần mềm xuất hiện trong cùng một chuỗi sự kiện: AI hỗ trợ phát triển và review code ở phía trước, rồi một AI agent khác đóng vai red team ở phía sau.
Điều này khiến cụm từ “agent-vs-agent” trở nên hấp dẫn. Tuy nhiên, cần hiểu chính xác: đây chưa phải hai AI trực tiếp đấu nhau theo thời gian thực. GitHub Copilot không phát hiện được lỗi trong quá trình review; sau khi code đã được đưa lên nhánh chính, Wiz Red Agent mới độc lập quét repository, phát hiện lỗ hổng và khai thác nó trong khuôn khổ chương trình bug bounty của Snowflake.
Cũng chưa có bằng chứng cho thấy AI là tác giả của chính đoạn code gây lỗi. Wiz đã cập nhật bài công bố để làm rõ rằng Copilot là đồng tác giả của một phần pull request và có tham gia kiểm tra thay đổi, nhưng phần đóng góp được ghi nhận của Copilot Autofix nằm ở một workflow khác. Điều có thể khẳng định là một thay đổi có lỗ hổng đã đi qua một quy trình có AI review, trong khi một AI agent tấn công lại tìm thấy nó chỉ vài ngày sau.
Đó là lý do vụ Snowflake đáng chú ý hơn một lỗi GitHub Actions thông thường. Nó hé lộ hình dạng của cuộc đua an ninh phần mềm sắp tới: code được AI viết nhanh hơn, AI kiểm tra code nhanh hơn, AI red team cũng dò tìm và xác minh lỗ hổng nhanh hơn. Khoảng thời gian giữa “bug xuất hiện” và “bug bị tìm thấy” có thể co từ nhiều tuần xuống vài ngày, thậm chí vài giờ.
Chuyện gì đã xảy ra với repository của Snowflake?
Lỗ hổng nằm trong repository công khai snowflakedb/snowflake-connector-net, dự án .NET connector của Snowflake.
Ngày 18/6/2026, pull request số 1218 có tiêu đề “Update jira workflows” được merge vào nhánh chính. Pull request thay đổi hai workflow GitHub Actions liên quan tới việc tích hợp GitHub issue với Jira.
Một trong những thay đổi đã loại bỏ cách xử lý an toàn hơn vốn đưa tiêu đề issue vào biến môi trường rồi truyền nó tới công cụ xử lý dữ liệu. Thay vào đó, workflow mới chèn trực tiếp giá trị github.event.issue.title vào một đoạn shell script.
Đây là một pattern nguy hiểm đã được GitHub cảnh báo trong tài liệu chính thức. Những trường như issue title, pull request body hoặc branch name có thể do người dùng bên ngoài kiểm soát và phải được coi là dữ liệu không đáng tin cậy. Nếu giá trị đó được nội suy trực tiếp vào shell, một chuỗi được chế tạo đặc biệt có thể làm thay đổi cú pháp lệnh và khiến runner thực thi nội dung không mong muốn.
Trong trường hợp Snowflake, workflow được kích hoạt khi có một issue mới mở. Repository lại là public. Điều này đồng nghĩa bất kỳ tài khoản GitHub nào có khả năng mở issue đều có thể tác động tới đầu vào mà workflow xử lý.
Vấn đề trở nên nghiêm trọng hơn vì GitHub Actions job đó có quyền truy cập các credential Jira được lưu dưới dạng secret. Nếu kẻ tấn công biến dữ liệu tiêu đề thành code được thực thi trên runner, họ có thể tìm cách đọc những secret mà job đang sử dụng.
“Cổng bảo mật” trông có vẻ hợp lý nhưng thực tế luôn mở
Workflow còn có một điều kiện if có vẻ như được dùng để giới hạn những trường hợp được chạy.
Wiz phân tích rằng điều kiện này tham chiếu tới một thuộc tính chỉ tồn tại trong ngữ cảnh pull request, trong khi workflow thực tế được kích hoạt bởi sự kiện issue. Ở sự kiện issue, trường được kiểm tra trở thành giá trị null.
Kết quả là phép so sánh bảo mật tưởng như loại bỏ một đối tượng không mong muốn lại luôn đánh giá thành true đối với các issue thông thường. “Cánh cửa” tồn tại trong code nhưng không hề chặn nhóm đầu vào cần chặn.
Đây là một dạng lỗi rất điển hình trong CI/CD: từng dòng riêng lẻ có thể trông hợp lý, nhưng semantics thực tế phụ thuộc mạnh vào event model, context và quyền của runner.
Với một developer chỉ nhìn phần shell hoặc một scanner chỉ tập trung vào mẫu vulnerability phổ biến, mối liên hệ giữa event trigger, expression context và secret có thể bị bỏ sót.
GitHub Copilot đã thực sự làm gì trong pull request này?
Đây là phần cần phân biệt cẩn thận, bởi tiêu đề kiểu “AI viết lỗi rồi AI khác hack” dễ đi xa hơn dữ kiện.
Trên GitHub, commit merge của PR #1218 ghi ba đồng tác giả, trong đó có Copilot Autofix powered by AI. Trang pull request cũng cho thấy GitHub Advanced Security đã thực hiện AI review và đưa ra nhận xét trên workflow jira_close.yml.
Tuy nhiên, Wiz xác nhận phần đóng góp được ghi nhận cụ thể của Copilot Autofix là một bản sửa trong jira_close.yml. Lỗ hổng script injection mà Red Agent tìm được nằm trong jira_issue.yml.
Vì vậy, không có căn cứ để nói Copilot đã tự viết ra dòng vulnerable trong jira_issue.yml. Wiz cũng chỉnh lại bài viết ngày 17/8 để nhấn mạnh điểm này.
Điều đáng nói hơn là GitHub Advanced Security đã phân tích revision cuối cùng của pull request, bao gồm cả workflow có lỗi, nhưng không phát hiện script injection đó. Nói cách khác, AI/security automation hiện diện trong pipeline nhưng không tạo ra một “lá chắn tuyệt đối”.
Đây là khác biệt quan trọng về mặt kỹ thuật lẫn trách nhiệm. AI có thể tham gia một PR theo nhiều vai trò: gợi ý code, Autofix một cảnh báo cụ thể, review diff hoặc quét bảo mật. Việc một công cụ AI xuất hiện trong lịch sử commit không đồng nghĩa nó tạo ra mọi dòng code trong commit đó.
Năm ngày sau, một AI agent khác tìm thấy lỗi
Lỗ hổng trở thành live ngày 18/6. Ngày 23/6, Wiz Red Agent phát hiện nó trong quá trình nghiên cứu bảo mật được thực hiện qua chương trình disclosure của Snowflake.
Red Agent là công cụ AI tự động của Wiz được thiết kế để thực hiện các tác vụ red-team và nghiên cứu bảo mật có ủy quyền. Theo Wiz, agent quét tổ chức GitHub của Snowflake, xác định workflow đáng nghi, suy luận rằng tiêu đề issue có thể chảy vào shell và nhận ra khả năng script injection.
Điểm khiến vụ việc khác một static scanner thông thường là agent không dừng ở cảnh báo “có thể vulnerable”. Nó tiếp tục xác minh khả năng khai thác.
Lần thử đầu tiên không thành công vì chuỗi đầu vào tạo lỗi cú pháp Bash. Theo mô tả của Wiz, Red Agent tự đọc lỗi thực thi, nhận ra nguyên nhân, thay đổi cách đóng chuỗi shell rồi thử lại.
Lần tiếp theo thành công. Runner đã gửi tín hiệu xác minh tới hệ thống kiểm thử của Wiz cùng dữ liệu chứng minh rằng credential Jira có thể bị đọc trong ngữ cảnh job.
Khía cạnh “tự sửa chiến thuật sau thất bại” rất quan trọng. Nó phân biệt agent với scanner theo rule: scanner thường tìm một pattern đã biết rồi phát cảnh báo; agent có thể tạo giả thuyết, thử nghiệm, quan sát output và thay đổi hành động kế tiếp.
Từ một issue công khai tới Jira nội bộ
Credential bị lộ trong proof-of-concept thuộc một tài khoản Jira của Snowflake. Wiz cho biết token đó cho phép đọc các project nội bộ liên quan tới engineering, security compliance và bug bounty tracking.
Về lý thuyết, một kẻ tấn công thực sự có thể dùng quyền truy cập này để thu thập thông tin nhạy cảm về lỗi chưa công bố, quy trình kỹ thuật hoặc các vấn đề bảo mật đang được theo dõi nội bộ.
Tuy nhiên, đây là nghiên cứu có trách nhiệm chứ không phải một vụ xâm nhập tội phạm.
Wiz báo cáo lỗ hổng cho Snowflake qua HackerOne ngày 23/6. Snowflake vá workflow ngay trong ngày, thu hồi và thay credential liên quan. Công ty sau đó kiểm tra audit log và cho biết không có bằng chứng bên thứ ba nào truy cập trái phép trong năm ngày lỗ hổng tồn tại; những truy vấn bất thường khớp với hoạt động thử nghiệm của Wiz. Wiz cũng cho biết dữ liệu dùng trong proof-of-concept đã được xóa.
Snowflake xác nhận họ nhận báo cáo ngày 23/6, điều tra và khắc phục ngay, đồng thời không tìm thấy bằng chứng unauthorized access.
Vì sao GitHub Actions là mục tiêu đặc biệt hấp dẫn?
CI/CD pipeline là nơi code và quyền đặc biệt gặp nhau.
Một runner có thể cần quyền tải dependency, build artifact, ký binary, đẩy container image, mở ticket nội bộ, truy cập cloud hoặc triển khai production. Để thực hiện những việc đó, workflow thường được cấp token và secret mà một process ứng dụng bình thường không có.
Đồng thời, nhiều workflow lại phản ứng với dữ liệu do người ngoài tạo ra: pull request, issue, comment, branch name, commit message hoặc package metadata.
Nếu input không tin cậy lọt tới một shell, template engine hay command-line argument theo cách nguy hiểm, CI/CD có thể biến thành cầu nối từ “người lạ trên Internet” tới “credential nội bộ”.
GitHub dành riêng tài liệu cho script injection và cảnh báo rằng các context như github.event.issue.title phải được coi là attacker-controlled. Khuyến nghị phổ biến là đưa dữ liệu vào biến môi trường hoặc truyền như dữ liệu tới một action/script chuyên dụng, thay vì nội suy trực tiếp expression vào đoạn shell được thực thi.
Vụ Snowflake đặc biệt đáng chú ý vì phiên bản cũ của workflow đã dùng một pattern an toàn hơn, nhưng quá trình refactor vô tình đưa input trở lại shell.
Đây là security regression, không phải “zero-day ma thuật”
Lỗ hổng không dựa vào một kỹ thuật chưa từng biết đến. Script injection trong CI/CD là lớp lỗi đã được tài liệu hóa nhiều năm.
Điểm mới nằm ở tốc độ và cách phát hiện.
Thay đổi refactor làm mất một biện pháp an toàn sẵn có. Review và automated security gate không chặn được regression. Chỉ năm ngày sau, một agent tự động tìm ra và xác minh đường tấn công.
Trong kỷ nguyên AI, nhiều sự cố an ninh có thể không đến từ “AI phát minh ra vulnerability hoàn toàn mới”. Chỉ cần agent trở nên đủ rẻ và đủ kiên nhẫn để quét hàng nghìn repository, đọc workflow, dựng giả thuyết và thử từng giả thuyết, những lỗi tưởng nhỏ cũng có thể bị tìm thấy sớm hơn rất nhiều.
Vì sao một AI review bỏ sót còn AI hacker lại tìm thấy?
Hai công cụ có mục tiêu và budget hoàn toàn khác nhau.
Code review thường phải nhanh, ít false positive và không làm gián đoạn developer workflow. Nó nhìn diff trong bối cảnh hạn chế và cần quyết định vấn đề nào đủ chắc chắn để báo.
Một red-team agent có thể dành nhiều bước hơn cho một dấu hiệu đáng ngờ. Nó có thể mở file liên quan, phân tích event trigger, theo dõi data flow, thử chạy một biến thể, quan sát lỗi rồi lặp lại.
Nói cách khác, review là bài toán phát hiện; red team là bài toán chứng minh khả năng khai thác. Cùng một model hoặc họ model cũng có thể cho hiệu năng rất khác nhau khi được cấp tool, thời gian và objective khác nhau.
Đây là lý do không nên đánh đồng “AI code reviewer không cảnh báo” với “code an toàn”. Một hệ thống review có thể bỏ sót vì thiếu context, ưu tiên precision, giới hạn số bước hoặc đơn giản là model chưa suy luận được chuỗi tấn công.
Agent đang thay đổi bài toán tấn công như thế nào?
Một chatbot chỉ trả lời câu hỏi. Một agent được nối với browser, shell, code search, sandbox và memory có thể thực hiện chuỗi công việc dài hơn nhiều.
Trong an ninh mạng, chuỗi đó có thể gồm: chọn mục tiêu, đọc source code, phát hiện điểm nhập dữ liệu, tìm nơi chứa secret, tạo test case, chạy thử, đọc lỗi, chỉnh giả thuyết, xác minh impact và viết báo cáo.
Những bước này trước đây đòi hỏi một security researcher phải chuyển liên tục giữa trình duyệt, terminal, debugger và tài liệu. Agent không nhất thiết giỏi hơn chuyên gia ở từng bước, nhưng có thể lặp lại nhiều bước với chi phí thấp và hoạt động song song trên số lượng mục tiêu lớn.
Nghiên cứu ExploitGym công bố năm 2026 cho thấy frontier AI agent đã có thể biến một phần đáng kể các vulnerability thực thành exploit hoạt động trong môi trường benchmark, kể cả với các mục tiêu phức tạp như V8 và Linux kernel. Các tác giả nhấn mạnh autonomous exploit development không còn là khả năng hoàn toàn giả định.
Đồng thời, các phòng lab AI cũng đang dùng chính năng lực đó cho phòng thủ. Anthropic đã hợp tác với Mozilla để cho Claude tìm lỗi trong Firefox. OpenAI phát triển Daybreak cho vulnerability research và exploit validation có kiểm soát.
Hai xu hướng thực chất là một: khả năng hiểu code, tìm lỗi và thao tác hệ thống đang mạnh lên. Khác biệt nằm ở ai triển khai agent, agent được cấp quyền gì và mục tiêu của nó là vá hay khai thác.
“Agent-vs-agent” sẽ trông như thế nào trong doanh nghiệp?
Phiên bản đầu tiên có thể không giống một trận chiến cyber tự động thời gian thực. Nó giống một pipeline chạy liên tục hơn.
Một coding agent tạo pull request. Một review agent đọc diff. Static analysis và dependency scanner tạo thêm tín hiệu. Một security agent cố tìm đường tấn công từ những thay đổi mới. Sau khi code được triển khai, một red-team agent tiếp tục dò môi trường giống kẻ tấn công.
Nếu phát hiện vấn đề, một remediation agent có thể tạo patch và chạy test. Agent khác đánh giá patch có làm hỏng chức năng hoặc tạo lỗ hổng mới hay không.
Khi các vòng này đủ tự động, phần mềm có thể đi vào một chu trình gần như liên tục: AI viết → AI review → AI tấn công thử → AI vá → AI kiểm tra lại.
Con người chuyển từ việc tự đọc mọi dòng sang thiết kế policy, phê duyệt hành động có rủi ro cao, xem bằng chứng và xử lý những trường hợp agent không chắc chắn.
Nhưng nếu cả hai bên dùng cùng loại AI thì bên nào thắng?
Không có câu trả lời đơn giản.
Defender có lợi thế vì sở hữu source code, telemetry, architecture và quyền triển khai patch. Attacker lại có lợi thế kinh tế khác: họ chỉ cần một đường vào thành công, trong khi defender phải bảo vệ toàn bộ attack surface.
AI khuếch đại cả hai phía.
Một doanh nghiệp có thể chạy agent trên mọi pull request. Nhưng một adversary cũng có thể chạy hàng nghìn agent trên hàng nghìn repository public, service exposed hoặc package mới phát hành.
Trong mô hình cũ, sự khan hiếm chuyên gia giúp tạo ra một “khoảng đệm”. Không phải mọi bug public đều được một hacker giỏi nhìn thấy ngay. Nếu agent hạ mạnh chi phí vulnerability research, khoảng đệm đó thu hẹp.
Vụ Snowflake là ví dụ nhỏ nhưng rất trực quan: vulnerability chỉ tồn tại năm ngày trước khi một agent của bên ngoài tìm thấy và chứng minh được impact.
Điều này có làm code review của con người trở nên vô nghĩa?
Không. Thực tế có thể ngược lại.
Khi AI viết nhiều code hơn, tổng lượng thay đổi cần review tăng. Con người khó đọc mọi diff ở cùng độ sâu. AI reviewer trở thành lớp lọc cần thiết, nhưng quyết định merge vẫn cần được hỗ trợ bằng policy và kiểm soát kiến trúc.
Một reviewer con người có kinh nghiệm về GitHub Actions có thể nhận ra ngay rằng issue title là untrusted input. Nhưng nếu tổ chức chỉ dựa vào trí nhớ của reviewer, cùng lỗi vẫn có thể xuất hiện ở repository khác.
Biện pháp mạnh hơn là biến tri thức đó thành guardrail máy móc: rule chặn expression không tin cậy trong run:, secret có quyền tối thiểu, workflow public không được truy cập credential rộng, và test bảo mật được chạy trước merge.
AI review nên là một lớp trong defense-in-depth, không phải người gác cổng duy nhất.
Secret dài hạn làm blast radius lớn hơn
Trong vụ Snowflake, workflow có một Jira API token. Sau disclosure, token được revoke và rotate.
Đây là lời nhắc về một nguyên tắc cũ nhưng càng quan trọng khi agent có thể tìm lỗi nhanh: credential càng sống lâu và càng có nhiều quyền, một injection ngắn ngủi càng có thể tạo impact lớn.
Đối với cloud deployment, GitHub khuyến nghị dùng OpenID Connect khi có thể để workflow lấy credential ngắn hạn thay vì lưu secret dài hạn. Với những hệ thống chưa hỗ trợ OIDC, token vẫn nên có phạm vi nhỏ, thời hạn ngắn và tách riêng theo workflow.
Nếu một job chỉ cần tạo Jira ticket, token của nó không nên đọc mọi project nhạy cảm. Nếu token bị lộ, least privilege biến một lỗ hổng nghiêm trọng thành sự cố có phạm vi nhỏ hơn.
AI không xóa những nguyên tắc AppSec cũ
Một điều nghịch lý của làn sóng agentic security là các biện pháp hiệu quả nhất vẫn nghe rất quen thuộc.
Không đưa input không tin cậy trực tiếp vào shell.
Giới hạn quyền của runner và token.
Tách secret theo môi trường và chức năng.
Review kỹ thay đổi CI/CD như code production.
Chặn security regression bằng rule tự động thay vì dựa vào trí nhớ.
Rotate credential nhanh khi có dấu hiệu exposure.
AI làm tăng tốc độ phát hiện và khai thác, nhưng không làm những nguyên tắc này lỗi thời. Ngược lại, nó khiến sai sót trong các nguyên tắc cơ bản bị trừng phạt nhanh hơn.
CI/CD cần được coi như production infrastructure
Nhiều team vẫn xem file YAML trong .github/workflows như “automation glue” — vài chục dòng script hỗ trợ build và ticketing.
Về security, đây là cách nhìn nguy hiểm.
Một workflow có thể nắm token mạnh hơn cả ứng dụng mà nó build. Nó có thể ký artifact được hàng triệu người tải về. Nó có thể push image vào registry, deploy production hoặc truy cập hệ thống nội bộ.
Do đó, thay đổi workflow nên được bảo vệ giống infrastructure-as-code: code owner riêng, review bắt buộc, scanner chuyên CI/CD, test với untrusted event và policy kiểm tra secret exposure.
Vụ Snowflake cho thấy một refactor có vẻ đơn giản trong logic Jira có thể tạo đường từ issue công khai tới credential nội bộ.
AI red team có thể trở thành “unit test cho attacker”
Trong software engineering, unit test không chứng minh chương trình không có bug; nó liên tục thử những hành vi quan trọng để phát hiện regression sớm.
Autonomous red-team agent có thể đóng vai tương tự ở tầng security.
Thay vì chỉ kiểm tra xem code có khớp rule nguy hiểm hay không, agent được giao mục tiêu: “hãy tìm cách đi từ đầu vào public tới secret”, “hãy thử vượt authorization boundary” hoặc “hãy xác minh liệu thay đổi này có mở đường thực thi code”.
Nếu agent làm việc trong sandbox và phạm vi được kiểm soát, doanh nghiệp có thể chạy những bài thử này liên tục trước và sau deployment.
Điểm mạnh không nằm ở việc AI luôn đúng. Nó nằm ở việc chi phí thử một giả thuyết tấn công giảm đủ thấp để có thể chạy hàng nghìn lần.
Nhưng agent phòng thủ cũng tạo ra rủi ro mới
Một security agent được cấp browser, shell và credential để kiểm thử mạnh hơn cũng đồng thời trở thành một principal có quyền cao.
Nếu agent bị prompt injection từ nội dung repository, package README, issue hoặc web page, nó có thể bị hướng sang hành động ngoài ý muốn. Nếu sandbox cấu hình sai, một bài kiểm thử có thể chạm vào hệ thống thật.
Năm 2026, chính các phòng lab AI đã công bố nhiều sự cố trong đó cyber-capable agent vượt khỏi phạm vi đánh giá dự kiến vì giới hạn môi trường không đủ chặt.
Vì vậy, “dùng AI hacker để bảo vệ hệ thống” không có nghĩa thả agent tự do vào production. Tổ chức cần isolation, allowlist mục tiêu, credential tạm thời, network egress control, audit log và stop condition rõ ràng.
Tốc độ patch phải bắt kịp tốc độ tìm lỗi
Wiz coi khoảng thời gian năm ngày là tín hiệu quan trọng: discovery window đang co lại.
Trước đây, nhiều tổ chức vận hành theo chu kỳ scan hàng tuần hoặc hàng tháng. Nếu một lỗi mới được đưa vào code hôm nay, họ giả định còn một khoảng thời gian trước khi attacker chú ý.
Giả định đó ngày càng yếu.
Một agent có thể theo dõi commit public, ưu tiên diff liên quan tới authentication, CI/CD và secret, rồi thử xác minh tự động. Không cần đợi CVE. Không cần đợi blog giải thích vulnerability.
Điều này đẩy security về gần thời gian của DevOps: nếu code được deploy liên tục, kiểm tra security và remediation cũng phải gần liên tục.
AI có thể làm vulnerability disclosure trở nên quá tải
Một hệ quả ít được chú ý là phía maintainer.
Nếu autonomous agent có thể tìm hàng trăm bug, open-source project có thể nhận lượng báo cáo lớn hơn nhiều khả năng triage của họ.
Không phải mọi phát hiện đều có chất lượng như nhau. False positive, duplicate, issue không có impact và báo cáo thiếu context có thể làm đội bảo mật mất thời gian.
Vì vậy, thế hệ security agent hữu ích nhất không chỉ cần “tìm được tín hiệu”. Nó phải xác minh reproducibility, đánh giá blast radius, loại duplicate, tạo bằng chứng vừa đủ và tôn trọng quy trình disclosure.
Trong vụ Snowflake, Red Agent đi tới proof-of-concept có kiểm soát và Wiz gửi báo cáo qua HackerOne. Đây là mô hình phòng thủ hợp lệ. Nếu cùng năng lực được chạy không có authorization trên mục tiêu ngẫu nhiên, ranh giới pháp lý và đạo đức hoàn toàn khác.
“Agent-vs-agent” hiện vẫn nghiêng về con người thiết kế luật chơi
Dù AI ngày càng tự chủ, phần quan trọng nhất vẫn do con người định nghĩa.
Ai được quyền merge? Runner được truy cập secret nào? Red agent được phép đánh vào domain nào? Một exploit có được chạy tới bước xác minh hay phải dừng sau khi phát hiện? Khi nào credential phải rotate? Bằng chứng nào đủ để auto-block deployment?
Những policy này quyết định AI trở thành lớp bảo vệ hay nguồn rủi ro.
Trong tương lai gần, cuộc đua có thể không phải “AI tốt đấu AI xấu” đơn giản. Nó sẽ là cuộc đua giữa những tổ chức xây được vòng phản hồi tự động an toàn và những tổ chức vẫn có khoảng trống giữa code, review, deployment và detection.
Bài học từ Snowflake: đừng để “AI đã review” trở thành dấu kiểm an toàn
PR #1218 có AI trong lịch sử đóng góp. GitHub Advanced Security đã review. Hầu hết checks đã pass. Một reviewer con người đã approve. Và vulnerability vẫn vào nhánh chính.
Đây không phải bằng chứng AI review vô dụng. Nó là bằng chứng rằng không một lớp review đơn lẻ nào đủ để chứng minh security.
Static analysis có blind spot. AI có blind spot. Con người có blind spot. Unit test có thể không bao phủ security semantics. Một PR có 83/87 checks pass vẫn có thể chứa đường attack nghiêm trọng.
Defense-in-depth tồn tại chính vì lý do đó.
Nếu một agent tấn công có thể liên tục suy nghĩ theo câu hỏi “tôi khai thác hệ thống này thế nào?”, defender cũng cần một lớp kiểm thử có cùng mindset, thay vì chỉ hỏi “diff này trông có hợp lệ không?”.
Cuộc đua đã bắt đầu, nhưng không phải theo cách khoa học viễn tưởng
Không có hai robot trên Internet bắn exploit vào nhau trong thời gian thực. Không có AI “nổi loạn” tự chọn Snowflake làm mục tiêu. Wiz Red Agent hoạt động trong nghiên cứu được ủy quyền, và Snowflake đã xử lý disclosure đúng quy trình.
Nhưng ý nghĩa công nghiệp của vụ việc vẫn rất thật.
Một vulnerability xuất hiện trong code. Một hệ review có AI không nhìn thấy nó. Một AI agent khác phát hiện và chứng minh impact sau năm ngày. Khi lần thử đầu thất bại, agent tự điều chỉnh rồi tiếp tục.
Đó là một preview của cyber security khi cả hai bên đều có machine speed.
Phòng thủ trong thời đại này sẽ không thể chỉ là “thêm một AI code reviewer”. Nó cần vòng kín hơn: code được kiểm tra bằng nhiều phương pháp, CI/CD bị giới hạn quyền, credential ngắn hạn, red-agent chạy trong sandbox, patch được tạo nhanh và mọi hành động đều để lại audit trail.
AI có thể khiến phần mềm được viết nhanh hơn rất nhiều. Vụ Snowflake nhắc rằng cùng năng lực reasoning và automation cũng khiến lỗi bị tìm thấy nhanh hơn.
Trong cuộc đua agent-vs-agent, lợi thế không nhất thiết thuộc về bên có model thông minh nhất. Nó có thể thuộc về bên xây được hệ thống mà khi một agent bỏ sót, agent kế tiếp vẫn có cơ hội bắt lỗi — trước khi một agent của đối thủ làm điều đó.
Nguồn tham khảo
- Wiz Research, “Wiz Red Agent Finds Its Way Into Snowflake’s Internal Jira Through a Flaw in a GitHub Copilot–Assisted PR”, 17/8/2026.
- Snowflake Connector for .NET — Pull Request #1218 trên GitHub.
- Commit merge PR #1218, gồm metadata đồng tác giả Copilot Autofix.
- Snowflake — Pull Request #1402 vá workflow ngày 23/6/2026.
- GitHub Docs — Script injections trong GitHub Actions.
- GitHub Docs — Secure use reference cho GitHub Actions.
- Zhun Wang và cộng sự, “ExploitGym: Can AI Agents Turn Security Vulnerabilities into Real Attacks?”, 2026.
- Anthropic — hợp tác với Mozilla sử dụng AI cho vulnerability research, 6/3/2026.
- OpenAI Daybreak — AI cho defensive vulnerability research và exploit validation có ủy quyền.