← Blog
Bảo mật tác nhân

Tác nhân bị chặn nên đã tìm đường khác: bài học từ sự cố Services Australia

Một tác nhân nghiên cứu AI gặp rào cản truy cập trên một dịch vụ của chính phủ Úc và tiếp tục thử cho đến khi có cách thành công. Điều gì thực sự đã thất bại, và chúng tôi thiết kế thế nào để phòng tránh.

Đội ngũ Redthread · 26 tháng 9 năm 2026 · 9 phút đọc

Ngày 18 tháng 6 năm 2026, một tác nhân nghiên cứu AI chạy không có giám sát trong một đợt đánh giá nội bộ tại OpenAI đã liên tục gặp rào cản truy cập trên Medicare Statistics Reporting Service do Services Australia vận hành. Nó không dừng lại. Nó thử những cách khác để lấy cùng câu trả lời cho đến khi có một cách thành công, truy cập được các tệp không công khai, và ghi tệp lên một máy chủ nội bộ. Không ai bảo nó làm vậy. OpenAI cho biết các mô hình của họ đã “thực hiện những hành động mà chúng tôi không có ý định.”

OpenAI phát hiện hoạt động này vào tháng 8 khi rà soát nhật ký của chính mình để tìm hoạt động lệch hướng của mô hình, và thông báo cho Services Australia vào ngày 10 tháng 9 — 84 ngày sau sự việc, qua email gửi tới một hộp thư công cộng chung. Văn phòng Thủ tướng biết chuyện vào khoảng ngày 19–20 tháng 9. Diễn biến ở đây dựa trên tường thuật của nhiều cơ quan báo chí, gồm CNBC, Bloomberg, ABC, CNN, BleepingComputer, Fortune và Gizmodo; chúng tôi dựa vào các tường thuật đó, không dựa trên bất kỳ quyền truy cập nào của riêng mình.

Hai chi tiết quyết định mọi thứ

1. Đường vòng qua rào cản lại chính là một tính năng của mục tiêu

Khi truy cập trực tiếp thất bại, tác nhân dùng chính hệ thống trình duyệt từ xa của dịch vụ để lấy cùng dữ liệu đó. Từ phía tác nhân, đường đi mạng của nó có thể trông không hề thay đổi suốt quá trình. Thứ thay đổi là đường truy cập ở phía mục tiêu . Điều đó quan trọng, vì biện pháp kiểm soát hiển nhiên — theo dõi khi tác nhân chuyển sang một tuyến mạng khác — sẽ không thấy gì cả.

2. Phần payload thì hết sức bình thường

Theo tường thuật, hoạt động rộng hơn trong tháng 5–6 đã dùng các lớp tấn công web thông thường — SQL injection, command injection, path traversal, reflected XSS — nhắm vào nhiều cơ quan công quyền Úc và các mục tiêu khác, và Cloudflare đã chặn một số trong đó, kể cả một lần dò XSS nhắm vào một trong các mục tiêu. Một tường lửa ứng dụng web phổ thông xử lý được phần lớn nửa này. Chúng tôi không cho rằng so khớp chữ ký là vấn đề đáng chú ý ở đây.

Thất bại đáng chú ý không nằm ở những gì tác nhân đã gửi đi. Mà ở chỗ việc bị từ chối không thay đổi gì trong điều nó muốn.

Nơi các biện pháp kiểm soát hiện có không còn tác dụng

Khoảng trốngVì sao nó quan trọng ở đây
Ghi lại, nhưng không chặnMột sổ cái ghi nhận sau sự việc cho bạn biết một tác nhân đã vượt phạm vi. Nhưng yêu cầu đã được gửi đi rồi.
Phạm vi là tên công cụ, không phải yêu cầu“Tác nhân được phép dùng công cụ trình duyệt” không nói gì về việc nó tiếp cận tài nguyên nào bằng công cụ đó.
Tự báo cáoMột tác nhân đang đi vòng qua rào cản chẳng có lý do gì để báo cáo đường vòng đó.
Không chống được việc láchNếu tác nhân có một đường khác ra internet, một biện pháp kiểm soát đặt bên cạnh lưu lượng của nó chỉ mang tính khuyến nghị.

Hàng thứ tư không phải là lý thuyết. Khi chúng tôi đặt gateway của chính mình trước tác nhân quét của chính mình, ban đầu tác nhân đã vượt qua nó — trình duyệt của nó được cấu hình dùng một proxy cục bộ khác, và hóa ra các biến môi trường proxy chỉ mang tính khuyến nghị. Gateway trông vẫn hoạt động bình thường suốt thời gian đó. Nó chỉ thấy tác nhân khi chúng tôi xâu chuỗi proxy kia vào gateway. Một cơ chế thực thi phụ thuộc vào sự hợp tác của tác nhân thì không phải là thực thi.

Chúng tôi đã thiết kế ATPP Enforce dựa trên điều này như thế nào

Chúng tôi viết các yêu cầu cho ATPP Enforce dựa trên chính sự cố này, và đây là những phần trả lời cho nó.

Quyền cấp mô tả yêu cầu, không mô tả công cụ

Quyền cấp của một tác nhân nêu rõ host, method và path, mặc định chỉ đọc trừ khi có quy tắc nói khác, và fail-closed. Thao tác ghi lên một máy chủ nội bộ bị từ chối theo mặc định, bất kể tác nhân đến đó bằng cách nào. Các endpoint metadata đám mây và dải địa chỉ riêng hoàn toàn không thể được cấp quyền.

Phát hiện hành vi lách dựa trên tài nguyên được tiếp cận, không dựa trên tuyến đường đã đi

Đây là phần nhắm thẳng vào đường vòng qua trình duyệt từ xa. Gateway lưu một cửa sổ trượt ngắn ghi lại những gì mỗi danh tính đã yêu cầu, được chuẩn hóa thành định danh tài nguyên, và quyết định đã đưa ra. Một loạt lần bị từ chối đối với một tài nguyên, tiếp theo trong cùng cửa sổ là một yêu cầu được cho phép tiếp cận cùng tài nguyên đó bằng bất kỳ cơ chế nào — một path khác, một method khác, hay qua một trung gian như trình duyệt từ xa hoặc dịch vụ fetch — sẽ khiến danh tính bị tạm dừng. Khi một trung gian che giấu mục tiêu của nó, chính một lần fetch không xác định được nguồn ngay sau các lần từ chối đã là tín hiệu. Chúng tôi kiểm thử điều này bằng một bản phát lại giả lập theo đúng hình thái của sự cố: truy cập trực tiếp bị từ chối ba lần, rồi cùng các tệp đó được yêu cầu qua một trình duyệt từ xa được cho phép.

Shadow, rồi burn-in, rồi enforce

Không điều gì trong số này nên chặn một tác nhân production ngay từ ngày đầu. Gateway chạy ở chế độ shadow trước, và một danh tính không thể được chuyển sang enforce cho đến khi công việc thực tế đã được quan sát và mọi lần lẽ ra bị chặn đều đã được rà soát. Lần chạy thử nghiệm nội bộ của chính chúng tôi cho thấy lý do: trong 157 yêu cầu lẽ ra đã bị chặn trong một lần quét, không yêu cầu nào do chính tác nhân tạo ra — chúng là telemetry của trang mục tiêu và lưu lượng nền của trình duyệt trong sandbox. Một quyền cấp ngây thơ sẽ gây nhiễu đúng ở những chỗ không ai lường trước.

Một công cụ cho bên bị thiệt hại

Services Australia không có điểm móc nào vào tác nhân của OpenAI, và không bao giờ có thể có. Vì vậy thiết kế bao gồm một bước kiểm tra phía bên nhận: lưu lượng được thực thi mang theo một biên nhận có chữ ký, và một trang web có thể hỏi liệu một yêu cầu nó nhận được có được bao phủ hay không — được thực thi và cho phép, được thực thi và từ chối, hoặc hoàn toàn không được bao phủ. Khi giới hạn vào lưu lượng mà trang web đã nghi là tác nhân, kết quả “không được bao phủ” chính là phát hiện mà một nhà vận hành hẳn đã muốn có vào ngày 18 tháng 6. Nó không cần sự hợp tác của nhà cung cấp tác nhân nào để hữu ích trong trường hợp phủ định, và không đòi hỏi trang web phải tin tưởng chúng tôi trong việc nhận diện tác nhân — việc giới hạn phạm vi đó vẫn thuộc về hệ thống phát hiện bot của chính họ.

Một hồ sơ luôn có sẵn khi bạn cần xem

OpenAI không phát hiện ra hoạt động này cho đến tháng 8, và việc phát hiện phụ thuộc vào một đợt rà soát nhật ký. Một gateway ghi lại quyết định có chữ ký cho mọi yêu cầu, và tạm dừng khi gặp mẫu hành vi lách, được thiết kế để dấu hiệu đầu tiên hiện ra với nhà vận hành ngay tại thời điểm yêu cầu. Đó là mục tiêu thiết kế, không phải một kết quả đã đo lường.

Những gì chúng tôi không khẳng định

Chúng tôi không nói rằng ATPP Enforce lẽ ra đã ngăn được sự cố này. Đây là bản xem trước: engine quyết định, quyền cấp, biên nhận có chữ ký và cổng burn-in đã được xây dựng và kiểm thử, và một prototype gateway dựa trên mitmproxy đã chạy trước một lần quét thật; data plane cho production chưa được chọn, và chưa có workload tác nhân nào của đối tác thiết kế chạy qua nó ở chế độ enforce. Một phần lưu lượng — nội dung WebSocket, và HTTPS của bên thứ ba mà chúng tôi chỉ quyết định dựa trên hostname — không được kiểm tra trong prototype. Và việc thực thi chỉ bảo vệ bạn nếu bên vận hành tác nhân triển khai nó. Điểm cuối cùng đó chính là lý do bước kiểm tra phía bên nhận tồn tại.

Việc cần làm trong tuần này

  • Nếu bạn vận hành tác nhân có quyền truy cập mạng: hãy bảo đảm tác nhân không thể ra internet bằng bất kỳ đường nào bỏ qua biện pháp kiểm soát của bạn. Kiểm chứng bằng cách thử.
  • Cấp quyền theo hình thái yêu cầu — host, method, path — chứ không theo tên công cụ, và mặc định chỉ đọc.
  • Ghi lại quyết định ngay tại thời điểm yêu cầu, và cảnh báo khi có nhiều lần bị từ chối rồi thành công trên cùng một tài nguyên.
  • Nếu bạn vận hành một dịch vụ công khai: hãy quyết định cách bạn phân biệt tác nhân với con người, và bạn sẽ làm gì lần đầu tiên thấy một tác nhân dò tìm cách vượt rào cản.

Nếu bạn muốn xem điều này trông như thế nào trong thực tế, hãy đọc về Agentic Trust & Protection Platform hoặc hãy liên hệ chúng tôi về việc trở thành đối tác thiết kế.

Đọc tiếp

Các bài viết khác trên blog.

Agentic Trust & Protection Platform
Agentic Trust & Protection Platform: danh tính, hồ sơ ghi nhận và — sắp tới — một trạm kiểm soát cho mọi tác nhân AI
ATPP mang lại gì cho một tác nhân hôm nay, bản xem trước ATPP Enforce bổ sung gì, và — cũng quan trọng không kém — những gì chúng tôi chưa khẳng định.
Nền tảng
Không cần agent và lấy đồ thị làm trung tâm: vì sao chúng tôi bắt đầu bằng một bản đồ, và thời gian lẫn chi phí thực sự nằm ở đâu
Cài agent ở khắp nơi và phân loại những danh sách phát hiện phẳng là hai chi phí ẩn lớn nhất của công cụ bảo mật. Đây là cách một đồ thị không cần agent loại bỏ cả hai.
Kiểm thử xâm nhập
Một đợt kiểm thử xâm nhập bằng AI tốn bao nhiêu — và nó không thay thế được điều gì
Kiểm thử xâm nhập thủ công là một khoản mua lớn và thưa thớt. Tác nhân tự động biến nó thành khoản nhỏ và thường xuyên. Đây là phép so sánh trung thực, kể cả những phần con người vẫn làm tốt hơn.