Phương thức đánh giá hiệu năng Web Application Firewall

Mục tiêu chính mà tôi nhắm tới khi thực hiện Project này là xây dựng một quy trình nhỏ, đánh giá một Web Application Firewall, đồng thời xây dựng UAT giả lập y như môi trường thực tế mà tôi sẽ làm việc trong thời gian tới, để có kết quả đánh giá thực tế nhất cùng với điều kiện sẵn có, tôi chọn Imperva SecureSphere WAF 7.5 làm mục tiêu để tiến hành đánh giá .

 Mọi thông tin cũng như ý kiến trong bài viết này chỉ đơn giản là ý kiến chủ quan của bản thân tôi, không hề liên quan đến một bên thứ ba nào khác.

Project này được thực hiện dựa trên kiến thức nền tảng của tôi, cùng với các ý kiến đóng góp từ các đàn anh và các cộng sự ở công ty tôi, đồng thời từ các nguồn thông tin sau : 

> Vnsecurity Team 

> Vnhacker blog

> Gamma95 blog

> Tactical Web App Sec

> OWASP Testing Project

> TS/SCI

Môi trường Testlab

> LAN 100/1000Mb

> WAF : Imperva SecureSphere 7.5 Enterprise Edition

> Web App Assessment Tools :

•    Websecurify
•    Netsparker
•    Skipfish
•    Watobo
•    W3af

Cấu hình Testlab

> Kiến trúc ứng dụng của Imperva WAF cũng không quá phức tạp, bao gồm hai thành phần chính là MX Management và WAF Gateway, hỗ trợ hoàn toàn HA cả MX Management lẫn WAF Gateway 

> Tôi chọn mô hình triển khai theo dạng Distribution, chạy độc lập Management và Gateway để mong có kết quả đánh giá xác thực nhất .

> MX Lan Management : 172.28.88.10 / Class C ( Imperva WAF GUI )

> MX Default Management ( Out Of Band ) : 192.168.0.1 / Class C ( Kết nối hai thiết bị MX và GW lại với nhau, tách biệt hoàn toàn với hệ thống mạng trong doanh nghiệp để tránh nhiều vấn đề bất cập như : giảm performance kết nối, sniffing thông tin ... etc )

> GW Default Management ( Out Of Band ) : 192.168.0.2 / Class C

> GW Protect Zone ( eth3 - U ) :  Xem giải thích ở phần dưới.

> GW External Zone ( eth2 - T ) : Xem giải thích ở phần dưới.

Chi tiết kỹ thuật Imperva WAF

Tôi sẽ cập nhật phần này sau .

Screenshot Imperva GUI 7.5.0 


Đa dạng phương pháp triển khai WAF
Theo thông tin mà tôi đọc được từ tài liệu của hãng Imperva WAF, tôi thấy có thể triển khai WAF theo hai dạng chính như sau :inlinesniffing.

  • Đối với dạng inline : WAF sẽ đứng trước vùng cần bảo vệ, tất cả các gói tin muốn tới vùng này đều bắt buộc phải đi xuyên qua WAF, sau đó mới đến được đích .

http://farm5.static.flickr.com/4114/4886956337_ef6ee72af2_z.jpg

  • Đối với dạng sniffing :Yêu cầu phải có switch hỗ trợ tính năng span port, tất cả các gói tin sẽ không đi xuyên qua WAF, mà chúng sẽ được copy sang WAF, để tiến hành phân tích, ngăn chặn và đưa ra cảnh báo

http://farm5.static.flickr.com/4076/4887559868_019e3a6455_z.jpg
Tùy theo nhu cầu và kiến trúc sẵn có của hệ thống để lựa chọn một trong hai dạng


Đồng thời còn một loại rất thú vị, tôi sẽ dành thời gian đi sâu vào viết về nó ở loạt bài sau : Reverse Proxy( chia làm 3 mode : Kernel Reverse; Apache Reverse; Transparent Reverse )

Để phù hợp với môi trường tôi đang cần nghiên cứu, tôi quyết định chọn dạng Inline, với các node mạng đơn giản :

> Một Webserver nối trực tiếp vào Protect Port của Gateway, chạy WebApp có các lỗ hổng bảo mật, dành cho nhu cầu thực hành tìm hiểu WebPentest, ở đây tôi chọn OWASP WebGoat Project http://www.owasp.org/index.php/Category:OWASP_WebGoat_Project

> Một đường nối từ Lan switch tới External Port của Gateway

Vì tôi chỉ tiến hành đánh giá trong Internal, cho nên mô hình thật sự khi giả lập không quá rắc rối, vấn đề chính tôi muốn biết thật sự WAF tầm cỡ đắt tiền như Imperva, có mang lại những kết quả phòng thủ ở mức chấp nhận được hay không thôi .

Từng bước xây dựng và chuẩn hóa WAF
Trước tiên muốn xây dựng Imperva WAF, chúng ta phải tiến hành cài đặt version mới nhất của phần application chạy trên thiết bị . Tôi login vào Imperva FTP Site, tải latestversion 7.5.0 và tiến hành cài đặt .

Nói qua một chút về những phương pháp cài đặt application, Imperva cho chúng ta khá nhiều tùy chọn để linh hoạt cài đặt, tôi đã thử qua phương pháp Network Install, External Media, USB Install và hỗ trợ luôn cả phần Virtual Appliance dành cho Vsphere 4 ...

Cá nhân tôi cảm thấy phương pháp ổn định nhất là External Media, download images và burn thành đĩa CDs hoặc DVD . Vì cài đặt qua Network Install phụ thuộc khá nhiều vào chất lượng đường truyền, dây cables, nếu không ổn định sẽ xảy ra sự cố corrupt files trong quá trình cài đặt, còn USB Install thì phải tiến hành re-format lại USB, khá rắc rối.

Một điều cần lưu ý : Khi triển khai Imperva dưới mô hình Distribution, chúng ta phải tiến hành install MX appliance trước, sau đó mới tiếp tục install WAF GW, tại sao phải như thế ? Vì nếu install WAG GW trước, khi chọn MX Server sẽ bị time out vì không kết nối đến được, phải reset lại thì thật phiền toái.

Sau khi cài đặt, kết nối cả hai thiết bị lại với nhau xong, tôi truy cập vào trang quản trị của WAF ( hình trong mục screenshot ), sau đó tiến hành thực hiện những bước cấu hình cơ bản chung như : Create Sites, Create Server Groups, Create Services, apply default rule vào Webserver mình cần bảo vệ . 

Khi hoàn thành những bước cấu hình cơ bản trên, chúng ta thử truy cập vào Webserver, để Imperva nhìn thấy traffic và bắt đầu "learning" Web structure của ta, nó tương tự việc craw để xem cấu trúc Website ấy, thuật ngữ của Imperva gọi là Automatic Profiling.

Lúc này mặc định WAF đã bắt đầu bảo vệ mục tiêu Webserver của chúng ta rồi, tôi liền cho chạy thử w3af và netsparker để xem mọi hoạt động có trơn tru hay không, kết quả không nằm ngoài dự đoán của tôi, tất nhiên là bắt được gần 95% các request từ các Web assessment tools, bao gồm những request phổ biến như ( testing XSS, testing SQL Injection, Reconnaissen ... ) còn false positive tôi sẽ xét sau, cái tôi cần lúc bấy giờ là việc chắc chắn Imperva WAF đã hoạt động ổn định, hạ hồi phân giải ở trong loạt chương kế tiếp sau .

( Tối hôm thứ bảy tôi quên nên lỡ tay tắt Imperva đi, về nhà không thể remote vào research và viết paper, capture screenshot lên cho quý bạn theo dõi, hẹn vào đầu tuần nhé mọi người . ) 

Violations sub-page from Monitor main top menu

DucNguyen

Dặm Đường Lang Thang.


Liên hệ DNA

 

Mobile  +84 (28) 38 266 877
  +84 (28) 39 401 619

 

Location  DNA Headquarter
  60 Nguyễn Đình Chiểu

  F1 Rosana Tower, Quận 1
         TP.Hồ Chí Minh, Việt Nam