Cách tìm lỗ hổng bảo mật Website với OWASP ZAP

Bảo mật Website luôn là vấn đề cần thiết trước khi vận hành trên Internet. Nếu muốn kiểm tra xem Website của mình có dính lỗ hổng bảo mật không, hãy sử dụng phần mềm OWASP ZAP – Zed Attack Proxy để quét lỗi.

OWASP ZAP –  Zed Attack Proxy là một công cụ mã nguồn mở cho phép bạn kiểm tra độ mạnh mẽ của ứng dụng trước các lỗ hổng bảo mật. Nhưng chính xác thì OWASP ZAP là gì?

Cách tìm lỗ hổng bảo mật Website với OWASP ZAP

Tóm lại, đây là một công cụ kiểm tra lỗ hổng bảo mật giúp các lập trình viên và chuyên gia bảo mật phát hiện ra các lỗ hổng của Website. Bạn có thể thực hiện nhiều tác vụ khác nhau thông qua OWASP ZAP, bao gồm quét các request web, sử dụng danh sách dictionary để tìm các filevà thư mục trên máy chủ web và các trang web thu thập dữ liệu để tìm tất cả các liên kết và URL. Ngoài ra, bạn có thể chặn, xem, sửa đổi và chuyển tiếp các request web giữa trình duyệt và ứng dụng web bằng OWASP ZAP.

Quá trình quét OWASP ZAP có thể tiết lộ các vấn đề liên quan đến SQL injection, broken authentication, lộ dữ liệu nhạy cảm, kiểm soát truy cập bị hỏng, cấu hình sai bảo mật, Cross-Site Scripting (XSS), giải mã không an toàn, các thành phần có lỗ hổng đã biết và bất kỳ headers bảo mật nào bị thiếu.

Trong bài này, chúng ta sẽ xem cách hoạt động của OWASP ZAP, cách thiết lập ZAP, cách tạo các trình thu thập thông tin của riêng chúng ta để quét lỗ hổng.

OWASP ZAP hoạt động như thế nào?

OWASP ZAP là một máy chủ proxy quét tất cả lưu lượng chạy qua nó. Máy chủ proxy này bao gồm các công cụ tự động cho phép bạn chặn các lỗ hổng bảo mật trên trang web của mình và tạo báo cáo từ các phát hiện của nó. Đây là sơ đồ nhanh về cách thức hoạt động của ZAP.

Cách tìm lỗ hổng bảo mật Website với OWASP ZAP 33

ZAP tạo ra các cuộc tấn công của nó bằng cách chạy trình duyệt ZAP trên một URL. Trong quá trình này, ZAP sẽ sử dụng các trình thu thập thông tin của nó để thu thập thông tin của một ứng dụng mục tiêu, quét tất cả các trang có sẵn, sau đó chạy trình quét đang hoạt động trên đó. Máy quét đang hoạt động sẽ xác định chính xác bất kỳ lỗ hổng nào bằng cách sử dụng các phương pháp tấn công đã biết vào các mục tiêu mà nó nhận được từ quá trình quét. Cảnh báo sẽ được đưa ra nếu các lỗ hổng tiềm ẩn được phát hiện và được gắn cờ từ cao xuống thấp dựa trên mức độ rủi ro.

Thiết lập ZAP – Zed Attack Proxy

Bước 1: Để thiết lập OWASP ZAP, trước tiên bạn cần cài đặt nó. Bạn có thể truy cập: zaproxy.org/download để chọn trình cài đặt tương thích với hệ điều hành của bạn.

Cách tìm lỗ hổng bảo mật Website với OWASP ZAP 34

Bước 2: Sau khi tải xuống, hãy chạy trình cài đặt.

Cách tìm lỗ hổng bảo mật Website với OWASP ZAP 35

Bước 3: Đọc và chấp nhận các điều khoản và điều kiện để tiếp tục.

Cách tìm lỗ hổng bảo mật Website với OWASP ZAP 36

Bước 4: Chọn ‘Standard installation’ và nhấn ‘Next’.

Cách tìm lỗ hổng bảo mật Website với OWASP ZAP 37

Bước 5: Nhấp vào ‘Install’ để hoàn tất.

Cách tìm lỗ hổng bảo mật Website với OWASP ZAP 38

Bước 6: Đợi xíu để chương trình cài đặt xong.

Cách tìm lỗ hổng bảo mật Website với OWASP ZAP 39

Bước 7: Sau khi hoàn thành, bạn sẽ được dẫn đến một màn hình trông giống như thế này.

Cách tìm lỗ hổng bảo mật Website với OWASP ZAP 40

Tạo ZAP Spider

Để chạy lần quét đầu tiên, hãy chạy OWASP ZAP mới được cài đặt. Bạn sẽ được chào đón bằng một màn hình trông giống như sau:

Cách tìm lỗ hổng bảo mật Website với OWASP ZAP 41

Sau khi tải xong, bạn sẽ nhận được một màn hình trông giống như ảnh dưới. Trong chế độ xem ‘Quick Start’ chính, bạn có thể chọn giữa ‘Automated Scan’ và ‘Manual Explore’’. Đối với hướng dẫn này, hãy chọn ‘Automated Scan’.

Cách tìm lỗ hổng bảo mật Website với OWASP ZAP 42Tùy chọn này sẽ cung cấp cho bạn một trang giống như ảnh dưới. Bạn có thể chạy nó trên ứng dụng của mình bằng cách trỏ URL đích đến máy chủ cục bộ mà ứng dụng của bạn hiện đang chạy.

Đây là một ví dụ về khi ở trong giai đoạn quét.

Cách tìm lỗ hổng bảo mật Website với OWASP ZAP 43

Sau khi hoàn tất, bạn có thể nhấp vào tab ‘Alerts’ để xem tất cả các lỗ hổng tiềm ẩn.

Cách tìm lỗ hổng bảo mật Website với OWASP ZAP 44

Dựa trên ví dụ và kết quả quét ở trên, chúng ta có thể thấy rằng các vấn đề được phát hiện là không nghiêm trọng và có thể dễ dàng khắc phục, chẳng hạn như X-Frame-Options và Anti-CSRF Tokens.

Độ ảnh hưởng của một lỗ hổng có thể được đánh giá bằng số lượng các cảnh báo cụ thể. Ví dụ: cross-domain JavaScript source file inclusion dường như là một lỗi nào đó. Tuy nhiên, nếu chúng ta tìm hiểu sâu hơn, chúng ta thấy rằng rủi ro được xếp vào loại thấp vì nguồn gốc đáng tin cậy.

Đây là ảnh chụp màn hình của một trong các cảnh báo được gắn cờ và báo cáo được tạo cho lỗi cross-domain JavaScript source file inclusion. Ngay ở phía dưới là giải pháp về cách giảm lỗ hổng bảo mật dựa lỗi này.

Cách tìm lỗ hổng bảo mật Website với OWASP ZAP 45

Ngược lại, nếu chúng ta muốn bắt đầu kiểm tra lỗ hổng bảo mật dựa trên mức độ nghiêm trọng, OWASP ZAP sẽ tự động xếp hạng từ cao nhất đến thấp nhất trong danh sách tệp ‘Alerts’. Cảnh báo hàng đầu trong danh sách là ‘Vulnerable JS Library’. Báo cáo được đánh dấu là rủi ro trung bình vì jQuery được sử dụng không phải là phiên bản mới nhất.

Cách tìm lỗ hổng bảo mật Website với OWASP ZAP 46

Tìm kiếm sâu hơn một chút về jquery-2.1.4 cho chúng ta biết rằng trang web đích này dễ bị tấn công bằng Cross-site Scripting (XSS) thông qua các phần tử từ các nguồn không đáng tin cậy. Điều này là do trong phiên bản JQuery, các phương thức thao tác DOM có thể thực thi code không đáng tin cậy.

Kết luận

Chức năng Quick Scan của OWASP ZAP – Zed Attack Proxy sẽ không “hack” Web của bạn. Tuy nhiên, nó sẽ cung cấp cho bạn một cái nhìn tổng quan về các vấn đề và lỗ hổng bảo mật mà website của bạn đang dính phải.

Sử dụng OWASP ZAP trong giai đoạn lập trình cũng có thể giúp chúng ta cải thiện quy trình bảo mật của mình bằng cách xác định các vấn đề trước khi chúng phát triển quá lớn theo thời gian. Sẽ dễ dàng hơn để sửa một lỗ hổng tiềm ẩn khi nó còn nhỏ hơn là khi nó lớn và ảnh hưởng đến toàn bộ ứng dụng đã phát triển.

Một điều cần lưu ý là nếu bạn chạy OWASP ZAP trên một ứng dụng hoàn thiện hơn với nhiều code kế thừa, bạn có thể nhận được một số lượng lớn cảnh báo. Điều này là bình thường, đặc biệt nếu ban đầu bảo mật không phải là một phần của tư duy phát triển. Miễn là bạn ưu tiên các lỗ hổng bảo mật của mình và tìm cách giải quyết chúng, điều đó sẽ tăng độ an toàn cho ứng dụng của bạn.

Ngoài việc chạy chức năng Quick Scan theo cách thủ công mỗi lần, bạn cũng có thể tự động hóa nó vào quy trình làm việc của mình thông qua Docker Packaged Scans, GitHub Actions hoặc các frameworks tự động hóa.

Previous Post Next Post