Một phương pháp tiếp cận mới buộc một tác nhân pentest điều khiển bởi LLM phải chứng minh được một vụ xâm nhập thay vì chỉ đơn thuần tuyên bố có nó, bằng cách sử dụng các nonce thử thách-phản hồi (challenge-response nonces) giúp loại bỏ các kết quả dương tính giả. Kỹ thuật này, được trình diễn trong framework HALO, chuyển đổi trạng thái từ “có vẻ như chúng ta đã có shell” thành “chúng ta thực sự đã có shell”.
Tại sao các vụ xâm nhập dương tính giả lại quan trọng
Các công cụ khai thác tự động được xây dựng trên các mô hình ngôn ngữ lớn có thể tạo ra hàng tá các vụ xâm nhập cổng "thành công" chỉ trong một lần chạy. Nhiều dịch vụ phản hồi các chuỗi như “uid=0” trong banner, và một mục tiêu được dàn dựng có thể mô phỏng các đầu ra đó mà không cần thực thi mã của kẻ tấn công. Khi tác nhân tin vào những phản hồi đó, mọi quyết định tiếp theo—dù là chuyển hướng (pivot), trích xuất dữ liệu hay di chuyển ngang (move laterally)—đều dựa trên một lời nói dối. Các đội ngũ bảo mật lãng phí hàng giờ để đuổi theo những điểm xâm nhập ảo, và những người ứng phó sự cố có thể ưu tiên sai các mối đe dọa thực sự.
Chuyển đổi một tuyên bố thành bằng chứng
Giải pháp này mượn các thủ thuật xác thực kinh điển. Trước khi tung ra một bản khai thác (exploit), hệ thống của kẻ tấn công sẽ tạo ra một mã thông báo (token) duy nhất, hay còn gọi là nonce, và nhúng nó vào payload. Bản khai thác phải trả về chính xác token đó để bộ điều khiển chấp nhận kết quả là một vụ xâm nhập thực sự. Một banner giả mạo không thể đoán được nonce; nó phải thực thi mã của kẻ tấn công để nhúng token vào phản hồi. Nếu dữ liệu trả về thiếu nonce khớp, nỗ lực đó sẽ bị loại bỏ vì là dương tính giả.
Sự thay đổi này chuyển đổi mô hình xác minh từ “đầu ra trông có vẻ đúng” sang “đầu ra chứng minh được việc thực thi”. Nó loại bỏ thiên kiến lạc quan (optimism bias) vốn đang gây khó khăn cho các công cụ tấn công tự động.
Xây dựng một thang phân phối đáng tin cậy
Việc đưa payload đến mục tiêu vẫn đòi hỏi một chuỗi phân phối vững chắc. HALO phân loại ba con đường phổ biến:
- Reverse shells – máy chủ bị xâm nhập sẽ khởi tạo một kết nối ngược lại tới một listener mà kẻ tấn công kiểm soát. Hữu ích khi lưu lượng truy cập đến (inbound) bị chặn.
- Bind shells – kẻ tấn công kết nối trực tiếp tới một dịch vụ đang lắng nghe trên mục tiêu. Hoạt động khi các bộ lọc lưu lượng đi (outbound) lỏng lẻo.
- Blind callbacks – một tín hiệu một chiều (ví dụ: yêu cầu DNS) nhằm xác nhận việc thực thi trong các môi trường bị hạn chế nghiêm ngặt, nơi không thể mở được kênh trực tiếp.
Mỗi bước trong thang phân phối phải bảo toàn được nonce, nếu không bước chứng minh sẽ thất bại ở các giai đoạn sau.
Đảm bảo các bản khai thác có tính độc lập cao
Một nguồn gốc khác của sự tự tin sai lầm là việc phụ thuộc vào các thư viện bên ngoài vốn có thể thiếu trên mục tiêu. HALO đóng gói mọi thành phần cần thiết vào một tệp duy nhất trước khi gửi đi. Gói này sau đó được kiểm tra trong một sandbox được cố tình thiết lập thiếu các phụ thuộc (dependencies) ban đầu. Nếu bản khai thác vẫn chạy được, thì artifact đó thực sự có tính độc lập và có thể tin cậy được trên một hệ thống bị thắt chặt bảo mật.
Làm sạch dấu vết phát triển
Trong khi chuẩn bị phát hành công khai, tác giả đã phát hiện ra các địa chỉ IP thật vẫn còn tồn tại trong lịch sử Git. Một cây làm việc (working tree) sạch sẽ không xóa bỏ được những bản ghi đó; Git lưu giữ mọi commit. Tác giả đã viết lại kho lưu trữ (repository) thành một commit sạch duy nhất và thay thế các địa chỉ bị rò rỉ bằng các dải địa chỉ chỉ dùng cho tài liệu được định nghĩa bởi RFC 5737 (ví dụ: 192.0.2.0/24). Điều này ngăn chặn việc vô tình làm lộ hạ tầng production khi công cụ được chia sẻ.
Các quy tắc thực tế cho công cụ bảo mật
- Sử dụng các dải IP chỉ dành cho tài liệu trong mọi bộ kiểm thử (test fixture).
- Loại bỏ các bí mật (secrets) và các tệp phạm vi (scope files) khỏi commit ban đầu.
- Áp dụng các nonce thử thách-phản hồi để xác minh bất kỳ tuyên bố xâm nhập nào.
- Xác thực chính xác tệp sẽ được gửi đi, chứ không phải một script có liên quan lỏng lẻo.
Bằng chứng luôn thắng sự lạc quan. Bằng cách buộc một tác nhân pentest tự động phải trình ra một token có thể xác minh, HALO cho thấy một vụ xâm nhập chỉ thực sự là một vụ xâm nhập khi mục tiêu có thể chứng minh rằng nó đã thực thi mã của kẻ tấn công. Cánh cổng phải được xây dựng trước; mọi thứ khác sẽ theo sau.
