Không có gì bị hack. Mọi thứ bị lấy mất.
Hãy đưa cho một AI agent một khóa AWS bị lộ — loại quyền hạn thấp, dùng một lần mà pipeline CI làm rò rỉ mỗi tuần — và nó sẽ đi hết chuỗi tới dữ liệu khách hàng của bạn trong khoảng một phút, không cần ai giám sát. Không có gì bị hack và mọi thông tin xác thực đều hợp lệ. Kinh tế học của một khóa bị lộ vừa đảo chiều.
Hãy đưa cho một AI agent một khóa AWS bị lộ — loại quyền hạn thấp, dùng một lần mà pipeline CI làm rò rỉ mỗi tuần — và bảo nó lấy những gì với tới được. Rồi bỏ đi. Trong hầu hết trường hợp, khoảng một phút sau và không có ai ngồi bàn phím, nó đang đọc dữ liệu khách hàng của bạn.
Không có gì bị hack để đi tới đó. Không exploit, không CVE, không server chưa vá. Mọi thông tin xác thực nó chạm tới đều hợp lệ; mọi lời gọi API đều là một lời gọi mà AWS được xây dựng để trả lời. Ba mươi năm qua, một khóa bị lộ chỉ là khởi đầu của một cuộc tấn công — phần chậm mà một con người phải thức để làm, khoảng trống nơi đội bảo mật sống và việc xoay khóa nhanh thắng cuộc đua. Khoảng trống đó vừa co lại còn khoảng một phút.
Hồi tháng 5 năm 2026, một nhà nghiên cứu tên Adan Álvarez chạy một thử nghiệm đơn giản. Ông lấy một khóa AWS quyền hạn thấp duy nhất — loại mà pipeline CI/CD làm rò rỉ suốt — và đưa nó cho một AI coding agent với một chỉ dẫn: hãy hành động như một kiểm thử viên xâm nhập, tìm ra những gì bạn với tới được. Không còn ai ngồi bàn phím sau đó. Agent làm phần còn lại. Hơn một nửa số lần, nó đi hết chuỗi tới dữ liệu khách hàng — trong khoảng một phút, không có ai giám sát.
Chuyện gì thực sự đã xảy ra
Thiết lập được cố ý làm cho tầm thường. Khóa bị lộ thuộc về một user build quyền hạn thấp. Tự thân nó không thể chạm vào dữ liệu khách hàng. Nhưng nó có thể đọc một tệp state Terraform. Tệp state đó chứa một bộ khóa thứ hai. Những khóa đó có thể assume một role. Role đó có thể đọc bucket chứa dữ liệu khách hàng.
Hầu hết tài khoản cloud thực tế đều được định hình như vậy — không phải một bức tường thành, mà là một chuỗi các mối quan hệ tin cậy nhỏ, hợp lý, mỗi mắt xích tự thân đều có lý. Một kẻ tấn công con người gỡ chuỗi đó chậm rãi, thủ công. Agent gỡ nó trong khoảng sáu mươi giây.
Những lần thành công đều đi theo cùng sáu bước: xác nhận khóa thuộc về ai, liệt kê những gì nó được phép làm, thu hồi bộ thông tin xác thực thứ hai từ bucket staging, assume role có đặc quyền, tìm dữ liệu, lấy đi. Trong mười hai lần chạy trên hai mô hình, bảy lần đạt tới bước đưa dữ liệu ra ngoài. Hầu hết hoàn thành trong khoảng một phút [1].
Và đây không chỉ là kết quả phòng thí nghiệm. Tháng 11 năm 2025, nhóm nghiên cứu mối đe dọa của Sysdig chứng kiến cùng mô hình đó diễn ra ngoài thực tế: khóa AWS hợp lệ bị lộ trong một bucket công khai, một hàm Lambda bị âm thầm viết lại để đúc thông tin xác thực quyền admin, di chuyển ngang qua mười chín định danh riêng biệt — tất cả trong tám phút [2][3]. Đoạn code được chèn vào mang dấu vân tay của một mô hình: xử lý ngoại lệ gọn gàng, logic nhắm mục tiêu lặp, chú thích bằng nhiều hơn một ngôn ngữ.
Đây không phải là AWS yếu kém
Đây là phần đáng khiến bạn trằn trọc: không có gì bị hack.
Không exploit. Không CVE. Không tràn bộ đệm, không server chưa vá. Mọi thông tin xác thực đều hợp lệ. Mọi lời gọi API đều là một lời gọi mà AWS được xây dựng để trả lời. Theo cách Sysdig nói, các thông tin xác thực là chính đáng và các API được dùng đúng như thiết kế [3]. AWS đã làm tốt công việc của mình.
Giả định bị phá vỡ không phải là bảo mật của AWS. Mà là một giả định cũ hơn, lặng lẽ hơn nằm bên dưới: rằng một khóa bị lộ chỉ nguy hiểm bằng mức chú ý mà kẻ tấn công có thể dành cho nó. Ba mươi năm điều đó đúng. Khai thác một thông tin xác thực đòi hỏi con người — thời gian, kỹ năng, kiên nhẫn. Chi phí đó là một phần phòng thủ thực sự của bạn, dù không ai vẽ nó vào sơ đồ kiến trúc.
Agent đẩy chi phí đó về gần bằng không. Sự kiên nhẫn là vô hạn. Kỹ năng được thuê theo phút. Kẻ tấn công có thể đang ngủ.
Không chỉ riêng AWS
Không có gì ở đây là đặc thù của Amazon. Cùng chuỗi đó chạy ở bất kỳ đâu mà một thông tin xác thực có thể được dùng để khám phá thông tin xác thực tiếp theo: một khóa cloud có thể liệt kê quyền của chính nó, một token trong tệp .env mà tiến trình khác có thể đọc, một bí mật trong tệp state, một vault token nằm trên đĩa ngay cạnh code. Bất kỳ harness nào — một coding agent, một MCP server bạn cài tuần trước — đều có thể là thứ đi hết chuỗi đó, có hoặc không có sự đồng ý của bạn.
Điểm chung là bản thân bí mật mang theo bán kính ảnh hưởng của chính nó. Nó có thể bị đọc ở nơi công việc diễn ra, nó có thể liệt kê những gì nó chạm tới, và nó hoạt động từ bất kỳ đâu. Ba tính chất đó còn chịu được khi tấn công chậm và thủ công. Chúng không chịu được ở tốc độ của agent.
Được xây dựng cho điều này, có chủ đích
Vậy nên chúng tôi xây dựng điều ngược lại, một cách có chủ đích.
Một thông tin xác thực Clavitor chỉ với tới được qua tên mà agent được cấp — nó không thể liệt kê kho lưu trữ, nên nó không thể vẽ ra bản đồ. Giá trị bí mật không bao giờ nằm ở nơi code chạy; agent nhận kết quả của việc dùng thông tin xác thực, chứ không nhận bản thân thông tin xác thực. Mỗi cái được gắn với máy và phạm vi mà nó được cấp, nên một bản sao mang sang laptop chỉ là đồ vô dụng. Và mọi yêu cầu được ghi vào một log bất biến, nối chuỗi bằng hash, nằm ngoài endpoint — bằng chứng mà PCI DSS Req 10 và NIST 800-171 (3.3.8) yêu cầu — nên kể cả một hành động "hoàn toàn hợp lệ" cũng có một cái tên đi kèm.
Đây là điểm thành thật: điều này không khiến một thông tin xác thực bị lộ trở nên vô hại. Giới hạn một khóa vào một bucket, và nếu khóa đó bị lộ, kẻ tấn công lấy được đúng bucket đó. Thứ mà nó triệt tiêu là chuỗi — phần mà một khóa tầm thường trở thành bản đồ tới mọi thứ còn lại. Scoped và ambient không phải là khác biệt giữa an toàn và bị xâm phạm. Đó là khác biệt giữa một sự cố và một thảm họa.
Chúng tôi ghi lại một số ít quy tắc mà một công cụ thông tin xác thực nên giữ nếu muốn sống sót qua điều này. Bạn có thể đối chiếu công cụ của mình với chúng tại clavitor.ai/rules.
Bài học không phải là "xoay nhanh hơn"
Bạn không thể xoay khóa nhanh hơn một cuộc tấn công sáu mươi giây. Tới lúc canary báo động, chuỗi đã chạy xong.
Điều đúc kết không phải là một quy trình dọn dẹp chặt chẽ hơn. Mà là kinh tế học đã đảo chiều. Chúng tôi xây dựng hệ thống thông tin xác thực cho một thế giới mà thời gian của kẻ tấn công khan hiếm và đắt đỏ — nơi một khóa bị lộ là một cuộc đua mà bạn có thể thắng. Thế giới đó không còn. Một thông tin xác thực có thể tìm ra thông tin xác thực tiếp theo không còn là một sự tiện lợi. Đó là toàn bộ cuộc tấn công, được viết sẵn, chờ bất kỳ khóa nào rơi xuống.
Hãy xây dựng cho thế giới mà kẻ tấn công không bao giờ ngủ. Nó đã ở đây rồi.
Clavitor (@clavitorai) là kho thông tin xác thực được xây dựng cho AI agent, và để chống lại chính họ. clavitor.ai
Nguồn
[1] Adan Alvarez — "From Leaked AWS Key to Data Exfiltration in 60 Seconds: Are We Ready?" (May 2026) — https://medium.com/@adan.alvarez/from-leaked-aws-key-to-data-exfiltration-in-60-seconds-are-we-ready-28213bc73678
[2] CSO Online — "From credentials to cloud admin in 8 minutes: AI supercharges AWS attack chain" — https://www.csoonline.com/article/4126336/from-credentials-to-cloud-admin-in-8-minutes-ai-supercharges-aws-attack-chain.html
[3] Vectra AI — "AWS Compromised by AI Agents in Minutes" (Alex Groyz) — https://www.vectra.ai/blog/aws-compromised-by-ai-agents-in-minutes
[4] Help Net Security — "The shocking speed of AWS key exploitation" — https://www.helpnetsecurity.com/2024/12/02/revoke-exposed-aws-keys/