Nghiên cứu một số dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com

25 81 1
Nghiên cứu một số dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com

Đ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

1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRỊNH THỊ DỊU NGHIÊN CỨU MỘT SỐ DẠNG LỖ HỔNG BẢO MẬT, CÔNG CỤ PHÁT HIỆN CHÚNG VÀ ỨNG DỤNG ĐỂ KIỂM THỬ AN NINH TRÊN TRANG WEB TRUONGNHA.COM LUẬN VĂN THẠC SĨ: CÔNG NGHỆ THÔNG TIN Hà Nội - 2012 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRỊNH THỊ DỊU NGHIÊN CỨU MỘT SỐ DẠNG LỖ HỔNG BẢO MẬT, CÔNG CỤ PHÁT HIỆN CHÚNG VÀ ỨNG DỤNG ĐỂ KIỂM THỬ AN NINH TRÊN TRANG WEB TRUONGNHA.COM Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ phần mềm Mã số: 60 48 10 LUẬN VĂN THẠC SĨ: CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS TRƯƠNG ANH HOÀNG Hà Nội - 2012 MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN DANH MỤC BẢNG BIỂU Error! Bookmark not defined DANH MỤC HÌ NH VẼ CHƯƠNG GIỚI THIỆU 12 1.1 Tính cấp thiết đề tài 12 1.2 Mục tiêu đề tài 13 1.3 Bố cục luận văn 13 1.4 Tổng quan về vấn đề bảo mật nền Web 13 1.5 Một số nguyên nhân phổ biến cho ứng dụng Web mất tính an toàn 14 1.6 Thống kê các loại tấn công 14 CHƯƠNG MỘT SỐ NGUY CƠ AN NINH THƯỜNG GẶP 16 2.1 Tấn công DoS 16 2.1.1 Giới thiệu DoS 16 2.1.2 Mục đích dạng cơng DoS 16 2.1.3 Tấn công DDoS 19 2.2 Cross-Site Scripting (XSS) 22 2.2.1 Tổng quan XSS 22 2.2.2 Ảnh hưởng XSS gây 22 2.2.3 Phân loại 23 2.2.4 Cách phát sâu XSS 26 2.2.5 Các phương pháp ngăn chặn lỗ hổng bảo mật XSS 26 2.3 Tổng quan SQL Injection 26 2.3.1 Định nghĩa 26 2.3.2 Các kỹ thuật công SQL Injection 27 Bảng 2.1: Các mẫu đầu vào 28 2.3.3 Những ảnh hưởng gây SQL Injection 30 2.3.4 Các phương pháp phòng chống SQL Injection phổ biến 31 CHƯƠNG MỘT SỐ CÔNG CỤ PHÁT HIỆN NGUY CƠ AN NINH 32 3.1 Netsparker 32 3.2 Websecurify 34 3.3 Acunetix 37 3.4 WebScarab 45 3.5 Havij 46 3.6 Burp Suite 48 3.7 Wapiti 51 3.8 Exploit-Me 51 3.9 W3af 53 3.10 Công cụ công DoS 55 CHƯƠNG THỰC NGHIỆM VÀ PHÂN TÍCH KẾT QUẢ 58 4.1 Acunetix 58 4.1.1 Thực nghiệm 58 4.1.2 Phân tích thực nghiệm 58 4.2 BurpSuite 59 4.2.1 Thực nghiệm 59 4.2.2 Phân tích thực nghiệm 61 4.3 Netsparker 62 4.3.1 Thực nghiệm 62 4.3.2 Phân tích thực nghiệm 62 4.4 Skipfish 64 4.4.1 Thực nghiệm 64 4.4.2 Phân tích thực nghiệm 66 4.5 W3af 66 4.5.1 Thực nghiệm 66 4.5.2 Phân tích thực nghiệm 67 4.6 Websecurify 69 4.6.1 Thực nghiệm 69 4.6.2 Phân tích thực nghiệm 70 4.7 Tổng hợp đánh giá 70 Bảng 4.1: Danh sách các lỗ hổng các công cụ 71 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 74 TÀI LIỆU THAM KHẢO 75 CHƢƠNG GIỚI THIỆU Nội dung chương trình bày tính cấp thiết, mục tiêu, bố cục đề tài tìm hiểu chung vấn đề bảo mật anh ninh Web, đưa vài nguyên nhân gây an toàn an ninh ứng dụng Web lỗ hổng thường thấy nhiều 1.1 Tính cấp thiết đề tài Với sự phát triển rất nhanh của các ứng dụng nền Web , việc bảo mật an ninh an toàn cho trang Web lĩnh vực đặc biệt quan vì đư ợc truy cập lúc nơi và Tuy vậy không phải bất kỳ nhà phát triển phần mềm Web nào cũng chú tâm đến việc bảo mật anh ninh, vì nhiều ứng dụng Web vẫn tồn tại với nguy an ninh/an toàn/bảo mật (security vularability) gây nhiều thiệt hại bị công Tuy nhiên việc tì m kiếm và phát nguy an ninh thủ cơng khó khăn có nhiều nguy an ninh phát công cụ tự động Bên cạnh đó, loại nguy an ninh khơng ít, và có nhiều cơng cụ tự động phát nguy bảo mật nên người phát triển phần mềm muốn kiểm tra mức độ an ninh an toàn trang web mình gặp phải nhiều khó khăn Chính đề tài này nghiên cứu số kiểu tấn công phổ biến và các công cụ tự động phát hiện nguy an ninh an toàn đồng thời thử nghiệm chúng vào phần mềm “Trường Nhà” trang web http://truongnha.com Ứng dụng “Trường Nhà” là trang Web quản lý trường học phổ thông xây dựng đội phát triển phần mềm Chính vậy, đề tài thử nghiệm vào ứng dụng này để đưa lỗ hổng vài khuyến cáo cho đội phát triển phần mềm từ kiểm tra tính đắn kết khuyến cáo luận văn đưa 1.2 Mục tiêu đề tài Mục tiêu đề tài trình bày tổng quan cập nhật về nguy bảo mật, cách thức công và cách phát lỗ hổng bảo mật các hệ thống Web và sâu vào vài loại xâu Web tiếng và nguy hiểm Từ luận văn khảo sát một số công cụ phần mềm nhằm phát nguy bảo mật để giúp người lập trình ngăn chặn cơng chúng, giảm thiểu khả ứng dụng web bị ảnh hưởng lỗ hổng Ći cùng ḷn văn sâu vào p hát hiện lỗ hổng cho ứng dụng hệ thống quản lý trường học: http://truongnha.com dựa các công cụ đó 1.3 Bố cục luận văn Luận văn bao gồm chương sau: Chƣơng 1: Tổng quan an toàn bảo mật Web: Chương này giới thiệu vấn đề bảo mật, vai trò quan trọng bảo mật web và các nguy gây bởi việc thiếu an toàn bảo mật cho ứng dụng web 3 Chƣơng 2: Tấn cơng an tồn thông tin ứng dụng Web: Chương mô tả vài kỹ thuật cơng an tồn Web phổ biến (DoS/DDoS, XSS, SQL injection), ví dụ cách thức công chúng Chƣơng 3: Giới thiệu vài cơng cụ tìm kiếm lỗ hổng bảo mật: Chương này gi ới thiệu vài công cụ hỗ trợ việc tìm kiếm lỗ hổng Web Bên cạnh đó , chương này nêu lên cách thức làm việc và các lỗ hổng mà các ứng dụ ng này có thể phát ra, đưa nhận xét công cụ Chƣơng 4: Thực nghiệm phân tích kết quả: Thực nghiệm chạy số công cụ chương vào việc tìm lỗ hổng c ho ứng dụng Web là http://truongnha.com phân tích cách thức phương pháp chạy để tìm lỗi Chương đưa vài khuyến cáo cho nhà phát triển phần mềm Chƣơng 5: Kết luận hƣớng phát triển: Chương này trình bày những kết qu ả đạt được của luận văn và hướng phát triển tương lai 1.4 Tổng quan về vấn đề bảo mật nền Web Ngày nay, với phát triển mạnh mẽ công nghệ thông tin và đặc biệt đời hàng loạt trang Web đã mang l ại cho người nhiều tiện ích cho các doanh nghiệp Các hoạt động giao dịch trực tuyến thương mại điện tử hay toán trực tuyến ngày phổ biến và được thực hiện thông qua các ứng dụng Web Ở đâu, máy tính có nối mạng internet, người thực giao dịch cách thuận tiện nhanh chóng Mọi thơng tin người dùng lưu Web Nếu thông tin đó bị sửa đổi với ý đồ xấu, câu truy vấn sở liệu bị thay đổi cấu trúc, từ kết trả khác với ý muốn người lập trình, hoặc những kẻ lạc danh có thể đánh cắp thông tin, gây lên những thiệt hại lớn Có thể thấy việc xây dựng trang Web động cho phép xây dựng câu truy vấn động từ đầu vào người sử dụng cung cấp, chúng tiềm ẩn nguy an toàn cao khơng có chế kiểm tra liệu đầu vào cách chặt chẽ Tóm lại, ứng dụng Web ln ln tiềm ần và có nguy bị công kẻ công với ý đồ xấu, vậy nên vấn đề bảo mật nền Web là cấp thiết 1.5 Một số nguyên nhân phổ biến cho ƣ́ng dụng Web mất tí nh an toàn Dưới là một vài nguyên nhân có thể gây những điểm yếu đó cho ứng dụng Web: o Thiếu nhận thức về an toàn cho ứng dụng Web của người dùng và người lập trì nh o Thiếu các giải pháp bảo mật sẵn có o Sự thúc ép sản phẩm nhanh chóng, dẫn đến các nhà lập trì nh làm nhanh và ẩu, quên việc áp dụng các giải pháp cho bảo mật 1.6 Thống kê các loại tấn công Vấn đề an toàn b ảo mật cho ứng dụng Web là m ột vấn đề quan trọng, ảnh hưởng tới chất lượng an ninh hệ thống quan Với tình trạng tại hàng loạt kẻ công lợi dụng sơ hở phần mềm để công vào hệ thống nhằm phá hủy, ăn cắp liệu việc làm lại cấp bách cần thiết Nhìn biểu đờ Error! Reference source not found thấy nhiều loại cơng tờn tại có công liên trang (XSS), công từ chối dịch vụ (Denial of Service) SQL Injection chủ yếu Tiếp theo nghiên cứu chi tiết loại công chương vài lỗ hổng ý hơn, chúng miêu tả tại chương thực thi công cụ ứng dụng “Trường Nhà” 5 CHƢƠNG MỘT SỐ NGUY CƠ AN NINH THƢỜNG GẶP Chương mô tả vài kỹ thuật công an toàn Web phổ biến như: DoS/DDoS, XSS, SQL injection, đưa ví dụ cách thức cơng chúng 2.1 Tấn công DoS 2.1.1 Giới thiệu DoS Một cách thức cơng trang web có từ lâu đến vẫn tồn tại gây nhiều thiệt hại cho tổ chức mạng mà kẻ công thường sử dụng nhiều dạng công từ chối dịch vụ (DoS) DoS phương pháp công làm tê liệt hồn tồn máy chủ, khiến người dùng khơng thể truy cập Gần có nhiều trang web hay tổ chức bị nhiễm dạng cơng DoS, ví dụ trang web Bkav đã bị tê liệt suốt ngày bị tin tặc cơng từ chối dịch vụ DDoS Microsoft (15 tháng năm 2003) đã chịu đợt công DoS cực mạnh [1] Gây thiệt hại không nhỏ Cuộc chiến chống lại công từ chối dịch vụ DDoS coi là vơ cùng khó khăn 2.1.2 Mục đích dạng công DoS Tấn công theo phương pháp DoS nhằm mục đích sau:  Chiếm băng thơng mạng làm hệ thống mạng bị tải, hệ thống mạng khơng có khả đáp ứng dịch vụ khác cho người dùng bình thường  Cố gắng làm ngắt kết nối hai máy, và ngăn chặn trình truy cập vào dịch vụ  Cố gắng ngăn chặn dịch vụ không cho người khác có khả truy cập vào  Khi cơng DoS xảy người dùng có cảm giác truy cập vào dịch Các tài nguyên mà kẻ công thường sử dụng để công là: Băng thông hệ thống mạng, nhớ, ổ đĩa, và CPU hay cấu trúc liệu mục tiêu công DoS 2.1.3 Tấn công DDoS 2.1.3.1 Khái niệm DDoS Tấn công DDoS cơng từ mạng máy tính thiết kế để cơng tới đích cụ thể nào Dạng cơng này nhằm mục đích giống DoS, nhiên thiết lập nhiều địa IP khác cơng vào đích 2.1.3.2 Phân loại cơng DDoS Có nhiều kỹ thuật cơng DDoS, dựa mục đích kiểu cơng này, ta chia DDoS thành hai loại dựa mục đích cơng: Làm cạn kiệt băng thông và làm cạn kiệt tài nguyên hệ thống Error! Reference source not found là sơ đồ mô tả phân loại kiểu công DDoS [4] 6 2.2 Cross-Site Scripting (XSS) 2.2.1 Tổng quan XSS XSS loại công Web phổ biến nhất, mục đính chúng nhúng kịch (script) chứa mã độc vào trang web thực thi chúng phía máy khách Một trang Web có khả dễ bị cơng XSS ứng dụng không kiểm tra liệu vào tạo đầu tầm kiểm sốt trang Lỗ hổng dẫn tới nhiều loại cơng, ví dụ: đánh cắp thơng tin mật Ngay nhà an tồn thơng tin lớn nhât như: McAfee, Symantec, Verisign đã có 30 lỗ hổng XSS trang Web họ [2] 2.2.2 Phân loại Dưới là vài kiểu công dạng XSS:  Tấn công liên trang dạng lưu trữ (Stored Cross site scripting)  Tấn công liên trang dạng phản chiếu (Reflected Cross site scripting)  Tấn công liên trang dựa DOM (DOM-based Cross site scripting) a) Stored XSS Stored Cross site scripting: Là loại công nguy hiểm XSS Các ứng dụng Web cho phép người sử dụng lưu trữ liệu có tiềm gây loại cơng Stored XSS cách công mà mã độc lưu lại máy chủ Web thông qua cách chèn đoạn script nguy hiểm (thường Javascript) vào ứng dựng Web thơng qua chức nào là gửi bài, viết lời bình Sau người dùng sau truy cập vào chức này bị dính mã độc từ website có chèn mã kẻ cơng giống mơ tả Hình 2.1 sau Hình 2.1: Mơ hình cơng XSS Ngày ứng dụng web khơng là trang web tĩnh nữa, mà thay vào là trang web động với liệu lấy thay đổi từ nhiều nguồn khác Dữ liệu đựng hỗn hợp là: text, hình ảnh thẻ HTML

, , Kẻ cơng sử dụng tính „comment‟ ứng dụng web để chèn bình luận (comment) có chứa thẻ script Mỗi người dùng ghé thăm tải đoạn bình luận và thực thi trình duyệt họ Giống chức bình luận Facebook diễn đàn, kẻ cơng sử dụng để công theo phương pháp này b) Reflected XSS Kiểu công Reflected XSS biết đến kiểu loại (non-persistent XSS), loại công XSS thường thấy ngày Khi ứng dụng bị nhiễm loại cơng này, không kiểm tra đầu vào thông qua yêu cầu máy khách Chương trình kẻ công viết Javascript, ActionScript, VBScript Những kẻ công dạng này thường làm cho lỗ hổng cài đặt, ăn trộm cookies nạn nhận, thay đổi nội dung trang web Một vấn đề quan trọng việc khai thác điểm yếu lỗ hổng XSS là việc mã hóa ký tự Trong số trường hợp, máy chủ Web ứng dụng Web lọc vài ký tự mã hóa Ví dụ, ứng dụng Web lọc thẻ lại lọc '%3cscript%3e' Hình 2.2: Mơ hì nh tấn cơng Reflected XSS Trong trường hợp này, kẻ công gửi email cho nạn nhân có chứa mã độc đường liên kết để lấy cookie Nạn nhân sau nhận mail, kích lên liên kết và từ khởi tạo yêu cầu HTTP tới ứng dụng Web gây nhiễm cho ứng dụng Đoạn JavaScript có chứa mã độc sau gửi trở lại trình duyệt nạn nhân 2.2.3 Cách phát sâu XSS Trong trang Web bị dính sâu XSS, thường là người sử dụng đăng nhập gửi vài thông tin nào tớ máy chủ, mà kết gửi có liên quan tới thơng tin chuỗi người dùng đã nhập khả cao là đã bị dính sâu XSS Kẻ cơng thường dùng thẻ để nhúng vào form ứng dụng đưa vào URL Bạn thử đăng nhập với chuỗi: alert(“XSS found”), thấy xuất popup ứng dụng đã bị nhiễm XSS, tương tự nhúng vào URL 2.2.4 Các phƣơng pháp ngăn chặn lỗ hổng bảo mật XSS Để trang Web tránh việc cơng XSS, nhà phát triển phần mềm nên kiểm tra cẩn thận hơn:  Kiểm tra chấp nhận liệu hợp lệ  Có chức nắm giữ từ chối nhận liệu hỏng  Thực kiểm tra sàng lọc liệu cách liên tục 2.3 Tổng quan SQL Injection 2.3.1 Định nghĩa SQL injection kỹ thuật sử dụng cho việc muốn tìm điểm yếu ứng dụng sở liệu Nó thường sử dụng ứng dụng Web, mà yêu cầu nhập thông tin từ người dùng để xử lý Kỹ thuật này thường thấy trường hợp yêu cầu đăng nhập vào ứng dụng hay khung đăng thông tin từ người dùng mà ứng dụng sử dụng câu truy vấn SQL injection xuất hiên ứng dụng web có sử dụng công nghệ như: ASP, ASP.NET và PHP với SQL Ví dụ người sử dụng nhập thông tin vào trang đăng nhập yêu cầu gửi thông tin người dùng mật mang để so sánh với tập hợp người dùng hợp pháp sở liệu [9] 2.3.2 Các kỹ thuật công SQL Injection Có loại cơng thuộc SQL Injection: Đăng nhập không cần mật khẩu, sử dụng câu lệnh SELECT, sử dụng Stored-procedures, sử dụng câu lệnh INSERT [8] 2.3.3 Những ảnh hƣởng gây SQL Injection Một kẻ cơng đã nhận hệ thống có điểm yếu tiêm mã độc SQL Injection vào, chúng đưa vào câu lệnh truy vấn SQL thông qua trường nhập đầu vào nào Điều tương đương với việc giao sở liệu bạn cho kẻ công cho phép kẻ công thực thi lệnh SQL nào bảo gờm câu lệnh “DROP TABLE” để xóa hẳn sở liệu bạn Kẻ cơng có lẽ thực thi trạng thái SQL cách tùy ý hệ thống có khả tiêm nhiễm Điều gây nguy cho toàn sở liệu bạn làm phơi bày thông tin nhạy cảm Phụ thuộc vào back-end sở liệu, khả tiêm nhiễm SQL Injection dẫn đến nhiều mức độ việc truy cập liệu/hệ thống kẻ cơng Nó có khả thực thi truy vấn tờn tại, UNION liệu tùy ý, sử dụng lựa chọn thêm vào truy vấn theo sau 9 2.3.4 Các phƣơng pháp phòng chống SQL Injection phổ biến Các loại công SQL Injection dựa điểm yếu sở liệu Thông thường nhà lập trình thường quên việc ngăn chặn lỗi bảo mật lập trình dẫn đến sơ hở 10 CHƢƠNG MỘT SỐ CÔNG CỤ PHÁT HIỆN NGUY CƠ AN NINH Chương miêu tả công cụ phát lỗ hổng bảo mật, với chiến lược công cụ dễ sử dụng, có khả phát tốt sử dụng nhiều mà nhà kiểm thử dễ dàng áp dụng chạy hoàn toàn tự động, khơng tốn cơng sức người Đó công cụ như: Acunetix, Netsparker, WebScarab, Websecurify, W3af, Havij, Wapiti, BurpSuite, Exploit-Me, Rcvalle-rapache 3.1 Netsparker Netsparker công cụ duyệt tìm lỗ hổng SQL injection XSS gây ra, phần mềm miễn phí cho tất trang web muốn tìm lỗ hổng Cơng cụ phát vấn đề bảo mật ứng dụng Web, Netsparker kiểm tra phát số lượng điểm yếu lớn SQL injection như: Error Based, Blind và Time Based SQL Injections Sau xác nhận lỗ hổng đó, cơng cụ có khả thực thi kiểm tra rộng để xác định rõ người sử dụng ứng dụng có quyền người quản lý Trong trường hợp Netsparker báo cáo vấn đề riêng biệt gọi là “Admin User DB Connection” Netsperker tìm khai thác nhiều tầng back-end sở liệu khác nhau, có khả tìm thấy 98.53% tất SQL injection Ví dụ chạy ứng dụng: http://localhost/topman kết chạy công cụ này mơ tả Hình 3.1 sau: Hình 3.1: Thực nghiệm cơng cụ Netsparket Bên cạnh đó, nhiều lỗ hổng mức độ ảnh hưởng trung bình thấp như: hiển thị thông tin vài trường, lộ thơng tin ngơn ngữ lập trình Những thơng tin mà hữu ích 11 cho kẻ muốn cơng Dựa cơng cụ này, đã giúp phát lỗ hổng, từ nhà phát triển biết khắc phục trước bị công gây hậu 3.2 Websecurify Websecurify cơng cụ kiểm thử phần mềm tự động có khả quét thông số an ninh khác trang web và đưa phân tích thống kê tồn diện giúp bạn tìm thấy lỗ hổng an ninh để giữ cho trang web tránh công kẻ công [14] Cũng tương tự desktop, Websecurify đuôi mở rộng firefox chrome Bạn cài đặt sử dụng cách dễ dàng để sử dụng 3.3 Acunetix Acunetix cơng cụ bảo mật mới, cho phép chúng ta x ác nhận tìm nhiều tính yếu điểm cho ứng dụng Web Việc nâng cao độ xác đạt việc kết hợp kỹ thuật quét hộp đen với phản hồi từ phần tử nhạy cảm đặt bên mã ng̀n thực thi Việc quét hộp đen thì cách mà ứng dụng tác động trở lại việc phân tích mã ng̀n khơng thể hiểu ứng dụng có hành vi nào bị công Do việc kết hợp kỹ thuật với để đạt kết tương xứng việc sử dụng phân tích mã nguồn quét hộp đen cách độc lập [5] Hình 3.2 là ví dụ chạy trang web: Hình 3.2: Ví dụ Acunetix Trang web quản lý dự án, cài đặt tại máy localhost: http://localhost/topman Chương trình chạy đơn giản bạn cần đưa đường địa trang Web vào bắt đầu chạy, hình kết sau: 12 Trang web cần quét Mức động uy hiểm lỗ hổng Hình 3.3: Kết quả chạy Acunetix Kết cho thấy có lỗi có khả cơng XSS Dựa vào kết và độ nguy hiểm, tới phân tích lỗ hổng sau: Miêu tả chi tiết lỗ hổng Kích lên lỗ hổng để xem chi tiết Hình 3.4: Phân tí ch chi tiết kết quả Một REQUEST chứa mã độc, thực thi di chuột qua login_name, thực thi câu lệnh hiển thị hộp thoại thông báo lỗi hình vẽ Đối với kẻ cơng, cài đặt đoạn mã xấu nhằm lấy cookies người sử dụng hộp thoại hiển thị ra, lúc hệ thống bị nhiễm sâu XSS Một ứng dụng bị nhiễm sâu này, có khả bị chỉnh sửa nội dung trang web, thực thi chức sai lệch, có khả gây phá hủy hệ thống quyền người sử dụng hợp pháp ứng dụng, tài khoản người sử dụng đã bị đánh cắp Để ngăn chặn lỗi xảy ra, người phát triển ngăn chặn cách kiểm tra lọc kỹ liệu đầu vào, nhằm tránh mã độc 13 3.4 WebScarab a) Khái niệm WebScarab công cụ kiểm tra ứng dụng Web, khung làm việc dùng cho việc phân tích ứng dụng, giao tiếp sử dụng giao thức HTTP và HTTPs Nó viết Java có khả chạy nhiều tảng WebScarab thao tác giống proxy, cho phép thao tác kiểm tra chỉnh sửa yêu cầu tạo trình duyệt trước chúng gửi tới máy chủ và kiểm tra, chỉnh sửa đáp trả từ máy chủ trước chúng nhận trình duyệt WebScarab có hai phần [10]:  Lite mode: Phần có khả chặn chỉnh sửa yêu cầu (cả giao tiếp HTTP HTTPs)  Full mode: Phần có khả thêm vào yêu cầu 3.5 Havij a) Khái niệm Havij cơng cụ tìm kiếm SQL injection, giúp người kiểm thử thâm nhập tìm thấy lỗ hổng SQL injection trang web cách tìm sở liệu tại ứng dụng thâm nhập vào để lấy thông tin sở liệu đó, thực thi chạy câu lệnh SQL, truy cập vào tệp hệ thống chạy chúng nhằm phá hủy hoàn toàn hệ thống Sức mạnh Havij khác so với công cụ khác phương pháp tiêm nhiễm Sau đã lấy thông tin người dùng, kẻ cơng dùng tên người sử dụng mật để đăng nhập vào hệ thống cách hợp lệ b) Những đặc tính Havij  Phát điểm yếu sở liệu  Lấy thông tin bảng cột, lấy liệu từ sở liệu, chạy câu lệnh SQL chí truy cập hệ thống tập tin sở thực lệnh hệ điều hành  Havij đơn giản dễ sử dụng cho người dùng  Hỗ trợ nhiều loại sở liệu 3.6 W3af W3af công cụ mã nguồn mở, áp dụng cho việc kiểm tra an ninh cho ứng dụng Web, tìm kiếm khai thác lỗ hổng Nó cung cấp thông tin lỗ hổng an ninh hỗ trợ việc kiểm thử cách thâm nhập vào trang Web W3af bắt đầu Andres Riancho vào tháng năm 2007, sau nhiều năm phát triển 14 W3af sử dụng chiến thuật khai thác để tì m URL mới và các lỗ hổng Chúng ta xem chương tiếp theo để biết được những lỗ hổng mà công cụ này phát hiện cho ứng dụng phần mềm Trường Nhà Kết luận, chương này giới thiệu tới một vài loại công cụ mà dùng phổ biến lĩnh vực an ninh cho ứng dụng Web Dưới là vài đánh giá và kết luận thu khảo sát tìm hiểu cơng cụ trên:  Trong các trường hợp không đủ thời gian kiểm thử muốn thực thi kiểm thử nhanh chóng mà vẫn phát lỗ hổng mà trang Web hay gặp phải, người dùng có thể sử dụng những công cụ Websecurify , Netsparker, W3af Bên cạnh việc cài đặt và giao diện dễ sử dụng cho nh ững người vào nghề làm kiểm thử không cần mất thời gian nhiều để học cách sử dụng công cụ , Ngoài muốn đánh giá độ an toàn công tác đánh giá hệ thống, người dùng có thể sử dụng công cụ Netsparker, công cụ này hữu hiệu việc kiểm thử “Penetration testing” – là phương pháp đánh giá độ an toàn cách công (đánh trận giả)  Các công cụ Acunetix, WebScarab, BurpSuite phát nhanh và sâu , áp dụng cho những người kiểm thử hiểu sâu về công cụ và có khả tối ưu hóa cao để quét Công cụ này cũng tì m rất nhiều những lỗ hổng áp dụng tốt trường hợp muốn đảm bảo an ni nh cho một ứng dụng Web Exploit-Me là công cụ nhanh gọn và dễ sử dụng, nhiên khả phát hiện lỗ hổng thường kém các ứng dụng khác  Trong trường hợp những trang web có nhu cầu muốn chuyên sâu vào tì m nhữ ng lỗ hổng dạng SQL injection Công cụ Havij có thể tì m được rất mạng và chí nh xác  Đối với ứng dụng Web có sử dụng Apache server, kiểm thử viên muốn phát hiện lỗ hổng có khả tấn công DoS Kiểm thử viên c ó thể sử dụng cơng cụ Rcvale rapache để phát cách nhanh chóng bằng cách thử tấn công  Công cụ Exploit-Me tập hợp công cụ cho việc kiểm tra bảo ứng dụng Web Firefox Nó thiết kế đơn giản, dễ cài đặt sử dụng, tương tác trực tiếp với Firefox Mỗi công cụ đều có những ưu điểm phù hợp với các ứng dụng khác và bên cạnh đó có vài nhược điểm Người dùng có thể tham khảo để biết phù hợp nhất với hoàn cảnh và ứng dụng của mì nh để áp dụng mang lại hiểu quả cao nhất 15 CHƢƠNG THỰC NGHIỆM VÀ PHÂN TÍCH KẾT QUẢ Chương sâu vào thực nghiệm một vài công cụ giới thiệu chương ứng dụng quản lý trường học mang tên “Trường Nhà” Đó cơng cụ có khả phát lỗ hổng an ninh cho ứng dụng Web cao, giao diện dễ sử dụng mã nguồn mở như: Acunetix, Websecurify, Burp suite, Skipfish, W3af Netsparker Dựa kết thực nghiệm, cuối chương tổng quát hóa đưa khuyến cáo nhằm giúp ứng dụng Web khác nâng cao vấn đề bảo mật an ninh cho ứng dụng Web 4.1.Acunetix 4.1.1 Thực nghiệm Thực nghiệm công cụ ứng dụng quản lý trường học tại: http://truongnha.com Hình 4.1: Kết quả chạy cơng cụ Acunetix Hình mơ tả kết việc quét trang http://truongnha.com Công cụ này đã phát vài lỗ hổng Web server mạng 4.1.2 Phân tích thực nghiệm Với lỗ hổng Web server Apache HTTP có khả bị công từ chối dịch vụ (DoS), khả kẻ công truy cập từ xa công vào dạng làm tràn nhớ chiếm hết quyền sử dụng CPU, điều gây công từ chối dịch vụ dạng công Apache Session Cookie không được dùng với cờ bảo mật : Với dạng lỗ hổng này, ứng dụng không an toàn chúng không được thiết lập cờ bảo mật Giải pháp đưa công cụ Acunetix nhà phát triển nên thiết lập cờ bảo mật cho chúng dạng HTTPOnly 16 4.2.Netsparker 4.3.1 Thực nghiệm Chúng ta chạy ứng dụng http://truongnha.com: Hình 4.2: Thực nghiệm cơng cụ Netsparker 4.3.2 Phân tích thực nghiệm Lỡ hởng xảy tại: http://truongnha.com/admin/  Lỗi mật truyền ngang qua HTTP: Khi tồn tại lỗi xảy ra, kẻ cơng lợi dụng làm chặn lại giao thông mạng và ăn trộm chứng thực người sử dụng hợp pháp Để tránh lỗ hổng xảy ra, liệu nhảy cảm, hay form trang nên truyền ngang qua HTTPs thay truyền qua HTTP khơng an toàn  Lỗ hổng Django Stack Trace Disclosure: khả hiển thị chi tiết trang web lỗi tại ứng dụng web mục tiêu Những thông tin giúp cho kẻ cơng chống lại hệ thống, khai thác lỗ hổng hệ thống dựa thơng tin đã biết, từ thực thi khai thác chúng, dẫn đến phá hủy hệ thống Để khắc phục lỗi này, nhà phát triển phần mềm nên thay đổi cấu hình Django là: thay đổi lựa chọn DEBUG tới false Bên cạnh đó có rất nhiều những lỗi với mức độ thấp như:  Lỗi bên máy chủ : Máy chủ đáp trả lại HTTP với trạng thái 500, điều đó lỗi phía máy chủ Thơng tin này sau đó sẽ được phân tí ch một cách cẩn th ận Sự ảnh hưởng của lỗ hổng này phụ thuộc vào nhiều điều kiện nó có khả sẽ gây tấn công dưới dạng SQL Injection Để ngăn chặn lỗ hổng này xảy , nhà phát triển phần mềm nên xem xét lại mã chương trì nh để ngăn chặn những lỗi không mong 17 đợi, để không làm lộ thông tin ngoài , lỗi nên xử lý phía máy chủ Lỡ hởng này xảy tại: http://truongnha.com/static/bootstrap/  Cookie không được đánh dấu HTTPOnly : HTTPOnly là chế bảo mật cookie Nếu một cookie được đánh dấu HTTPOnly thì cookie không có khả truy cập được từ máy khách Do đó nó có khả tạo thêm một tầng bảo vệ chống lại tấn công XSS Trang web này sẽ có khả bị kẻ công truy cập cookie một cách dễ dàng Để ngăn chặn các lỗi này , nhà phát triển phần mềm nên đánh dấu cookie với cờ HTTPOnly để tạo một tầng bảo mật chống lại XSS cho các trang Web mình 4.3.Websecurify 4.6.1 Thực nghiệm Chúng ta thực thi quét trang web với cơng cụ Websecurify và có kết sau: Hình 4.3: Kết quả chạy cơng cụ Websecurify 4.6.2 Phân tích thực nghiệm Dưới là các lỡ hởng được tì m thấy bởi công cụ này  Error Disclosure: lộ thông tin này, kẻ công biết thêm ứng dụng, phiên bản và cấu hì nh hiện tại của ứng dụng giúp í ch cho việc khai thác các điểm yếu đó  Autocomplete Enable: những trường thông tin nhạy cả m được hiển thị , kẻ cơng truy cập vào đệm lấy thơng tin và công thông tin mật khẩu, cookies…  Email Disclosure: Máy chủ ứng dụng bị lộ địa email Điều này sẽ gây r a một cuộc spam thư, hay lộ thông tin của người dùng nào đó 18  Banner Disclosure: Máy chủ và ứng dụng bị lộ thông tin phiên và kiểu 4.4.Tổng hợp đánh giá Chương này thực hiện việc kiểm thử an ninh cho ứng dụng quản lý trường học phổ thông mang tên “Trường Nhà” (http://truongnha.com) và phát lỗ hổng bảo mật giúp ứng dụng này giảm thiểu phần nào thiệt hại gây Dưới là danh sách các công cụ thực thi ứng dụng “Trường Nhà”, và lỗ hổng đã đư ợc miêu tả chi tiết thực thi công cụ phần thực nghiệm trên: Bảng 4.1: Danh sách các lỗ hổng các công cụ Công cụ Lỗ hổng W3af Lộ thông tin địa Email XSS Acunetix Websecurify X X X DOS/DDOS X Lộ đường dẫn X Lộ ngôn ngữ ứng dụng Tấn công liên trang giả mạo Netsparker X X X X Mật truyền qua HTTP X Mật tự động hiển thị X Lộ thông tin máy chủ X Hiển thị cookies X Khả tự động thị trường X X X X X X X Toàn chương này tập trung sâu vào quét lỗ hổng bảo mật công cụ đại được sử dụng nhiều hiện ứng dụng quản lý trường học tại http://truongnha.com Thêm vào đó , chương này đưa một vài khuyến cáo để giúp ứng dụng có thể giảm thiểu các 19 lỗ hổng an ninh nhằm ngăn chặn tấn công của kẻ tấn công vào ứng dụng Những khuyến cáo này áp dụng với ứng dụng Web khác Dựa vào việc thực nghiệm trên, luận văn đưa qui trình áp dụng cho việc sử dụng công cụ cách hiệu sau: o Đầu tiên, nên sử dụng công cụ Websecurify cơng cụ cài đặt đơn giản, khơng thời gian có khả tìm lỗ hổng quan trọng như: SQL Injection, XSS, thơng số bị lộ o Sau đó, đã phát lỗ hổng bản, người dùng muốn phát rộng thêm lỗ hổng khác, áp dụng cơng cụ Acunetix và Netsparker chúng có nhiều lựa chọn nhiều cấu hình cho người dùng để quét toàn cấu trúc trang Web, từ có khả phát lỗ hổng DOS, cổng thông tin mở mật truyền cách khơng an tồn o Cuối cùng, người dùng quen dùng chế độ dòng lệnh sử dụng thêm công cụ W3af và Skipfish để quét lại lượt để phát thêm vài lỗ hổng dạng công liên trang giả mạo Với việc áp dụng quy trình vậy, ứng dụng Web phần giảm thiểu mối nguy hại lỗ hổng gây mà ứng dụng Web nào áp dụng 20 CHƢƠNG KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Chương tổng kết lại những k ết mà luận văn đã làm và đưa những hướng phát triển thời gian tới Vấn đề bảo mật an ninh Web vấn đề quan trọng cần thiết sự phát triển rất nhanh của các ứng dụng nền Web , nguy và thiệt hại gây lỗ hổng không nhỏ Tuy vậy không phải bất kỳ nhà phát triển phần mềm Web nào cũng chú tâm đến việc bảo mật anh ninh, vì nhiều ứng dụng Web vẫn tờn tại nguy tính an tồn bảo mật (security vularability) liên tục vẫn có công xảy Việc tì m kiếm và phát nguy an ninh cách thủ cơng khó khăn có nhi ều nguy an ninh phát công cụ tự động Bên cạnh thì loại nguy an ninh và công cụ tự động phát nguy ngày càng nhiều, khiến cho người dùng khó khăn việc lựa chọn công cụ phù hợp với ứng dụng Chính đề tài này nghiên cứu m ột số kiểu tấn công phổ biến và các công cụ tự động phát hiện nguy an ninh an toàn thử nghiệm chúng vào phần mềm quản lý trường học phổ thông với tên gọi “Trường Nhà” trang web http://truongnha.com Kế hoạch tương lai của luận văn , đề tài tiếp tục sâu nghiên cứu thêm kĩ thuật cơng, sử dụng phần mềm mã nguồn mở để mở rộng thêm chức cho công cụ để đưa phương pháp và triển khai chương trình phát lỗ hổng bảo mật ứng dụng Web mức độ sâu 21 TÀI LIỆU THAM KHẢO Tiếng Việt Vnexperts Research Department, DOS DDOS toàn tập Tiếng Anh Acunetix (2012), Web Vulnerability Scanner V8, User manual v.1 2012 CEH – Certified Ethical Hackers, Hacking Web Applications – Module 13 Craig Shue, Brian Kopecky, Chris Weilemann, Denial of Service Attack Detection using Extended Analog Computers MSI::Labs (2006), Acunetix Web Vulnerability Scanner L Garber (2000), Denial-of-service attacks rip internet, IEEE Computer OWASP, http://www.owasp.org OWASP, SQL Injection, https://www.owasp.org/index.php/SQL_Injection Hakipedia, SQL Injection, http://hakipedia.com/index.php/SQL_Injection 10 Holger Peine Dr, The interactive HTTP proxy WebScarab – Installation and basic use, Fraunhofer IESE 11 Sector Toronto (2009), A framework to Own the Web – part I 12 SpiderLaps, Web Hacking Incident Database, by SpiderLaps, http://projects.webappsec.org/w/page/13246995/Web-Hacking-Incident-Database 13 Web Application Security Scanner Evaluation Criteria –2009 Web Application Security Consortium 14 Websecurify, http://www.websecurify.com/suite Thank you for evaluating AnyBizSoft PDF Splitter A watermark is added at the end of each output PDF file To remove the watermark, you need to purchase the software from http://www.anypdftools.com/buy/buy-pdf-splitter.html ... W3af công cụ mã nguồn mở, áp dụng cho việc kiểm tra an ninh cho ứng dụng Web, tìm kiếm khai thác lỗ hổng Nó cung cấp thơng tin lỗ hổng an ninh hỗ trợ việc kiểm thử cách thâm nhập vào trang Web. .. đã giúp phát lỗ hổng, từ nhà phát triển biết khắc phục trước bị công gây hậu 3.2 Websecurify Websecurify công cụ kiểm thử phần mềm tự động có khả quét thông số an ninh khác trang web và đưa... Nhà” trang web http:/ /truongnha. com Ứng dụng “Trường Nhà” là trang Web quản lý trường học phổ thông xây dựng đội phát triển phần mềm Chính vậy, đề tài thử nghiệm vào ứng dụng này để đưa lỗ hổng

Ngày đăng: 06/03/2020, 00:08

Từ khóa liên quan

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

Tài liệu liên quan