CHƯƠNG 1 TONG QUAN VE PHAN LOẠI LO HỎNG PHAN MEM Chương này trình bày tổng quan về phân loại lỗ hồng phan mém và các phương pháp nhằm ngăn ngừa, phân loại lỗ héng phan mém. Do án giới thiệu các khái niệm liên quan tới lỗ hồng nói chung, cũng như lỗ hổng phan mém nói riêng. Từ đó thong kê bảng xếp hạng 25 điểm yếu và lỗ hồng 2021 do CWE thống kê.1 Khái niệm lỗ héng phan mềm 1.1 Lỗ hỗng Lỗ hồng bảo mật (Vulnerability) là một điểm yêu tổn tại trong hệ thống cho phép kẻ tấn công khai thác gây tôn hại đến các thuộc tính an toàn, an ninh của hệ thống đó, bao gồm tính bi mật, tính toàn vẹn và tính san sàng [1]. Phụ thuộc vào khả năng bị khai thác, các lỗ hồng bảo mật có mức độ nghiêm trọng khác nhau.
Theo Microsoft, có 4 mức độ nghiêm trong của các lỗ hồng bao mật: nguy hiểm (critical), quan trong (important), trung bình (moderate) và thấp (low). Tuy nhiên, một số tô chức khác chi phân loại các lỗ hong bảo mật theo 3 mức độ nghiêm trong: cao (high), trung bình (medium) và thấp (low). Lỗ hồng bảo mật thuộc cap độ nguy hiểm là lỗ hỗng cho phép kẻ tấn công thực hiện mã khai thác mà không cần tương tác người dùng. Các thông tin khai thác lỗ hồng, như mã mẫu | khai thác tồn tại phổ biến trên mạng Internet.
Ngoài ra, việc khai thác lỗ hồng có thé được thực hiện dé dang mà không yêu cầu có tài khoản trong hệ thống hoặc các điều kiện phức tạp. Lỗ hồng bảo mật thuộc cấp độ quan trọng là lỗ hỗng khi bị khai thác có thê dẫn đến vi phạm các yêu cầu an toàn thông tin như bí mật, toàn vẹn và sẵn sàng của dữ liệu, tài nguyên tính toán, hoặc cả hệ thống. Khác với lỗ hồng loại nguy hiểm, lỗ hồng loại quan trọng cho phép kẻ tan công thực hiện mã khai thác, nhưng cần có tương tác người dùng. Lỗ hồng bảo mật thuộc cấp độ trung bình là các lỗ hỗng mà khi khai thác, kẻ tan công phải ở trong cùng mạng cục bộ với hệ thống nạn nhân.
Một ngữ cảnh khai thác lỗ hồng loại này là kẻ tấn công thực hiện việc bẫy nạn nhân sử dụng các kỹ thuật xã hội, như khai thác sự cả tin, tò mò và lòng tham của người dùng. Ngoài ra, việc khai thác lỗ hồng loại trung bình cũng chỉ cho phép kẻ tan công có quyền truy cập rất hạn chế vào hệ thống. Loại cuối cùng là các lỗ hồng bảo mật thuộc cấp độ thấp. Các lỗ hông loại này ít có ảnh hưởng đến hoạt động của tô chức và chúng chỉ có thé bị khai thác khi kẻ tan công có truy cập cục bộ hoặc truy cập vật lý trực tiếp vào hệ thông.
Hiện nay, trên thế giới có nhiều khái niệm lỗ hồng khác nhau do các tô chức, các công ty đưa ra, có thể ké đến một số khái niệm sau: MAI VIỆT HOANG - D17CQATO1 3 ĐỒ ÁN TOT NGHIỆP ISO 27005 định nghĩa lỗ hồng như một điểm yếu của một tài sản hoặc nhóm tài sản có thê bị khai thác bởi một hoặc nhiều mối đe dọa trên mạng, trong đó tài sản là bat cứ thứ gì có giá trị đối với tô chức, hoạt động kinh doanh của tô chức và tính liên tục của những hoạt động đó, bao gồm các tài nguyên thông tin hỗ trợ sứ mệnh của tổ chức. IETF RFC 2828 lỗ hồng là một lỗ hồng (hay điểm yếu trong thiết kế), phát triển, quản lý của hệ thống có thể bị khai thác nhằm vi phạm các chính sách bảo mật của hệ thống đó. NIST (National Institute of Standards and Technology — Viện tiêu chuan và công nghệ) có xác định lỗ hồng: là một lỗ hồng (hay điểm yếu) trong các thủ tục an ninh hệ thống, trong thiết kế, phát triển hoặc kiểm soát nội bộ là các van đề có thé thực hiện (vô tính hay cố ý gây ra) và tạo ra kết quả là vi phạm chính sách an ninh, bảo mật của hệ thông. Open Group: Xác suất khả năng của mối đe doa vượt quá khả năng chống lại mối đe dọa đó.
Phân tích nhân tổ về rủi ro thông tin: Xác xuất một tài sản sẽ không thé chống lại hành động của một tác nhân đe dọa. Như vậy, có thé đưa ra khái niệm lỗ hồng bảo mật như sau “Lỗ hổng bảo mật là một điểm yếu ton tại trong hệ thống cho pháp kẻ tan công khai thác gây ton hại đến các thuộc tính an toàn, an ninh của hệ thống do, bao gom tính bí mật, tính toàn vẹn và tính sẵn sàng”. Các lỗ hông cũng có thể năm ngay trong các dịch vụ cung cấp như send mail, web, ftp. Ngoài ra các lỗ hồng còn tồn tại ngay chính tại các hệ điều hành hoặc trong các ứng dụng mà người sử dụng thường xuyên sử dụng như Word processing, các ứng dụng mobile, .L2 Phân loại lỗ hỗng Lỗ hồng bảo mật rất đa dạng và có thể do nhiều nguyên nhân khác nhau, có thê phát sinh từ những yếu tố về kỹ thuật, cũng có thé do các yếu tố về tổ chức va quản lý như: thiếu kinh nghiệm hoặc khiếm khuyết trong các biện pháp bảo vệ thông tin.
do vậy, có khá nhiều phương pháp phân loại lỗ hông của hệ thống thông tin. Lỗ hồng được phân loại dựa theo các lớp mà nó liên quan đến.1 Lỗ hồng phan cung Trong lỗ hồng phan cứng có thé bao gồm: e Độ nhạy với độ am e D6 nhạy với bụi e Độ nhạy với ban e Độ nhạy với thiết bị lưu trữ không được bảo vệ 1.2 Lỗ hồng phan mém Lỗ hồng phần mềm bao gồm: - _ Lỗ hồng phát sinh do chưa được kiểm thử chính xác và day đủ - _ Lỗ hồng phát sinh do thiếu việc kiểm tra các lỗi đã từng xuất hiện trước đây. MAI VIỆT HOANG - D17CQATO1 4 ĐỒ ÁN TOT NGHIỆP 1.3 Lỗ hồng mạng Lỗ hồng mạng bao gồm: Lỗ hồng do kênh truyền thông không được bảo vệ Lỗ hồng do kiến trúc mạng không an toàn 1.4 Lỗ hồng về con người Lô hông về con người bao gôm: Lỗ hồng do quá trình tuyển dụng thiếu chặt chẽ, chất lượng thấp Lỗ hồng do quá trình dao tao, nâng cao nhận thức mức trung bình 1.5 Lỗ hồng VỀ site Lỗ hồng về site bao gồm: Lỗ hồng do site quá nhiều chủ đề Lỗ hồng do khả năng của mã nguồn không đáng tin cậy 1.6 Lỗ hồng về tổ chức Lỗ hồng về tô chức bao gồm: Lỗ hồng do thiếu việc giám sát thường xuyên Lỗ hồng do các kế hoạch không được chuyền bị liên tục Lỗ hồng do thiếu tính bảo mật 1.3 Nguyên nhân gây ra lỗ hỗng Độ phức tạp: Các hệ thống phức tạp làm tăng xác suất của lỗ hồng, sai sót trong cau hình hoặc truy cập ngoài ý muốn. Mức độ kết nối: Thiết bị càng được kết nối nhiều thì khả năng xuất hiện lỗ hồng càng cao.
Sự quen thuộc: Thói quen sử dụng chung, những code đã biết, các phần mềm, hệ điều hành và cả phần cứng làm tăng khả năng cho những kẻ tấn công trong việc tìm kiếm những hiểu biết hoặc công cụ dé khai thác lỗi. Quản lý mật khẩu kém: Máy tính người dùng sử dụng mật khâu quá đơn giản (weak passwords) và có thể bị khám phá ra nếu bị tấn công mạnh mẽ (thông qua các chương trình phân tích tốt và các hệ thống tốt). Lỗi thiết kế nền tảng hệ điều hành: Thiết kế hệ điều hành thực hiện các chính sách tối ưu cục bộ hoặc dành cho việc quản lý người dùng/ chương trình cụ thể. Việc sử dụng Internet: Internet có rất nhiều loại phần mềm gián điệp và phần mềm quảng cáo có thể được cài đặt tự động trên máy tính.
Sai sót phần mềm: người lập trình không quan tâm đến những chỗ sai sót có thé bị khai thác trong chương trình. Chương trình có thé chứa những sai sót có thé cho phép những kẻ tan công lạm dụng đề khai thác chương trình. Không kiểm tra đầu vào: chương trình được giả định răng tất cả những nhập liệu đầu vào của người dùng là an toàn. MAI VIỆT HOANG - D17CQATO1 5 ĐỒ ÁN TOT NGHIỆP - Con người: Lỗ hồng lớn nhất trong bat kỳ tô chức nào là con người dang sau hệ thống đó.
Tan công phi kỹ thuật (social engineering) là mối đe dọa lớn nhất với đa số các tô chức.4 Khái niệm lỗ hổng phan mém Phần mềm (Software) là một tập hợp những câu lệnh hoặc chỉ thị (Instruction) được viết băng một hoặc nhiều ngôn ngữ lập trình theo một trật tự xác định, và các dữ liệu hay tài liệu liên quan nhăm tự động thực hiện một số nhiệm vụ hay chức năng hoặc giải quyết một vấn đề cụ thê nào đó. Các phần mềm thường phức tạp và được phát triển bởi các lập trình viên khác nhau. Các lập trình viên thường mắc lỗi trong mã nguồn có thé gây ra lỗ hồng phần mềm. Lỗ hồng phần mềm đơn giản là điểm yếu trong hệ thong cho phép những kẻ tan công có thé tận dụng dé phát huy lợi thé.
Về khía cạnh của bảo mật phần mềm: các lỗ hồng là những lỗi đặc trưng hoặc bị bỏ quên trong một phần nào đó của phần mềm và cho phép những kẻ tấn công gây hại cho hệ thống sửa đổi thông tin nhạy cảm, làm gián đoạn hoặc phá hủy hệ thống, hoặc chiếm quyền kiểm soát hệ thống máy tính hoặc chương trình.2 Các loại lỗ hong phần mềm Lỗ hồng phần mềm ở đây học viên đưa ra cách phân loại theo 2 tiêu chí: - Phan loại theo các lỗi sai sót của phan mềm - Phan loại theo quá trình phát triển phần mềm.1 Phân loại theo các lỗi sai sót của phan mém Các loại sai sót phô biến trong phần mềm dẫn tới việc xuất hiện các lỗ hồng phan mềm bao gồm: 1.1 Vi phạm an toàn bộ nhớ Trong quá trình phát triển phần mềm việc quan tâm đến an toàn bộ nhớ cần được kiểm tra một cách kỹ lưỡng. Lỗi này có thé gây ra lỗ hổng bảo mật với RAM như gây ra tràn bộ đệm hoặc treo con trỏ. Một số lỗi bộ nhớ có thê xảy ra, tùy thuộc vào ngôn ngữ lập trình được sử dụng như: e Lỗi tràn bộ đệm (buffer overflow): Việc ghi dit liệu quá phạm vi cho phép có thé làm sai nội dung các các đối tượng liền kề trong bộ nhớ. Đây là lỗi cô điển nhất và ngày càng ít gặp bởi hầu hết các lập trình viên đều nhận thức được và tránh lỗi này.
e Lỗi bộ nhớ động (dynamic memory errors): quản lý không chính xác bộ nhớ động và con trỏ động.