Trang chủ / Blog / Lỗ hổng bảo mật là gì? Các lỗ hổng bảo mật của website
#

Cách tìm lỗ hổng website và công cụ quét lỗ hổng website

 09/11/2019 07:35:00 Trịnh Duy Thanh

Lỗ hổng bảo mật luôn là vấn đề nan giải khiến các quản trị viên website phải đau đầu. Những lỗ hổng này cho phép các hacker khai thác, tấn công, xâm nhập và vi phạm dữ liệu của website công ty/doanh nghiệp. Nếu như muốn trang web của bạn hoạt động ổn định và không bị gián đoạn, hãy tìm hiểu những thông tin cơ bản về các lỗ hổng bảo mật của website ở bài viết dưới đây nhé!

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

Lỗ hổng bảo mật là gì - là những điểm yếu trong thiết kế và cấu hình của một hệ thống. Lỗi xuất hiện có thể do lập trình viên hoặc do sơ suất trong quá trình vận hành hệ thống.

Các hacker sử dụng các công cụ dò quét để có thể phát hiện một loạt các website có cấu hình bảo mật kém. Ngoài ra, các website trên các nền tảng phổ biến như: WordPress, Joomla có các lỗ hổng đã được công bố nhưng chúng chưa được chủ website xử lý.

Các tính tặc sẽ lợi dụng các lỗ hổng này để tấn công, cài đặt mã độc cũng như phá hoại các website của bạn. Tuy nhiên, trước khi tìm hiểu về các lỗ hổng bảo mật thì bạn cần biết chứng chỉ bảo mật là gì nhé.

Các lỗ hổng bảo mật website mà người dùng cần lưu ý

Các lỗ hổng bảo mật website mà người dùng cần lưu ý

Các lỗ hổng bảo mật của website phổ biến theo OWASP

OWASP là tiêu chuẩn toàn cầu để phục vụ công việc kiểm thử xâm nhập – Penetration Testing (Pentest) dễ dàng hơn. Vậy trước tiên bạn cần biết Pentest là gì?

Tiêu chuẩn OWASP được đề xuất bởi 1 tổ chức phi lợi nhuận giúp các chuyên gia kiểm thử kiểm tra bảo mật cho website một cách chi tiết và hiệu quả hơn.

Có rất nhiều lỗ hổng bảo mật mà người dùng cần phải quan tâm khi thiết lập và kinh doanh trên website. Bạn có thể tham khảo các lỗ hổng và cách khắc phục chúng như sau:

SQL Injection (Lỗi chèn mã độc)

Injection là lỗ hổng xảy ra bởi sự thiếu sót trong việc lọc các dữ liệu ở đầu vào không đáng tin cậy. Khi khách hàng truyền dữ liệu chưa được lọc tới Database (Injection), đến trình duyệt (XSS), máy chủ LDAP (LDAP Injection) hoặc tới bất cứ vị trí nào khác. Điều đáng chú ý hơn cả đó là kẻ tấn công có thể chèn các đoạn mã độc gây ra lỗi lọt dữ liệu và chiếm toàn quyền kiểm soát trình duyệt của khách hàng.

Mọi thông tin mà ứng dụng của người dùng nhận được đều phải được lọc theo Whitelist. Do khi sử dụng Blacklist, việc lọc thông tin sẽ rất dễ gặp bị vượt qua (Bypass). Hơn nữa, tính năng Pattern matching sẽ không hoạt động nếu thiết lập Blacklist.

Cách thức ngăn chặn lỗ hổng Injection:

Để có thể chống lại lỗ hổng này, bạn chỉ cần xem mình đã lọc đầu vào đúng cách hay chưa. Hoặc cân nhắc xem đầu vào có đáng tin cậy hay không. Về cơ bản thì toàn bộ các đầu vào đều phải được lọc và kiểm tra trước trừ trường hợp nó chắc chắn đáng tin cậy. Tuy nhiên, việc cẩn thận kiểm tra toàn bộ đầu vào luôn là điều cần thiết.

Hơn nữa, việc lọc dữ liệu khá khó khăn, vì vậy bạn cần phải sử dụng các chức năng lọc sẵn có trong framework của mình. Những tính năng này đã được chứng minh sẽ được kiểm tra một cách kỹ lượng. Người dùng cần cân nhắc sử dụng các framwork bởi đây là trong những cách hiệu quả để bảo vệ server của bạn.

Cross Site Scripting (XSS)

XSS (Cross-scite Scripting) là một lỗ hổng vô cùng phổ biến đối với website. Những kẻ tấn công chèn các đoạn mã JavaScript hoặc HTML vào ứng dụng web của bạn. Một khi đầu vào này không được lọc, chúng sẽ được thực thi mã độc trên trình duyệt của khách hàng. Lúc này, những kẻ tấn công có thể lấy được cookie cả người dùng ở trên hệ thống hoặc lừa khách hàng tới các trang web độc hại.

Giải pháp ngăn chặn lỗ hổng:

Để khắc phục lỗi này và biết cách bảo mật website của bạn, đừng trả lại thẻ HTML cho người dùng. Điều này giúp chống lại một cuộc tấn công HTML Injection cho phép hacker truy cập vào nội dung HTML. Mặc dù không gây ảnh hưởng nghiêm trọng nhưng chúng khá rắc rối cho người dùng. Để giải quyết tình tràng này hãy chuyển đổi về dạng dữ liệu khác (Encode) toàn bộ các thẻ HTML. Cụ thể như thẻ <script> được trả về dưới dạng <script&gt.

CyStack Scanning

CyStack Scanning giúp phát hiện lỗ hổng bảo mật trong suốt quá trình phát triển. Phần mềm này hoàn toàn tự động, không cần đến sự can thiệp của những chuyên gia bảo mật. CyStack Fuzzing giúp kiểm thử trang web với hơn 100.000 kịch bản để có thể phát hiện hơn 200 loại lỗ hổng. Hơn nữa, phần mềm này còn tự động quét lỗ hổng website online vào khung thời gian phù hợp để không làm gián đoạn website của người dùng. Ngoài ra CyStack Scanning còn hỗ trợ nền tảng mã nguồn mở với các kiểu quét dành riêng cho nền tảng WordPress, Drupal, Joomla,... giúp quá trình quét lỗ hổng website nhanh chóng và hiệu quả hơn.

Broken Authentication

Đây là những vấn đề có thể xảy ra trong quá trình xác thực. Tốt nhất bạn không nên tự phát triển những giải pháp mã hóa vì rất khó để có thể làm được chính xác. Hơn nữa, bạn có thể gặp rất nhiều rủi ro trong quá trình xác thực như:

  • URL chứa Session ID và rò rỉ trong Referer Header của người dùng khác.
  • Trong quá trình lưu trữ dữ liệu, mật khẩu không được mã hóa hoặc dễ dàng giải mã.

Để ngăn chặn lỗ hổng này, cách đơn giản nhất đó là sử dụng 1 framework. Trong trường hợp người dùng muốn tự tạo một bộ xác thực hoặc mã hóa riêng cho mình, hãy nghĩ tới những rủi ro mà bạn gặp và tự cân nhắc kiểm tra lỗ hổng website kỹ càng trước khi thực hiện

Insecure Direct Object References

Insecure Direct Object References là trường hợp điển hình của việc cho đầu vào của người dùng là đáng tin cậy dẫn đến các lỗ hổng bảo mật website. Lỗi này xảy rakhi chương trình cho phép người dùng truy cập các tài nguyên như dữ liệu, file, database,... Nếu như không thực hiện quá trình kiểm soát quyền hạn kẻ tấn công có thể truy cập một cách bất hợp pháp vào các dữ liệu nhạy cảm và quan trọng trên máy chủ.

Cách tìm lỗ hổng website và ngăn chặn chúng dễ dàng hơn cả đó là phân quyền người dùng đúng cách và nhất quán với việc áp dụng triệt để các Whitelist.

Cách kiểm tra lỗ hổng bảo mật website

Cách kiểm tra lỗ hổng bảo mật website

Security Misconfiguration

Trên thực tế, máy chủ website và các ứng dụng đa phần bị cấu hình sau. Cách khai thác lỗ hổng website của các chuyên gia sẽ giúp người dùng phát hiện ra một số sai sót không đáng có như sau:

  • Chạy ứng dụng khi mà chế độ debug được bật
  • Sử dụng phần mềm lỗi thời như: WordPress plugin, PhpMyAdmin cũ
  • Cài đặt những dịch vụ không cần thiết
  • Không thay đổi default key hoặc mật khẩu của người dùng
  • Trả về lỗi xử lý thông tin cho những kẻ tấn công lợi dụng như: stack traces.

Để ngăn chặn lỗ hổng, bạn cần xây dựng và triển khai tự động. Cần đến 1 tquas trình audit các chính sách bảo mật trên máy chủ trước khi triển khai.

Lỗi phân quyền (Missing function level access control)

Đây cũng chỉ là sai sót trong khi phân quyền, điều này có nghĩa là khi một hàm được gọi trên máy chủ thì quá trình phân quyền là không chính xác. Những nhà phát triển dựa vào thực tế là phía máy chủ tạo giao diện cho người và họ nghĩa rằng người dùng không thể truy cập các chức năng nếu không được cung cấp từ máy chủ.

Tuy nhiên, các hacker luôn có thể yêu cầu các chức năng "ẩn" và không bị cản trở bởi việc giao diện không cho phép người dùng thực hiện các chức năng này. Nếu như giao diện chỉ có bảng điều khiển/admin và nút thì không có gì có thể ngăn cản kẻ tấn công phát hiện các tính năng này. Đồng thời lạm dụng chúng nếu không phân quyền.

Để khai thác lỗ hổng website này, phía máy chủ phải luôn được phân quyền triệt để từ khâu thiết kế. Không có trường hợp nào ngoại lệ bởi toàn bộ lỗ hổng sẽ xuất hiện đủ các vấn đề nghiêm trọng.

Using component with known vulnerabilities

Trường hợp này chỉ xảy ra khi người dùng sử dụng các bộ thư viện đã tồn tại lỗ hổng. Trước khi được tích hợp một mã nguồn mới vào trang web, hãy tiến hành nghiên cứu hoặc kiểm tra lỗ hổng bảo mật website. Tốt nhất hãy sử dụng mã nguồn mà bạn nhận được từ một người ngẫu nhiên tại một số diễn đàn và sẵn sàng đối diện với nguy cơ hổng bảo mật web nghiêm trọng.

Phương pháp ngăn chặn lỗ hổng:

Đặc biệt chú ý cẩn thận khi sử dụng các thành phần của bên thứ 3. Tốt nhất không nên là một coder copy-paste. Tiến hành kiểm tra cẩn thận các đoạn code quan trọng của mình. Nếu như các đoạn code đó có lỗ hổng, hacker có thể đọc được cơ sở dữ liệu, tệp tin cấu hình, mật khẩu,... của người dùng.

Cập nhật đầy đủ mọi thứ và sử dụng phiên bản mới nhất để đảm bảo kế hoạch vận hành chúng một cách thường xuyên. Đặc biệt là việc đăng ký bản tin về các lỗ hổng bảo mật mới liên quan tới sản phẩm, dịch vụ của công ty/doanh nghiệp.

Geotrus SSL

Unvalidated redirects and forwards

Lỗ hổng này lại là các vấn đề về lọc đầu vào. Cụ thể như khi trang đích có một modun redirect.php lấy URL làm tham số. Các thao tác với tham số này có thể tạo ra một URL trên targetite.com giúp chuyển hướng tới địa chỉ malwareinstall.com. Khi khách hàng nhìn thấy liên kết, họ sẽ thấy liên kết targetite.com/blahblahblah đáng tin cậy và họ sẽ truy cập vào. Ít ai biết rằng địa chỉ này thực chất đã chuyển tới trang nhúng phần mềm độc hại rồi. Bên cạnh đó, các hacker có thể chuyển hướng trình duyệt sang targetite.com/deleteprofile?confirm=1.

Một số phương pháp giúp ngăn chặn lỗ hổng này hiệu quả:

  • Không nên sử dụng chức năng chuyển hướng
  • Lên một danh sách tính các vị trí hợp lệ để có thể chuyển hướng đến.
  • Xác định Whitelist tham số của người dùng.

Các công cụ quét lỗ hổng website

Sử dụng các công cụ quét lỗ hổng bảo mật bảo mật thông thường sẽ giúp quá tình kết nối với ứng dụng web qua giao diện dễ dàng hơn. Đồng thời tìm ra ác lỗ hổng tiềm tàng cũng như các điểm yếu về cấu tạo web đơn giản hơn nhiều. Các công cụ này không truy cập được vào mã nguồn mà chỉ có thể thực hiện kiểm tra chức năng để tìm ra các lỗ hổng bảo mật của website. Bạn có thể tham khảo:

CyStack Platform

CyStack là nền tảng an ninh mạng đầu tiên tại Việt Nam. Công cụ này gồm có 4 apps với đầy đủ các tính năng bảo vệ website như:

  • CyStack Scanning: Tự động dò quét cũng như phát hiện lỗ hổng bảo mật
  • CyStack Monitoring: Phát hiện sớm toàn bộ sự cố trên website
  • Protecting: Tường lửa ứng dụng Web ngăn chặn các hình thức tấn công từ hacker và mã độc
  • CyStack Responding: Dò quét, phát hiện đồng thời làm sạch mã độc cho website

Thay cho việc đầu tư chi phí lớn hàng năm cho các giải pháp phần cứng, phần mềm hay những ứng dụng lên máy chủ, khi dùng CyStack Platform chỉ cần cấu hình xác minh chủ sở hữu. Sau đó dùng toàn bộ các tính năng của phần mềm này trên cùng 1 giao diện web tập trung và duy nhất trên trang web hoặc mobile app.

Burp Suite Free

Đây là một công cụ được sử dụng để quét lỗ hổng bảo mật cho các ứng dụng web. Người dùng có thể trải nghiệm miễn phí các tính năng giới hạn hoặc trả phí để dùng phiên bản thương mại với các tính năng tối đa. Công cụ này là một nền tảng tích hợp cho việc kiểm tra an ninh cho các ứng dụng web. Burp Suite Free hỗ trợ toàn bộ quá trình thử nghiệp từ lập bản đồ ban đầu cho tới việc tìm kiếm và khai thác lỗ hổng bảo mật.

Phần mềm Netsparker

Netsparker được thiết kế để hỗ trợ cho việc phát hiện và khai thác lỗ hổng website. Mục tiêu của công cụ này là cung cấp cho người dùng một kết quả chính xác nhất. Để có thể đảm bảo tính xác thực của kết quả hiển thị, công cụ này chỉ báo cáo các lỗ hổng để xác định được quá trình khai thác và thử nghiệm chúng có đảm bảo hay không.

Công cụ này sẽ phát hiện và báo cáo các lỗ hổng như SQL Injection và Cross-site Scripting (XSS) trong toàn bộ các ứng dụng web. Tùy theo bất cứ nền tảng và công nghệ nào mà website được xây dựng.

Phiên bản Netsparker community được cung cấp miễn phí trên nền tảng Windows. Nó có thể chạy trên Windows 7, XP, Vista, 2003 và 2008. Người dùng không cần bất cứ chuyên gia bảo mật hay 1 hướng dẫn sử dụng dài dòng nào để hiểu. Hãy sử dụng công cụ Netsparker bởi nó rất dễ sử dụng.

Công cụ kiểm tra bảo mật website online

Công cụ kiểm tra bảo mật website online

Phần mềm W3af

W3af là một web scanner mã nguồn mở được sử dụng để cung cấp thông tin về các lỗ hổng bảo mật và hỗ trợ người dùng trong các nỗ lực kiểm tra thâm nhập. Web scanner này có tác dụng quét và khai thác lỗ hổng cho các ứng dụng web. Công cụ này được viết bằng ngôn ngữ Python và có sẵn cho các hệ điều hành phổ biến khác như: Microsoft Windows, FreeBSD, Linux, Mac OS X và OpenBSD.

Phần mềm này được chia thành 2 phần chính đó là core và các plug-in. W3af xác định hầu hết các lỗ hổng bên trong ứng dụng web bằng cách sử dụng hơn 130 plug-in. Phần core kết hợp với các quy trình và đưa ra các tính năng dựa trên plug-in, sau đó tìm ra các lỗ hổng và khai thác chúng. Toàn bộ các plug-in kết nối và chia sẻ thông tin với nhau bằng cách sử dụng 1 cơ sở tri thức.

Trên đây là những thông tin cơ bản về các lỗ hổng bảo mật của website, hy vọng các bạn tìm được cách khắc phục hiệu quả để quá trình vận hành trang web được ổn định và đạt hiệu quả cao hơn. Nếu như muốn tìm hiểm thêm các dịch vụ tên miền, hosting, email, VPS,... uy tín, chất lượng, đừng quên theo dõi các bài viết của BKHost nhé!

Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.