Cấu trúc logic của fuzzer

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu một số công cụ để đánh giá sản phẩm an toàn bảo mật thông tin 04 (Trang 47)

Hình 2 .6 Cây phân tích cú pháp của câu truy vấn SELECT cụ thể

Hình 2.12 Cấu trúc logic của fuzzer

Protocol model: Kích hoạt các chức năng liên quan tới các định dạng dữ liệu và trình

tự message khác nhau

Anomaly library: Tất cả các fuzzer đều chứa một tập các đầu vào để kích hoạt các lỗ

hổng trong phần mềm.

Attack simulation engine: Sử dụng một thƣ viện các tấn công hoặc các vấn đề bất thƣờng. Các vấn đề bất thƣờng đƣợc tập hợp trong một công cụ, hoặc thay đổi ngẫu nhiên để có thể tạo ra các fuzz test trong thực tế

Runtime analysis engine: Giao diện SUT: có rất nhiều kỹ thuật có thể đƣợc sử dụng để

Reporting(báo cáo): Kết quả test sẽ đƣợc đƣa ra theo một định dạng, giúp cho những ngƣời phát triển hoặc một bên thứ ba có thể sử dụng. Một số công cụ khác không có chức năng này, còn fuzzer thì báo cáo rất chi tiết về các lỗ hổng phức tạp

Documentation: Đây là một công cụ nếu không có tài liệu ngƣời dùng thì rất khó sử

dụng. Đặc biệt là trong QA, có thể có nhiều tài liệu hƣớng dẫn sử dụng cho kịch bản test. Tài liệu hƣớng dẫn kịch bản test có thể đƣợc sử dụng khi báo cáo thay vì các tài liệu cố định.[3]

e) Quy trình fuzzing

Một quy trình fuzzing đơn giản bao gồm một chuỗi các message đƣợc gửi tới SUT. Các kết quả thay đổi và message gửi tới có thể đƣợc phân tích, trong một số trƣờng hợp có thể bị bỏ qua. Kết quả trả về điển hình của một kiểm tra fuzz bao gồm các đáp trả sau:

- Valid response(đáp trả hợp lệ).

- Error response(đáp trả lỗi).

- Anomalous response(đáp trả bất thƣờng).

- Crash or other failure (sụp đổ hay lỗi).

Hình2.13: Ví dụ về một kịch bản fuzz và kết quả trả về từ một SUT

Quá trình fuzzing không chỉ là việc gửi và nhận các message. Kiểm thử đầu tiên sẽ đƣợc tạo ra và gửi tới SUT. Giám sát mục tiêu cần đƣợc thực hiện liên tục và tất cả các thất bại đều đƣợc ghi lại để đánh giá trong các lần sau. Một phần quan trọng của quá trình fuzzing là giám sát mã lệnh khi nó xử lý một đầu vào không hợp lệ.[3]

Hình 2.14: Quá trình fuzzing bao gồm các kịch bản fuzz và một hệ thống giám sát 2.4. Công cụ dò quét lỗ hổng trong cổng thông tin điện tử

Một chƣơng trình kiểm thử lỗ hổng website nhất thiết phải có 2 thành phần chính:

- Web Crawler: Module chịu trách nhiệm đi dò quét toàn bộ nội dung website từ đó xây dựng cấu trúc website

- HTTP Fuzz: sinh ra các dữ liệu fuzzing gửi lên server dựa trên cấu trúc website thu đƣợc từ module crawler, sau đó kiểm tra response trả về để đoán nhận có lỗ hổng website hay không[9]

2.4.1. Bkav Web Scan

a) Giới thiệu công cụ

Webscan là một công cụ quét đƣợc cung cấp bởi Bkav, sử dụng công nghệ điện toán đám mây và tiếp cận theo hƣớng Saas. Để thực hiện quét lỗ hổng trên website của mình, ngƣời quản trị website đó chỉ cần truy cập vào địa chỉ Webscan.bkav.com.vn và thực hiện quét. Webscan hỗ trợ quét đồng thời nhiều website một lúc, sau khi quét xong kết quả sẽ đƣợc gửi tới địa chỉ email của ngƣời quét và những chỉ dẫn để khắc phục các lỗ hổng này.

b) Cấu tạo

Theo hƣớng tiếp cận Saas, hệ thống sẽ giao tiếp với ngƣời dùng là các webmaster thông qua một website public ra ngoài. Đây là “phần nổi” của hệ thống. Toàn bộ quá trình dò quét lỗ hổng an ninh website sẽ do một application phía dƣới thực hiện.

Website quản lý các thông tin về ngƣời dùng, chịu trách nhiệm xác thực là webmaster trong quá trình đăng ký.

Sau khi quá trình đăng ký và xác thực hoàn tất, yêu cầu từ ngƣời dùng đƣợc chuyển vào cho trƣơng trình quét lỗ hổng an ninh ở bên dƣới. Chƣơng trình này sẽ thực hiện quá trình quét lỗ hổng an ninh website, chuyển kết quả cho website hiển thị cho ngƣời dùng.

- Vulns Scanner website ( VSW): Website giới thiệu dịch vụ, quản lý thông tin, giao tiếp với ngƣời dùng

- Vulns Scanner Application (VSA): Là chƣơng trình thực hiện quá trình quét các lỗ hổng an ninh của website.[9]

Hai thành phần này giao tiếp với nhau thông qua lời gọi chƣơng trình và cơ sở dữ liệu. c) Kỹ thuật sử dụng

Webscan sử dụng kỹ thuật phân tích động, và tiếp cận dựa trên phỏng đoán để thực hiện dò quét và phát hiện lỗ hổng.

Module Crawler trong VSA

Module Crawler chịu trách nhiệm thu thập các thông tin từ website từ đó dựng lên cấu trúc website thông quá một số thành phần

- Khối downloader: Download truy cập đến website download các web page bắt

đầu từ URL đầu tiên. Các webpage đƣợc khối download đƣa về sẽ đƣợc đƣa đến khối Parse HTML để phân tích. Hiện nay, có một số project mã nguồn mở viết bằng python cho phép parse html nhƣ BeautifulSoup (http://www.crummy.com/software/ BeautifulSoup/) cho kết quả khá tốt. Tuy nhiên vì đƣợc thiết kế cho phép dựng toàn bộ các node cả web pase dƣới dạng cây cho nên thời gian xử lý khá lâu.

- Queue: Chứa các URL phân tích đƣợc.

- Scheduler: Quản lý thời gian tạm dừng giữa các lần request. Sau khoảng thời gian ấy, các url tiếp theo trong Queue đƣợc gửi đến cho khối download.

- Các URL thu thập đƣợc cùng với HTTP response trả về: Đƣợc sử dụng để xây dựng nên cấu trúc của website.

- Mục đích cuối cùng của web crawler là dựng lên đƣợc cấu trúc của website. Cấu trúc này là cơ sở để tiến hành fuzzing tìm các lỗ hổng website. Muốn vậy, ngoài các thông tin về url, danh sách các biến, mỗi nốt trên cây cần lƣu trữ thêm các thông tin nhƣ: Status code, content-length, source html….

- Cuối cùng, kết quả cấu trúc website đƣợc lƣu trữ một cách có thứ bậc trong một file kết quả Xml, VSW sẽ đọc file này để hiển thị kết quả ra trình duyệt cho ngƣời dùng.[9]

Module Vulns Scan trang VSA

- Modul Vulns Scan thực hiện quá trình quét lỗ hổng website dựa trên cấu trúc website mà module web Crawl dựng đƣợc bằng phƣơng pháp fuzzing.

- Một quá trình fuzzing sẽ bao gồm 3 bƣớc cơ bản sau:

- Lấy Url chuẩn từ cấu trúc website, thêm các dữ liệu fuzz vào biến tạo thành “fuzz http request”

- Gửi “fuzz http request” lên server và nhận về http response tƣơng ứng

Ƣu điểm

- Tiếp cận theo hƣớng Saas nên thuật tiện trong việc cập nhật, thêm chức năng mới

- Có cơ chế xác thực chủ sở hữu thực sự của website cho phép hệ thống không bị lợi dụng bởi những ngƣời có ý đồ xấu.

Nhƣợc điểm

Có một số lỗi mà công cụ này chƣa phát hiện đƣợc nhƣ: CSRF; GHDB; Code Execution(Unix and Windows); Directory Traversal (Unix and Windows); File Inclusion; Script Source Code Disclosure;CRLF Injection.

- Không thực hiện quét đƣợc các website có chứa Captra, Single sign on, cơ chế xác thực hai lần.

- Không chỉ rõ đƣợc nơi phát sinh lỗi.

d) Thuật toán sử dụng

Webscan sử dụng fuzzing trong quá trình dò quét lỗ hổng. Ban đầu, hệ thống xây dựng một tập dữ liệu mẫu, sau đó so sánh dữ liệu mẫu này với các dữ liệu nhận đƣợc để phát hiện lỗ hổng.

Khi phát hiện các dữ liệu mới, thì dữ liệu này sẽ đƣợc bổ sung vào tập dữ liệu huấn luyện ban đầu để phục vụ cho các lần quét sau

2.4.2. Acunetix Web Vulnerability Scanner a) Giới thiệu công cụ a) Giới thiệu công cụ

Acunetix là đã đi tiên phong trong lĩnh vực quét bảo mật các ứng dụng web: Các kỹ sƣ đã tập trung vào bảo mật web vào đầu năm 1997 và đƣợc phát triển bởi một đội ngũ kỹ sƣ hàng đầu trong phân tích trang web và phát hiện lỗ hổng. Acunetix WVS kiểm tra tất cả các lỗ hổng web bao gồm cả SQL Injection, Cross Site Scripting và nhiều lỗ hổng khác.

Ngoài ra, Acunetix Web Vulnerability Scanner còn có thể chạy quét một cổng chỉ định trên máy chủ web mà các trang web đƣợc lƣu trữ và tự động xác định các dịch vụ mạng đang chạy trên một cổng mở, tung ra một loạt các bài kiểm tra an ninh mạng so với dịch vụ mạng

b) Cách thức hoạt động của Acunetix WVS

- Module Crawler phân tích toàn bộ trang web bằng cách làm theo tất cả các liên kết trên trang web trong file robots.txt và sitemap.xml (nếu có). Sau đó, WVS sau đó sẽ vạch ra cấu trúc trang web và hiển thị thông tin chi tiết về mỗi tập tin. Nếu Acunetix AcuSensor Technology đƣợc kích hoạt, các bộ cảm biến sẽ lấy một danh sách của tất cả các file có trong thƣ mục ứng dụng web và thêm các file không đƣợc tìm thấy bởi trình thu thập thông tin (Crawler)với Crawler output. Các tập tin nhƣ vậy thƣờng không đƣợc phát hiện bởi các Crawler vì chúng không thể truy cập đƣợc từ các máy chủ web, hoặc không đƣợc liên kết thông

qua trang web. Bộ cảm ứng cũng sẽ phân tích các file ứng dụng, chẳng hạn nhƣ file web.config

- Sau quá trình thu thập thông tin, WVS tự động hiển thị một loạt các lỗ hổng có thể tấn công trên mỗi trang đƣợc tìm thấy, với vai trò của một hacker. Ngoài ra, WVS phân tích từng trang cho phép nhập dữ liệu, và sau đó cố gắng kết hợp tất cả các kết hợp đầu vào khác nhau. Đây là Automatic Scan Stage. Nếu Technology AcuSensor đƣợc kích hoạt, một loạt lỗ hổng chống lại các trang web sẽ đƣợc kiểm tra và hiển thị.

- Trong quá trình quét, một cổng scan cũng đƣợc đƣa ra đối với máy chủ web lƣu trữ các trang web. Nếu một cổng mở ra đƣợc tìm thấy, Acunetix WVS sẽ thực hiện một loạt các kiểm tra an ninh mạng chống lại các dịch vụ mạng đang chạy trên cổng đó.

- Khi các lỗ hổng đƣợc tìm thấy, Acunetix WVS báo cáo về lỗ hổng này. Mỗi thông báo chứa thông tin về lỗ hổng nhƣ tên biến POST, mức độ ảnh hƣởng, phản ứng http của các máy chủ và nhiều hơn nữa. Nếu Công nghệ AcuSensor đƣợc sử dụng, các chi tiết nhƣ dòng mã nguồn, ngăn xếp, truy vấn SQL dẫn đến lỗ hổng đƣợc liệt kê. Lời khuyên về làm thế nào để sửa chữa lỗ hổng cũng sẽ đƣợc hiển thị.

Acusensor Technology

Công nghệ AcuSensor là một công nghệ độc đáo cho phép bạn xác định các lỗ hổng nhiều hơn một hộp máy quét an ninh web đen truyền thống, và đƣợc thiết kế để giảm lỗ hổng không đúng. Ngoài ra, nó cũng chỉ ra nơi mã nguồn dễ bị tổn thƣơng đã đƣợc tìm thấy. Điều này làm tăng độ chính xác có thể đạt đƣợc bằng cách kết hợp kỹ thuật quét hộp đen với phân tích mã nguồn mở khi mã nguồn đƣợc thực thi. Đây là một công nghệ độc đáo của Acunetix cho .NET Và các ứng dụng PHP, có quyền truy cập trực tiếp đến các tập tin web, đảm bảo thu thập dữ liệu toàn diện của trang web. Sử dụng công nghệ này đảm bảo phát hiện tất cả các yếu tố đầu vào và có thể làm giảm đáng kể báo cáo sai, bởi vì chúng có thể hiểu đƣợc hành vi của ứng dụng web tốt hơn . IBM Glass Box (đối thủ cạnh tranh của Acusensor Technology ) chỉ hỗ trợ JAVA trong khi AcuSensor hỗ trợ PHP và NET.

Công cụ kiểm tra sự thâm nhập

Acunetix còn chứa các công cụ cao cấp cho phép ngƣời kiểm tra sự thâm nhập để điều chỉnh các ứng dụng web:

- HTTP Editor - Dựng các yêu cầu HTTP/HTTPS và phân tích phản ứng của Web Server.

- HTTP Sniffer - Chặn, ghi lại hoặc sửa đội toàn bộ dữ liệu trao đổi và truyền qua ứng dụng web.

- HTTP Fuzzer - Tiến hành các bƣớc kiểm tra tinh vi, phức tạp để kiểm tra các ứng dụng đầu vào của web và xử lý các dữ liệu ngẫu nhiên không hợp lệ. Dễ dàng

kiểm tra hàng ngàn tham số đầu vào để sử dụng HTTP Fuzzer. Nếu thực hiện bằng phƣơng pháp thủ công thì việc kiểm tra này có thể mất nhiều ngày nhƣng với Acunetix chỉ mất vài phút.

- Dựng lại các điểm dễ bị tấn công trên web của bạn với Công cụ WVS Scripting. Trên website của Acunetix có sẵn tài liệu về Scripting SDK.

- Blind SQL Injector - Là một công cụ khai thác cơ sở dữ liệu tự động. Công cụ này lý tƣởng cho những ngƣời kiểm soát sự thâm nhập, những ngƣời mong muốn việc kiểm tra tiến hành nhanh hơn các phƣơng pháp thủ công.

Acunetix có thể hổ trợ bạn:

-Tìm kiếm lỗi của một website: SQL Injection, XSS…

-Tìm kiếm cấu trúc của một website.

-Tìm kiếm lỗi của server chứa website và các thông tin liên quan đến server của website.

-Báo cáo cũng nhƣ gợi ý chỉnh sửa các lỗi của website. Lƣu các kết quả báo cáo cho việc fix lỗi sau này.

-Lập lịch tiến hành scan lỗi cho website.

-Cùng nhiều công cụ hổ trợ fix lỗi website khác.

Những lỗi mà Acunetix có thể phát hiện đƣợc:

-Version Check

 Vulnerable Web Servers

 Vulnerable Web Server Technologies – such as “PHP 4.3.0 file disclosure and possible code execution.

-CGI Tester

 Checks for Web Servers Problems – Determines if dangerous HTTP methods are enabled on the web server (e.g. PUT, TRACE, DELETE)  Verify Web Server Technologies

-Parameter Manipulation

 Cross-Site Scripting (XSS) – over 40 different XSS variations are tested  SQL Injection

 Code Execution(Unix and Windows)  Directory Traversal (Unix and Windows)  File Inclusion

 Script Source Code Disclosure  CRLF Injection

 Cross Frame Scripting (XFS) 

 XPath Injection  Full Path Disclosure  LDAP Injection  Cookie Manipulation

 Arbitrary File creation (AcuSensor Technology)  Arbitrary File deletion (AcuSensor Technology)  Email Injection (AcuSensor Technology)  File Tampering (AcuSensor Technology)  URL redirection

 Remote XSL inclusion

-MultiRequest Parameter Manipulation

-Blind SQL/XPath Injection

-File Checks

 Checks for Backup Files or Directories – Looks for common files (such as logs, application traces, CVS web repositories)

 Cross Site Scripting in URI  Checks for Script Errors

-File Uploads

 Unrestricted File uploads Checks

-Directory Checks

 Looks for Common Files (such as logs, traces, CVS)  Discover Sensitive Files/Directories

 Discovers Directories with Weak Permissions

 Cross Site Scripting in Path and PHPSESSID Session Fixation.  Web Applications

 HTTP Verb Tampering

-Text Search

 Directory Listings  Source Code Disclosure  Check for Common Files  Check for Email Addresses

 Microsoft Office Possible Sensitive Information  Local Path Disclosure

 Trojan shell scripts (such as popular PHP shell scripts like r57shell, c99shell etc)

-Weak Passwords

 Weak HTTP Passwords

-GHDB Google Hacking Database

 Over 1200 GHDB Search Entries in the Database

-Port Scanner and Network Alerts

 Port scans the web server and obtains a list of open ports with banners

 Performs complex network level vulnerability checks on open ports such as:

 DNS Server vulnerabilities (Open zone transfer, Open recursion, cache poisoning)

 FTP server checks (list of writable FTP directories, weak FTP passwords, anonymous access allowed)

 Security and configuration checks for badly configured proxy servers  Checks for weak SNMP community strings and weak SSL cyphers and

many other network level vulnerability checks

 Other vulnerability tests may also be preformed using the manual tools provided, including:

 Input Validation  Authentication attacks  Buffer overflows  Blind SQL injection  Sub domain scanning

Ƣu điểm

- Hỗ trợ CAPTCHA, Single Sign-On và Cơ chế xác thực hai lần.

- Nhận biết các ứng dụng web phổ biến (ví dụ: Diễn đàn, giỏ hàng...) và nhận biết các phiên bản dễ bị tấn công.

- Phát hiện ra các danh mục quyền dễ bị tấn công nếu các phƣơng thức HTTP đƣợc kích hoạt.

- Tạo ra một danh sách các phản hồi bất thƣờng của HTTP nhƣ lỗi server nội bộ, HTTP 500, v.v...

- Tùy chỉnh danh sách xác thực giả.

- Các Scanning profiles giúp dễ dàng quét các Website với các tùy chọn scan và các điểm nhận dạng.

- So sánh các bản quét và chỉ ra điểm khác biệt với lần quét trƣớc.

- Dễ dàng biên tập lại các thay đổi của website với việc quét lại theo chức năng.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu một số công cụ để đánh giá sản phẩm an toàn bảo mật thông tin 04 (Trang 47)

Tải bản đầy đủ (PDF)

(92 trang)