1. MỘT SỐ PHƢƠNG PHÁP TẤN CÔNG WEBSITE: SQL INJECTION, XSS,
1.3 KIỂM TRA BẢO MẬT VÀ CÁC BIỆN PHÁP PHÒNG CHỐNG
1.3.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:
1. 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
46
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:
Pentest là gì?
Dịch vụ Pentest website & mobile app
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.
47 Wa3f
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.
1.3.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.
48
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.
1.3.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
49
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
50
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: 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.
51
________________________________________________________________
BÀI 2 : TẤN CÔNG VÀ BẢO MẬT CSDL