Xây dựng hệ thống kiểm thử bảo mật website dựa trên kỹ thuật fuzzing

68 2.9K 23
Xây dựng hệ thống kiểm thử bảo mật website dựa trên kỹ thuật fuzzing

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ──────── ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH CÔNG NGHỆ THÔNG TIN HỆ THỐNG KIỂM THỬ BẢO MẬT WEBSITE DỰA TRÊN KỸ THUẬT FUZZING Sinh viên thực hiện: Giáo viên hướng dẫn: TS Cao Tuấn Dũng HÀ NỘI 2-2014 LỜI CẢM ƠN Lời đầu tiên, em xin gửi lời cảm ơn chân thành tới thầy cô trường Đại học Bách Khoa Hà Nội thầy cô Viện Công nghệ Thông tin Truyền thông truyền dạy cho em kiến thức bổ ích suốt năm qua Em xin gửi lời cảm ơn tới thầy giáo, TS Cao Tuấn Dũng - Giảng viên, Trưởng Bộ môn Công nghệ phần mềm – người trực tiếp hướng dẫn định hướng cho em thực đề tài Em xin chân thành cảm ơn tập thể anh chị em cơng ty BKAV, gia đình thứ hai em, tạo điều kiện thuận lợi môi trường bổ ích cho em thực tập để phát huy đam mê mình, chia sẻ cho em nhiều kinh nghiệm, kiến thức quý báu trình làm việc Em xin gửi lời cảm ơn tới tập thể lớp CNTT1-K54, bạn cho em mơi trường học tập lành mạnh, quà tinh thần vô giá Cuối em xin gửi lời cảm ơn chân thành tới gia đình, bạn bè quan tâm, động viên, đóng góp ý kiến giúp đỡ em suốt trình học tập, thực đồ án tốt nghiệp Hà Nội, tháng 01 năm 2014 Sinh viên thực hiện: PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Thông tin sinh viên: Họ tên sinh viên: Đồ án tốt nghiệp thực tại: Bộ môn Công Nghệ Phần Mềm, Viện Công Nghệ Thông Tin Truyền Thông, Đại học Bách Khoa Hà Nội Thời gian làm ĐATN: Từ 9/2013 đến 12/2013 Mục đích nội dung ĐATN: - Tìm hiểu phân loại loại lỗ hổng hệ thống website, cổng thông tin điện từ, … bị lợi dụng để cơng hệ thống Tìm hiểu kỹ thuật fuzzing kiểm thử website Tìm hiểu thu thập fuzzing data phục vụ cho Xây dựng hệ thống kiểm thử tự động dựa kỹ thuật fuzzing Các nhiệm vụ cụ thể ĐATN: - Định nghĩa loại công hệ thống website, cổng thông tin điện từ Cách thức phát tự động loại lỗ hổng hệ thống Tìm hiểu thu thập fuzz phục vụ cho loại công cụ thể Thiết kế liệu fuzzing data dựa tri thức thu từ việc thu thập thông tin hệ thống Phân tích thiết kế hệ thống Xây dựng hệ thống kiểm thử tự động Lời cam đoan sinh viên: Tôi cam kết ĐATN công trình nghiên cứu thân tơi hướng dẫn TS Cao Tuấn Dũng Các kết nêu ĐATN trung thực, chép tồn văn cơng trình khác Hà Nội, ngày tháng năm Tác giả ĐATN Xác nhận giáo viên hướng dẫn mức độ hoàn thành ĐATN cho phép bảo vệ: Hà Nội, ngày tháng năm Giáo viên hướng dẫn TS Cao Tuấn Dũng Sinh viên thực hiện: TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP Nhắc lại tên đề tài: “Xây dựng hệ thống kiểm thử website dựa kỹ thuật fuzzing” Xin nói qua kỹ thuật này: “Fuzzing kỹ thuật phát lỗi phần mềm cách cung cấp liệu đầu vào cho chương trình (các liệu không hợp lệ, liệu không mong đợi), sau theo dõi ghi lại lỗi, kết trả ứng dụng trình xử lý chương trình” Thành nghiên cứu thực hóa dịch vụ quét lỗ hổng bảo mật, tương tác với người dùng qua giao diện website Hệ thống cung cấp chức phân loại URL phân loại fuzz theo thông tin cung cấp thu thập làm giảm thời gian tài nguyên xử lý hệ thống Những mục tiêu cần đặt xây dựng hệ thống:  Phát tốt lỗi SQLi, Blind SQLi, XSS, File Inclusion, Xpath Injection, lỗi việc cấu hình mặc định (bao gồm đường dẫn tài khoản sử dụng)  Xây dựng hệ thống fuzzing riêng cho loại lỗ hổng  Xây dựng module core hệ thống quét lỗ hổng dạng dịch vụ (SAAS)  Dễ dàng tích hợp cơng cụ, module phát vào hệ thống  Xây dựng hệ thống giao tiếp với người sử dụng qua giao diện web Sau kết chạy thử nghiệm hệ thống đánh giá việc phát lỗ hổng bảo mật số website so với công cụ khác định hướng phát triển tương lai cho sản phẩm Cung cấp sản phẩm dịch vụ miễn phí cho người sử dụng Môi trường thực đồ án tốt nghiệp:  Bộ môn Công nghệ phần mềm, Viện Công nghệ Thông tin Truyền thông, Trường Đại học Bách Khoa Hà Nội  Công ty Cổ phần An ninh mạng BKAV, HH1 Building , Dương Đình Nghệ, Cầu Giấy, Hà Nội Sinh viên thực hiện: MỤC LỤC Sinh viên thực hiện: PHẦN I: ĐẶT VẤN ĐỀ Nội dung  Đặt vấn đề  Giải pháp đảm bảo an toàn cho hệ thống website  Nhiệm vụ đề tài Sinh viên thực hiện: I ĐẶT VẤN ĐỀ Trong thời buổi Internet ngày phát triển nay, việc liên hệ thư từ, trao đổi thông tin, báo chí phát triển khơng ngừng Thay cho phương thức hoạt động truyền thống, việc ứng dụng hiệu Internet đến nhiều lĩnh vực đời sống người cho thấy hiệu tối ưu Internet Sự thay đổi lấn sâu vào nhiều lĩnh vực: kinh tế, văn hóa, tơn giáo, trị, giải trí Phần lớn hoạt động thông qua website, website sợi dây kết nối cộng đồng mạng với Sử dụng website người liên hệ, trao đổi, chia với cách nhanh chóng hiệu Đặc biệt ngày nay, hình thức tốn trực tuyến thông qua website ngày trở nên phổ biến Vì thế, dễ hiểu website trở thành mục tiêu cơng ưa thích tin tặc Tại Việt Nam, đại diện mảng an ninh mạng công ty an ninh mạng Bkav, ông Ngô Tuấn Anh phát biểu: “Trong năm 2013 có gần 5.000 hệ thống website quan doanh nghiệp Việt Nam bị tin tặc công Chủ yếu thông qua lỗ hổng mạng cấu hình hệ thống So với năm 2012 (có 2.203 website bị cơng), số tăng lên gấp đôi.” – Nguồn http://bkav.com.vn Từ thực trạng cho thấy, an ninh mạng chưa thực quan tâm quan, doanh nghiệp Cũng theo nhận định chuyên gia Công ty ANM Bkav, hầu hết quan doanh nghiệp Việt Nam chưa bố trí nhân phụ trách an ninh mạng lực nhận thức đội ngũ chưa tương xứng với tình hình thực tế Đó ngun nhân Chưa có sản phẩm hay qui trình tiên tiến hỗ trợ cho người quản trị hệ thống phát ngăn chặn sớm lỗ hổng tồn hệ thống II GIẢI PHÁP ĐẢM BẢO AN TOÀN HỆ THỐNG WEBSITE Từ tình hình ta thấy cần thiết có giải pháp kiểm thử an tồn bảo mật cho hệ thống website trước đưa vào sử dụng Nhằm phát cảnh báo lỗ hổng hệ thống website cách xác Các lỗ hổng lỗi người lập trình hệ thống: SQL Injection, Code Injection, Cross Site Scripting, URL Redirect… Các lỗi việc cấu hình hệ thống khơng an tồn để đường dẫn vào trang quản trị hệ thống mặc định, tài khoản mặc định… Đánh giá sản phẩm quét lỗ hổng bảo mật có thị trường Các sản phẩm tương tự chia làm nhóm Nhóm sản phẩm chạy dạng Desktop Application như: Acunetix, IBM AppScan, W3af… nhóm sản phẩm chạy mơ hình SAAS - Software As A Service (webscan.bkav.com, webscan.com…) So sánh nhóm sản phẩm Sinh viên thực hiện: Desktop Application Software As A Service + Real time + Khơng Real time + Khó kiểm sốt người dùng sử dụng + Có thể kiểm sốt tốt người dùng phẩn mềm, phục vụ cho mục hệ thống đích xấu + Việc nâng cấp trở nên đơn giản + Tốn chi phí cho hoạt động nâng + Đòi hỏi hạ tầng, tài nguyên lớn cấp phần mềm + Thời gian thực tốn nhiều tài + Thời gian phụ thuộc vào tài nguyên hệ thống Server nguyên thời gian Bảng : So sánh mơ hình sản phẩm quét lỗ hổng bảo mật website có thị trường Sau so sánh hình thức ta thấy để triển khai hệ thống đến số đông người dùng tập trung vào đối tượng khách hàng người khơng rành chun mơn việc triển khai hệ thống mơ hình dịch vụ cần thiết Tuy nhiên vấn đề lớn đặt tài nguyên thời gian thực quét hệ thống q lớn, khơng có bước tối ưu hệ thống khơng thể phục vụ tốt cho số đông người dùng Khi nghiên cứu hệ thống web scanner ta thấy sản phẩm chưa có q trình lọc bỏ URL thừa (khơng cần thiết kiểm tra lỗ hổng), dẫn đến có nhiều URL kiểm tra Và hệ thống chưa sử dụng tri thức cung cấp sau trình “gathering information” (bao gồm thông tin tảng xây dựng hệ thống, ngôn ngữ sử dụng, tảng triển khai hệ thống) nhằm giảm tài nguyên thời gian quét hệ thống Đề xuất giải pháp xây dựng Web Fuzzing Scanner Xây dựng hệ thống Web Fuzzing Scanner theo hướng dịch vụ SAAS, có phần core fuzzing tối ưu Hạn chế điểm yếu tồn sản phẩm như: - - III Sử dụng thêm tri thức thu trình “gathering information” việc thiết kế liệu fuzz cho hệ thống nhằm giảm trường hợp cần kiểm tra Loại bỏ URL không cần thiết Hạn chế tối thiểu request cần gửi tới hệ thống NHIỆM VỤ CỦA ĐỀ TÀI Xuất phát từ nhu cầu thực tế kể công việc Công ty An ninh mạng Bkav, chọn đề tài “Xây dựng hệ thống kiểm thử bảo mật website dựa kỹ thuật fuzzing” cho đồ án tốt nghiệp Đối tượng mà hệ thống hướng đến quản trị viên, người trực tiếp quản lý theo dõi tình hình hoạt động website Hệ thống trợ giúp họ phát nhanh lỗ hổng tồn hệ thống để có phương án khắc phục kịp thời Sinh viên thực hiện: Đồ án bao gồm thành phần sau: • PHẦN I: Đặt vấn đề định hướng giải pháp  Đặt vấn đề  Giải pháp an toàn cho hệ thống website  Nhiệm vụ đề tài • PHẦN II: CƠ SỞ LÝ THUYẾT  Tổng quan Website  Tổng quan lỗ hổng Website  Các kỹ thuật kiểm thử phần mềm  Kỹ thuật Fuzzing • PHẦN III: Xây dựng hệ thống  Các giải pháp xây dựng hệ thống  Phân tích thiết kế hệ thống • PHẦN IV: Đánh giá, định hướng kế hoạch phát triển cho sản phẩm Sinh viên thực hiện: PHẦN II: CƠ SỞ LÝ THUYẾT Nội dung  Tổng quan hệ thống website  Tổng quan lỗ hổng website  Các kỹ thuật kiểm thử ứng dụng  Kỹ thuật Fuzzing Sinh viên thực hiện: 10 Attack() AttackGET() Phương thức attack hệ thống qua việc gửi url AttackPOST() Phương thức Là phương thức gọi đến thực fuzzing hệ thống Phương thức attack hệ thống qua việc gửi liệu POST Lớp Mod_attack (attack – xss, sqli, ) Kế thừa Kế thừa từ lớp attack Name Tên loại lỗ hổng Payload Các liệu fuzzing tương ứng với loại lỗ hổng cần phát Result Giá trị kết thu trình fuzzing Urls Các giá trị url thu sau tình collector Forms Là giá trị thu sau trinh collector Attack() Là phương thức gọi đến thực fuzzing hệ thống AttackGET() Phương thức attack hệ thống qua việc gửi url AttackPOST() Phương thức attack hệ thống qua việc gửi liệu POST Thuộc tính Phương thức Sinh viên thực hiện: 54 4.5 Thiết kế CSDL MongoDB MongoDB hệ CSDL NoSQL nên khơng có khái niệm Table Trong NoSQL có khái niệm Collection, gần tương tự với khái niệm Table CSDL quan hệ Collection có nhiệm vụ lưu trữ truy vấn thao tác liệu lưu nó, liệu phân chia thành Document (trong CSDL quan hệ gọi Tuples) Document đối tượng dạng JSON chứa key value ta dễ dàng truy xuất giá trị thơng qua key đối tượng JSON Hình : Thiết kế CSDL MongoDB Đặc tả thành phần CSDL Account Collection Đặc tả Là thành phần lưu thông tin người sử dụng hệ thống Thuộc tính Address Sinh viên thực hiện: Địa người dùng 55 Email Email người sử dụng Passcode Password đăng nhập người sử dụng scanID Giá trị chương trình sinh ngẫu nhiên để định danh cho trình quét userID Là giá trị định danh cho người dùng hệ thống Scanner Collection Đặc tả Thuộc tính Là thành phần lưu thơng tin q trình qt Các thơng tin phát thu thập hệ thống Domain Domain q trình qt hệ thống Information Các thơn tin khác headers thu thập hệ thống scanID Giá trị chương trình sinh ngẫu nhiên để định danh cho trình quét userID Là giá trị định danh cho người dùng hệ thống Protocol Là giao thức mà website sử dụng State Sinh viên thực hiện: Detection Trạng thái trình quét 56 Time Thời gian quét Website Collection Đặc tả Là thành phần bắt đầu tiến trình quét tạo Các thông tin lưu tạm thời vào website collection chương trình lấy đưa vào hành đợi quét Cookie Lưu cookie việc quét người dùng lựa chọn đăng nhập vào hệ thống trước quét Domain Domain trình quét hệ thống scanID Giá trị chương trình sinh ngẫu nhiên để định danh cho trình quét userID Là giá trị định danh cho người dùng hệ thống Protocol Là giao thức mà website sử dụng Time Thời gian quét Thuộc tính Collector Collection Đặc tả Thuộc tính Collection thực việc lưu trữ giá trị url hệ thống Do MongoDB giới hạn document không lưu 16MB nên ta cần tách URL thành collection khác Nội dung lưu trữ URL Giá trị đường dẫn Content Data scanID Sinh viên thực hiện: Là từ điển giá trị tham số url Giá trị chương trình sinh ngẫu nhiên để định danh cho trình quét 57 userID Là giá trị định danh cho người dùng hệ thống protocol Là giao thức mà website sử dụng Result Collection Đặc tả Collection thực việc lưu trữ kết trình quét hệ thống Configuration Information Các lỗi lộ thông tin hệ thống phát scanID Giá trị chương trình sinh ngẫu nhiên để định danh cho trình qt Validation Thuộc tính Là từ điển lưu thơng tin lỗi liên quan đến cấu hình hệ thống phát Các lỗi việc kiểm duyệt liệu đầu vào (SQLi, XSS…) Bảng : Đặc tả CSDL Sinh viên thực hiện: 58 PHẦN IV: ĐÁNH GIÁ IV Sinh viên thực hiện: 59 DANH MỤC HÌNH Sinh viên thực hiện: 60 DANH MỤC BẢNG BIỂU Sinh viên thực hiện: 61 DANH SÁCH CÁC TỪ VIẾT TẮT VÀ CÁC THUẬT NGỮ STT Tên Ý nghĩa OWASP Dự án bảo mật ứng dụng web SQLi SQL Injection XSS Cross Site Scripting Vulnerabilies Là điểm yếu hệ thống mà tin tặc lợi dụng để khai thác thông tin công hệ thống Test Case Là trường hợp kiểm thử hệ thống bao gồm đầu vào đầu hợp lệ SAAS Software as a Service: Phần mềm chạy mơ hình dịch vụ Fuzzing Là q trình thực kiểm tra hệ thống dựa liệu nhận dạng (dữ liệu fuzz) Fuzzing data Là liệu nhận dạng công nhằm cung câp cho trình fuzz lỗ hổng Fuzzer Là chương trình kiểm thử hệ thống dựa kỹ thuật fuzzing 10 Gathering information Thu thập thông tin hệ thống 11 URL Uniform Resource Locator 12 HTTP Sinh viên thực hiện: 62 Sinh viên thực hiện: 63 TÀI LIỆU THAM KHẢO Wikipedia - http://en.wikipedia.org W3School - http://www.w3schools.com/ OWASP - https://www.owasp.org/index.php/Main_Page Phân tích thiết kế hệ thống thông tin - Nguyễn Văn Ba - nhà xuất Đại học Quốc Gia Hà Nội Sinh viên thực hiện: 64 ... từ, … bị lợi dụng để cơng hệ thống Tìm hiểu kỹ thuật fuzzing kiểm thử website Tìm hiểu thu thập fuzzing data phục vụ cho Xây dựng hệ thống kiểm thử tự động dựa kỹ thuật fuzzing Các nhiệm vụ cụ... 23 dò kiểm thử kiểm thử dựa đặc điểm kỹ thuật Kiểm thử hộp đen kiểm tra thành phần chưa thực thi đặc tả, không chắn trường hợp kiểm tra hoàn toàn Kiểm thử hộp trắng Hình : Kỹ thuật kiểm thử hộp... cho hệ thống website  Nhiệm vụ đề tài • PHẦN II: CƠ SỞ LÝ THUYẾT  Tổng quan Website  Tổng quan lỗ hổng Website  Các kỹ thuật kiểm thử phần mềm  Kỹ thuật Fuzzing • PHẦN III: Xây dựng hệ thống

Ngày đăng: 25/12/2014, 17:00

Từ khóa liên quan

Mục lục

  • I. ĐẶT VẤN ĐỀ

  • II. GIẢI PHÁP ĐẢM BẢO AN TOÀN HỆ THỐNG WEBSITE

    • 1. Đánh giá các sản phẩm quét lỗ hổng bảo mật hiện có trên thị trường

    • 2. Đề xuất giải pháp xây dựng Web Fuzzing Scanner

    • III. NHIỆM VỤ CỦA ĐỀ TÀI

    • I. TỔNG QUAN VỀ HỆ THỐNG WEBSITE

    • II. TỔNG QUAN VỀ LỖ HỔNG HỆ THỐNG WEBSITE

      • 1. Lỗ hổng Injection (SQL Injection, Xpath injection… )

        • 1.1. Khái quát

        • 1.2. Minh họa

        • 1.3. Cơ chế phát hiện

        • 1.4. Các thức phòng tránh

        • 2. Lỗ hổng Cross Site Scripting

          • 2.1. Khái quát

          • 2.2. Minh họa

          • 2.3. Cơ chế phát hiện

          • 2.4. Các thức phòng tránh

          • 3. Lỗ hổng Directory Listing

            • 3.1. Khái quát

            • 3.2. Minh họa

            • 3.3. Phát hiện

            • 3.4. Phòng chống

            • 4. Lỗ hổng File Inclusion

              • 4.1. Khái quát

              • 4.2. Minh hoạ

              • 4.3. Phát hiện

Tài liệu cùng người dùng

Tài liệu liên quan