OWASP là viết tắt của Open Web Application Security Project, một cộng đồng trực tuyến chuyên sản xuất các bài báo, phương pháp, tài liệu, công cụ và công nghệ trong lĩnh vực bảo mật ứng dụng web. Mỗi 3,4 năm hoặc hàng năm OWASP sẽ công bố danh sách các lỗ hổng bảo mật phổ biến và nguy hiểm thường gặp phải. Dưới đây là danh sách 10 lỗ hổng 2020
Top 10 OWASP là gì?
Top 10 OWASP là danh sách 10 lỗ hổng web phổ biến nhất. Nó cũng cho thấy rủi ro, tác động và biện pháp đối phó với các lỗ hổng này. Được cập nhật ba đến bốn năm một lần, danh sách lỗ hổng OWASP mới nhất đã được phát hành vào năm 2018.
Top 10 lỗ hổng hàng đầu của OWASP vào năm 2020
Injection
Injection cho phép kẻ tấn công bơm mã độc thông qua ứng dụng này đến ứng dụng khác. Các cuộc tấn công này khai thác hệ điều hành thông qua các lệnh gọi hệ thống, việc sử dụng các chương trình bên ngoài thông qua các lệnh shell, cũng như các lệnh gọi đến cơ sở dữ liệu phụ thông qua SQL (tức SQL Injection). Toàn bộ các tập lệnh có thể được viết bằng Perl, Python và các ngôn ngữ khác tấn công vào các ứng dụng được thiết kế kém bảo mật. Bất kỳ khi nào một ứng dụng sử dụng trình thông dịch thuộc bất kỳ loại nào thì đều có nguy cơ tạo ra một lỗ hổng bảo mật. Injection đã đứng top 1 trong OWASP vào năm 2018.
Broken Authentication
Broken authentication là một thuật ngữ bảo vệ cho một số lỗ hổng có những kẻ tấn công khai thác mạo danh người dùng để ngang nhiên truy cập vào hệ thống. Hiểu nôm na là mạo danh danh tính người dùng. Nói chung, broken authentication đề cập đến điểm yếu trong hai lĩnh vựa là session management (quản lý phiên) và quản lý thông tin xác thực. Cả hai đều được phân loại là broken authentication vì những kẻ tấn công sử dụng một trong hai cách sau để giả dạng người dùng: ID phiên bị xâm nhập hoặc thông tin đăng nhập bị đánh cắp.
Những kẻ tấn công sử dụng nhiều chiến lược khác nhau để tận dụng những điều yếu này, từ các cuộc tấn công nhồi nhét thông tin xác thực khổng lồ đến các âm mưu nhắm tới các mục tiêu cao nhằm đạt được quyền truy cập vào thông tin đăng nhập của một người cụ thể.
Sensitive Data Exposure
Việc để lộ dữ liệu nhạy cảm (Sensitive Data Exposure) xảy ra khi một ứng dụng, công ty hoặc tổ chức vô tình làm lỗ dữ liệu cá nhân. SDE (Sensitive Data Exposure) khác với vi phạm dữ liệu, ở chỗ kẻ tấn công sẽ truy cập và đánh cắp thông tin của bạn.
Việc lỗ dữ liệu nhạy cảm xảy ra do không bảo vệ đầy đủ cơ sở dữ liệu nơi thông tin được lưu trữ. Điều này có thể là kết quả của nhiều nguyên nhân như mã hoá yếu, không mã hoá, lỗi phần mềm hoặc khi ai đó tải nhầm dữ liệu lên cơ sở dữ liệu sai.
Các loại dữ liệu khác nhau có thể được hiển thị trong một số dữ liệu nhạy cảm. Số tài khoản ngân hàng, số thẻ tín dụng, dữ liệu chăm sóc sức khoẻ, mã thông boá phiên, địa chỉ nhà riêng, số điện thoại, ngày sinh và thông tin tài khoản người dùng như tên người dùng và mật khẩu là một số loại thông tin có thể bị lộ. Mặc dù việc lộ thông tin là do người dùng nhưng nó vẫn đứng trong danh sách OWASP.
XML External Entities (XXE)
XML External Entities ( còn được gọi là XXE) là lỗ hổng bảo mật cho phép kẻ tấn công can thiệp vào quá trình xử lý dữ liệu XML của ứng dụng. Nó thường cho phép kẻ tấn công xem các tệp trên hệ thống tệp của máy chủ ứng dụng và tương tác với bất kỳ hệ thống back-end hoặc bên ngoài thứ ba nào mà ứng dụng có thể truy cập được.
Trong một số tình huống, kẻ tấn công có thể leo thang cuộc tấn công XXE để xâm nhập máy chủ bên dưới hoặc cơ sở hạ tầng phụ trợ khác, bằng cách tận dụng lỗ hổng XXE để thực hiện các cuộc tấn công giả mạo yêu cầu phía máy chủ (SSRF).
Broken Access control
Kiểm soát truy cập thực thi chính sách sao cho người dùng không thể hành động ngoài quyền hạn của họ. Các lỗi thường dẫn đến tiết lộ thông tin trái phép, sửa đổi hoặc phá huỷ tất cả dữ liệu hoặc thực hiện các tính năng ngoài giới hạn của người dùng. Các lỗ hổng kiểm soát truy cập phổ biến bao gồm:
- Bypass kiểm tra quyền truy cập bằng cách sửa đổi URL, trạng thái ứng dụng nội bộ hoặc trang HTML hoặc đơn giản là sử dụng công cụ tấn công API tùy chỉnh.
- Cho phép thay đổi keychính thành bản ghi của người dùng khác, cho phép xem hoặc chỉnh sửa tài khoản của người khác.
- Nâng cao đặc quyền. Hoạt động với tư cách là người dùng mà không cần đăng nhập hoặc đóng vai trò là quản trị viên khi đăng nhập với tư cách người dùng.
- Thao tác siêu dữ liệu, chẳng hạn như phát lại hoặc giả mạo mã thông báo kiểm soát truy cập JSON Web Token (JWT) hoặc cookie hoặc field ẩn được thao tác để nâng cao đặc quyền hoặc lạm dụng việc vô hiệu hóa JWT.
- Cấu hình sai CORS cho phép truy cập API trái phép.
- Buộc duyệt đến các trang được xác thực với tư cách người dùng hoặc đến các trang đặc quyền với tư cách là người dùng chuẩn. Truy cập API bằng việc điều khiển truy cập bị thiếu đối với POST, PUT và DELETE.
Cấu hình bảo mật sai
Cấu hình bảo mật sau là các cài đặt bảo mật được định cấu hình không phù hợp hoặc không an toàn khiến hệ thống và dữ liệu của bạn gặp rủi ro. Về cơ bản, mọi thay đổi cấu hình đều được ghi chép chém, cài đặt mặc định hoặc sự cố kỹ thuật trên bất kỳ thành phần nào trong điểm cuối của bạn đều dẫn đến định cấu hình sai.
Cấu hình sai có thể xảy ra do vô số lý do. Cơ sở hạ tầng mạng hiện đại rất phức tạp, các tổ chức thường bỏ qua các cài đặt bảo mật quan trọng, bao gồm thiết bị mạng mới còn được cấu hình mặc định. Một nhà phát triển có thể viết các quy tắc tường lửa linh hoạt và tạo chia sẻ mạng để thuận tiện cho anh ta trong khi xây dựng phần mềm. Đôi khi, quản trị viên cho phép thay đổi cấu hình cho mục đích thử nghiệm hoạc khắc phục sự cố và quên trả về trạng thái ban đầu dẫn đến cấu hình sai. Một số lỗ hổng do cấu hình sai bảo mật phổ biến là bảo mật đăng nhập, quản lý tài khoản người dùng, chính sách mật khẩu, và do các giao thức cũ.
Cross Site Scripting (XSS)
Cross-site Scripting (XSS) là một cuộc tấn công chèn mã từ phía client. Kẻ tấn công nhằm mục đích thực thi các tập lệnh độc hại trong trình duyệt web của nạn nhân bằng cách đưa mã độc hại vào một trang web hoặc ứng dụng web hợp pháp. Cuộc tấn công thực sự xảy ra khi nạn nhân truy cập trang web hoặc ứng dụng web thực thi mã độc. Trang web hoặc ứng dụng web trở thành phương tiện để phát tán các tập lệnh độc hại đến trình duyệt của người dùng. Các mục tiêu dễ bị tổn thương thường được sử dụng để tấn công Cross-site Scripting là các diễn đàn, bảng tin và các trang web cho phép nhận xét.
Một trang web hoặc ứng dụng web sẽ dễ bị tấn công bởi XSS nếu nó sử dụng đầu vào của người dùng chưa được sàng lọc. Thông tin nhập vào của người dùng phải được trình duyệt phân tích cú pháp. Các cuộc tấn công XSS có thể xảy ra trong VBScript, ActiveX, Flash và thậm chí cả CSS. Tuy nhiên, chúng phổ biến nhất trong JavaScript, chủ yếu vì JavaScript là nền tảng cho hầu hết các trải nghiệm duyệt web. Hầu như khi mọi người tìm hiểu về OWASP thì đều biết đến lỗ hổng này rồi.
Insecure Deserialization
Deserialization là quá trình khôi phục luồng bytes này thành một bản sao đầy đủ chức năng của đối tượng ban đầu, ở trạng thái chính xác khi nó được tuần tự hoá. Sau đó, logic của web có thể tương tác với đối tượng này, giống như bất kỳ đối tượng nào khác.
Serialization (tuần tự hoá) là quá trình chuyển đổi các cấu trúc dữ liệu phức tạp, chẳng hạn như các đối tượng và trường của chúng, thành một định dạng “phẳng hơn” có thể được gửi và nhận dưới dạng một dòng byte tuần tự. Việc sắp xếp thứ tự dữ liệu nằm mục đích:
- Ghi dữ liệu phức tạp vào bộ nhớ liên quá trình, tệp hoặc cơ sở dữ liệu.
- Gửi dữ liệu phức tạp, chẳng hạn như qua mạng, giữa các thành phần khác nhau của ứng dụng hoặc trong lệnh gọi API.
Điều quan trọng, khi tuần tự hóa một đối tượng, trạng thái của nó cũng được duy trì. Nói cách khác, các thuộc tính của đối tượng được giữ nguyên, cùng với các giá trị được chỉ định của chúng.
Sử dụng các thành phần có lỗ hổng đã biết
Các lỗ hổng đã biết là các lỗ hổng đã được phát hiện trong các thành phần mã nguồn mở và được xuất bản trong NVD, cố vấn bảo mật hoặc trình theo dõi vấn đề. Kể từ thời điểm xuất bản, một lỗ hổng bảo mật có thể bị khai thác bởi những tin tặc tìm thấy tài liệu liên quan đến chúng. Theo OWASP, vấn đề sử dụng các thành phần có lỗ hổng bảo mật đang rất phổ biến. Hơn nữa, việc sử dụng các thành phần mã nguồn mở phổ biến đến mức nhiều lãnh đạo phát triển thậm chí không biết họ đã làm được cái gì.
Ghi nhật ký và giám sát không đầy đủ
Khi một tổ chức không có đủ khả năng ghi nhật ký, phát hiện, giám sát và phản hồi, những kẻ tấn công sẽ dựa vào những điểm yếu này để đạt được mục tiêu của chúng mà không bị phát hiện. Việc thiếu các phương pháp này bao gồm những điều như:
- Các sự kiện có thể kiểm tra, chẳng hạn như đăng nhập, đăng nhập không thành công và giao dịch giá trị cao không được ghi lại.
- Cảnh báo và lỗi tạo ra thông báo nhật ký không đầy đủ hoặc không rõ ràng.
- Nhật ký của các ứng dụng và API không được giám sát hoạt động đáng ngờ.
- Nhật ký chỉ được lưu trữ cục bộ.
- Các ngưỡng cảnh báo thích hợp và quy trình báo cáo phản hồi không đúng vị trí hoặc không hiệu quả.
- Kiểm tra thâm nhập và quét bằng các công cụ DAST không kích hoạt cảnh báo.
- Các ứng dụng không thể phát hiện, báo cáo hoặc cảnh báo về các cuộc tấn công đang hoạt động trong thời gian thực hoặc gần thời gian thực.
Trên đây là danh sách Top 10 lỗ hổng OWASP trong năm 2020.