Kiểm thử tự động tính bảo mật ứng dụng web

60 1.2K 17
Kiểm thử tự động tính bảo mật ứng dụng web

Đ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

BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ĐỒ ÁN TỐT NGHIỆP NGHIÊN CỨU PHƯƠNG PHÁP VÀ CƠNG CỤ KIỂM THỬ TỰ ĐỘNG TÍNH BẢO MẬT ỨNG DỤNG WEB Ngành: Công nghệ thông tin Chuyên ngành: An tồn thơng tin Mã số: 52.48.02.01 Hà Nội, 2016 BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ĐỒ ÁN TỐT NGHIỆP NGHIÊN CỨU PHƯƠNG PHÁP VÀ CƠNG CỤ KIỂM THỬ TỰ ĐỘNG TÍNH BẢO MẬT ỨNG DỤNG WEB Ngành: Công nghệ thông tin Chuyên ngành: An tồn thơng tin Mã số: 52.48.02.01 Sinh viên thực hiện: Phạm Thị Ngọc Trâm Lớp: AT8C Người hướng dẫn: ThS Lê Bá Cường Khoa Công nghệ thông tin – Học viện Kỹ thuật Mật mã Hà Nội, 2016 Ý KIẾN CỦA GIẢNG VIÊN MỤC LỤC DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT STT 10 11 12 13 Ký hiệu/từ viết tắt Mô tả CSDL Cơ sở liệu CSRF Cross Site Request Forgery DBMS Database Management System DHTML Dynamic HyperText Markup Language HTML HyperText Markup Language IDE Integrated Development Environment IIS Internet Information Services SMTP Simple Mail Transfer Protocol URL Uniform Resource Locator VPN Virtual Private Network WVS Web Vulnerability Scanner XFS Cross Frame Scripting XSS Cross-Site Scripting DANH MỤC HÌNH VẼ DANH MỤC BẢNG LỜI CẢM ƠN Trong trình thực đồ án tốt nghiệp này, em nhận giúp đỡ tận tình cán hướng dẫn ThS Lê Bá Cường – Giảng viên Khoa Công nghệ thông tin Học viện Kỹ thuật Mật mã, động viên người thân bạn bè Xin cảm ơn tất người tạo điều kiện tốt để em hoàn thành đồ án tốt nghiệp này! SINH VIÊN THỰC HIỆN ĐỒ ÁN Phạm Thị Ngọc Trâm LỜI NÓI ĐẦU Ngày nay, nhiều website gặp lỗi nghiêm trọng, đặc biệt lỗi bảo mật, điều tạo ngưng trệ dịch vụ, thêm quyền người sử dụng cho phép truy nhập không hợp pháp vào hệ thống Theo báo cáo VNISA – Hiệp hội an tồn thơng tin Việt Nam, vào cuối năm 2012, gần 3.700 lỗi tìm thấy 100 website gov.vn, 80% website khơng có biện pháp bảo mật tối thiểu Để tạo sản phẩm cơng nghệ thơng tin hay phần mềm có chất lượng, hoạt động kiểm thử phần mềm đóng vai trị quan trọng Tuy nhiên việc kiểm thử thủ công tốn thời gian, lần bàn giao, người kiểm thử phải thực lại tập hợp testcase chạy, dẫn tới việc lãng phí cơng sức Hiện nay, theo em tìm hiểu, nước ta có nghiên cứu vấn đề này, thường trọng kiểm thử tự động, kiểm thử bảo mật, thay tìm hiểu kết hợp kiểm thử tự động tính bảo mật Ví dụ đề tài “Nghiên cứu ứng dụng cơng cụ kiểm thử tự động kiểm thử phần mềm” – Mai Thị Nhi; hay “Nghiên cứu kiểm thử bảo mật website” – Đinh Thị Thiên Anh, mà chưa sâu vào việc nghiên cứu phương pháp kiểm thử tự động tính bảo mật website Đó lý em chọn đề tài “Nghiên cứu phương pháp cơng cụ kiểm thử tự động tính bảo mật ứng dụng web” Mục tiêu đặt thực đề tài gồm: - Tìm hiểu tổng quan lỗ hổng, đưa số loại lỗ hổng bảo mật phổ biến - Nghiên cứu phương pháp kiểm thử tự động tính bảo mật ứng dụng web, bao gồm kỹ thuật cách thức sử dụng để phát lỗ hổng, cách xây dựng giá trị đầu vào - Giới thiệu, triển khai tìm hiểu cơng cụ kiểm thử tự động tính bảo mật ứng dụng web sử dụng phổ biến giới Bao gồm cách sử dụng, kiến trúc luồng làm việc ứng dụng Trong q trình thực Đồ án, đồ án khơng thể tránh khỏi sai sót Rất mong nhận góp ý thầy, giáo bạn để đồ án hoàn thiện Em xin chân thành cảm ơn hướng dẫn, giúp đỡ tận tình thầy Lê Bá Cường, thầy cô khoa Công nghệ Thông tin – Học viện Kỹ thuật Mật mã giúp đỡ em trình học tập trình làm Đồ án SINH VIÊN THỰC HIỆN ĐỒ ÁN Phạm Thị Ngọc Trâm 10 System (DBMS) chọn kho lưu trữ để lưu trữ tất thu thập liệu công liệu Công cụ bao gồm module thu thập liệu module công riêng biệt Do đó, lựa chọn thu thập liệu trang web thực công liệu thu thập lưu trước đó, kết hợp thu thập liệu cơng SecuBat có khả chạy từ 15 đến 20 plug-in công trả phiên làm việc máy tính để bàn thơng thường mà không cần sử dụng hết công suất Trong suốt trình thu thập liệu, cơng cụ sử dụng hàng đợi thu thập liệu chuyên dụng Hàng đợi làm đầy với công việc thu thập liệu cho trang web nhằm phân tích để đưa đến đường link mẫu mục tiêu tiềm Một trình điều khiển hàng đợi định kỳ kiểm tra hàng đợi cho công việc chuyển chúng vào trình điều khiển luồng Trình điều khiển sau chọn luồng thực tự do, sau thực cơng việc phân tích Mỗi cơng việc hồn thành thơng báo cho trình điều khiển luồng cơng việc liên kết hình thức phát trang Trình điều khiển luồng cơng việc sau tạo công việc thu thập liệu cần thiết Các thuật tốn phân tích cơng triển khai đưa vào kiến trúc plug-in Hình 3.18 Kiến trúc cơng 46 Như mơ tả Hình 3.18, cơng việc công tạo cho mẫu web mục tiêu cho plug-in công lựa chọn Những cơng việc sau chèn vào hàng đợi công riêng biệt Tương tự với thành phần thu thập liệu, trình điều khiển hàng đợi xử lý công việc hàng đợi thơng qua chúng để vào luồng thực có sẵn thơng qua trình điều khiển luồng phổ biến Tại thời điểm thực hiện, công việc công tạo trường hợp thành phần cơng phân tích plug-in chọn sử dụng phản ánh NET Sau gọi để khởi chạy phương thức chúng Sau thành phần cơng thành phần phân tích hồn thành cơng việc, kết phát lưu vào sở liệu cho báo cáo để khai thác liệu [13] 3.2.3 Luồng liệu Hình 3.19 Luồng liệu SecuBat Hình 3.19 mô tả luồng liệu SecuBat Tại giao diện đồ họa người dùng, sau nhập url lựa chọn, người dùng click nút Start Run Lúc này, phương thức ultraButtonGo_Click file Main.cs khởi chạy 47 Tiếp theo, phương thức StartWorking file controller khởi chạy Sau lấy liệu đầu vào (các lựa chọn từ phần mềm), phương thức StartCrawling gọi Trong trình thu thập liệu, từ url nhập, phương thức file WebPage.cs lấy html trang web Tiếp theo, phương thức AnalyzeWebPageTask file AnalyzeWebPageTask.cs khởi chạy, với nhiệm vụ phân tích trang web, gọi phương thức ParseParameter file WebForm.cs để tìm tất input nhằm chuẩn bị cho việc công Đồng thời, sau phương thức ultraButtonGo_Click khởi chạy, biến crawlerQueueController tạo với phương thức StatusTickHandler Phương thức để lắng nghe luồng hoạt động, không cịn luồng hoạt động gọi phương thức StopCrawling để kết thúc thu thập liệu khởi chạy phương thức StartAttacking để bắt đầu công Lúc này, plug-in công chọn trước đó, gọi Lần lượt gán liệu thu thập vào plug-in khởi chạy Bên cạnh đó, sau chấm dứt việc thu thập liệu, biến attackQueueController tạo với phương thức StatusTickHandler Phương thức để lắng nghe luồng hoạt động, khơng cịn luồng hoạt động gọi phương thức StopAttacking để kết thúc công Kết thúc việc công, phương thức HandlerAnalyzedWebPage gọi, với nhiệm vụ phân tích giải thích phản ứng máy chủ Cuối cùng, để xem báo cáo lỗ hổng quét, click nút AttackReport, phương thức ultraButtonAttackReport khởi chạy Để xem báo cáo liệu thu thập, click nút CrawlerReport, phương thức ultraButtonRunReport khởi chạy 48 3.2.4 Luồng làm việc lỗ hổng XSS 3.2.4.1 Simple Reflected XSS Attack Hình 3.20 Quy trình làm việc cơng XSS Như Hình 3.20, thành phần công xây dựng trang web yêu cầu gửi vào ứng dụng mục tiêu, cách sử dụng kịch đơn giản đầu vào cho trường mẫu.Các tiến trình máy chủ yêu cầu trả trang phản hồi Trang phản hồi phân tích cú pháp phân tích cho kiện tập lệnh tiêm mã Để phát lỗ hổng, biến thể đơn giản công XSS sử dụng môi trường mã JavaScript liệt kê sau: alert(’XSS’); Nếu web mục tiêu thực kiểm duyệt chọn lọc số kiểu đầu vào đặt dấu ngoặc kép dấu ngoặc cơng thất bại Module phân tích XSS đưa vào trường input số ký tự cần thiết cho kịch (Chẳng hạn dấu ngoặc đơn ngoặc kép) lọc bỏ qua ứng dụng web mục tiêu Phân tích module XSS xác nhận kịch vị trí mà chắn thực trình duyệt máy khách Hai trang mẫu thể sau chứng minh tầm quan trọng vị trí kịch tiêm trang web 49 Hình 3.21 Simple Reflected XSS Attack Response trang A Hình 3.21 ví dụ phản hồi trang A Trang phản hồi cho thấy ví dụ trang kết tìm kiếm bao gồm truy vấn tìm kiếm phản hồi Hành vi nhằm giúp người sử dụng ghi nhớ họ tìm kiếm, thực tế dẫn đến lỗ hổng XSS Trong trường hợp này, ứng dụng web bị công kể từ kịch nhúng vào trang HTML, mà thực trình duyệt người dùng Hình 3.22 Simple Reflected XSS Attack Response trang B Hình 3.22Hình 3.21 ví dụ phản hồi trang B Trang ví dụ ứng dụng sử dụng form tham số cho việc xây dựng liên kết đến trang web Ở đây, kịch đơn giản bao gồm thuộc tính href thẻ anchor HTML Như vậy, kịch không thực khơng nhúng bên HTML trang Vì vậy, ứng dụng khơng báo cáo dễ bị công Simple Reflected XSS 3.2.4.2 Encoded Reflected XSS Attack Hầu hết ứng dụng web sử dụng số loại kiểm duyệt đầu vào, điều thói quen lọc mà nhà phát triển áp dụng, lọc tự động thực môi trường PHP với thiết lập cấu hình thích hợp… Trong hai trường hợp, plug-in Encoded Reflected XSS Attack cố gắng vượt qua lọc đầu vào đơn giản cách sử dụng mã hóa HTML Ví 50 dụ, Bảng 3.4 cho thấy cách khác để mã hóa kí tự "

Ngày đăng: 21/09/2016, 23:45

Từ khóa liên quan

Mục lục

  • CHƯƠNG 1. TỔNG QUAN VỀ LỖ HỔNG BẢO MẬT

    • 1.1 Khái niệm lỗ hổng bảo mật

    • 1.2 Một số lỗ hổng bảo mật phổ biến

      • 1.2.1 SQL Injection

        • 1.2.1.1 Khái niệm SQL Injection

        • 1.2.1.2 Các dạng tấn công SQL Injection

        • 1.2.2 Cross Site Scripting (XSS)

          • 1.2.2.1 Giới thiệu chung về XXS

          • 1.2.2.2 Các phương thức XSS

          • 1.2.3 Cross-site Request Forgery (CSRF)

            • 1.2.3.1 Giới thiệu chung về CSRF

            • 1.2.3.2 Ngữ cảnh tấn công

            • 1.2.3.3 Các dạng tấn công

            • 1.2.4 Một số lỗ hổng phổ biến khác

              • 1.2.4.1 Lỗi Heartbleed

              • 1.2.4.2 Khai thác qua Phishing

              • CHƯƠNG 2. NGHIÊN CỨU CÁC PHƯƠNG PHÁP KIỂM THỬ TỰ ĐỘNG TÍNH BẢO MẬT ỨNG DỤNG WEB

                • 2.1 Phân tích tĩnh

                  • 2.1.1 Phân tích từ vựng

                  • 2.1.2 Phân tích cú pháp

                  • 2.1.3 Phân tích mã nguồn

                  • 2.2 Phân tích động

                    • 2.2.1 Phương pháp tiêm lỗi

                      • 2.2.1.1 Giới thiệu

                      • 2.2.1.2 Các cách thực hiện tạo lỗi

                      • 2.2.1.3 Các phương pháp tiêm lỗi

                      • 2.2.2 Kiểm thử Fuzzing

                        • 2.2.2.1 Giới thiệu

                        • 2.2.2.2 Ưu điểm và nhược điểm của kiểm thử Fuzzing

                        • 2.2.2.3 Cách xây dựng các bộ giá trị đầu vào

                        • 2.3 So sánh phân tích tĩnh và phân tích động

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

Tài liệu liên quan