Giới thiệu
Chào các chuyên gia và người đam mê an ninh mạng,
Trong bài viết này, tôi sẽ chia sẻ về dự án tốt nghiệp của mình mang tên Mô Hình Ngôn Ngữ Lớn Phát Hiện Lỗ Hổng Một Ngày. Dự án này giới thiệu một khung thử nghiệm thâm nhập sáng tạo, kết hợp xử lý ngôn ngữ tự nhiên và hệ thống đa tác nhân dựa trên mô hình ngôn ngữ lớn (LLM) nhằm tối ưu hóa việc phát hiện lỗ hổng một ngày với độ chính xác lên đến 89.5% và thời gian thực thi dưới 30 giây.
Vấn đề
Mỗi ngày, có nhiều lỗ hổng phần mềm mới được phát hiện và công khai thông qua các hồ sơ CVE (Common Vulnerabilities and Exposures), cung cấp tài liệu chuẩn hóa về các lỗi này. Khi những lỗ hổng này trở nên công khai, chúng được gọi là lỗ hổng một ngày. Mặc dù đã được công bố, nhiều hệ thống vẫn chưa được vá trong khoảng thời gian nhạy cảm, cho phép kẻ tấn công lợi dụng những lỗi này trước khi các tổ chức có thể khắc phục.
Ngày nay, các doanh nghiệp hiện đại duy trì một lượng tài sản kỹ thuật số khổng lồ, do đó việc khắc phục lỗ hổng kịp thời là cực kỳ cần thiết. Việc trì hoãn trong việc vá các lỗ hổng một ngày có thể dẫn đến vi phạm dữ liệu, gián đoạn hoạt động và thiệt hại tài chính. Vấn đề cốt lõi nằm ở độ trễ giữa việc công bố CVE và việc khắc phục, thường do thiếu tự động hóa và phân tích lỗ hổng chậm. Thông thường, một đội ngũ chuyên gia an ninh mạng cần phải thử nghiệm kỹ lưỡng trên một điểm cuối để phát hiện tất cả các lỗ hổng có thể. Khi một lỗi được xác định, một bản vá sẽ được triển khai cùng với một báo cáo CVE tương ứng. Những báo cáo này chứa thông tin quan trọng về lỗ hổng đã chọn, ảnh hưởng, chiến lược khắc phục và ví dụ điển hình. Điều này có thể cực kỳ hữu ích cho các đội ngũ bảo mật trong việc nhận diện lỗi tiềm ẩn trong hệ thống phức tạp của họ, nhưng cũng có thể chỉ ra các bề mặt tấn công dễ bị tổn thương mà kẻ tấn công có thể xác định. Khi các lỗi cuối cùng bị bỏ sót mà không có phản ứng kịp thời cần thiết, có thể có một khoảng thời gian đáng kể mà kẻ tấn công có lợi thế khai thác. Cần có một công cụ hiệu quả và mạnh mẽ có thể quét các ứng dụng máy tính phức tạp và đưa ra những điểm yếu quan trọng cùng các kỹ thuật liên quan để khắc phục chúng. Trong bài viết này, tôi sẽ thảo luận về một giải pháp thử nghiệm thâm nhập xuất sắc cho thách thức cấp bách này, khai thác khả năng của các mô hình ngôn ngữ lớn (LLMs).
Giải pháp và Phương pháp Đề xuất
Quy trình làm việc của LLM đa tác nhân sẽ được khám phá như hình dưới đây, trong đó mỗi tác nhân xử lý một phần của thử nghiệm thâm nhập trên một mục tiêu. Hơn nữa, trong trường hợp thử nghiệm này, mục tiêu được xác định là một trang web dễ bị tổn thương có chủ đích (OWASP Vulnerable-Web-Application và Acunetix VulnWeb), nơi mà các LLM sẽ điều tra các vấn đề tiềm ẩn đã biết và báo cáo lại cho người dùng.
Đầu tiên sẽ có một Tác nhân Khám Phá, trong đó một mục tiêu được chỉ định và tất cả các yếu tố của mục tiêu sẽ được phân tích, chẳng hạn như các trường đầu vào và các điểm cuối. Sau đó, một Tác nhân Giám Sát sẽ xác định các khu vực mà lỗ hổng tồn tại và các CVE liên quan đến những lỗ hổng cụ thể này. Khi một loại tấn công được xác định, sẽ có các Tác nhân Cụ Thể Lỗ Hổng xử lý và thử nghiệm các loại tấn công an ninh mạng nhất định, chẳng hạn như SQLi và XSS, để lấy thông tin từ những CVE này. Cuối cùng, các Tác nhân Fuzzer và Executor sẽ tạo ra và thử nghiệm các payload để đạt được khai thác thành công. Cuối quá trình thử nghiệm, sẽ có một báo cáo đầu ra chi tiết liệt kê các điểm yếu trong mục tiêu và các phương pháp tốt nhất để khắc phục những lỗ hổng này.
Trong các giải pháp trước đó, GPT-4 đạt tỷ lệ thành công là 87%, trong khi tất cả các mô hình LLM khác đạt 0% trên mọi mặt trận. Mục tiêu của dự án này là đạt được tỷ lệ thành công cao hơn 87% trong việc xác định các lỗ hổng một ngày nhằm đảm bảo một hệ sinh thái phần mềm an toàn hơn với phân tích an ninh mạng chủ động và phản ứng cho các hệ thống dựa trên web.
Về phương diện đánh giá hiệu suất của LLM, trang web dễ bị tổn thương sẽ có một số lượng lỗ hổng đã công bố mà sẽ được so sánh với báo cáo toàn diện do hệ thống đa tác nhân công bố sau mỗi lần thử nghiệm.
- So sánh số lượng lỗ hổng thực tế mà hệ thống phát hiện với các lỗ hổng đã biết của mỗi thử nghiệm.
- Đo lường độ chính xác, độ nhạy và số lượng dương giả để đánh giá hiệu quả.
- Đánh giá thời gian phát hiện và so sánh với các phương pháp thử nghiệm thủ công.
Thí nghiệm sẽ chứng minh không chỉ số lượng lỗ hổng được tìm thấy, mà còn cả hiệu quả và tốc độ mà hệ thống có thể xác định các lỗ hổng một ngày sau khi công bố, từ đó cung cấp bằng chứng thực nghiệm cho tuyên bố về sự cải thiện khả năng chuẩn bị an ninh mạng. Hệ thống Thử nghiệm Thâm nhập sẽ sử dụng GPT-4o-mini của OpenAI và LangChain/LangGraph cho phương pháp Hệ thống Đa Tác Nhân. LangGraph cho phép trao đổi thông tin và cải thiện theo thời gian giữa các giai đoạn của quy trình làm việc.
Quy trình làm việc Đa Tác Nhân
Hệ thống đa tác nhân mang lại lợi ích đáng kể từ sự hợp tác trực tiếp giữa các tác nhân. Để tối đa hóa khả năng này, một khung hội thoại tiên tiến đã được thiết kế cho phép giao tiếp giữa các tác nhân một cách liền mạch. Bằng cách tạm ngừng kiểm soát trung tâm, hệ thống có thể quản lý yêu cầu chuyển nhượng một cách hiệu quả, cải thiện việc chia sẻ ngữ cảnh và tương tác giữa các tác nhân. Cách tiếp cận này lý thuyết giúp nâng cao hiệu quả hoạt động và giảm thiểu các cuộc gọi LLM không cần thiết, từ đó giảm chi phí liên quan. Cách tiếp cận này cải thiện tốc độ thực thi và độ chính xác bằng cách chia nhỏ các tác vụ thành các thành phần nhỏ hơn. Mỗi tác nhân được trang bị một prompt tùy chỉnh, một sơ đồ đầu ra đã xác định và một tập hợp tài liệu minh họa các loại tấn công SQL Injection hoặc XSS.
Được biết rằng các lỗ hổng một ngày có thể bao gồm các chữ ký chưa được xác định trước đó, điều này khác với các mẫu đã được thiết lập mà thường được phát hiện. Điều này khiến cho việc một đội ngũ tác nhân chuyên biệt, tập trung vào nhiệm vụ có thể xác định chính xác chúng trở nên đặc biệt khó khăn. Để giải quyết vấn đề này, phương pháp được chia thành hai thành phần cốt lõi: một nhóm phụ tập trung vào các chữ ký lỗ hổng đã biết được cung cấp từ các báo cáo CVE đã cho, nhưng được nâng cao với các yếu tố mới, trong khi nhóm phụ còn lại tập trung vào ngẫu nhiên hóa đầu vào và thực thi.
Triển khai
Cấu trúc được xây dựng dựa trên mẫu thiết kế đa tác nhân của LangGraph, cho phép mô hình ngôn ngữ của tác nhân lặp lại cho đến khi tìm được giải pháp hoặc vượt quá số bước đã định trước. Thư viện Python LangGraph cho phép mỗi tác nhân trong "chuỗi" truyền tải thông điệp và kiến thức ngữ cảnh một cách liền mạch. Mô hình GPT-4o-mini của OpenAI được sử dụng trong kiến trúc này vì nó chi phí thấp và cung cấp những khả năng tiên tiến.
Thử nghiệm
Để đánh giá hiệu suất của hệ thống đa tác nhân, một môi trường thử nghiệm phải được thiết lập. Nếu một URL mục tiêu tùy ý được cung cấp và các LLM tạo ra một đầu ra tùy chỉnh phát hiện các lỗ hổng SQL Injection và XSS trên trang web, thì không có cách nào để xác nhận tính hợp lệ của các lỗ hổng đã xác định nếu tôi không có quyền truy cập vào mã nguồn của trang web. Trong trường hợp này, các trang web dễ bị tổn thương có chủ đích đã được sử dụng làm mục tiêu nhằm biết trước số lượng lỗ hổng SQL Injection và XSS đã được xác nhận trên mỗi trang. Thông tin này sau đó sẽ được so sánh với đánh giá lỗ hổng của hệ thống đa tác nhân để đánh giá độ chính xác của nó. Các ứng dụng thử nghiệm được chọn cho dự án này là Acunetix VulnWeb và OWASP Vulnerable-Web-Application như đã được hiển thị trong các hình dưới đây.
Đánh giá
Phần này giải quyết kết quả, chi phí và các phát hiện tổng thể liên quan đến hiệu suất của khung thử nghiệm thâm nhập LLM đa tác nhân.
Thí nghiệm và Chi phí
Chín thử nghiệm đã được thực hiện trên các mục tiêu Acunetix và OWASP để đánh giá độ chính xác và hiệu quả của hệ thống LLM. Các cấp độ SQLi 1-4 của OWASP, các cấp độ XSS 1-4 của OWASP và Acunetix VulnWeb đã được chọn làm trường hợp thử nghiệm để đánh giá toàn diện. Trong mỗi thử nghiệm, mô hình LLM được cung cấp một URL mục tiêu và dự kiến sẽ xuất ra các lỗ hổng phát hiện trên trang với mô tả và khuyến nghị bảo mật. Thời gian của mỗi thử nghiệm cũng được đo để đánh giá tốc độ của hệ thống.
Về mặt sử dụng trong giai đoạn thử nghiệm, GPT-4o-mini phát sinh chi phí thấp là $0.15 cho mỗi triệu token đầu vào và $0.60 cho mỗi triệu token đầu ra. Số bước cộng dồn trong mỗi thử nghiệm tương ứng với việc giao tiếp giữa các tác nhân. Mặc dù việc kiểm tra toàn bộ có thể dẫn đến thời gian chạy và chi phí cao hơn, nhưng chi phí bổ sung gần như không đáng kể. Ví dụ, một thử nghiệm có 100 bước sẽ chỉ tốn $0.12, vì vậy cách tiếp cận này cung cấp một phương pháp hiệu quả để xác định các lỗ hổng một ngày và các khai thác phần mềm.
Hiệu quả của Kiến trúc
Hệ thống đa tác nhân dựa trên LLM xác định các lỗ hổng SQL Injection và XSS trong một URL mục tiêu với độ chính xác là 89.5% trong thời gian thử nghiệm trung bình là 27.2 giây. Hệ thống cung cấp:
- Các yếu tố Được Phát hiện
- Các Lỗ hổng Được Phát hiện
- Vị trí Được Phát hiện
- Các Chiến lược Khắc phục Có Thể
- Các Payload Fuzzing để Khai thác Các Trường Nhập
- Các Phát hiện từ Thực thi Kiểm soát
- Tóm tắt các Hành động Đã Thực hiện (Báo cáo Cuối cùng)
Hệ thống cung cấp một phân tích an ninh mạng hoàn chỉnh và chi tiết về trang web để người dùng xử lý và từ đó thực hiện các cải tiến bảo mật quan trọng nhằm bảo vệ chống lại các cuộc tấn công trong tương lai. Hơn nữa, mục tiêu trước đó về tỷ lệ chính xác lớn hơn 87% đã được vượt qua một cách thỏa đáng với 2.5%.
Hạn chế
Mạng lưới tác nhân dựa trên mô hình ngôn ngữ xuất sắc trong việc tạo ra các phản hồi chính xác và toàn diện để hỗ trợ trong các hoạt động phòng thủ an ninh mạng. Mục tiêu chính của nó là nhận diện các mối đe dọa tiềm ẩn trong các ứng dụng dựa trên trình duyệt. Tuy nhiên, vẫn còn tồn tại một số nhược điểm và hạn chế trong việc triển khai hiện tại của ứng dụng mà nếu được sửa đổi sẽ nâng cao khả năng tổng thể của nó như một giải pháp cho tương lai.
Ảo tưởng LLM
Hình dưới đây minh họa một lỗi chuyển giao của tác nhân xảy ra ngẫu nhiên do sự nhầm lẫn và chệch hướng giữa các nút có thể được quy cho các ảo tưởng LLM. Các cuộc hội thoại giữa các tác nhân Khám Phá, Fuzzer và Executor đôi khi sẽ bị lệch hướng, dẫn đến số bước lãng phí trong đầu ra không đóng góp thông tin mới cho báo cáo lỗ hổng cho đến khi ứng dụng gặp lỗi, như đã chỉ ra trong hình. Điều này xảy ra rất hiếm trong khung này, khác với các giải pháp trước đó bị ảnh hưởng đáng kể. Đáng tiếc, các vấn đề như vậy là đặc trưng của các nền tảng dựa trên LLM và các biện pháp khắc phục chỉ có thể đến với các cải tiến đối với GPT-4o-mini hoặc sự xuất hiện của một giải pháp kinh tế và mạnh mẽ khác.
Phạm vi Tấn công Hạn chế
Kiến trúc đa tác nhân hiện tại chỉ bao gồm các lỗ hổng SQL Injection và Cross-Site Scripting. Đây là một trở ngại khác cần phải vượt qua để triển khai thực tiễn. Các ứng dụng dựa trên web không chỉ giới hạn ở các khai thác SQL Injection và XSS, vì vậy phạm vi của dự án cần phải mở rộng cho các phiên bản tương lai của thiết kế. Điều này bao gồm việc phát triển thêm các nút và prompt chuyên biệt để bao gồm nhiều loại mối đe dọa an ninh mạng hơn nhằm phục vụ đánh giá bảo mật rộng hơn.
Kết luận
Bài viết này trình bày một khung thử nghiệm an ninh tối ưu hóa dựa trên máy học sử dụng các Mô Hình Ngôn Ngữ Lớn (LLMs) để tự động phân tích và xem xét các hồ sơ CVE được bổ sung bởi đánh giá của các tác nhân AI chuyên biệt. Mạng lưới tác nhân LLM được thiết kế để cung cấp một cách tiếp cận có tổ chức và hiệu quả trong việc xác định các lỗ hổng một ngày thông qua thử nghiệm kỹ lưỡng. Thông qua việc phát triển tỉ mỉ và xác nhận thử nghiệm, cách tiếp cận này đã cải thiện độ chính xác và hiệu quả của kết quả LLM so với các hệ thống an ninh LLM trước đó. Do đó, nó thiết lập một giải pháp khả thi và linh hoạt để phát hiện và giải quyết các lỗ hổng phần mềm trước hoặc, trong các giai đoạn quan trọng hơn, sau khi khai thác. Với lộ trình cho các cải tiến và sửa chữa trong tương lai đã có sẵn, hệ thống đa tác nhân LLM mạnh mẽ và linh hoạt này cho thấy khả năng trở thành một nguồn lực quý giá trong lĩnh vực an ninh mạng.