Có thể sử dụng trí tuệ nhân tạo để kiểm tra thâm nhập không?
Thử nghiệm thâm nhập là một thử nghiệm bảo mật liên quan đến việc sử dụng các lỗ hổng để khám phá các lỗ hổng khác trong hệ thống và thực thi mã độc hại. Các thử nghiệm này đặc biệt quan trọng để bảo vệ chống khai thác dữ liệu và ngăn chặn khai thác bảo mật.
Kiểm tra thâm nhập bao gồm một số kỹ thuật được sử dụng để kiểm tra tính bảo mật của mạng. Những kỹ thuật này bao gồm quét mạng, tường lửa, hệ thống giám sát an ninh và trí tuệ nhân tạo. Trí tuệ nhân tạo có thể phân tích các bài kiểm tra bảo mật bằng cách sử dụng các công nghệ được phát triển để phát hiện các lỗ hổng mạng.
AI có thể cho phép bạn đạt được kết quả toàn diện và hiệu quả hơn với các thuật toán đặc biệt được thiết kế để sử dụng trong các thử nghiệm thâm nhập và thử nghiệm bảo mật được thực hiện tự động.
Mục Lục
Lợi ích của việc sử dụng AI để kiểm tra thâm nhập
Ngày nay, sự phát triển nhanh chóng của công nghệ và nhu cầu bảo mật ngày càng cao của người dùng đã cho thấy sự cần thiết của việc sử dụng các công nghệ AI trong các bài kiểm tra bảo mật. Sử dụng AI để cải thiện bảo mật mang lại kết quả nhanh hơn và hiệu quả hơn, loại bỏ nhu cầu nhân lực tốn thời gian để thực hiện các bài kiểm tra bảo mật phức tạp và tùy chỉnh thường xuyên. AI giúp phát hiện lỗ hổng sớm nhất có thể. Nó cũng có thể thực hiện các bài kiểm tra bảo mật độc đáo và phức tạp, giúp phát hiện lỗ hổng dễ dàng hơn.
AI dường như khá thành công, đặc biệt là khi phát hiện và ngăn chặn một cuộc tấn công. Để huấn luyện trí tuệ nhân tạo, cần có những tập dữ liệu rất lớn. Một ứng dụng có lưu lượng truy cập web cao là một ân nhân trong vấn đề này. Bởi vì bạn có thể làm cho mọi lưu lượng truy cập đến giống như một bộ dữ liệu để AI sử dụng. Do đó, bạn có một AI có thể đọc và phân tích lưu lượng ứng dụng web cũng như phát hiện các mối đe dọa. Đây là một trong những ví dụ đơn giản nhất có thể được đưa ra.
Nó cũng có thể phát hiện trước không chỉ lưu lượng truy cập web mà còn rất nhiều phần mềm độc hại cho ứng dụng hoặc thiết bị của bạn. Phương pháp này đã bắt đầu được nhiều tường lửa sử dụng.
Ngoài tất cả những điều này, lỗi của con người là một trong những vấn đề lớn nhất trong an ninh mạng. Một lỗ hổng mã nhỏ không được chú ý có thể dẫn đến các sự cố bảo mật lớn không thể khắc phục được. Một số plugin quét các lỗ hổng trong mã đã xuất hiện cùng với sự phát triển của AI và chúng cảnh báo các nhà phát triển về những vấn đề như vậy. Cho đến nay, họ đã cho thấy một số thành công trong việc ngăn ngừa lỗi của con người.
Ngoài ra, thời gian phản hồi trước mối đe dọa cũng rất quan trọng. Khi bị tấn công, cần có thời gian để phát hiện cuộc tấn công, vạch ra con đường để phòng thủ và khởi động các hệ thống phòng thủ. Nhưng AI rất hữu ích trong vấn đề này.
Hạn chế của AI trong An ninh mạng
Việc sử dụng AI cho mục đích an ninh mạng yêu cầu phải xác định và phân tích các ứng dụng độc hại, sạch và có khả năng không an toàn. Ngay cả khi bạn sử dụng các tập dữ liệu rất lớn để đào tạo một thuật toán, bạn cũng không bao giờ có thể chắc chắn về kết quả. Do đó, sẽ không an toàn khi dựa hoàn toàn vào máy móc và AI. Cần hỗ trợ công nghệ AI với sự can thiệp của con người.
Một số nhà sản xuất công cụ bảo mật tuyên bố rằng các giải pháp do máy học cung cấp có thể phân tích từng trường hợp. Theo các nhà sản xuất, những công cụ này có thể phát hiện phần mềm độc hại chỉ bằng các phương tiện toán học. Tuy nhiên, điều này khó có thể xảy ra.
Việc Alan Turing bẻ khóa mã Enigma trong Thế chiến thứ hai là một ví dụ rất hay về điều này. Ngay cả một cỗ máy hoàn hảo cũng không thể quyết định liệu một đầu vào không xác định có thể gây ra hành vi không mong muốn trong tương lai hay không. Bằng chứng này có thể được áp dụng cho nhiều lĩnh vực khác nhau, bao gồm cả an ninh mạng.
Một hạn chế nghiêm trọng khác của các ứng dụng máy học trong an ninh mạng ẩn chứa trong giới hạn của các mô hình trí tuệ nhân tạo. Ví dụ, máy móc đã trở nên đủ thông minh để đánh bại con người trong môn cờ vua.
Nhưng cờ vua có những quy tắc nhất định. Động cơ cờ vua không đi chệch khỏi các quy tắc này. Khi nói đến an ninh mạng, những kẻ tấn công thường không có quy tắc. Bản chất luôn thay đổi của bối cảnh kỹ thuật số khiến việc tạo ra một giải pháp bảo vệ có thể phát hiện và chặn tất cả các mối đe dọa trong tương lai là điều không thể.
Phân tích mã nguồn với ChatGPT
ChatGPT, được phát triển bởi OpenAI, đã xâm nhập nghiêm túc vào cuộc sống của chúng ta trong nhiều lĩnh vực. Vì bạn có thể đặt một số câu hỏi và trò chuyện với ChatGPT, nó cũng cố gắng giúp bạn giải quyết các vấn đề về lập trình và phần mềm. ChatGPT thậm chí còn cố gắng thực hiện phân tích mã nguồn, nếu bạn nhìn nó từ góc độ an ninh mạng. Nhưng ChatGPT vẫn còn ở giai đoạn sơ khai và sẽ mất một thời gian để thiết lập và chạy.
Để thấy rõ hơn điều này, hãy cùng kiểm tra sức mạnh của ChatGPT. Ví dụ: bên dưới là mã JavaScript đơn giản tạo ra lỗ hổng XSS. Hãy hỏi ChatGPT về mã này và yêu cầu mã này cho chúng tôi biết về bất kỳ lỗ hổng nào.
document.write("<strong>Current URL</strong> : " + document.baseURI);
ChatGPT đã đề cập đến một lỗ hổng XSS trong phản hồi. Đây là một khởi đầu khá tốt. Nhưng mã nguồn không bao giờ đơn giản như vậy. Vì vậy, hãy thử làm cho ví dụ phức tạp hơn một chút.
Dưới đây bạn sẽ thấy một mã được chuẩn bị bằng ngôn ngữ lập trình C. Mã C này thuộc về một ứng dụng dễ bị tấn công. Nó thậm chí còn được sử dụng hoàn toàn trong một ứng dụng trong thế giới thực. Nếu muốn, bạn có thể kiểm tra các lỗ hổng mã nguồn trong thế giới thực mà Sonar đã phát hành vào năm 2022.
char *loggerPath *cmd;void rotateLog(){
char logOld[PATH_MAX], logNew[PATH_MAX], timestamp[0x100];
time_t t;
time(&t);
strftime(timestamp, sizeof(timestamp), "%FT%T", gmtime(&t));
snprintf(logOld, sizeof(logOld), "%s/../logs/global.log", loggerPath);
snprintf(logNew, sizeof(logNew), "%s/../logs/global-%s.log", loggerPath, timestamp);
execl("/bin/cp", "/bin/cp", "-a", "--", logOld, logNew, NULL);
}
int main(int argc, char **argv) {
if (argc != 2) {
printf("Usage: /opt/logger/bin/loggerctl n");
return 1;
}
if (setuid(0) == -1) return 1;
if (seteuid(0) == -1) return 1;
char *executablePath = argv[0];
loggerPath = dirname(executablePath);
cmd = argv[1];
if (!strcmp(cmd, "rotate")) rotateLog();
else listCommands();
return 0;
}
Lỗ hổng ở đây là kẻ tấn công có thể thực hiện thay đổi đối với một số tệp mà không có quyền quản trị. Hãy xem ChatGPT sẽ ứng phó với lỗ hổng bảo mật này như thế nào.
Vấn đề chính trong mã này là thiết lậptên người dùng (uid) và id người dùng hiệu quả (euid). Tuy nhiên, không đi sâu vào chi tiết kỹ thuật, điểm chính mà bạn nên chú ý là ChatGPT không thể phát hiện ra phần mỏng này. Nó có thể nhận ra rằng có một vấn đề nhưng tiếc là không thể tìm ra gốc rễ của vấn đề này.
Thông qua những ví dụ này, bạn đã thấy phản ứng đối với các ngôn ngữ lập trình và lỗ hổng khác nhau. Nếu mã thực sự đơn giản và có lỗ hổng bảo mật rõ ràng, ChatGPT có thể giúp bạn. Nhưng bạn không nên hoàn toàn dựa vào ChatGPT để phân tích mã nguồn, kiểm tra thâm nhập và phân tích bảo mật khác.
Tương lai của người kiểm tra thâm nhập
Trí tuệ nhân tạo sẽ là một phần quan trọng trong công việc của những người thử nghiệm thâm nhập trong tương lai. Ví dụ: người kiểm tra thâm nhập sẽ không phải mất thời gian để phát hiện hoạt động độc hại theo cách thủ công và sẽ có thể thực hiện quét bảo mật tự động.
AI cũng sẽ giúp phát hiện và thực hiện hành động chống lại các kỹ thuật tấn công mới và phức tạp hơn để thử nghiệm thâm nhập. Nhưng AI vẫn như một đứa trẻ chơi trong công viên và cần lời khuyên từ người lớn. Trong tương lai gần, các chuyên gia an ninh mạng và người kiểm tra thâm nhập sẽ không dễ dàng mất việc.