fbpx
Logo

Các lỗ hổng bảo mật của website và cách ngăn chặn hiệu quả, nhanh chóng

Theo dõi Miko Tech trên Google News

Đối với các quản trị viên website thì lỗ hổng bảo mật của website luôn là vấn đề khó nhằn và đau đầu. Các lỗ hổng sẽ giúp hacker dễ dàng tấn công, khai thác cơ sở dữ liệu và thông tin nhạy cảm. Vậy làm sao để phòng tránh lỗ hổng bảo mật của website?

Trước tiên, bạn cần biết những thông tin về các lỗ hổng bảo mật. Chính vì thế, hãy cùng bài viết này tìm hiểu các lỗ hổng bảo mật của website và cách ngăn chặn hiệu quả, nhanh chóng.

Qua bài viết này, Miko Tech sẽ mang đến cho bạn đọc thông tin về khái niệm lỗ hổng bảo mật của website, nguyên nhân, 10 lỗ hổng bảo mật của website phổ biến và cách ngăn chặn hiệu quả, nhanh chóng.

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

Vulnerability (lỗ hổng bảo mật) là một khái niệm phổ biến trong an toàn thông tin. Trong an ninh mạng, lỗ hổng bảo mật là các điểm yếu (kỹ thuật hoặc phi kỹ thuật) của một phần mềm, phần cứng, giao thức, một hệ thống thông tin.

Lỗ hổng bảo mật của website là điểm yếu của phần mềm, giao thức.
Lỗ hổng bảo mật của website là điểm yếu của phần mềm, giao thức.

Các điểm yếu này bị các tội phạm mạng lợi dụng để khai thác và truy cập trái phép vào hệ thống máy tính. Một khi mà tội phạm mạng khai thác được lỗ hổng thì chúng có thể phát tán các mã độc, cài đặt phần mềm độc hại và thậm chí là đánh cắp các dữ liệu nhạy cảm.

Ngoài website thì lỗ hổng bảo mật thường sẽ xuất hiện ở:

  • Ứng dụng web, ứng dụng mobile
  • Các hệ điều hành và phần mềm
  • Các thiết bị IoT
  • Mã nguồn, API
  • Các giao thức truyền tải, mã hóa
  • Hệ thống mạng, thiết bị mạng

Nguyên nhân gây ra các lỗ hổng bảo mật của website

Ứng dụng và phần mềm miễn phí

Các phần mềm miễn phí được tải về máy tính bị nhiễm virus, dù rằng có những loại virus chỉ cần bkav, CCleaner hoặc các phần mềm diệt virus thông thường đã có thể tránh được sự cố bảo mật của website.

Nhưng một khi bạn gặp phải những phần mềm không thể xóa được thì phải tìm đến những người có chuyên môn để trợ giúp.

Với các ứng dụng miễn phí cũng thế, có những ứng dụng sẽ âm thầm sao lưu dữ liệu thông tin của người tải về và gửi cho những kẻ xấu, người dùng có thể sẽ phải bỏ tiển để chuộc lại.

Điển hình là vụ hàng loạt báo cáo về sự việc bị nhiễm phần mềm tống tiền Ransomware xảy ra ở quý đầu năm 2017 gây ảnh hưởng đến website, thiết bị IoT và iPhone.

Tính bảo mật thấp của một số ngôn ngữ lập trình

Bởi vì các website ở Việt Nam được lập trình bằng ngôn ngữ lập trình PHP và WordPress nên nếu các lập trình viên nhầm lẫn giữa 2 phương thức bảo mật là GET và POST thì website sẽ có thể bị để ý đến.

Trên thực tế, có những website có thể thiết kế bằng những phần mềm đơn giản mà người không cần có quá nhiều kiến thức về lập trình cũng có thể làm được. Bởi vì cú pháp và chức năng dựng website đơn giản nên dẫn đến tính bảo mật chưa cao.

Không thể không kể đến lỗi bảo mật trong website WordPress. Đặc biệt là những phần mềm SEO miễn phí hay các plugin cũng bị các hacker tận dụng để nhắm đến website.

Lỗ hổng trong XSS, session

Thông qua việc gửi đường dẫn (link) đến session, user name, một khi người dùng nhấp vào thì website sẽ nhiễm virus. Khi đã bị lỗi này thì website sẽ bị hacker nắm quyền điều khiển và tấn công cả những site khác.

Đây là hình thức tấn công gây ra lỗ hổng bảo mật website có tính nguy hiểm cao nhưng khả năng khai thác thấp vì cần phải lừa được người dùng nhấp vào đường link.

Do lỗ hổng bảo mật trong database (cơ sở dữ liệu), kết nối web 2.0, AJAX, Javascript

Nguyên nhân gây ra lỗ hổng bảo mật website có thể là những lỗi bảo mật website hay gặp trong Javascript. Những lỗi bảo mật này có thể được gây ra bởi việc vô tình sử dụng toán tử gán, nhầm lẫn giữa phép nối và phép cộng, câu lệnh return, dùng dấu không chính xác.

Một số nguyên nhân khác

Bên cạnh 5 nguyên nhân trên còn có một số nguyên nhân khác có thể kể đến như:

  • Chuyển tiếp và điều hướng không xác định: Lỗi chuyển tiếp và điều hướng không xác định là lỗi do vấn đề đầu vào (input).
  • Mật khẩu yếu: Việc sử dụng mật khẩu, đặc biệt là mật khẩu yếu sẽ dễ dàng bị phá bằng brute force.
  • Internet: Kể cả việc dùng Internet đã có những rủi ro nhất định bởi vì chứa nhiều spyware và adware có thể tự cài đặt.

10 lỗ hổng bảo mật của website phổ biến và cách phòng tránh hiệu quả

Lỗ hổng XSS (Cross Site Scripting)

Lỗ hổng XSS (Cross Site Scripting) là một lỗi rất phổ biến. Kẻ tấn công hoặc tin tặc sẽ chèn các đoạn mã JavaScript (thường là Javascript hoặc HTML) vào ứng dụng web có lỗi XSS. Bản chất của dạng tấn công website này là dựa vào trình duyệt.

XSS (Cross Site Scripting) - lỗ hổng bảo mật của website
XSS (Cross Site Scripting) – lỗ hổng bảo mật của website

Khi các đoạn mã đầu vào này không được lọc, nó sẽ được thực thi mã độc trên trình duyệt của người dùng. Khi người dùng truy cập vào những website có lỗi XSS thì mã script của hacker sẽ ngay lập tức lưu lại thông tin của người dùng.

Bên cạnh đó, hacker còn có thể lấy được cookie, session tokens của người dùng trên hệ thống hoặc có thể lừa người dùng đến các website độc hại. Lỗ hổng XSS được chia thành 3 loại:

  • Reflected XSS: Chiếm đoạt cookies, session của người dùng
  • Stored XSS: Chiếm đoạt session của hàng loạt người dùng và gửi nội dung kèm theo mã độc
  • DOM Based XSS: Khai thác lỗ hổng XSS trên cơ sở thay đổi cấu trúc của DOM (cụ thể là HTML)

Cách ngăn chặn

Một cách bảo mật web đơn giản là không gửi lại thẻ HTML cho người dùng (client). Việc này giúp chống lại HTML Injection (một dạng tấn công mà hacker sẽ tấn công vào nội dung HTML, tuy không ảnh hưởng lớn nhưng gây rắc rối và khó chịu cho người dùng).

Thông thường, có một cách cũng đơn giản không kém là encode (chuyển đổi về dạng dữ liệu khác) tất cả thực thể HTML.

Broken Authentication

Broken Authentication - lỗ hổng bảo mật của website
Broken Authentication – lỗ hổng bảo mật của website

Đây là lỗ hổng mà bao gồm các lỗi có thể xảy ra trong quá trình xác thực nhưng không hẳn có cùng một nguyên nhân. Có rất nhiều rủi ro có thể gặp phải trong quá trình xác thực, sau đây là một số lý do phổ biến:

  • Mật khẩu không được mã hóa hoặc dễ giải mã khi lưu trữ.
  • URL có chứa session ID và rò rỉ nó trong referer header của người dùng khác.
  • Khi timeout (thời gian hết hạn) của session không được triển khai đúng hoặc sử dụng HTTP (không có bảo mật SSL) thì tấn công Session Hijacking có thể xảy ra.
  • Lỗ hổng Session Fixation.

Cách ngăn chặn

Cách để tránh lỗ hổng bảo mật website này là sử dụng một framework. Nếu trường hợp bạn muốn tự tạo ra bộ mã hóa và xác thực cho riêng mình thì hãy cân nhắc kĩ trước khi thực hiện vì những rủi ro mà bạn có thể gặp phải.

Lỗ hổng Injection (Lỗi chèn mã độc)

Injection flaw xuất phát từ một lỗi cổ điển trong việc lọc các input không đáng tin cậy. Lỗi này có thể xảy ra khi chuyển dữ liệu chưa được lọc đến server SQL (SQL injection), đến trình duyệt (XSS), LDAP server (LDAP injection) hay đến bất kỳ đâu.

Hacker có thể lợi dụng điểm yếu của các truy vấn input (đầu vào) để chèn các đoạn mã độc. Từ đó mà chúng có thể đánh cắp được dữ liệu của người dùng hoặc chiếm quyền điều khiển trình duyệt của người dùng.

Lỗ hổng Injection (lỗi chèn mã độc) - lỗ hổng bảo mật của website.
Lỗ hổng Injection (lỗi chèn mã độc) – lỗ hổng bảo mật của website.

Ngoài ra, hacker còn có thể truy cập được các dữ liệu quan trọng của doanh nghiệp. Chúng có thể xóa, sửa đổi thông tin hoặc thậm chí là tống tiền. Chính vì vậy mà mọi thông tin cần được lọc theo Whitelist.

Việc lọc theo backlist thì không nên dùng bởi vì nó khó cho việc xử lý và việc lọc thông tin rất dễ bị vượt qua (bypass). Hình thức tấn công ứng dụng website phổ biến nhất có lẽ là SQL Injection. Đây là hình thức tấn công bằng cách lợi dụng những lỗ hổng về câu truy vấn của các ứng dụng.

Nhằm mục đích làm sai lệch đi câu truy vấn ban đầu, lỗ hổng SQL Injection từ đó có thể khai thác dữ liệu từ database.

Cách ngăn chặn

Việc cần làm là lọc đầu vào đúng cách và cân nhắc độ tin cậy của những input này. Tuy nhiên, mọi đầu vào đều cần được lọc cẩn thận. Bên cạnh đó, bạn có thể sử dụng các chức năng lọc có sẵn trong framework.

Security Misconfiguration

Security Misconfiguration - lỗ hổng bảo mật của website
Security Misconfiguration – lỗ hổng bảo mật của website

Thực tế cho thấy là máy chủ website và các ứng dụng đa số bị cấu hình sai nhiều hơn là cấu hình chính xác. Sau đây là một số sai sót dẫn đến lỗ hổng này:

  • Chạy ứng dụng trong khi chế độ debug đang được bật
  • Sử dụng những phần mềm lỗi thời như: WordPress plugin, PhpMyAdmin cũ.
  • Directory listing đang được bật ở trên server (máy chủ), dẫn đến việc rò rỉ những thông tin quan trọng.
  • Không thay đổi default key hoặc mật khẩu.
  • Cài đặt các dịch vụ không cần thiết.
  • Trả về lỗi xử lý thông tin cho những kẻ lợi dụng ví dụ như stack traces.

Cách ngăn chặn

Việc cần làm là xây dựng và triển khai tự động để ngăn chặn lỗ hổng. Một quá trình audit lỗ hổng bảo mật trên máy chủ trước khi triển khai là rất cần thiết.

Insecure Direct Object References (tham chiếu đối tượng trực tiếp không an toàn)

Lỗ hổng bảo mật Insecure Direct Object References là trường hợp điển hình của việc cho rằng input (đầu vào) của người dùng là đáng tin cậy. Lỗ hổng này xảy ra khi chương trình cho phép người dùng truy cập các tài nguyên (file, cơ sở dữ liệu).

Insecure Direct Object References là lỗ hổng xảy ra khi cho rằng đầu vào của người dùng là đáng tin cậy.
Insecure Direct Object References là lỗ hổng xảy ra khi cho rằng đầu vào của người dùng là đáng tin cậy.

Nếu quá trình kiểm soát không được thực hiện hoặc không hoàn chỉnh thì kẻ tấn công có thể truy cập bất hợp pháp vào các dữ liệu quan trọng và nhạy cảm.

Kẻ tấn công có thể lợi dụng lỗ hổng này để tải về mọi tệp trên hệ thống mà ứng dụng có quyền truy cập như là: code ứng dụng hoặc các dữ liệu khác.

Cách ngăn chặn

Việc phân quyền người dùng cần được thực hiện đúng cách và nhất quán đi cùng với việc áp dụng triệt để các Whitelist. Ngoài ra, việc phân quyền người quản trị cần cài đặt bảo mật ở chế độ cao. Việc tham chiếu đối tượng, tệp tin, bản ghi,… cần được thực hành gián tiếp.

Sensitive data exposure (Rò rỉ dữ liệu nhạy cảm)

Dữ liệu nhạy cảm cần phải được mã hóa mọi lúc để tránh bị rò rỉ kể cả khi gửi dữ liệu đi và khi lưu trữ dữ liệu. Đặc biệt là thông tin nhạy cảm như thẻ tín dụng, mật khẩu cần được mã hóa khi gửi đi hoặc lưu trữ.

Sensitive data exposure (rò rit dữ liệu nhạy cảm) - lỗ hổng bảo mật website
Sensitive data exposure (rò rit dữ liệu nhạy cảm) – lỗ hổng bảo mật website

Nếu những thông tin dữ liệu nhạy cảm không được mã hóa thì hacker sẽ dễ dàng đánh cắp những thông tin này dùng cho mục đích xấu.

Cách ngăn chặn

Để giảm thiểu tối đa việc dữ liệu hay thông tin nhạy cảm của bạn bị rò rĩ thì bạn hãy lưu ý những điều sau:

  • Trường hợp bạn không cần những dữ liệu nhạy cảm này thì hãy hủy chúng đi. Khi dữ liệu không có thì đồng nghĩa chúng không thể bị đánh cắp.
  • Trường hợp bạn cần những dữ liệu nhạy cảm đó thì bạn hãy mã hóa nó và tất cả mật khẩu đều được sử dụng hàm Hash để bảo vệ.
  • Kể cả bản sao lưu cũng cần đảm bảo mã hóa để bảo vệ chúng một cách an toàn.
  • Không nhận bất kỳ những gì từ kết nối mà không phải HTTPS.
  • Sử dụng HTTPS và PFS

Missing function level access control (thiếu kiểm soát truy cập cấp chức năng)

Đây là sai sót xảy ra thuộc về vấn đề phân quyền. Lỗi phân quyền này xảy ra khi các nhà phát triển dựa trên thực tế là máy chủ tạo ra giao diện người dùng (UI) và người dùng không thể truy cập vào các chức năng nếu họ không được phân quyền từ máy chủ.

Missing function level access control - một trong số các lỗ hổng bảo mật của website.
Missing function level access control – một trong số các lỗ hổng bảo mật của website.

Mặt khác, các hacker vẫn có thể thực hiện yêu cầu chức năng “ẩn” và không bị cản trở gì bởi giao diện người dùng.

Cách ngăn chặn

Ở phía server (máy chủ) hãy luôn thực hiện phân quyền một cách triệt để, chỉ như vậy là đủ.

Cross Site Request Forgery (CSRF)

Cross Site Request Forgery là một trong các lỗ hổng bảo mật của website rất phổ biến.
Cross Site Request Forgery là một trong các lỗ hổng bảo mật của website rất phổ biến.

Đây là một lỗ hổng xảy ra do một bên thứ 3 giả dạng người dùng và gửi request đến trang web đích bằng một trình duyệt với session hoặc cookies của người dùng. Việc này sẽ khiến trang web đích vẫn nghĩ đây là người dùng của mình.

Việc tấn công bằng cách giả mạo này gây hậu quả nghiêm trọng cho người dùng. Lỗ hổng này xảy ra sẽ dẫn đến hoạt động đánh cắp dữ liệu, thay đổi mật khẩu,…

Cách ngăn chặn

Cách để ngăn chặn lỗ hổng này chính là có một token bí mật và riêng biệt trong một trường form HTML ẩn để chứng minh được là request này đến từ trang web của người dùng.

Using components with known vulnerabilities

Đa số các phần mềm hiện nay có sử dụng thành phần bên ngoài hoặc là thư viện vì chúng hỗ trợ rất nhiều cho người lập trình. Các lỗ hổng từ các thành phần như là thư viện, plugin và các thành phần khác gọi là lỗ hổng thành phần.

Using components with known vulnerabilities là một lỗ hổng xảy ra khi mà phần mềm sử dụng bộ thư viện đã tồn tại lỗ hổng.

Cách ngăn chặn

Bạn cần chú ý cẩn thận khi dùng các thành phần bên ngoài, cần kiểm tra cẩn thận các đoạn code xem rằng là có lỗ hổng hay không. Bởi vì khi có lỗ hổng thì hacker có thể đọc được dữ liệu, mật khẩu,… của bạn.

Bạn cần cập nhật mọi thứ. Hãy đảm bảo rằng bạn đang sử dụng phiên bản mới nhất của tất cả mọi thứ và cập nhật thường xuyên.

Unvalidated redirects and forwards (Không kiểm tra sự điều hướng và chuyển tiếp của URL)

Đây là lỗ hổng xảy ra do vấn đề lọc đầu vào. Lợi dụng điều này nên các hacker sẽ điều hướng đường liên kết gốc đến một website lừa đảo. Một khi người dùng đã click vào đường link và đến website lừa đảo đó thì máy tính của người dùng sẽ bị nhiễm mã độc.

Từ đó, hacker có thể khai thác thông tin cá nhân của người dùng để phục vụ mục đích xấu của chúng.

Cách ngăn chặn

  • Có whitelist tham số người dùng.
  • Có danh sách tĩnh các vị trí an toàn, hợp lệ để mà chuyển hướng đến.
  • Không dùng chức năng điều hướng và chuyển tiếp.

Trên đây, Miko Tech đã cùng bạn tìm hiểu về các lỗ hổng bảo mật website và cách ngăn chặn hiệu quả, nhanh chóng. Đồng thời bài viết còn cung cấp thêm thông tin về khái niệm lỗ hổng bảo mật của website và nguyên nhân gây ra các lỗ hổng này.

Hy vọng rằng bài viết bên trên đã giúp bạn nắm thông tin về các lỗ hổng bảo mật của website và bạn hãy áp dụng các cách ngăn ngừa để đảm bảo tính bảo mật của website của mình nhé!

06.12.2022 Giáng Ngọc

Comments are closed.

Bài viết liên quan
Bài viết nổi bật
Scroll