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 đó.
- 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
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.
Wa3f
-
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
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
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
- AppScan (http://www.ibm.com/software/awdtools/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
securitydaily
Không có nhận xét nào:
Đăng nhận xét