Nội dung trình bày: OWASP ZAP là gì Cài đặt Sử dụng như thế nào OWASP ZAP là gì Là công cụ quét lỗi bảo mật của ứng dụng web, mã nguồn mở. Các tính năng của ZAP: Zap như một proxy giữa trình duyệt và web app, do đó ta có thể inspect, modify những request được gửi đến app.
*
Spider: là tính năng được sử dụng để tự động khám phá ra những URL trên website. Nó bắt đầu với một danh sách URL, sau đó xác định tất cả các URL có trên các trang và thêm chúng vào danh sách URL cần thăm tiếp theo, đệ quy tiếp tục để tìm được URL mới. Active scan: là tính năng tự động scan để tìm những lỗi đã được biết trước. Passive scan: khi Zap được đặt làm proxy cho trình duyệt, nó sẽ scan tất cả HTTP message (request và response) được gửi đến web app để xác định lỗi. Passive scan không thay đổi request và response. Fuzzing: là tính năng cho phép submit nhiều dữ liệu không hợp lệ lên server. .... Cài đặt Sử dụng

Khởi tạo

Explore app thủ công

Sau khi start Zap, bước đầu tiên ta nên explore app thủ công, sử dụng tối đa các chức năng mà web app cung cấp, bởi có những tính năng cần dữ liệu hợp lệ để có thể tiếp tục. Để explore, ta Launch Browser ở tab Quick Start hoặc đặt Zap là proxy cho trình duyệt (Preference --> Local Proxy)

Sau khi đã explore, ta nên lưu session để tái sử dụng lần sau

Tạo Context

Context là một tập url, thường là một web app Context cung cấp các tính năng quan trọng như: Authentication, Users, Session Management… Nếu web app cung cấp nhiều role, ta nên lưu mỗi role vào một Zap session. Các bước tạo context: Trong phần Sites, click icon New Context, sau đó tạo context mới Double click vào context vừa tạo Mục Authencitation: chọn Authentication mehtod phù hợp Mục Users: click Add để thêm mới một user

Include web app vào context vừa tạo

Thêm những context cần quan tâm và loại những context khác từ Scope bằng cách chuột phải vào mỗi context, sau đó click icon Show only URL in Scope

Tính năng Spider và Active Scan

Chọn Attack --> Spider

Chọn Context, User, sau đó Start Scan

Active Scan cũng tương tự, kết quả sẽ được show trong tab Alert

Tính năng Fuzzing

Chọn một submit request từ phần Sites cần test, sau đó chọn Fuzz từ menu Attack Double click một tham số cần gán nhiều giá trị, tại mục Fuzz Locations --> Add --> Add --> Chọn payload type cần test --> Add --> Start Fuzzer More

Để tìm hiểu chi tiết, chọn Help --> OWASP ZAP User Guide

Điều kiện

Owasp Zap chạy bằng Java chính vì vậy ta cần phải cài đặt JRE. Nếu bạn chưa cài JRE thì có thể vào Web Site Oracle download và cặt đặt.

Bạn đang xem: Giới thiệu về công cụ chẩn đoán bảo mật owasp zap

Download cài đặt

Bạn có thể download cài đặt Owasp Zap phiên bản mới nhất ứng với môi trường làm việc của bạn từ link phía dưới.https://github.com/zaproxy/zaproxy/wiki/Downloads

Download và cài đặt như một ứng dụng bình thường. Sau khi cài đặt xong ta khởi động ứng dụng và sẽ có giao diện như hình bên dưới

*

Thiết lập Local Proxy

OWASP ZAP có chức năng proxy cục bộ, cho phép OWASP ZAP hoạt động như một proxy cục bộ.

Thiết lập bên phía Owasp Zap

*

Chọn Tools -> Options màn hình sau sẽ xuất hiện.

*

Ta sẽ thiết lập Address và Port . Mặc đinh sẽ là localhost:8080. Trường hợp mà có ứng dụng nào khác đã chiếm dụng port 8080 thì ta có thể đổi 1 port khác tùy ý, rồi nhấn OK để lưu thiết lập.

Thiết lập bên phía Browser (Google chorme)

Hầu hết các hướng dẫn thiết lập đều internet đều hướng dẫn thiết lập với Fire
Fox. Nhưng trong bài viết này mình sẽ hướng dẫn thiết lập với Google Chorme, mục đích là để mình sử dụng được Add-on Postman của Google chorme để test API (sẽ trình bày sau).

Việc cần làm là bạn cài Add-on Switchy
Omega. Add-on này sẽ giúp bạn ON OFF việc chuyển đổi proxy 1 cách dễ dàng.

*

Bạn chọn New profile và điền những thông tin cần thiết , chú ý là chỗ Proxy servers bạn phải thiết lập cùng Address và cùng Port đã được thiết lập ở phía Owasp Zap. Thiết lập này sẽ giúp cho Owasp Zap bắt được những truy cập mà bạn đang truy cập phía Browser.

Sau khi thiết lập xong , nút Apply changes sẽ sáng lên, click vào để lưu thiết lập.

Ok, bạn đã thiết lâp xong Proxy cho Browser , nhìn lên góc phải browser bạn sẽ thấy icon hình tròn. Click vào cái profile bạn vừa thiết lập giangpt để ON và Click vào System Proxy để vô hiệu hóa thiết lập.

*

Vậy là bước này đã xong , bây giờ bạn đã có thể ON OFF để chuyển đổi proxy 1 cách dễ dàng.

Truy cập vào ứng dụng Web mà bạn muốn test

Sau khi thiết lập xong Proxy cho cả Owasp Zap và Browser. Bạn có thể truy cập vào ứng dụng Web mà bạn đang phát triển để test, bất kể môi trường local, staging hay production .

*

*

Nếu thiết lập đúng , phía bên trái phần Sites của Owaps Zap sẽ hiển thị URL của trang Web mà mình vừa truy cập. Đến đây thì bước chuẩn bị cho việc Scan Injection kết thúc.

Trước khi Scan Injection

Chuyển sang Protected Mode

*

Owasp Zap có 4 chế độ quét , khi khởi động nó được set chế độ mặc định là Standard, do đó ta cần phải chuyển sang chế độ Protected Mode.

Lý do trọn chế độ Protected là vì, nếu trọn chế độ mặc định Standard hay là chế độ Attack thì có khả năng là nó sẽ tấn công vào các trang Web mà mình không quản lý được. Ngược lại nếu trọn chế độ Safe thì nó lại không scan được hết hoàn toàn các lỗ hổng , do đó ta trọn chế đô protected.

Thử tiến hành Test

Click chuột phải vào link URL ở bên phía tab Sites, ta sẽ thấy mục Attack nhưng không kích hoạt được vì chưa Include in Context.

Include in Context

Để thực hiện kiểm tra thâm nhập ở chế độ Protected, bạn cần include URL cần được kiểm tra trong Context.

*

Click chuột phải vào URL được hiển thị trên tab Sites và chọn Include in Context-> New Context, màn hình session property sẽ xuất hiện.

*

Chọn vào URL và nhấn OK để được include vào trong context. Khi nó được include vào trong context, 1 vòng tròn màu đỏ được hiển thị trong các icon của URL như hình bên dưới.

*

Bây giờ chúng ta đã có thể thực hiện các cuộc tấn công như quét động.

※ Khi thực hiện kiểm tra thâm nhập với OWASP ZAP, vui lòng chỉ đến trang web được quản lý bởi chính bạn trong môi trường cục bộ. Nếu nó được thực hiện cho một máy chủ được quản lý bởi một bên thứ ba được xuất bản trên Internet, nó có thể được coi là một truy cập trái phép.

*
Chúng tôi đang thực hiện Active Scan. Nếu có một lỗ hổng sau khi quét xong, nó sẽ được hiển thị trong Alerts.

*

Click vào nút Show scan progress details, sẽ hiên lên các danh sách các hạng mục injection đang quét , chẳng hạn như SQL injection, Cross Site Script... Việc quét sẽ được thực hiện lần lượt cho đến hết các hạng mục.

Xem thêm: Hướng Dẫn Cài Avatar Video Facebook Trên Điện Thoại, Cách Đặt Video Làm Avatar

*

Trong tab Active Scan, click vào 1 dòng bất kỳ , ta sẽ thấy được Owasp Zap đã giả lập request để tấn công và tìm lỗ hổng trong ứng dụng của bạn .Trong tab Request và Response ở phía trên sẽ hiển thị rõ những thông tin giả lập đó. Như trong request bên dưới Owasp Zap chèn thêm đoạn query trong request.

*

Như trong hình trên các bạn chỉ thấy mỗi Request bằng phương thức GET thôi phải không. Đó là do mình chỉ mới truy cập vào trang Login của ứng dụng, mà chưa thực hiện việc login, nên Owasp Zap chưa bắt được cái Request đó để Scan, đây là tính năng rất hay của Owasp Zap, chỉ đến đâu test đến đó, và mình có thể control được phạm vi test của Owasp Zap.

Bây giờ , thử Login và thao tác trong ứng dụng, để Owasp Zap có thể bắt hết được các Request của ứng dụng và test . Owasp Zap nó thể bắt được và lưu các tham số mình truyền vào khi gửi Request trong ứng dụng và dựa vào những tham số đó để giả lập hàng ngàn Request khác nhau để test và tìm ra lỗ hổng của ứng dụng.

*
Như hình trên mình vừa thực hiện việc login vào ứng dụng, bên tab Sites, mình click vào URL POST:login(xxx,xxxx) nó sẽ hiện thị ra thông tin request account lẫn password của request login bên của sổ Request. Bây giờ Owasp Zap có thể sử dụng những thông tín đó để làm giả các request và tìm ra lỗ hổng của ứng dụng.

*

Tiếp theo mình đã thao tác đến 1 chức năng khác của ứng dụng là chức nặng tạo token như bạn thấy ở trên, và Owasp Zap cũng đã bắt lại được những thông tin request để sử dụng cho việc làm giả dữ liệu. Và cuối cùng mình đã Logout khỏi ứng dụng. Dĩ nhiên Owasp Zap cũng bắt lại được thao tác đó.Câu hỏi đặt ra là ví dụ mình thực hiện việc test cho 3 chức năng trên Login , đăng ký token và Logout. Muốn đăng ký Token thì mình phải Login, mà lỡ trong quá trình chạy test Owasp zap nó chạy tới trang Logout và logout luôn thì làm sao mình test được chức năng đăng ký Token. Hỏi vậy thôi, để mình trả lời luôn là Owasp Zap có hỗ trợ điều đó, và mình sẽ hướng dẫn trong bước tiếp theo.

Thiết lập User Password cho những chức năng cần phải Login

Quay trở lại bước Include Context hồi nãy, trong của sổ Session Propeties. Click vào context mà mình vừa tạo, chọn mục Authentication.

Chọn URL Login , chọn username, password, phía dưới dùng là 2 đoạn text mà khi mình login hay logout nó hiển thị trên trang Web, mục đích để Owasp Zap kiểm tra coi mình đã Login hay Logout thành công hay chưa. Mẹo là bạn có thể click qua tab Response và copy đoạn text trong phần body của Response và paste vô.

*

Tiếp theo chọn mục Users để thiết lập user ,password cho việc Login.

*

Tiếp theo chọn mục Forced User và chọn cái user vừa tạo, nhấn OK là bạn đã thiết lập xong cho việc Login.

Còn 1 việc nữa là bạn nhấn vào Icon phía dưới để enable cho user vừa tạo.

*

Cuối cùng khi thực hiện chạy test thì bạn chọn vào cái user vừa tạo và chạy test.

*

*

Như các bạn thấy Owasp Zap đã giả những request với phương thức là POST, và sử dụng username và password mà mình vừa thiết lập đề login và test các chức năng cần login.

*

Thiết lập để test API

Bước tiếp theo này mình sẽ hưỡng dẫn để test API.

Bạn cần phải cài Adds On Postman. Rất đơn giản, bạn cũng cần phải ON cái thiết lập Proxy ở trên để Owasp Zap bắt được Request.

*

Điền URL cần test, chọn phương thức, điền các tham số như bạn test 1 API bằng Postman thông thường và nhớ phải nhấn SEND để gửi request.

*

Đó Owasp Zap bắt được rồi kìa. Giờ chỉ cần nhấn Active Scan là nó sẽ Scan được API.

Lưu Session và xuất file Report

Lưu Sesion

Bạn có thể lưu những thiết lập ở trên bằng cách. Nhập tên và chỗ cần lưu và nhấn OK là xong.

*

Tạo Report

Sau khi Scan xong bạn có thể xuất file report cho kết quả vừa Scan. Có nhiều định dạng file report cho bạn lựa trọn như HTML, XML hay Markdown.

*

Kiểm tra kết quả

Không phải lúc nào kết quả Scan của Owasp Zap đều đúng. Có những trường hợp không phải là lỗ hổng những Owasp Zap vẫn báo là lỗ hổng. Chính vì vậy ta cần phải kiểm tra lại 1 lần nữa.

Ví dụ: như kết quả phía dưới là có SQL injection, nhưng thực tế trong code của ứng dụng của mình không sử dụng query, nhưng do lúc nào trả về status là 200 nên Owasp Zap hiểu nhầm là SQL injection.

*

Kết Luận

Owasp Zap là một công cụ hữu ích để kiểm tra lổ hổng của ứng dụng web. Ngoài ra còn các ứng dụng khác như Open
Vas có thể quét được lỗ hổng của hệ thống OS, các bạn có thể tìm hiểu thêm.