Trang chủ » Quản trị mạng » Các phương pháp kiểm tra ứng dụng web
loading...

Các phương pháp kiểm tra ứng dụng web

849 Lượt xem

1. Phương pháp kiểm tra hộp đen

Phương pháp kiểm tra hộp đen các lỗi bảo mật trên ứng dụng web đề cập đến việc kiểm tra các ứng dụng từ bên ngoài, tức là quan sát các dữ liệu được đệ trình đế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 đệ trình 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 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 đệ trình đến ứng dụng bằng cách sử dụng các intercepting proxy (là một ứng dụng nằm giữa ứng dụng và trình duyệt, cho phép người kiểm tra thay đổi giá trị một cách tùy biến trước khi đệ trình đến ứng dụng) 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:

  • WebScarab (http://www.owasp.org/software/webscarab.html) 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. Ngoài ra, công cụ còn cho phép thực hiện một số chức năng hữu ích khác như:

– Spider (duyệt toàn bộ cấu trúc của website): Sẽ thực hiện quét toàn bộ thư mục và tập tin của ứng dụng web.

– SessionID Analysis (phân tích chỉ số phiên làm việc): Cho phép phân tích phiên làm việc giữa trình duyệt và ứng dụng.

– Fuzzer: Một chức năng tự động truyền dữ liệu đối với các tham số đã được người kiểm tra chỉ định trước đó.

hack_webscarab_screen5_big

  • BurpSuite (http://portswigger.net/suite/) cũng là một framework được viết bằng Java cũng có chức tương tự như webScarab như intercepting proxy, spider, fuzzer, … BurpSuite hiện tại có hai phiên bản, một phiên bản miễn phí và một phiên bản thương mại. Phiên bản thương mại thì có thêm phần tự động quét các lỗi ứng dụng web và cho phép người sử dụng có thể tìm kiếm hoặc lưu lại trạng thái trong quá trình kiểm tra các ứng dụng web. Một số điểm nổi bật của BurpSuite có thể điểm qua đó là:

– Chức năng spider trong BurpSuite thông minh hơn WebScarab ở chỗ khi nó nhận diện các dữ liệu cần đệ trình thì nó sẽ thông báo cho người kiểm tra biết. Người kiểm tra sẽ xem xét và đệ trình dữ liệu phù hợp để BurpSuite có thể quét toàn bộ thư mục và tập tin của ứng dụng web một cách hiệu quả nhất.

– Quá trình intercepting proxy có nhiều tùy chọn chọn lọc hơn so với webscarab, cho phép người kiểm tra ứng dụng có thể tùy biến trong việc theo dõi việc trao đổi dữ liệu giữa trình duyệt và ứng dụng web.

– Chức năng Intruder trong BurpSuite giống như chức năng Fuzzer của WebScarab nhưng lại cho tùy biến các vị trí dữ liệu cần đệ trình đến ứng dụng uyển chuyển và linh hoạt hơn.

– Một số chức năng phụ mạnh như: so sánh kết quả từ sự phản hồi của ứng dụng, cung cấp một số phương thức giải mã thông dụng base64, htmlencode,…

– Chức năng thực hiện tự động kiểm tra các lỗi SQLi, XSS, Path Traversal, … Chức năng này chỉ có trong phiên bản có thu phí. Quá trình kiểm tra tự động các lỗi bảo mật cũng thực hiện trên việc đệ trình các dữ liệu gây ra lỗi SQLi, XSS, … trên những tham số mà BurpSuite thu thập được.

– Chức năng lưu phiên làm việc (chỉ có tác dụng trong bản thu phí) cho phép người kiểm tra có thể lưu phiên làm việc của mình với BurpSuite.

BurpSuite-Screen-1

BurpSuite

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 (http://w3af.sourceforge.net) 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.

w3af

  • Acunetix (http://www.acunetix.com) 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.

Acunetix

Acunetix

2. Phương pháp kiểm tra hộp trắng

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.

appcodescan

AppCodeScan

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 kiểm tra 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ụ tiêu biểu

  • Nikto (http://cirt.net/nikto2) 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.

Nikto

Nikto

IBMRational1

IBM AppScan

loading...
Có thể bạn chưa xem