Lỗ Hổng Bảo Mật Là Gì? Top 10 Lỗ Hổng Bảo Mật Và Cách Phòng Tránh

Mục lục nội dung

Toggle
  • Lỗ hổng bảo mật là gì?
  • Lỗ hổng bảo mật gây hậu quả gì?
    • Những hệ thống thường có lỗ hổng bảo mật
  • Nguyên nhân gây ra lỗ hổng bảo mật
  • Những giải pháp phòng ngừa lỗ hổng bảo mật
  • Các loại lỗ hổng bảo mật
    • Database Injection – Chèn cơ sở dữ liệu
    • Broken Authentication – Xác thực bị hỏng
    • Sensitive Data Exposure – Phơi nhiễm dữ liệu nhạy cảm
    • XML External Entities (XEE) – Các thực thể bên ngoài XML
    • Broken Access Control – Kiểm soát truy cập bị hỏng
    • Security Misconfiguration – Cấu hình sai bảo mật
    • Cross-site Scripting (XSS) – Tập lệnh trên nhiều trang web
    • Insecure Deserialization – Hủy đăng ký không an toàn
    • Using Components with Known Vulnerabilities – Sử dụng các thành phần có lỗ hổng đã biết
    • Insufficient Logging and Monitoring – Ghi nhật ký và giám sát không đầy đủ
5/5 - (6 bình chọn)

Lỗ hổng bảo mật là gì? Top 10 lỗ hổng bảo mật và cách phòng tránh

Lỗ hổng bảo mật là gì?

Lỗ hổng bảo mật (tiếng Anh: Vulnerability, hoặc Security Hole) là điểm yếu an ninh trong một hệ thống hoặc ứng dụng máy tính, lỗ hổng này cho phép kẻ xấu truy cập trái phép vào hệ thống. Ví dụ: một trình duyệt web nếu có lỗ hổng bảo mật làm trình duyệt bị treo hoặc cấp cho người khác quyền truy cập vào các tệp trên máy tính của bạn khi bạn truy cập trang web của họ.

Để giúp phát hiện lỗ hổng, các công cụ quét lỗ hổng xác định vị trí điểm yếu trong mạng hoặc chương trình. Các công cụ này là các chương trình máy tính thu thập thông tin được kẻ tấn công sử dụng để truy cập bất hợp pháp hoặc trái phép vào mạng. Thông tin có thể xác định máy tính nào hiện có và hệ điều hành chúng đang chạy. Một khi thông tin đó được biết đến, thì các hoạt động khai thác đã biết hoặc các phát hiện lỗ hổng bảo mật gần đây có thể được thực hiện trên hệ thống được nhắm mục tiêu.

Khi một lỗ hổng được phát hiện trong phần mềm, nhà phát triển của nó phải cập nhật hoặc vá mã không an toàn. Tuy nhiên, nếu chương trình không còn được hỗ trợ bởi nhà phát triển, nó không thể được sửa và vẫn dễ bị tấn công. Nếu lỗ hổng bảo mật xảy ra với một mạng, việc sửa chữa nó sẽ tùy thuộc vào quản trị viên mạng.

Lỗ hổng bảo mật gây hậu quả gì?

Đối với mỗi loại lỗ hổng bảo mật thì sẽ gây ra mức độ ảnh hưởng khác nhau. Chúng có thể gây ảnh hưởng tới các chất lượng của mỗi dịch vụ được cung cấp, chúng cũng có thể gây ra những ảnh hưởng nặng nề tới tất cả hệ thống, gây ra tình trạng ngưng trệ trong nhiều dịch vụ…

Lỗ hổng bảo mật là gì? Top 10 lỗ hổng bảo mật và cách phòng tránh

Các mức độ gây hại từ lỗ hổng bảo mật

Hiện nay, có 3 mức độ gây hại từ lỗ hổng bảo mật:

Lỗ hổng bảo mật loại C: Kẻ xấu có thể tấn công theo dạng “Từ chối dịch vụ”, có nghĩa là làm cho hệ thống đột nhiên bị ngưng trệ, bị gián đoạn, tạo ra sự khó chịu cho người dùng khi dùng dịch vụ của hệ thống. Loại lỗ hổng này không phá hỏng các dữ liệu trong hệ thống và không phá hỏng quyền truy cập vào các hệ thống.

Lỗ hổng bảo mật loại B: Cho phép người dùng có thể dễ dàng truy cập vào trong hệ thống mà không cần phải xác mình về tính hợp lệ hay không, từ đó khiến cho thông tin của người dùng, của hệ thống bị lộ ra.

Lỗ hổng bảo mật loại A: Loại lỗ hổng này có thể cho phép những người dùng ở ngoài hệ thống vẫn có thể thực hiện việc truy cập vào trong hệ thống một cách không hợp pháp. Loại này gây ra tình trạng ảnh hưởng nghiêm trọng hơn so với hai loại kia, nó có thể phá hỏng hết toàn bộ hệ thống.

Những hệ thống thường có lỗ hổng bảo mật

Lỗ hổng bảo mật là gì? Top 10 lỗ hổng bảo mật và cách phòng tránh

Những nơi thường xuất hiện lỗ hổng bảo mật cụ thể như sau:

  • Những website, các ứng dụng trên web hoặc là mobile.
  • Trong những thiết bị IoT.
  • Trong các hệ điều hành phổ biến: Windows, Linux, iOS,…
  • Trong những phần mềm trên máy tính và điện thoại
  • Trong các API, trong các mã nguồn.
  • Trong những giao thức mã hóa hay truyền tải…
  • Trong những thiết bị mạng: Router,…

Nguyên nhân gây ra lỗ hổng bảo mật

Sự phức tạp của hệ thốngTính chất phổ biến của các yếu tố như mã nguồnThiêt bị có nhiều kết nối truy cậpKhả năng quản lý đối với các mật khẩu trong hệ thống kémHệ điều hành bị lỗiBị cài phần mềm theo dõi, gián điệp

Những giải pháp phòng ngừa lỗ hổng bảo mật

Có một số phương án để hạn chế lỗ hổng bảo mật:

  • Áp dụng kiến thức về bảo mật thông tin trong quá trình lập trình ra các website có tính bảo mật cao.
  • Áp dụng những giao thức mã hóa và giao thức trong bảo mật một cách hiệu quả.
  • Sử dụng công cụ tìm các lỗ hổng trong hệ thống.
  • Tìm kiếm lỗ hổng thủ công.

Các loại lỗ hổng bảo mật

Lỗ hổng bảo mật là gì? Top 10 lỗ hổng bảo mật và cách phòng tránh

Dưới đây là top 10 loại lỗ hổng bảo mật phổ biến nhất.

  1. Database Injection – Chèn cơ sở dữ liệu
  2. Broken Authentication – Xác thực bị hỏng
  3. Sensitive Data Exposure – Phơi nhiễm dữ liệu nhạy cảm
  4. XML External Entities (XEE) – Các thực thể bên ngoài XML
  5. Broken Access Control – Kiểm soát truy cập bị hỏng
  6. Security Misconfiguration – Cấu hình sai bảo mật
  7. Cross-site Scripting (XSS) – Tập lệnh trên nhiều trang web
  8. Insecure Deserialization – Hủy đăng ký không an toàn
  9. Using Components with Known Vulnerabilities – Sử dụng các thành phần có lỗ hổng đã biết
  10. Insufficient Logging and Monitoring – Ghi nhật ký và giám sát không đầy đủ

Database Injection – Chèn cơ sở dữ liệu

Trong trường hợp gửi các phần dữ liệu không đáng tin cậy đến trình thông dịch như một phần của lệnh thông qua bất kỳ khu vực nào nhận đầu vào của người dùng, tức là đầu vào biểu mẫu hoặc bất kỳ khu vực gửi dữ liệu nào khác, lỗi chèn sẽ xảy ra. Các truy vấn độc hại của kẻ tấn công có thể đánh lừa trình thông dịch thực hiện các lệnh có thể hiển thị dữ liệu bí mật mà người dùng không có quyền xem xét. Ví dụ: trong một cuộc tấn công SQL injection, khi đầu vào biểu mẫu không được làm sạch đúng cách, kẻ tấn công có thể vào cơ sở dữ liệu SQL và truy cập nội dung của nó mà không được phép, chỉ bằng cách nhập mã cơ sở dữ liệu SQL độc hại vào một biểu mẫu đang mong đợi một bản rõ. Bất kỳ loại trường nào lấy dữ liệu đầu vào của người dùng đều có thể chèn được, tức là các tham số, biến môi trường, tất cả các dịch vụ web, v.v.

Ứng dụng dễ bị tấn công chèn ép khi dữ liệu do người dùng cung cấp không được làm sạch và xác thực bằng cách sử dụng các truy vấn động mà không có tính năng thoát nhận biết ngữ cảnh và sử dụng trực tiếp dữ liệu thù địch. Các lỗi tiêm có thể dễ dàng được phát hiện thông qua việc kiểm tra mã và bằng cách sử dụng các công cụ tự động như máy quét và máy làm mờ. Để ngăn chặn các cuộc tấn công chèn ép, có một số biện pháp có thể được thực hiện như tách dữ liệu khỏi các lệnh và truy vấn, sử dụng API an toàn cung cấp giao diện được tham số hóa, sử dụng xác thực đầu vào phía máy chủ “danh sách trắng” thông qua các công cụ như Snort, thoát các ký tự đặc biệt bằng cách sử dụng cú pháp thoát cụ thể, v.v.

Một cuộc tấn công chèn ép có thể dẫn đến mất mát dữ liệu lớn, tiết lộ thông tin bí mật, từ chối quyền truy cập và thậm chí nó có thể dẫn đến việc tiếp quản toàn bộ ứng dụng. Một số điều khiển SQL như LIMIT có thể được sử dụng để kiểm soát lượng lớn dữ liệu bị mất trong trường hợp bị tấn công. Một số kiểu tấn công tiêm là tấn công tiêm SQL, OS, NoSQL, LDAP.

Broken Authentication – Xác thực bị hỏng

Những kẻ tấn công có thể truy cập tài khoản người dùng và thậm chí có thể xâm nhập toàn bộ hệ thống máy chủ thông qua tài khoản quản trị, sử dụng các lỗ hổng trong hệ thống xác thực. Các lỗ hổng xác thực cho phép kẻ tấn công xâm phạm mật khẩu, mã thông báo phiên, khóa xác thực và có thể bị xâu chuỗi với các cuộc tấn công khác có thể dẫn đến truy cập trái phép bất kỳ tài khoản hoặc phiên người dùng nào khác tạm thời và trong một số trường hợp là vĩnh viễn. Giả sử một người dùng có một danh sách từ hoặc một từ điển gồm hàng triệu tên người dùng và mật khẩu hợp lệ có được trong một lần vi phạm. Anh ta có thể sử dụng từng cái một trong thời gian cực kỳ ngắn bằng cách sử dụng các công cụ và tập lệnh tự động trên hệ thống đăng nhập để xem có ai làm việc hay không. Việc thực hiện kém quản lý danh tính và kiểm soát truy cập dẫn đến các lỗ hổng như xác thực bị hỏng.

Ứng dụng dễ bị tấn công xác thực khi nó cho phép thử các tên người dùng và mật khẩu khác nhau, cho phép tấn công từ điển hoặc tấn công vũ phu mà không có bất kỳ chiến lược phòng vệ nào, sử dụng mật khẩu mặc định, dễ dàng hoặc mật khẩu bị rò rỉ trong bất kỳ vi phạm nào, làm lộ ID phiên trong URL, sử dụng chương trình khôi phục mật khẩu kém, sử dụng một mẫu cookie. Xác thực bị hỏng có thể được khai thác dễ dàng bằng cách sử dụng các công cụ đơn giản cho các cuộc tấn công brute-forcing và tấn công từ điển (dictionary attacks) với một từ điển tốt. Các loại tấn công này có thể được ngăn chặn bằng cách sử dụng hệ thống xác thực đa yếu tố, bằng cách thực hiện kiểm tra mật khẩu yếu bằng cách chạy mật khẩu thông qua cơ sở dữ liệu của mật khẩu xấu, bằng cách không sử dụng thông tin đăng nhập mặc định, bằng cách căn chỉnh chính sách độ phức tạp của mật khẩu, bằng cách sử dụng phía máy chủ tốt trình quản lý phiên tạo ID phiên ngẫu nhiên mới sau khi đăng nhập, v.v.

Lỗ hổng xác thực bị hỏng có thể dẫn đến việc xâm nhập một vài tài khoản người dùng và tài khoản quản trị, đó là tất cả những gì kẻ tấn công cần để xâm nhập hệ thống. Những kiểu tấn công này dẫn đến đánh cắp danh tính, tiết lộ thông tin tuyệt mật. Các cuộc tấn công bao gồm các cuộc tấn công từ điển, brute-cưỡng chế, chiếm quyền điều khiển phiên và các cuộc tấn công quản lý phiên.

Sensitive Data Exposure – Phơi nhiễm dữ liệu nhạy cảm

Đôi khi các ứng dụng web không bảo vệ dữ liệu và thông tin nhạy cảm như mật khẩu, thông tin đăng nhập cơ sở dữ liệu, v.v. Kẻ tấn công có thể dễ dàng đánh cắp hoặc sửa đổi thông tin đăng nhập được bảo vệ yếu này và sử dụng nó cho các mục đích bất hợp pháp. Dữ liệu nhạy cảm phải được mã hóa khi ở chế độ nghỉ hoặc khi đang truyền và có thêm một lớp bảo mật nếu không những kẻ tấn công có thể lấy cắp nó. Những kẻ tấn công có thể tiếp cận dữ liệu nhạy cảm bị lộ và lấy cắp thông tin đăng nhập cơ sở dữ liệu và người dùng đã băm hoặc xóa văn bản đã được băm hoặc xóa khỏi máy chủ hoặc trình duyệt web. Ví dụ: nếu cơ sở dữ liệu mật khẩu sử dụng các hàm băm không chuẩn hoặc đơn giản để lưu trữ mật khẩu, thì một lỗ hổng tải lên tệp có thể cho phép kẻ tấn công truy xuất cơ sở dữ liệu mật khẩu, điều này sẽ dẫn đến việc hiển thị tất cả các mật khẩu với một bảng cầu vồng gồm các hàm băm được tính toán trước.

Lỗ hổng chính không chỉ là dữ liệu không được mã hóa, ngay cả khi nó được mã hóa, mà việc tạo khóa yếu, thuật toán băm yếu, sử dụng mật mã yếu cũng có thể dẫn đến các loại tấn công phổ biến nhất này. Để ngăn chặn những kiểu tấn công này, trước tiên, hãy phân loại loại dữ liệu nào có thể được coi là nhạy cảm theo luật bảo mật và áp dụng các biện pháp kiểm soát theo phân loại. Cố gắng không lưu trữ bất kỳ dữ liệu phân loại nào mà bạn không cần, hãy rửa sạch ngay khi sử dụng. Đối với dữ liệu đang truyền, hãy mã hóa nó bằng các giao thức an toàn, chẳng hạn như TLS với mật mã PFS, v.v.

Các loại lỗ hổng này có thể dẫn đến việc lộ thông tin nhạy cảm cao như thông tin xác thực thẻ tín dụng, hồ sơ sức khỏe, mật khẩu và bất kỳ dữ liệu cá nhân nào khác có thể dẫn đến hành vi trộm cắp danh tính và gian lận ngân hàng, v.v.

XML External Entities (XEE) – Các thực thể bên ngoài XML

Bộ xử lý XML được định cấu hình kém sẽ xử lý các tham chiếu thực thể bên ngoài bên trong tài liệu XML. Các thực thể bên ngoài này có thể được sử dụng để truy xuất dữ liệu của tệp nội bộ như tệp / etc / passwd hoặc để thực hiện các tác vụ độc hại khác. Các bộ xử lý XML dễ bị tổn thương có thể dễ dàng bị khai thác nếu kẻ tấn công có thể tải lên tài liệu XML hoặc bao gồm XML, v.v. Các thực thể XML dễ bị tổn thương này có thể được phát hiện bằng cách sử dụng các công cụ SAST và DAST hoặc theo cách thủ công bằng cách kiểm tra các cấu hình và phụ thuộc.

Ứng dụng web dễ bị tấn công XEE do nhiều lý do như nếu ứng dụng chấp nhận đầu vào XML trực tiếp từ các nguồn không đáng tin cậy, Định nghĩa loại tài liệu (DTD) trên ứng dụng được bật, ứng dụng sử dụng SAML để xử lý danh tính vì SAML sử dụng XML để nhận dạng chèn, v.v. Các cuộc tấn công XEE có thể được giảm thiểu bằng cách tránh tuần tự hóa dữ liệu nhạy cảm, sử dụng các định dạng dữ liệu ít phức tạp hơn như JSON, vá các bộ xử lý XML mà ứng dụng đang sử dụng và thậm chí cả các thư viện, vô hiệu hóa DTD trong tất cả các trình phân tích cú pháp XML, xác thực XML chức năng tải tệp lên bằng cách sử dụng xác minh XSD, v.v.

Ứng dụng dễ bị tấn công bởi các kiểu tấn công này có thể dẫn đến tấn công DOS, tấn công Billion Laughs, quét hệ thống nội bộ, quét cổng nội bộ, thực hiện lệnh từ xa dẫn đến ảnh hưởng đến tất cả dữ liệu ứng dụng.

Broken Access Control – Kiểm soát truy cập bị hỏng

Kiểm soát truy cập cấp cho người dùng đặc quyền để thực hiện các tác vụ cụ thể. Lỗ hổng kiểm soát truy cập bị hỏng diễn ra khi người dùng không bị giới hạn đúng mức về các tác vụ mà họ có thể thực hiện. Những kẻ tấn công có thể khai thác lỗ hổng này để truy cập vào chức năng hoặc thông tin trái phép. Giả sử một ứng dụng web cho phép người dùng thay đổi tài khoản mà họ đã đăng nhập chỉ bằng cách thay đổi URL thành tài khoản của người dùng khác mà không cần xác minh thêm. Khai thác lỗ hổng kiểm soát truy cập là một cuộc tấn công thường xuyên của bất kỳ kẻ tấn công nào, lỗ hổng này có thể được tìm thấy theo cách thủ công cũng như bằng cách sử dụng các công cụ SAFT và DAFT. Các lỗ hổng này tồn tại do thiếu tính năng kiểm tra và phát hiện tự động của các ứng dụng web mặc dù cách tốt nhất để tìm ra chúng là thực hiện thủ công.

Các lỗ hổng bảo mật chứa các đặc quyền leo thang, tức là hoạt động với tư cách là người dùng mà bạn không phải là người dùng hoặc đóng vai trò là quản trị viên trong khi bạn là người dùng, bỏ qua kiểm tra kiểm soát truy cập chỉ bằng cách sửa đổi URL hoặc thay đổi trạng thái của ứng dụng, thao tác siêu dữ liệu, cho phép thay đổi khóa chính thành khóa khác khóa chính của người dùng, v.v. Để ngăn chặn các loại tấn công này, cơ chế kiểm soát truy cập phải được triển khai trong mã phía máy chủ nơi những kẻ tấn công không thể sửa đổi các kiểm soát truy cập. Phải đảm bảo việc thực thi các giới hạn kinh doanh ứng dụng duy nhất theo mô hình miền, vô hiệu hóa danh sách máy chủ, cảnh báo cho quản trị viên về những lần đăng nhập không thành công lặp lại, sự vô hiệu của mã thông báo JWT sau khi đăng xuất phải được đảm bảo để giảm thiểu các loại tấn công này.

Những kẻ tấn công có thể hoạt động như một người dùng hoặc quản trị viên khác sử dụng lỗ hổng này để thực hiện các tác vụ độc hại như tạo, xóa và sửa đổi bản ghi, v.v. Có thể xảy ra mất mát dữ liệu hàng loạt nếu dữ liệu không được bảo mật ngay cả sau khi vi phạm.

Security Misconfiguration – Cấu hình sai bảo mật

Lỗ hổng phổ biến nhất là định cấu hình sai bảo mật. Lý do chính cho lỗ hổng là việc sử dụng cấu hình mặc định, cấu hình không đầy đủ, cấu hình Adhoc, tiêu đề HTTP được định cấu hình kém và thông báo lỗi dài dòng chứa nhiều thông tin hơn người dùng thực sự nên biết. Ở bất kỳ cấp độ nào của ứng dụng web, cấu hình sai bảo mật có thể xảy ra, chẳng hạn như cơ sở dữ liệu, máy chủ web, máy chủ ứng dụng, dịch vụ mạng, v.v. Kẻ tấn công có thể khai thác các hệ thống chưa được vá hoặc truy cập các tệp và thư mục không được bảo vệ để có quyền lưu giữ trái phép trên hệ thống. Ví dụ, một ứng dụng quá dài dòng các thông báo lỗi giúp kẻ tấn công biết được các lỗ hổng trong hệ thống ứng dụng và cách thức hoạt động của nó. Các công cụ và máy quét tự động có thể được sử dụng để phát hiện các loại lỗi bảo mật này.

Một ứng dụng web chứa lỗ hổng loại này nếu nó thiếu các biện pháp tăng cường bảo mật trên bất kỳ phần nào của ứng dụng, các cổng không cần thiết đang mở hoặc nó bật các tính năng không cần thiết, mật khẩu mặc định được sử dụng, xử lý lỗi tiết lộ các lỗi thông tin cho kẻ tấn công, nó đang sử dụng phần mềm bảo mật chưa được vá hoặc lỗi thời, v.v. Có thể ngăn chặn bằng cách loại bỏ các tính năng không cần thiết của mã, tức là một nền tảng tối thiểu không có các tính năng, tài liệu không cần thiết, v.v., cho phép tác vụ cập nhật và vá các lỗ hổng bảo mật như một phần của quy trình quản lý bản vá, sử dụng quy trình để xác minh tính hiệu quả của các biện pháp bảo mật đã thực hiện, sử dụng quy trình làm cứng có thể lặp lại để giúp dễ dàng triển khai một môi trường khác đã được khóa đúng cách.

Các loại lỗ hổng hoặc lỗ hổng này cho phép kẻ tấn công truy cập trái phép vào dữ liệu hệ thống, dẫn đến hệ thống bị xâm phạm hoàn toàn.

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

Các lỗ hổng XSS xảy ra tại thời điểm ứng dụng web kết hợp dữ liệu không đáng tin cậy trong một trang web mới mà không có sự chấp thuận hợp pháp hoặc thoát hoặc làm mới trang hiện tại bằng dữ liệu do khách hàng cung cấp, sử dụng API trình duyệt có thể tạo HTML hoặc JavaScript. Lỗi XSS xảy ra trong trường hợp trang web cho phép người dùng thêm mã tùy chỉnh vào đường dẫn URL mà người dùng khác có thể nhìn thấy. Những lỗ hổng này được sử dụng để chạy mã JavaScript độc hại trên trình duyệt của mục tiêu. Giả sử, kẻ tấn công có thể gửi một liên kết đến nạn nhân có chứa liên kết đến bất kỳ trang web nào của công ty. Kết nối này có thể có một số mã JavaScript độc hại được nhúng trong đó, Trong trường hợp trang web của ngân hàng không được bảo mật thích hợp trước các cuộc tấn công XSS, khi nhấp vào liên kết, mã độc hại sẽ được chạy trên trình duyệt của nạn nhân.

Cross-Site Scripting là một lỗ hổng bảo mật có trong hầu hết các ứng dụng web. Một ứng dụng dễ bị tấn công bởi XSS nếu ứng dụng lưu trữ thông tin đầu vào của người dùng chưa được kiểm soát mà người dùng khác có thể nhìn thấy bằng cách sử dụng cấu trúc JavaScript, ứng dụng một trang và API kết hợp mạnh mẽ thông tin có thể kiểm soát của kẻ tấn công vào một trang bất lực trước DOM XSS. Các cuộc tấn công XSS có thể được giảm thiểu bằng cách sử dụng các khuôn khổ thoát và làm sạch đầu vào XSS về bản chất như React JS, v.v., tìm hiểu các hạn chế của các khuôn khổ và che chúng bằng cách sử dụng các trường hợp của riêng mình, thoát khỏi dữ liệu HTML không cần thiết và không đáng tin cậy ở mọi nơi, tức là trong các thuộc tính HTML, URI, Javascript, v.v., sử dụng mã hóa theo ngữ cảnh trong trường hợp sửa đổi tài liệu ở phía máy khách, v.v.

Các cuộc tấn công dựa trên XSS có ba loại, tức là XSS được phản ánh, XSS DOM và XSS được lưu trữ. Tất cả các kiểu tấn công này đều có tác động đáng kể nhưng trong trường hợp XSS được lưu trữ, tác động thậm chí còn lớn hơn, tức là ăn cắp thông tin đăng nhập, gửi phần mềm độc hại cho nạn nhân, v.v.

Insecure Deserialization – Hủy đăng ký không an toàn

Tuần tự hóa dữ liệu có nghĩa là lấy các đối tượng và chuyển đổi chúng sang bất kỳ định dạng nào để dữ liệu này có thể được sử dụng cho các mục đích khác sau này, trong khi giải mã hóa dữ liệu có nghĩa là ngược lại với điều đó. Deserialization là giải nén dữ liệu được tuần tự hóa này để sử dụng các ứng dụng. Giải nén không an toàn có nghĩa là ủ dữ liệu đã được tuần tự hóa ngay trước đó sắp được giải nén hoặc giải nén. Quá trình giải mã không an toàn dẫn đến việc thực thi mã từ xa và nó được sử dụng để thực hiện các tác vụ khác cho các mục đích xấu như leo thang đặc quyền, tấn công tiêm, tấn công phát lại, v.v. vấn đề. Khai thác deserialization hơi khó khăn vì việc khai thác sẽ không hoạt động nếu không có một số thay đổi thủ công.

Khi ứng dụng giải mã các đối tượng độc hại do thực thể tấn công cung cấp. Điều này có thể dẫn đến hai loại tấn công tức là các cuộc tấn công liên quan đến cấu trúc dữ liệu và các đối tượng trong đó kẻ tấn công sửa đổi logic ứng dụng hoặc thực thi mã từ xa và các cuộc tấn công giả mạo dữ liệu điển hình trong đó cấu trúc dữ liệu hiện có được sử dụng với nội dung đã sửa đổi, ví dụ các cuộc tấn công liên quan đến kiểm soát truy cập. Serialization có thể được sử dụng trong giao tiếp quy trình từ xa (RPC) hoặc giao tiếp giữa các quy trình (IPC), bộ nhớ đệm dữ liệu, dịch vụ web, máy chủ lưu trữ cơ sở dữ liệu, hệ thống tệp, mã thông báo xác thực API, cookie HTML, tham số biểu mẫu HTML, v.v. có thể được giảm thiểu bằng cách không sử dụng các đối tượng được tuần tự hóa từ các nguồn không đáng tin cậy, thực hiện kiểm tra tính toàn vẹn, cô lập mã chạy trong môi trường đặc quyền thấp,

Using Components with Known Vulnerabilities – Sử dụng các thành phần có lỗ hổng đã biết

Các thành phần khác nhau như thư viện, khuôn khổ và mô-đun phần mềm được hầu hết các nhà phát triển sử dụng trong ứng dụng web. Các thư viện này giúp nhà phát triển tránh các công việc không cần thiết và cung cấp các chức năng cần thiết. Những kẻ tấn công tìm kiếm các lỗ hổng và lỗ hổng trong các thành phần này để điều phối một cuộc tấn công. Trong trường hợp tìm thấy một lỗ hổng bảo mật trong một thành phần có thể làm cho tất cả các trang web sử dụng cùng một thành phần dễ bị tấn công. Việc khai thác các lỗ hổng này đã có sẵn trong khi việc viết một bản khai thác tùy chỉnh từ đầu tốn rất nhiều công sức. Đây là một vấn đề rất phổ biến và rộng rãi, việc sử dụng một lượng lớn các thành phần trong việc phát triển một ứng dụng web có thể dẫn đến việc thậm chí không biết và hiểu tất cả các thành phần được sử dụng, vá lỗi và cập nhật tất cả các thành phần là một việc lâu dài.

Một ứng dụng dễ bị tấn công nếu nhà phát triển không biết phiên bản của thành phần được sử dụng, phần mềm đã lỗi thời, tức là hệ điều hành, DBMS, phần mềm đang chạy, môi trường thời gian chạy và thư viện, việc quét lỗ hổng bảo mật không được thực hiện thường xuyên, tính tương thích của các bản vá. phần mềm không được kiểm tra bởi các nhà phát triển. Nó có thể được ngăn chặn bằng cách loại bỏ các phụ thuộc, tệp, tài liệu và thư viện không sử dụng, kiểm tra phiên bản của các thành phần phía máy khách và phía máy chủ thường xuyên, lấy các thành phần và thư viện từ các nguồn an toàn chính thức và đáng tin cậy, giám sát các thư viện và thành phần chưa được vá, đảm bảo một kế hoạch để cập nhật và vá các thành phần dễ bị tấn công thường xuyên.

Những lỗ hổng này dẫn đến những tác động nhỏ nhưng cũng có thể dẫn đến sự xâm nhập của máy chủ và hệ thống. Nhiều vụ vi phạm lớn dựa trên các lỗ hổng đã biết của các thành phần. Việc sử dụng các thành phần dễ bị tổn thương làm suy yếu khả năng phòng thủ của ứng dụng và có thể là điểm khởi đầu cho một cuộc tấn công lớn.

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

Hầu hết các hệ thống không thực hiện đủ các biện pháp và bước để phát hiện vi phạm dữ liệu. Thời gian phản hồi trung bình của một sự cố là 200 ngày sau khi nó xảy ra, đây là khoảng thời gian rất lớn để thực hiện tất cả những việc khó chịu đối với một thực thể đang tấn công. Ghi nhật ký và giám sát không đầy đủ cho phép kẻ tấn công tiếp tục tấn công vào hệ thống, duy trì sự lưu giữ trên hệ thống, giả mạo, giữ và trích xuất dữ liệu theo nhu cầu. Những kẻ tấn công sử dụng sự thiếu giám sát và phản ứng có lợi cho họ để tấn công ứng dụng web.Ghi nhật ký và giám sát không đầy đủ xảy ra bất cứ lúc nào, tức là nhật ký của các ứng dụng không được theo dõi các hoạt động bất thường, các sự kiện có thể kiểm tra được như lần đăng nhập không thành công và giá trị giao dịch cao không được ghi đúng cách, các cảnh báo và lỗi tạo ra thông báo lỗi không rõ ràng, không có cảnh báo kích hoạt trong trường hợp dồn nén bằng cách sử dụng các công cụ DAST tự động, không thể phát hiện hoặc cảnh báo các cuộc tấn công đang hoạt động một cách nhanh chóng, v.v. Chúng có thể được giảm thiểu bằng cách đảm bảo tất cả các lỗi đăng nhập, kiểm soát truy cập và xác thực đầu vào phía máy chủ có thể được ghi lại để xác định tài khoản người dùng độc hại và giữ đủ số lượng thời gian để điều tra pháp y bị trì hoãn, bằng cách đảm bảo rằng các nhật ký được tạo ở định dạng tương thích với các giải pháp quản lý nhật ký tập trung, bằng cách đảm bảo kiểm tra tính toàn vẹn ở các giao dịch có giá trị cao, bằng cách thiết lập một hệ thống cảnh báo kịp thời về các hoạt động đáng ngờ, v.v.

Hầu hết các cuộc tấn công thành công đều bắt đầu bằng việc kiểm tra và thăm dò các lỗ hổng trong hệ thống, cho phép việc thăm dò lỗ hổng này có thể dẫn đến việc xâm nhập toàn bộ hệ thống.

Nguồn: Lỗ hổng bảo mật là gì? Top 10 lỗ hổng bảo mật phổ biến và cách phòng chống

Bài viết này có hữu ích với bạn không?Không

Từ khóa » Các Lỗ Hổng Bảo Mật