OWASP Top 10 2021 là phiên bản mới nhất của danh sách top 10 lỗ hổng bảo mật ứng dụng web phổ biến và nguy hiểm nhất do OWASP công bố vào tháng 7/2021.
Phương pháp thực hiện
Phiên bản Top 10 năm nay được xây dựng một cách khoa học và chặt chẽ hơn. Thay vì chỉ dựa vào kinh nghiệm chủ quan, OWASP đã sử dụng dữ liệu thực tế để xác định 8/10 loại lỗ hổng.
Tuy nhiên, dữ liệu không thể bao quát hết thực tế. Do đó, OWASP kết hợp dữ liệu với khảo sát ý kiến các chuyên gia để bù đắp cho phần còn thiếu sót của dữ liệu. Đây là một cách tiếp cận hợp lý, kết hợp điểm mạnh của cả hai phương pháp.
Thay đổi cách phân loại bằng nhóm gộp các lỗ hổng theo nguyên nhân gốc rễ cũng là một đổi mới đáng ghi nhận. Nó giúp xác định nguyên nhân vấn đề một cách rõ ràng hơn.
Nhìn chung, phiên bản năm nay cho thấy sự chín chắn và tiến bộ về mặt phương pháp luận để xây dựng Top 10, kết hợp điểm mạnh của dữ liệu và kinh nghiệm.
Cấu trúc các loại lỗ hổng bảo mật
Trước đây, việc thu thập dữ liệu của OWASP chỉ tập trung vào một số lượng nhỏ các loại lỗ hổng. Điều này đã hạn chế khả năng phát hiện ra các lỗ hổng mới. Do đó lần này, OWASP đã mở rộng phạm vi thu thập dữ liệu một cách đáng kể, cho phép họ đánh giá được nhiều loại lỗ hổng hơn.
Mặt khác, hàng trăm loại lỗ hổng đòi hỏi OWASP phải có cách phân loại và nhóm các lỗ hổng một cách hợp lý. Họ đã chọn tập trung vào nguyên nhân gốc rễ chứ không chỉ triệu chứng. Theo tôi, đây là quyết định đúng đắn vì nó giúp xử lý triệt để vấn đề.
Nhìn chung, sự thay đổi lần này về cách thu thập và phân loại dữ liệu là cần thiết và phù hợp với xu thế hiện nay của bảo mật ứng dụng web.
Cách OWASP Top 10 sử dụng dữ liệu để lựa chọn các loại lỗ hổng
Trước đây OWASP Top 10 dựa nhiều vào kinh nghiệm chủ quan để xếp hạng các loại lỗ hổng. Nhưng trong phiên bản 2021, họ muốn sử dụng dữ liệu để đánh giá khả năng khai thác và ảnh hưởng kỹ thuật của các lỗ hổng.
OWASP đã kết hợp dữ liệu từ nhiều nguồn như CVSS, CVE, CWE để tính toán điểm trung bình của “exploitability” và “impact” cho từng nhóm CWE. Điều này mang lại cái nhìn khách quan hơn về mức độ nghiêm trọng của các loại lỗ hổng.
Nhìn chung, việc lựa chọn loại lỗ hổng trong Top 10 2021 đã khoa học và chính xác hơn rất nhiều so với các phiên bản trước, nhờ sử dụng dữ liệu định lượng để hỗ trợ quá trình ra quyết định.
CVSS (Common Vulnerability Scoring System): là hệ thống dùng để đo lường mức độ nghiêm trọng của các lỗ hổng bảo mật. CVSS cung cấp các điểm số về mức độ ảnh hưởng, khả năng khai thác của một lỗ hổng. Hiện tại phiên bản phổ biến là CVSSv3.
CVE (Common Vulnerabilities and Exposures): là danh mục về các lỗ hổng và nguy cơ bảo mật được xác định rõ ràng. Mỗi lỗ hổng/nguy cơ được gán một mã CVE duy nhất để dễ dàng theo dõi.
CWE (Common Weaknesses Enumeration): là bộ phân loại và mô tả các điểm yếu/lỗ hổng phổ biến trong mã nguồn và thiết kế phần mềm. CWE dùng để phân loại các lỗ hổng.
CVSS, CVE và CWE là 3 hệ thống phổ biến giúp định danh, đo lường và phân loại các lỗ hổng bảo mật.
Tại sao OWASP Top 10 không chỉ dựa trên thuần túy dữ liệu thống kê?
Dữ liệu thống kê chỉ thể hiện được những gì có thể kiểm tra tự động. Còn các xu hướng mới, lỗ hổng phức tạp cần con người tìm ra và kiểm tra thủ công, sẽ không xuất hiện trong dữ liệu thống kê. Ngoài ra, dữ liệu thống kê chỉ phản ánh quá khứ, có khả năng bỏ sót những xu thế mới nổi.
Chính vì vậy, OWASP chỉ dựa vào dữ liệu để chọn 8/10 loại lỗ hổng. Hai loại còn lại được bầu chọn bởi cộng đồng dựa trên những gì họ chứng kiến ở thực tế. Điều này giúp bù đắp cho phần thiếu sót của dữ liệu.
Như vậy việc kết hợp cả dữ liệu thống kê với kinh nghiệm thực tiễn là cần thiết để xác định đầy đủ và chính xác các loại lỗ hổng nguy hiểm nhất.
Sử dụng tỷ lệ phát sinh thay vì tần suất xuất hiện để đánh giá các lỗ hổng
Có 3 nguồn dữ liệu chính là công cụ, con người hỗ trợ công cụ và con người hỗ trợ công cụ. Công cụ và con người hỗ trợ công cụ thường tìm thấy lỗ hổng với tần suất rất cao. Trong khi đó, con người tìm ra các lỗ hổng đa dạng hơn nhưng với tần suất thấp hơn.
Nếu đánh giá theo tần suất, dữ liệu từ công cụ sẽ át đi dữ liệu từ con người. Ví dụ như XSS thường có tần suất rất cao. Do đó OWASP quyết định sử dụng tỷ lệ phát sinh. Thay vì tần suất, tỷ lệ phát sinh chỉ cần biết bao nhiêu ứng dụng có ít nhất 1 lỗ hổng. Điều này cho cái nhìn khách quan và toàn diện hơn.
Quy trình thu thập và phân tích dữ liệu
OWASP đã chuẩn hóa quy trình thu thập dữ liệu cho Top 10 từ năm 2017 để đảm bảo tính minh bạch. Họ đăng tải kêu gọi cung cấp dữ liệu trên mạng xã hội, hướng dẫn cụ thể yêu cầu dữ liệu. Dữ liệu được lấy từ các công ty kiểm thử, bug bounty hoặc nội bộ công ty.
Sau khi thu thập dữ liệu, OWASP phân tích xem CWE nào ảnh hưởng lớn nhất tới rủi ro. Đồng thời, họ cũng khảo sát ý kiến cộng đồng để đưa thêm 2 loại lỗ hổng vào Top 10. Như vậy, Top 10 phản ánh được cả thực tế khách quan lẫn cái nhìn chủ quan của các chuyên gia.
Các yếu tố dữ liệu được liệt kê và giải thích như sau
- CWEs Mapped (CWEs được ánh xạ): Số lượng CWEs được ánh xạ vào mỗi danh mục bởi đội ngũ Top 10.
- Incidence Rate (Tỷ lệ Sự cố): Tỷ lệ sự cố là phần trăm ứng dụng có lỗ hổng với CWE đó trong số các ứng dụng được tổ chức kiểm thử trong năm đó.
- (Testing) Coverage (Phạm vi Kiểm thử): Phần trăm ứng dụng được tất cả các tổ chức kiểm thử đối với một CWE cụ thể.
- Weighted Exploit (Khai thác được trọng số): Điểm con Exploit từ các điểm CVSSv2 và CVSSv3 được gán cho CVEs được ánh xạ vào CWEs, được chuẩn hóa và đặt trên một thang điểm 10.
- Weighted Impact (Tác động được trọng số): Điểm con Tác động từ các điểm CVSSv2 và CVSSv3 được gán cho CVEs được ánh xạ vào CWEs, được chuẩn hóa và đặt trên một thang điểm 10.
- Total Occurrences (Tổng Số Lần Xuất hiện): Tổng số ứng dụng được phát hiện có CWEs được ánh xạ vào một danh mục.
- Total CVEs (Tổng số CVEs): Tổng số CVEs trong Cơ sở Dữ liệu NVD mà đã được ánh xạ vào CWEs thuộc một danh mục nào đó.
Nhìn chung, các yếu tố này cung cấp thông tin chi tiết về tình trạng bảo mật của các ứng dụng trong các danh mục hàng đầu, bao gồm số lượng lỗ hổng, mức độ phổ biến, và ảnh hưởng của chúng.
OWASP Top 10: 2021
- A01:2021 – Broken Access Control là loại rủi ro nghiêm trọng nhất đối với bảo mật ứng dụng web; dữ liệu đóng góp cho thấy trung bình 3,81% số ứng dụng được kiểm tra có một hoặc nhiều Lỗ hổng Thông thường (CWE) với hơn 318.000 lần xuất hiện của các CWE thuộc loại rủi ro này. 34 CWE được ánh xạ vào Broken Access Control xuất hiện nhiều hơn so với bất kỳ loại nào khác trong các ứng dụng.
- A02:2021 – Cryptographic Failures chuyển lên vị trí thứ 2, trước đây được biết đến A3:2017 – Sensitive Data Exposure, là triệu chứng chứ không phải nguyên nhân gốc rễ. Tên mới tập trung vào các lỗi liên quan đến mật mã như trước đây đã ngụ ý. Loại lỗ hổng này thường dẫn đến tiết lộ dữ liệu nhạy cảm hoặc đã bị tấn công và kiểm soát hoàn toàn.
- A03:2021 – Injection giảm xuống vị trí thứ ba. 94% ứng dụng đã được kiểm thử đối với một loại injection nào đó, với tỷ lệ sự cố tối đa là 19%, tỷ lệ sự cố trung bình là 3.37%, và 33 CWEs được ánh xạ vào danh mục này có số lần xuất hiện thứ hai nhiều nhất trong các ứng dụng với 274,000 lần xuất hiện. Cross-site Scripting (XSS) hiện đã là một phần của danh mục này trong phiên bản này.
- A04:2021 – Insecure Design là một danh mục mới trong năm 2021, tập trung vào các rủi ro liên quan đến nhược điểm trong thiết kế. Nếu chúng ta thật sự muốn tích hợp và tăng cường các biện pháp bảo mật từ giai đoạn phát triển sớm của sản phẩm hoặc dự án thay vì chỉ làm điều này sau khi sản phẩm đã hoàn thành, ta sẽ cần có thêm mô hình hóa mối đe dọa, các mô hình thiết kế an toàn và nguyên tắc, cùng kiến trúc tham chiếu. Một thiết kế không an toàn không thể được sửa chữa bằng cách triển khai hoàn hảo vì theo định nghĩa, các biện pháp kiểm soát an toàn cần thiết chưa bao giờ được tạo ra để phòng ngự chống lại các cuộc tấn công cụ thể.
- A05:2021 – Security Misconfiguration tăng lên từ vị trí thứ 6 trong phiên bản trước; 90% ứng dụng đã được kiểm thử đối với một dạng nào đó của sự cấu hình không an toàn, với tỷ lệ sự cố trung bình là 4.5%, và hơn 208,000 lần xuất hiện của CWEs được ánh xạ vào danh mục rủi ro này. Với việc có thêm sự chuyển đổi vào phần mềm có thể cấu hình cao, không ngạc nhiên khi thấy danh mục này tăng lên. Danh mục trước đây cho A4:2017-XML External Entities (XXE) giờ là một phần của danh mục rủi ro này.
- A06:2021 – Vulnerable and Outdated Components trước đây có tựa đề là Using Components with Known Vulnerabilities và đứng ở vị trí thứ 2 trong cuộc khảo sát cộng đồng Top 10, nhưng cũng có đủ dữ liệu để lọt vào Top 10 thông qua phân tích dữ liệu. Danh mục này tăng lên từ vị trí thứ 9 trong năm 2017 và là một vấn đề đã biết đến mà chúng ta gặp khó khăn khi kiểm thử và đánh giá rủi ro. Đây là danh mục duy nhất không có bất kỳ Common Vulnerability and Exposures (CVEs) nào được ánh xạ vào các CWEs được bao gồm, do đó điểm mặc định về trọng số khai thác và tác động là 5.0 được tính vào điểm số của chúng.
- A07:2021 – Identification and Authentication Failures trước đây có tên là Broken Authentication và giảm xuống từ vị trí thứ hai, và bây giờ bao gồm các CWEs liên quan đến các sự cố về xác định hơn. Danh mục này vẫn là một phần quan trọng của Top 10, nhưng sự phổ biến gia tăng của các khung công việc tiêu chuẩn có vẻ đang giúp ích.
- A08:2021 – Software and Data Integrity Failures là một danh mục mới cho năm 2021, tập trung vào việc đưa ra giả định liên quan đến cập nhật phần mềm, dữ liệu quan trọng và các CI/CD pipeline mà không xác minh tính toàn vẹn. Một trong những tác động có trọng số cao nhất từ dữ liệu CVE/CVSS được ánh xạ vào 10 CWEs trong danh mục này. A8:2017-Insecure Deserialization giờ là một phần của danh mục lớn này.
- A09:2021 – Security Logging and Monitoring Failures trước đây là A10:2017-Insufficient Logging & Monitoring và được thêm vào từ cuộc khảo sát cộng đồng Top 10 (#3), tăng lên từ vị trí thứ 10 trước đó. Danh mục này được mở rộng để bao gồm nhiều loại sự cố hơn, khó kiểm thử, và không được đại diện tốt trong dữ liệu CVE/CVSS. Tuy nhiên, những sự cố trong danh mục này có thể ảnh hưởng trực tiếp đến khả năng nhìn thấy, cảnh báo sự cố, và công tác phân tích hậu quả.
- A10:2021 – Server-Side Request Forgery được thêm vào từ cuộc khảo sát cộng đồng Top 10 (#1). Dữ liệu cho thấy tỷ lệ sự cố khá thấp với phạm vi kiểm thử trên trung bình, cùng với đánh giá trên trung bình cho khả năng khai thác và tác động. Danh mục này đại diện cho tình huống mà các thành viên trong cộng đồng an ninh cho biết đây là một vấn đề quan trọng, mặc dù điều này không được minh họa trong dữ liệu tại thời điểm này.
Nguồn: https://owasp.org/Top10/