Top 10 lỗ hổng website theo chuẩn owasp năm 2022

We’ve updated our privacy policy so that we are compliant with changing global privacy regulations and to provide you with insight into the limited ways in which we use your data.

You can read the details below. By accepting, you agree to the updated privacy policy.

Thank you!

View updated privacy policy

We've encountered a problem, please try again.

Nội dung bài viết

Video học lập trình mỗi ngày

Nhắc đến Owasp hay Owasp top 10 thì có thể nhiều bạn đang đọc ở đây không hiểu gì nhiều, hay nói cách khác phũ hơn đó là chưa bao giờ nghe những cụm từ này. Bài này sẽ giới thiệu tổng quan, và nên đọc trước lúc đi ngủ để có hiệu quả hơn. Chứ đang làm việc hay đang tập trung lướt facebook thì khó có thể nhập tâm được. Chính vì vậy để đạt hiệu quả cáo thì nên đọc trước khi đi ngủ nhé mấy bạn dev.

Các bạn cũng có thể đọc tài liệu gốc của cộng đồng ở đây, hay có thể đọc nhiều bản đã được dịch sang các tiếng khác như Pháp, Ý, Trung Quốc ở đây... Ở trong tài liệu gốc sẽ có nhiều mục và tôi sẽ tóm lượt lại những mục chính mà tôi cần hiểu và cũng đủ để các bạn hiểu như tôi. Nhớ nhé, đọc chậm và kỹ, trước khi đi ngủ.

Top 10 OWASP là gì?

OWASP Top 10 là tiêu chuẩn tham chiếu cho các rủi ro bảo mật ứng dụng web quan trọng nhất. Việc chấp nhận theo dõi OWASP Top 10 có lẽ là bước đầu tiên hiệu quả và tiết kiệm nhất để thay đổi văn hóa phát triển phần mềm của bạn hay công ty của bạn, tập trung vào việc tạo ra những cơ chế bảo mật cho ứng dụng - Theo OWASP.

Để tôi giải thích một chút, vì theo nguyên văn đôi lúc dịch qua Tiếng Việt nó trật ý nghĩa. Đầu tiên khi quản lý một hệ thống (web + app) điều quan trọng là phải luôn theo dõi các rủi ro và lỗ hổng bảo mật quan trọng nhất đối với bất kỳ doanh nghiệp nào liên quan đến internet. Cần theo dõi hành vi và gửi log error quan trọng như thế nào thì bài trước đã nói khá rõ. Chính vì nó quyết định nhiều yếu tố quan trong nên top 10 OWASP 2020 là một điểm khởi đầu tốt để giúp chúng ta những lập trình viên nhận thức được các mối đe dọa từ mọi thành phần.

OWASP là viết tắt của Open Web Application Security Project, là một cộng đồng trực tuyến cung cấp các bài viết, 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.

The Open Web Application Security Project, hay còn gọi tắt là OWASP. là một tổ chức phi lợi nhuận quốc tế chuyên về bảo mật ứng dụng web. Một trong những nguyên tắc cốt lõi của OWASP là tất cả các tài liệu của họ đều có sẵn miễn phí và dễ dàng truy cập trên trang web của họ, giúp mọi người có thể cải thiện tính bảo mật của ứng dụng web của họ. Các tài liệu họ cung cấp bao gồm tài liệu, công cụ, video và diễn đàn. Có lẽ dự án nổi tiếng nhất của họ là OWASP Top 10 như đã nói ở trên. Sau đây là 10 lỗ hổng hàng đầu của OWASP vào năm 2021 là:

Injection - Chèn kí hiệu vào sql là phổ biến

Broken Authentication - Xác thực không thành công và quản lý phiên

Sensitive Data Exposure - Rò rỉ thông tin nhạy cảm

XML External Entities (XXE) - Tấn công chèn thực thể bên ngoài XML (XXE)

Broken Access Control - Kiểm soát truy cập

Security Misconfiguration: - Cấu hình sai quy trình bảo mật

Cross-Site Scripting XSS - Tập lệnh trên nhiều trang web (XSS)

Insecure Deserialization - Không an toàn

Using Components with Known Vulnerabilities - Sử dụng các Components đã có lịch sử bảo mật rò rỉ

Insufficient Logging & Monitoring - Ghi nhật ký và giám sát không đầy đủ

Trên đó là Owasp top 10 đưa ra cho chúng ta tham chiếu và ưu tiên phòng chống bảo mật ở level nào là cần thiết. Các bạn hãy chú ý, đến năm 2021 Injection nó vẫn nằm top 1. Quả là ghê gớm. Nói sơ qua, Injection xuất hiện vào năm 2003. Cụ thể hơn và gần hơn đó chính là SQL Injection.

SQL Injection là gì?

Thật sự là bài viết đã quá đủ, thế nhưng nhiệm vụ của tôi là sẽ làm rõ cho các bạn 10 lỗ hổng trên một cách rõ ràng và quan trọng là cách phòng chống nó ra sao? Mọi điều sẽ được làm sáng tỏ ở bai viết tiếp theo. Ngoài ra, quan trọng là chúng tôi đã nói rõ hướng đi làm thế nào để hiện thị lỗi javascript khi người dùng đang thao tác ở bài viết trước, và khi chúng ta đã check được error javascript rồi thì chuyển dữ liệu lỗi đó về Server bằng cách nào thì tất cả có ở phần trước. Cố gắng đọc đi, được nhiều nhưng sẽ không mất thứ gì.

Chào! anonystick!

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 lỗ hổng website theo chuẩn owasp năm 2022

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.

Bài viết đạt: 5/5 - (100 bình chọn)