Lab15 Owasp Zap để kiểm thử bảo mật cho Web Application và API Tài liệu ôn thi Vstep Speaking | Đại học Bách Khoa, Đại học Đà Nẵng

Lab15 Owasp Zap để kiểm thử bảo mật cho Web Application và API Tài liệu ôn thi Vstep Speaking | Đại học Bách Khoa, Đại học Đà Nẵng giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học

OWASP ZAP ĐỂ TEST SECURITY CHO WEB
APPLICATION VÀ API
1. Khai thác công cụ chẩn đoán bảo mật OWASP ZAP
OWASP ZAP (OWASP Zed Attack Proxy) dự án về bảo mật ứng dụng web
nguồn mở được phát triển bởi tổ chức OWASP. Trong đó, ZAP được viết tắt của “man-in-
the-middle proxy” đóng vai trò đứng giữa trình duyệt của người kiểm tra website, để
thể kiểm tra chặt chẽ các thông tin được gửi đi cũng như sửa đổi.
Một số tính năng của OWASP ZAP như:
Hỗ trợ việc kết nối web (Web sockets support).
Hỗ trợ nhiều loại ngôn ngữ scripting (Support for a wide range of scripting
languages).
Hỗ trợ Plug-n-Hack (Plug-n-Hack support).
Xác thực và hỗ trợ phiên (Authentication and session support).
API dựa trên REST mạnh mẽ (Powerful REST based API).
Tùy chọn cập nhật tự động (Automatic updating option).
Integrated and growing marketplace of add-ons.
Quét tự động (Automated scanner).
Quét thụ động (Passive scanner).
Duyệt bắt buộc (Forced browsing).
Owasp Zap 1 Tool Test Security giúp scan tìm ra lỗ hổng trong hệ thống ứng
dụng.
Các bước cài đặt:
Cài đặt JRE. Nếu chưa cài JRE thì có thể vào Web Site Oracle download và cặt đặt.
Tải Owasp Zap phiên bản mới nhất:
https://github.com/zaproxy/zaproxy/wiki/Downloads
Khởi động Owasp Zap và sẽ có giao diện như hình bên dưới
2. 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.
Thực hiện thiết lập Address và Port . Mặc định sẽ là localhost:8080.
Trường hợp mà có ứng dụng nào khác đã chiếm dụng port 8080 thì 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)
Mục đích là để sử dụng được Add-on Postman của Google chorme để test API.
Cài Add-on SwitchyOmega. 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 và điền những thông tin cần thiết , chú ý là chỗ Proxy servers bạn phải New profile
thiết lập cùng và cùng đã được thiết lập ở phía Owasp Zap. Thiết lập này sẽ giúp Address Port
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 sẽ sáng lên, click vào để lưu thiết lập.Apply changes
Sau khi thiết lâp xong Proxy cho Browser , nhìn lên góc phải browser sẽ thấy icon hình tròn.
Click vào cái profile bạn vừa thiết lập để ON và Click vào giangpt 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.
3. Truy cập vào ứng dụng Web mà NSD muốn test
Sau khi thiết lập xong Proxy cho cả . Bạn có thể truy cập vào ứng dụng Owasp Zap Browser
Web mà bạn đang phát triển để test, bất kể môi trường , hay .local staging production
Nếu thiết lập đúng , phía bên trái phần của sẽ hiển thị URL của trang Web mà Sites Owaps Zap
mình vừa truy cập. Đến đây thì bước chuẩn bị cho việc Scan Injection kết thúc.
4. 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 chọn chế độ Protected là vì, nếu trọn chế độ mặc định Standard hay là chế độ Attack thì có
khả năng là tool này 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
chọn chế độ Safe thì nó lại không scan được hết hoàn toàn các lỗ hổng , do đó ta chọn chế đô
protected.
5. 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 nhưng không kích Attack
hoạt được vì chưa Include in Context.
Include in Context
Để thực hiện kiểm tra thâm nhập ở chế độ , ta cần include URL cần được kiểm tra Protected
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.
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 tìm lỗ hổng trong ứng dụng của bạn .Trong tab Request
Response phía trên sẽ hiển thị 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 tính năng rất
hay của Owasp Zap, chỉ đến đâu test đến đó, mình 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 test . Owasp Zap thể bắt được 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, 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. cuối cùng mình đã Logout khỏi ứng dụng. nhiên
Owasp Zap cũng bắt lại được thao tác đó.
Câu hỏi đặt ra dụ mình thực hiện việc test cho 3 chức năng trên Login , đăng
token Logout. Muốn đăng Token thì mình phải Login, lỡ trong quá trình chạy
test Owasp zap chạy tới trang Logout 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 Owasp Zap 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. Clicko
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 2 đoạn text khi
mình login hay logout 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 bạn 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 sẽ huong 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 để gửi request.SEND
| 1/25

Preview text:

OWASP ZAP ĐỂ TEST SECURITY CHO WEB APPLICATION VÀ API
1. Khai thác công cụ chẩn đoán bảo mật OWASP ZAP
OWASP ZAP (OWASP Zed Attack Proxy) là dự án về bảo mật ứng dụng web mã
nguồn mở được phát triển bởi tổ chức OWASP. Trong đó, ZAP được viết tắt của “man-in-
the-middle proxy” đóng vai trò đứng giữa trình duyệt của người kiểm tra website, để có
thể kiểm tra chặt chẽ các thông tin được gửi đi cũng như sửa đổi.
Một số tính năng của OWASP ZAP như:
₋ Hỗ trợ việc kết nối web (Web sockets support).
₋ Hỗ trợ nhiều loại ngôn ngữ scripting (Support for a wide range of scripting languages).
₋ Hỗ trợ Plug-n-Hack (Plug-n-Hack support).
₋ Xác thực và hỗ trợ phiên (Authentication and session support).
₋ API dựa trên REST mạnh mẽ (Powerful REST based API).
₋ Tùy chọn cập nhật tự động (Automatic updating option).
₋ Integrated and growing marketplace of add-ons.
₋ Quét tự động (Automated scanner).
₋ Quét thụ động (Passive scanner).
₋ Duyệt bắt buộc (Forced browsing).
Owasp Zap là 1 Tool Test Security giúp scan và tìm ra lỗ hổng trong hệ thống ứng dụng. Các bước cài đặt:
Cài đặt JRE. Nếu chưa cài JRE thì có thể vào W
eb Site Oracle download và cặt đặt.
Tải Owasp Zap phiên bản mới nhất:
https://github.com/zaproxy/zaproxy/wiki/Downloads
Khởi động Owasp Zap và sẽ có giao diện như hình bên dưới
2. 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.
Thực hiện thiết lập Address và Port . Mặc định sẽ là localhost:8080.
Trường hợp mà có ứng dụng nào khác đã chiếm dụng port 8080 thì 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)
Mục đích là để sử dụng được Add-on Postman của Google chorme để test API.
Cài Add-on SwitchyOmega. 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.
Sau khi thiết lâp xong Proxy cho Browser , nhìn lên góc phải browser 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.
3. Truy cập vào ứng dụng Web mà NSD 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, hay staging 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.
4. 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 chọn chế độ Protected là vì, nếu trọn chế độ mặc định Standard hay là chế độ Attack thì có
khả năng là tool này 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
chọn chế độ Safe thì nó lại không scan được hết hoàn toàn các lỗ hổng , do đó ta chọn chế đô protected. 5. 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, ta 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 nậh p ớ v i OWASP ZAP, vui lòng c ỉ h đế 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 x ấ u 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.
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 sẽ huong 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.