Open Web Application Security Project (OWASP) là một tổ chức gồm các chuyên gia bảo mật hàng đầu thế giới, chuyên cung cấp các thông tin về những ứng dụng và rủi ro đặt ra một cách trực tiếp, khách quan và thực tế nhất. Từ năm 2013 đến nay, OWASP Top 10 là tên gọi của danh sách 10 rủi ro bảo mật ứng dụng lớn nhất được công bố 4 năm 1 lần bởi tổ chức này.

Danh sách này được coi là chuẩn AppSec và được đông đảo cộng đồng an ninh mạng tin tưởng. Nó bao gồm những thông tin mới nhất về các lỗ hổng, mối đe dọa và các cuộc tấn công cũng như thủ thuật để phát hiện và khắc phục. Các chuyên gia của OWASP đưa ra danh sách này dựa trên việc phân tích tỉ lệ xuất hiện và mức độ nghiêm trọng của từng mối đe dọa.

OWASP Top 10 năm 2017 được công khai dựa trên cuộc khảo sát và kiểm tra hơn 2,3 triệu lỗ hổng ảnh hướng đến 50.000 ứng dụng, bao gồm 2 bản cập nhật các lỗ hổng quy mô lớn và các kịch bản tấn công mới.

Sau đây là danh sách OWASP Top 10 được công bố năm 2017


A1 – Injection (Lỗi nhúng mã)

Dấu hiệu cho biết ứng dụng của bạn rất có thể sẽ phải đối mặt với các cuộc tấn công bằng mã nhúng là khi nó có thể nhận dữ liệu đầu vào người dùng đến cơ sở dữ liệu back-end, tập lệnh hoặc cuộc gọi. Lỗi nhúng mã là tập hợp các lỗ hổng bảo mật xảy ra khi dữ liệu đáng ngờ được chèn vào ứng dụng dưới dạng lệnh hay truy vấn. Các cuộc tấn công bằng mã nhúng đã được phổ biến như: SQL, OS, XXE và LDAP. Trong đó, tấn công SQL (hay SQLi) là phổ biến nhất. Một cuộc tấn công SQLi thành công khi đoạn mã sai được gửi đến dữ liệu máy chủ và tiếp cận với hệ thống dữ liệu của bạn. Đây là kiểu tấn công rất đơn giản và dễ dàng, bất cứ ai truy cập vào internet đều có thể thực hiện được. Các tập lệnh SQLi luôn có sẵn để download hoặc rất dễ dàng mua được.


A2 – Broken Authentication and Session Managenent

Khi các chức năng của ứng dụng bị thực hiện sai cách, tin tặc hoàn toàn dễ dàng xâm nhập, ăn cắp thông tin tài khoản, mật khẩu và khai thác các lỗ hổng khác bằng cách sử dụng các chứng chỉ đã đánh cắp. Tài khoản mỗi người dùng cá nhân nên là duy nhất, không trùng lặp dưới bất kỳ hình thức nào. Nếu không có bất kỳ sự quản lý cần thiết nào thì tin tặc có thể xâm nhập và đội lốt người dùng để ăn cắp thông tin tài khoản, mật khẩu và sử dụng cho những lần truy cập sau.


A3 – Cross-site Scripting (XSS)

XSS là lỗ hổng thường thấy trong các ứng dụng web. Nó cho phép tin tặc đưa các kịch bản phía máy khách vào các website công cộng. Trong nhiều trường hợp, tin tặc có thể sử dụng các công cụ kiểm soát truy cập của họ. Chúng đánh lừa trình duyệt chấp nhận dữ liệu từ một nguồn không tin cậy. Tin tặc hay sử dụng các mã quen thuộc (như JavaScript) vì các nhà phát triển ứng dụng không loại trừ các ký tự này.

XSS rất thường hay tấn công vào các ứng dụng cho phép người dùng nhập dữ liệu vào mà không có toàn quyền kiểm soát dữ liệu ra. Khi tấn công XSS thành công gây ra thiệt hại rất lớn cho trang web và có khả năng kéo người dùng vào các trang web khác chứa nhiều mã độc hơn. Một số kiểu tấn công XSS khác như Stored XSS, DOM Based XSS và Reflected XSS.


A4 – Broken Access Control

Tin tặc lợi dụng điểm yếu khi người dùng bị hạn chế kiểm soát truy cập để khai thác các dữ liệu và truy cập các chức năng một cách trái phép. Kiểm soát truy cập nhằm mục đích kiểm soát người dùng được ủy quyền làm và không được phép làm gì trong một ứng dụng. Để thiết lập quyền kiểm soát truy cập một cách hợp lý, ứng dụng phải đảm bảo rằng nó đang nghiêm túc thực hiện kiểm tra ủy quyền và xác thực hợp lệ để xác định người dùng được đặc quyền (thực tế là những người dùng internet ngẫu nhiên).


A5 – Security Masconfiguration

Do cấu hình an ninh framework, máy chủ, cơ sở dữ liệu và mã tùy chỉnh còn thiếu an toàn tại các tầng kiến trúc của web hiện tại, tin tặc hoàn toàn có thể khai thác tấn công và có quyền truy cập dữ liệu. Do đó, tất cả các tầng kiến trúc cần được cập nhật thường xuyên.


A6 – Sensitive Data Exposer

Khi các kiểm soát bảo mật như HTTPS không được thực hiện chính xác và để lại lỗ hổng cho tin tặc có thể ăn cắp thông tin thì việc tiếp xúc dữ liệu nhạy cảm hoàn toàn có thể xảy ra. Vì vậy các ứng dụng cần đảm bảo truy cập được xác thực và dữ liệu đã được mã hóa. Nếu không sẽ dẫn đến việc vi phạm quyền riêng tư ở quy mô lớn.


A7 – Insufficient Attack Protection

Để kiểm tra xem có bao nhiêu ứng dụng và API đang gặp khó khăn trong việc phát hiện, ngăn chặn và phản hồi lại các cuộc tấn công, các chuyên gia phải thực hiện phương pháp kiểm tra bảo mật, đánh giá độ nhạy cảm và sử dụng WAF hay RASP để tìm ra và sửa lỗi một cách nhanh chóng. Ta chỉ có thể dựa vào chức năng quét mã nguồn nhạy cảm để bảo vệ các ứng dụng khỏi các cuộc tấn công tinh vi. RASP và WAF cùng hoạt động trong ứng dụng giúp phát hiện và ngăn chặn các cuộc tấn công. RASP hiện là một công nghệ đang đươc chú ý và được nhiều nhà phát triển đang cân nhắc triển khai trong ứng dụng của họ. Tuy nhiên hiệu năng, tính năng và tính bảo mật của nó hiện vẫn chưa được đảm bảo. Do đó, tương tự như RASP, IAST được coi là giải pháp hữu hiệu hơn để thiết kế và tích hợp vào ứng dụng.


A8 – Cross-site Request Forgery (CSRF)

Tấn công CSRF sẽ yêu cầu người dùng cuối xác thực trên một ứng dụng web, sau đó tin tặc sẽ lấy cắp thông tin từ đây để giành quyền kiểm soát của người dùng. Tấn công CSRF xảy ra khi HTTP trong trình duyệt của người dùng bị giả mạo. Trình duyệt và ứng dụng sẽ bị đánh lừa rằng các yêu cầu này là hợp pháp và cho phép tin tặc đánh cắp thông tin một cách lặng lẽ.


A9 – Using Components with Known Vulnerabilities

Nguyên nhân của lỗi này là do việc sử dụng mà không kiểm duyệt các plug-in, ứng dụng,… đã tồn tại lỗ hổng (thường là mã nguồn mở công cộng). Tin tặc sẽ lợi dụng điều này để tấn công hệ thống thông qua phương pháp SQLi và XSS.


A10 – Underprotected APIs

API ngày càng trở nên phổ biến trong thế giới ứng dụng ngày nay bởi các ứng dụng thường được viết bằng JavaScript và sử dụng API để lấy dữ liệu. API đóng vai trò liên kết giữa khách hàng và ứng dụng dich vụ web. Tuy nhiên bản thân các API lại chứa các lỗ hổng khiến ứng dụng rất dễ bị tấn công. API cũng chứa nhiều giao thức phức tạp như SAP/XML, REST/JSON, RPC và GWT mà khi kiểm tra bảo mật sẽ không thành công. Điều này khiến API trở thành điểm mù quan trọng trong các tổ chức đang sử dụng chúng.


Nguồn: CyStack.net