Kiểm thử bảo mật cho website là phương thức hiệu quả để đánh giá khả năng bảo mật của một website. Bài viết sẽ giới thiệu các phương pháp kiểm thử bảo mật cho website và các công cụ kiểm tra bảo mật cho website phổ biến.
Các phương pháp kiểm tra bảo mật cho website
1. Hộp đen (Blackbox)
Phương pháp kiểm tra hộp đen các lỗi bảo mật trên ứng dụng web là việc kiểm tra khả năng bảo mật của ứng dụng từ bên ngoài. Quan sát các dữ liệu được gửi đến ứng dụng và các dữ liệu từ ứng dụng xuất ra mà không cần hiểu đến hoạt động bên trong của nó. Quá trình xử lý dữ liệu từ bên ngoài đến ứng dụng có thể thực hiện bằng thủ công hoặc sử dụng công cụ tự động gửi đến ứng dụng.
Kiểm tra bảo mật cho website thủ công là quá trình kiểm tra mà người kiểm tra phải xác định vị trị dữ liệu cần được gửi đến đến ứng dụng bằng cách sử dụng các intercepting proxy và tập dữ liệu cần đệ trình đến ứng dụng tương ứng với các vị trí đệ trình đã xác định trước đó. Một số công cụ tiêu biểu:
- Sử dụng công cụ WebScarab: là một framework được viết bằng Java phục vụ cho việc phân tích những ứng dụng web với hai giao thức hỗ trợ HTTP và HTTPS. WebScarab có khả năng ghi lại hoặc thay đổi tham số ứng dụng trước khi đi trình những yêu cầu, phản hồi giữa trình duyệt và ứng dụng web.
Tham khảo:
Phương pháp kiểm tra lỗi tự động là quá trình các công cụ sẽ thực hiện tự động quét thư mục, tập tin của ứng dụng web và tự động xác định các điểm mà cần đệ trình dữ liệu. Trên cơ sở đã xác định các điểm cần đệ trình tự động tiếp đến công cụ sẽ thực hiện đệ trình các tập dữ liệu được định nghĩa sẵn và chờ sự phản hồi từ phía ứng dụng web để kiểm tra xem liệu ứng dụng đó có bị các lỗi bảo mật hay không? Một số công cụ tiêu biểu:
- Wa3f: là một công cụ đánh giá các lỗi bảo mật tự động và miễn phí. Thực hiện kiểm tra tất cả các lỗi bảo mật phổ biến nhất trong danh sách 10 lỗi bảo mật do OWASP giới thiệu.
- Acunetix: là công cụ thương mại với các khả năng kiểm tra lỗi bảo mật mạnh. Acunetix hỗ trợ tất cả các phương thức kiểm tra như kiểm tra thủ công hoặc kiểm tra tự động. Tuy nhiên Acunetix đưa đến người sử dụng với phí rất đắt, hơn 3000 USD cho một bản quyền.
2. Hộp trắng (Whitebox)
Phương pháp kiểm tra hộp trắng các lỗi bảo mật trên ứng dụng web là quá trình kiểm tra trực tiếp mã nguồn của ứng dụng web để tìm ra các lỗi bảo mật. Quá trình quan sát và kiểm tra mã nguồn có thể thực hiện thủ công hoặc thực hiện bằng công cụ. Quá trình thực hiện bằng công cụ tức là quá trình mà công cụ sẽ thực hiện quét toàn bộ mã nguồn của ứng dụng và dựa trên tập nhận biết các hàm, các chỉ dẫn có khả năng gây ra lỗi bởi ngôn ngữ lập trình phát triển ứng dụng web. Một công cụ có thể kể đến trong việc quét mã nguồn là AppCodeScan do Blueinfy Solutions Pvt. Ltd. phát triển.
Quá trình tìm kiếm lỗi bảo mật trong mã nguồn của ứng dụng bằng phương pháp thủ công thì phải đòi hỏi người kiểm tra phải có một phương pháp kiểm tra và ra soát hợp lý. Bởi vì khối lượng tập tin cũng như nội dung trong các ứng dụng web là rất lớn, nếu như không có một phương pháp rà soát và đánh giá hợp lý thì sẽ tiêu tốn rất nhiều thời gian để phát hiện lỗi.
3. Phương pháp Fuzzing
Phương pháp kiểm tra fuzzing lỗi bảo mật thực chất cũng là phương pháp kiểm tra hộp đen nhưng được phân ra một nhánh do nó có những đặc điểm riêng biệt. Các công cụ sử dụng phương pháp fuzzing để kiểm tra lỗi bảo mật sẽ không thực hiện việc quét cấu trúc thư mục và tập tin của ứng dụng web, mà chỉ đơn giản là tập hợp tất các lỗi đã được công bố đối với từng ứng dụng web cụ thể và thực hiện đệ trình đến ứng dụng web xem thử ứng dụng đó có bị mắc các lỗi bảo mật hay không? Ví dụ, một fuzzer kiểm tra tất cả các lỗi bảo mật liên quan đến ứng dụng cổng thông tin điện tử Joomla thì nó sẽ tập hợp tất cả các lỗi bảo mật liên quan đến ứng dụng Joomla và thực hiện đệ trình khi người kiểm tra cung cấp.
Cách thức thu thập lỗi bảo mật
Một công cụ kiểm tra lỗi bảo mật sử dụng phương pháp kiểm tra fuzzing được tổ chức thành 2 phần:
- Phần 1: Tập hợp tất cả các định dạng URL mà gây ra lỗi cho một ứng dụng cụ thể. Ví dụ: lỗi bảo mật cho ứng dụng Joomla được phát hiện nằm trong URL: “index.php?option=com_content&view=article”. URL này sẽ được lưu trong cơ sở dữ liệu của chương trình cùng với tham số đệ trình gây ra lỗi của nó.
- Phần 2: Tập hợp tất cả đặc điểm nhận diện tương ứng với URL gây ra lỗi trong quá trình fuzzing. Các điểm điểm nhận diện này cũng sẽ lưu cùng với URL gây ra lỗi trong cơ sở dữ liệu.
Kiểm tra lỗi bảo mật web bằng phương pháp kiểm tra fuzzing có ưu điểm là kiểm tra nhanh với một lượng lớn website mà đã biết tên ứng dụng đang chạy. Ví dụ, tập hợp một lượng lớn danh sách các website biết chắc chắn đang chạy ứng dụng Joomla thì sẽ sử dụng công cụ kiểm tra lỗi bảo mật liên quan đến ứng dụng Joomla một cách nhanh chóng. Nhược điểm của phương pháp kiểm tra này là tính cố định được tổ chức cho từng lỗi bảo mật cho nên lỗi bảo mật nào muốn kiểm tra thì phải đúng định dạng của nó thì nó mới kiểm tra được và dấu hiệu nhận biết phải được tập hợp một cách đầy đủ, không sẽ bỏ xót. Nếu không thì mặc dầu ứng dụng đó có lỗi nhưng dữ liệu nhận diện thiếu, cũng không thể phát hiện ra lỗi bảo mật đó.
Một số công cụ quét lỗ hổng bảo mật tự động khác
- Nikto: là một trong những công cụ thực hiện fuzzer các lỗi bảo mật tốt nhất và nhanh nhất hiện nay. Với cơ sở dữ liệu cập nhật hàng trăm lỗi bảo mật được xuất hiện hằng ngày. Đặc biệt là Nikto được sử dụng hoàn toàn miễn phí và có khả năng tùy biến cao. Nikto cũng là một trong những công cụ được insecure.org bình chọn một trong những công cụ quét lỗi bảo mật web tốt nhất trong 10 công cụ. Ngoài ra, Nikto cho phép người sử dụng tùy biến viết các thành phần và nhúng kết với Nikto để thực thi. Hơn nữa, Nikto cũng hỗ trợ nhiều định dạng của những chương trình quét lỗi bảo mật khác như: Nmap, Nessus.
- AppScan: một công cụ thương mại tập hợp lớn các lỗi bảo mật cho từng ứng dụng web riêng biệt.
IBM AppScan