Chương 1: TONG QUAN VỀ DE TÀI VA TINH HÌNH NGHIÊN CỨU Trình bày khái quát định hướng nghiên cứu của khóa luận mà chúng tôi muốn hướng tél. Sơ lược một số công trình liên quan có cùng hướng nghiên cứu mà đề tài có tham khảo. e Chương 2: CƠ SỞ LÝ THUYET Trình bày các định nghĩa, khái niệm cũng như những kiến thức nền tang để có thể thực hiện được nghiên cứu. e Chương 3: PHƯƠNG PHÁP THỰC HIỆN Là phần trọng tâm của khoá luận, trình bày những nội dung chính về phương pháp thực hiện và mô hình được sử dụng.
e Chương 4: KET QUA VÀ THẢO LUẬN Đề cập đến quá trình thực nghiệm cùng với kết quả thu được. Đưa ra nhận xét cho những công việc đã thực hiện ở Chương 3. 6 e Chương 5: KET LUẬN VÀ HƯỚNG PHÁT TRIEN Đưa ra kết luận về đề tài, đề xuất một số hướng phát triển mở rộng cho các nghiên cứu trong tương la. CƠ SỞ LÝ THUYET Chương này trình bày cơ sở lý thuyết của nghiên cứu: Bao gồm lỗ hổng phần mềm, hệ thống phát hiện lỗ hong phần mềm, mô hình phát hiện xử lí ngôn ngữ tự nhiên, và mô hình học sâu.
Lỗ hồng phần mềm Lỗ hồng phần mềm là các điểm yếu, thiếu sót hoặc lỗi xuất hiện trong việc thiết kế, triển khai hoặc vận hành của một phần mềm, gây khả năng bị tấn công, xâm nhập hoặc vi phạm tính bảo mật của hệ thống. Kẻ tấn công sẽ lợi dụng lỗ hong phần mềm để thực hiện các cuộc tấn công như truy cập trái phép, thay đổi, xóa hoặc lay cắp dữ liệu, gây hại đến hệ thống hoặc lợi dụng phần mềm để thực hiện các hoạt động không đáng tin cậy. Các lỗ hổng phần mềm có thể xuất hiện ở nhiều mức độ và dạng thức khác nhau, bao gồm: 2. Lỗ hồng thiết kế Lỗ hồng thiết kế (Design Flaw) là một loại lỗ hong trong phần mềm, xuất hiện khi xây dựng kiến trúc hệ thống hoặc thiết kế ứng dụng không đáp ứng đầy đủ các yêu cầu bảo mật hoặc không xử lý đúng các trường hợp biên của dữ liệu đầu vào.
Điều này có thể dẫn đến những vấn đề bảo mật nghiêm trọng trong quá trình triển khai và sử dụng phần mềm: e Thiếu kiểm tra quyền truy cập: Hệ thống không xác nhận và kiểm tra đúng quyền truy cập của người dùng, dẫn đến việc người dùng có thể truy cập và thao tác trên các tài nguyên không được phép. 8 e Thiết kế yếu về xác thực và xác nhận: Hệ thống không xác thực đúng thông tin và không xác nhận tính hợp lệ của dit liệu đầu vào, dẫn đến việc tấn công như giả mạo danh tính, tấn công kiểu chèn mã độc. e Lỗi quản lý phiên: Hệ thống không quản lý và kiểm soát phiên làm việc của người dùng đúng cách, dẫn đến việc người dùng có thể giả mạo hoặc tiếp tục sử dụng phiên làm việc của người khác. e Lỗ hồng kiểm soát truy cập: Thiết kế hệ thống không áp dụng các kiểm soát truy cập đúng cách, dẫn đến việc người dùng có thể truy cập và thao tác trên các tài nguyên mà họ không được phép.
e Xác thực yếu: Hệ thống không đảm bảo xác thực chính xác người dùng và các yếu tố xác thực khác, dẫn đến việc kẻ tấn công có thể giả mạo danh tính và truy cập trái phép vào hệ thống. Lỗ hồng triển khai Lỗ hồng triển khai (Implementation Flaw) là một loại lỗ hong trong phan mềm, xuất hiện khi việc triển khai mã nguồn không tuân thủ các quy tắc bảo mật, hoặc có những lỗi trong quá trình viết mã, dẫn đến các vấn đề bảo mật trong quá trình thực thi của phần mềm. Dưới đây là một số ví dụ về lỗ hổng triển khai: e Lỗ hồng xử lý đầu vào không an toàn: Mã nguồn không kiểm tra và xử lý đúng các đầu vào không an toàn, dẫn đến việc kẻ tấn công có thể chèn thêm mã độc, tấn công kiểu tràn bộ đệm hoặc tấn công khai thác. e Sử dụng mã không an toàn: Việc sử dụng mã không an toàn hoặc mã đã bị lỗi trong quá trình triển khai, dẫn đến việc kẻ tấn công có thể khai thác lỗ hồng trong mã nguồn để tấn công hệ thống.
e Lỗi quản lý bộ nhớ: Mã nguồn không quản lý bộ nhớ đúng cách, dẫn đến 9 các lỗi như xóa hoặc giải phóng bộ nhớ không hợp lệ, dẫn đến các lỗi tràn bộ nhớ hoặc tấn công kiểu tràn bộ đệm. e Sử dụng các thư viện không an toàn: Sử dụng các thư viện, framework hoặc phần mềm bên thứ ba có 16 hong bảo mật, dẫn đến việc kẻ tấn công có thể khai thác các lỗ hồng này để xâm nhập vào hệ thống. e Thiếu kiểm tra phân quyền: Mã nguồn không được kiểm tra và áp dụng đúng các quyền hạn và phân quyền truy cập, dẫn đến việc người dùng có thể truy cập vào các dữ liệu trái phép và thực hiện những hành vi ngoài phạm vi cho phép của người dùng phổ thông. Lỗ hổng lập trinh Lỗ hồng lập trình (Programming Vulnerability) là các sai sót, khuyết điểm hoặc quy trình thiết kế không an toàn trong quá trình viết mã nguồn phần mềm.
Điều này có thể tạo ra các điểm yếu trong hệ thống phần mềm, mở cửa cho các cuộc tấn công và lợi dụng bởi những người tấn công: e Lỗi tràn bộ đệm (Buffer Overflow): Khi một khối dữ liệu được ghi vào một vùng nhớ đệm mà không có kiểm tra đúng về kích thước, dẫn đến việc ghi vào vùng nhớ ngoài phạm vi đệm, gây lỗi tràn bộ đệm. Kẻ tan công có thể tận dụng lỗi này để thực thi mã độc hoặc kiểm soát luồng chương trình. e Lỗi truy cập không hợp lệ (Invalid Access): Khi mã nguồn truy cập vào một vùng nhớ hoặc tài nguyên mà không kiểm tra và xác minh đúng các điều kiện và quyền truy cập, dẫn đến việc người dùng có thể truy cập vào các tài nguyên không được phép hoặc thay đổi dữ liệu quan trọng. e Lỗi xác thực và phân quyền (Authentication and Authorization Flaws): Khi hệ thống không thực hiện đúng quy trình xác thực và phân quyền, dẫn đến việc người dùng có thể xâm nhập vào hệ thống, đăng nhập với thông tin không hợp lệ hoặc có quyền truy cập không được phép.
10 e Lỗi kiểm tra và xử lý lỗi (Error Checking and Handling Flaws): Khi mã nguồn không kiểm tra và xử lý lỗi đúng cách, dẫn đến việc kẻ tấn công có thể tận dụng các lỗi này để xâm nhập vào hệ thống hoặc gây ra sự cố và mat dữ liệu quan trọng. e Lỗi mã độc (Malicious Code): Khi mã nguồn chứa các đoạn mã độc, như backdoor, keylogger, hay mã độc khai thác lỗ hong bảo mật, dẫn đến việc kẻ tấn công có thể kiểm soát hoặc xâm nhập vào hệ thống. Lỗ hổng hệ điều hành Lỗ hổng hệ điều hành (Operating System Vulnerability) là các lỗ hong xảy ra trong hệ điều hành, làm cho hệ thống trở nên yếu đối với các cuộc tan công. Dưới đây là một số ví dụ về lỗ hổng hệ điều hành: e Lỗ hồng chưa được vá (Unpatched Vulnerabilities): Hệ điều hành có các 16 hổng bảo mật chưa được vá bằng các ban vá hoặc ban vá chưa được cài đặt.
Diều này tao cơ hội cho kẻ tấn công tận dụng lỗ hong để xâm nhập vào hệ thống. e Lỗ hồng đặc quyền (Privilege Escalation): Khi kẻ tấn công tim thấy một lỗ hong trong hệ điều hành cho phép ho tăng quyền truy cập hoặc đặc quyền trên hệ thống. Điều này cho phép họ thực hiện các hoạt động không được phép hoặc gây ảnh hưởng lớn đến hệ thống. e Lỗ hổng điều khiển nhập/xuất (Input/Output Control Vulnera- bilities): Lỗ hổng xảy ra khi hệ điều hành không kiểm soát và xử lý đúng các hoạt động nhập/xuất từ các thiết bị ngoại vi.
Điều này bị kẻ tấn công tận dụng nhằm mục đích thực hiện các cuộc tấn công từ xa hoặc kiểm soát các thiết bị ngoại vi kết nối với hệ thống. e Lỗ hong quyền truy cập (Access Control Vulnerabilities): Lỗ hồng xảy ra khi hệ điều hành không thực hiện kiểm soát đúng các quyền truy 11 cập và phân quyền. Điều này có thể cho phép kẻ tấn công truy cập vào các tài nguyên không được phép hoặc thay đổi các cài đặt hệ thống quan trọng. e Lỗ hồng mang (Network Vulnerabilities): Hệ điều hành không bảo vệ đúng các giao thức mạng hoặc không thực hiện các biện pháp bảo mật mạng đủ mạnh.
Điều này bị kẻ tấn công tận dụng nhằm mục đích tấn công từ xa vào hệ thống hoặc tiến hành các cuộc tấn công trên mạng nội bộ. Hệ thống dò quét và phát hiện lỗ hổng phần mềm Hệ thống dò quét và phát hiện lỗ hong phần mềm là một hệ thống hoặc công cu được sử dung dé phân tích và tìm kiếm các 16 hổng bảo mật trong phần mềm. Mục tiêu của hệ thống này là tìm ra các lỗ hồng có thể bị tấn công và gây nguy hiểm cho hệ thống phần mềm, từ đó giúp ngăn chặn và ngăn can các cuộc tấn công từ xảy ra. Hệ thống dò quét và phát hiện lỗ hong phần mềm thường sử dụng các kỹ thuật phân tích tĩnh và phân tích động để xác định các điểm yếu trong mã nguồn và hành vi thực thi của phần mềm.
Phương pháp phân tích tĩnh, Kỹ thuật dò tìm và phát hiện lỗ hổng phần mềm sử dụng phương pháp phân tích tĩnh có nghĩa là phát hiện lỗ hồng phần mềm không thông qua việc phải chạy thực thi chương trình, mà chỉ tiến hành thực hiện việc ra soát mã nguồn thủ công hoặc bằng công cụ để tìm ra việc sử dụng những lỗ hồng như cấp phát tài nguyên không hợp lí, sử dụng những lời gọi hàm có chứa lỗ hồng, kiểm tra tính toàn vẹn của mã nguồn cũng như có thể xác định lỗ hồng phần mềm qua kinh nghiệm. Phương pháp phân tích động Phương pháp phân tích động là một kỹ thuật phát hiện mã độc dựa trên các hành vi của tập tin được thực thi trong thời gian thực. Trình chống mã độc thực hiện việc giám sát các hành động, khối lệnh của tập tin này. Để thực hiện kỹ thuật này, hệ thống nên được thiết lập môi trường thử nghiệm để thực thi mã độc và quan sát, theo đõi hành vi của chúng trên môi trường này.
Các hành động đáng chú ý như: hoạt động của các tiến trình, thông tin về thanh ghi, sự thay đổi của các thư mục, tập tin, lưu lượng mạng và các yêu cầu kết nối giao tiếp giữa mã độc ra bên ngoài.