Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)Nghiên cứu kiểm thử bảo mật website (tt)
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG T N TH H NH NGHI N C U I TH WEBSITE B Chuyên ngành: Hệ T n T ã s : 60.48.01.04 TÓ T n Tn TẮT LU N VĂN TH C SĨ HÀ NỘI – 2017 Luận văn hoàn thành tại: HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG Người hướng dẫn khoa học: PGS TS L H u Lập Phản biện 1: Phản biện 2: Luận văn bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Công nghệ Bưu Viễn thông Vào lúc :… … ngày ……tháng …… năm ………… Có thể tìm hiểu luận văn -Thư viện Học viện Công nghệ Bưu Viễn thông MỞ Đ U Đảm bảo an toàn cho website vấn đề cấp bách tất quốc gia tr n giới, đặc biệt Việt Nam Ở Việt Nam gần có nh ng vụ công vào website gây ảnh hưởng nghi m trọng điển hình như: Tháng 11/2006 website Bộ Giáo dục & Đào tạo (có địa www.moetgov vn) bị hacker công, tháng 6/2013 hàng loạt trang báo dân trí, vietnamnet, tuoitre bị công làm t liệt Năm 2014 hàng loạt website thuộc hệ thống Công ty Cổ phần truyền thông Việt Nam (VCCorp) website hỗ trợ vận hành đơn vị đồng loạt gặp cố công DdoS Gần vào ngày 29/7/2016, trang mạng thức Vietnam Airlines bị hacker công chiếm quyền kiểm soát chuyển sang trang mạng xấu nước D liệu số hội vi n khách hàng thường xuy n Vietnam Airlines bị công bố, Khả truy cập 24/7 từ nơi tr n giới hay ứng dụng web không an toàn thường cung cấp truy cập dễ dàng đến sở d liệu sơ hở lớn cho phép tin tặc thực hoạt động bất hợp pháp cách sử dụng trang web công Hầu hết nguy n nhân vụ công website tồn nhiều lỗ hổng bảo mật Một điều đáng lo ngại n a cá nhân, tổ chức doanh nghiệp, CNTT nói chung ứng dụng web nói ri ng trở thành nhân tố, công cụ đắc lực hỗ trợ tăng hiệu suất làm việc lợi nhuận, hiệu kinh tế cao cho họ, quan tâm, chi phí bỏ cho lĩnh vực bảo trì, bảo mật lại không đáng kể Đồng thời mối nguy hiểm đe dọa ngày phát triển phức tạp hơn, khả công khai thác kẻ xấu tăng l n rõ rệt, mã độc, phần mềm độc hại, virut trở n n khó phát ti u diệt Vì vấn đề an ninh mạng nói chung bảo mật Web Application nói ri ng vấn đề quan trọng cấp bách cần phải nghi n cứu, tìm hiểu đưa giải pháp kỹ thuật để phòng tránh, đồng thời cá nhân, tổ chức doanh nghiệp cần dành nhiều thời gian, kinh phí, nhân lực kỹ thuật để đảm bảo cho hệ thống mạng Web Application hoạt động tốt, có khả chống chọi ngăn chặn trước mối nguy hiểm công Đó lý em chọn đề tài: “Nghi n cứu kiểm thử bảo mật website” để làm luận văn tốt nghiệp với mục đích hiểu việc kiểm thử website từ áp dụng vào công việc thực tế ục đíc n ên cứu Tìm hiểu vấn đề bảo mật, phương pháp công cụ kiểm thử bảo mật website lựa chọn công cụ kiểm thử thực thử nghiệm kiểm thử bảo mật website qua đánh giá kết - Tìm hiểu tổng quan bảo mật - Nghi n cứu loại kiểm thử bảo mật, quy trình kiểm thử bảo mật - Nghi n cứu phương pháp công cụ tương ứng kiểm thử bảo mật website o Phương pháp kiểm thử hộp đen o Phương pháp kiểm thử hộp trắng o Phương pháp kiểm thử Fuzzing Đ - Phân tích đánh giá, lựa chọn công cụ thực kiểm thử bảo mật website - Đánh giá kết đạt tƣợn p ạm v n ên cứu Trong khuôn khổ luận văn thuộc loại nghi n cứu ứng dụng, em giới hạn nghi n cứu vấn đề sau: - Nghi n cứu phương pháp công cụ tương ứng kiểm thử bảo mật website - Phân tích đánh giá, lựa chọn công cụ thực kiểm thử bảo mật website CHƯƠNG - TỔNG QUAN VỀ BẢO MẬT WEBSITE 1.1 Tổng quan bảo mật Bảo mật cần thỏa hiệp gi a v i ệ c đảm bảo an ninh chức hay khả sử dụng hệ thống Nếu bảo mật chặt chẽ, hệ thống trở nên khó sử dụng khó hoạt động cách hiệu Nếu bảo mật đơn giản, hệ thống dễ bị công xâm nhập Kiểm thử bảo mật Web, theo nghĩa truyền thống, đánh giá hiệu bảo vệ toàn hệ thống Web Nó yêu cầu kết hợp nhiều kiến thức công nghệ bảo mật, công nghệ mạng, lập trình, kinh nghiệm thực tế thâm nhập hệ thống mạng Hầu hết kiểm thử viên phần mềm đầy đủ kiến thức Do cần nghi n cứu, tìm hiểu kiến thức bảo mật cho website từ đưa cách thức thực đánh giá khả bảo mật website 1.2 Mục đích bảo mật Tùy thuộc vào yêu cầu hệ thống, hệ thống có nh ng mục đích khác nhau, y u cầu bảo mật có điểm chung là: Đảm bảo an toàn d liệu cho hệ thống bảo vệ tài nguyên mạng trước công nhằm phá vỡ hệ thống sử dụng trái phép tài nguy n số người có chủ ý xấu 1.3 Th ng kê tình trạng bảo mật h ện tran web Theo thống k trang web bảo mật Security Daily, có đến 1039 website Việt Nam bị công vòng nửa đầu tháng năm 2015 – tăng đột biến gấp lần so với tháng trước, Trong số này, có 69 website giáo dục 30 website quan thuộc Chính phủ Việt Nam Hơn 1000 website lỗ hổng bị công lỗ hổng tồn cách chục năm hacker dễ dàng công website Số lượng website bị tin tặc công tiếp tục tăng thời gian tới Theo thống k khác Bkav, Việt Nam, trung bình tháng lại có 300 website doanh nghiệp, tổ chức nước bị công Tỷ lệ website tồn lỗ hổng khu vực Châu Á 36%, Châu Âu 15%, Châu Mỹ 5% Châu Phi 33% Việt Nam tỷ lệ 40% Như vậy, mức độ bảo mật hệ thống webstie Việt Nam mức trung bình so với nước khu vực thấp so với tr n giới Trong đáng ý 30% website ngân hàng Việt Nam tồn lỗ hổng Và có tới 2/3 số mức độ nguy hiểm trung bình cao 1.4 Một s phƣơng pháp công phổ biến 1.4.1 Tấn công SqlInjection 1.4.2.1 Khái quát 1.4.2.2 Minh họa 1.4.2.3 Cơ chế phát 1.4.2.4 Các thức phòng tránh 1.4.2 Tấn công Cross Site Scripting 1.4.2.5 Khái quát 1.4.2.6 Minh họa 1.4.2.7 Cơ chế phát 1.4.2.8 Cách thức phòng tránh 1.4.3 Lỗ hổng Directory Listing 1.4.3.1 Khái quát 1.4.3.2 Minh họa 1.4.3.3 Phát 1.4.3.4 Phòng chống ết luận c ƣơn Trong chương n u l n khái niệm bảo mật, mục đích bảo mật, thống k tình trạng bảo mật website Đồng thời giới thiệu số lỗ hổng phổ biến Để đảm bảo an toàn cho website cần thực kiểm thử bảo mật cho chúng Việc áp dụng phương pháp kiểm thử bảo mật website giới thiệu chương kiểm thử bảo mật website CHƯƠNG – KIỂM THỬ BẢO MẬT WEBSITE 2.1 G th ệu kiểm thử phần mềm Kiểm thử phần mềm (kiểm tra, thử nghiệm) kiểm tra tiến hành để cung cấp cho b n li n quan thông tin chất lượng sản phẩm dịch vụ kiểm thử Kiểm thử cung cấp cho doanh nghiệp quan điểm, cách nhìn độc lập phần mềm để từ cho phép đánh giá thấu hiểu nh ng rủi ro trình triển khai phần mềmKiểm thử phần mềm trình thực thi chương trình với mục đích tìm lỗi 2.2 K ểm thử bảo mật 2.2.1 Mục đích kiểm thử bảo mật Với tư cách kiểm thử viên, tập trung kiểm thử bảo mật Website ứng dụng Web Điều có nghĩa tìm kiếm lỗ hổng rò rỉ thông tin gây nên chủ yếu lập trình cấu hình sai trình chủ Web trình chủ ứng dụng khác 2.2.2 Trách nhiệm kiểm thử bảo mật Kiểm thử bảo mật liên quan đến trách nhiệm nhiều người khác sau đây: - Nhà định nghĩa sách (policymaker) - Người quản trị mạng, thiết kế cài đặt biện pháp bảo - Lập trình viên phần mềm - Các chuyên gia nhà tư vấn bảo mật 2.2.3 Mục đích kiểm thử bảo mật Kiểm thử bảo mật cho website nhằm mục đích tìm lỗi bảo mật website sở để xác định lỗ hổng bảo mật 2.3 Các loạ kiểm thử bảo mật 2.3.1 Kiểm thử yêu cầu thiết kế Bất kỳ hệ thống xây dựng từ tập hợp yêu cầu Đôi nh ng yêu cầu viết cách rõ ràng, thường chúng nh ng phát biểu mập mờ không định nghĩa rõ ràng tính bảo mật Ví dụ, có phát biểu “Ứng dụng phải an toàn” Nhưng “an toàn” nghĩa nên phải dành công sức thời gian để làm cho sản phẩm an toàn Kiểm thử bảo mật giai đoạn y u cầu thiết kế cho ứng dụng web việc xem xét y u cần thiết có mô tả rõ ti u chí cụ thể y u cầu bảo mật cho ứng dụng web hay chưa 2.3.2 Kiểm thử mã nguồn 2.3.3 Kiểm thử thiết lập trình duyệt 2.3.4 Kiểm thử tường lửa 2.4 Quy trình k ểm thử bảo mật website Bước đầu ti n phải hiểu nghiệp vụ hệ thống, mục ti u bảo mật tuân thủ bảo mật tổ chức Việc lập kế hoạch kiểm tra n n xem xét tất yếu tố bảo mật Thu thập tất thông tin thiết lập hệ thống sử dụng để phát triển phần mềm mạng giống hệ điều hành, công nghệ, phần cứng Check list lỗ hổng rủi ro bảo mật, chuẩn bị kế hoạch kiểm tra để giải nh ng vấn đề Đối với mối đe dọa xác định, lỗ hổng rủi ro bảo mật chuẩn bị ma trận lưu vết (traceability matrix) Tất thử nghiệm bảo mật thực tay, xác định công cụ để thực tất trường hợp kiểm tra bảo mật nhanh đáng tin cậy Chuẩn bị testcase kiểm tra bảo mật Thực test testcase retest bug sửa Thực test tích hợp Chuẩn bị báo cáo chi tiết kiểm tra bảo mật, có lỗ hổng bảo mật mối đe dọa, rủi ro chi tiết, vấn đề bảo mật khác 2.4.1 Kiểm thử bảo mật thủ công (manually) a, ểm t t ủ c n Kiểm thử thủ công trình kiểm thử mà người kiểm thử phải xác định vị trí d liệu cần gửi đến ứng dụng cách sử dụng intercepting proxy (là ứng dụng nằm gi a ứng dụng trình duyệt, cho phép người kiểm thử thay đổi giá trị cách tùy biến trước gửi đến đến ứng dụng) tập d liệu cần gửi đến ứng dụng tương ứng với vị trí gửi xác định trước Kiểm thử thủ công bao gồm design, business logic xác minh mã nguồn Quá trình kiểm thử thâm nhập: o Xác định lỗ hổng có hệ thống bước quan trọng đầu ti n trình o Hoạt động sửa ch a thực tr n nh ng lỗ hổng o Kiểm thử thâm nhập tương tự lặp lại hệ thống từ chối tất kiểm tra b, Các bƣớc k ểm t bảo mật t ủ c n o Thu thập d liệu o Đánh giá tính chất dễ bị tổn thương hệ thống o Khai thác thực tế: Đây bước quan trọng o Phân tích kết chuẩn bị báo cáo Quá trình tìm kiếm lỗi bảo mật mã nguồn ứng dụng phương pháp thủ công phải đòi hỏi người kiểm thử phải có phương pháp kiểm thử soát hợp lý Bởi khối lượng tập tin nội dung ứng dụng web lớn, phương pháp rà soát đánh giá hợp lý ti u tốn nhiều thời gian để phát lỗi 2.4.2 Kiểm thử bảo mật tự động (Automation) Phương pháp kiểm thử lỗi tự động trình công cụ thực tự động quét thư mục, tập tin ứng dụng web tự động xác định điểm mà cần đệ trình d liệu Tr n sở xác định điểm cần gửi tự động đến công cụ thực gửi tập d liệu định nghĩa sẵn chờ phản hồi từ phía ứng dụng web để kiểm tra xem liệu ứng dụng có bị lỗi bảo mật hay không Công cụ tự động sử dụng để xác định số lỗ hổng ti u chuẩn ứng dụng Công cụ kiểm thử bảo mật quét mã dùng để kiểm tra xem có mã độc hay không dẫn đến vi phạm an ninh tiềm tàng Công cụ kiểm thử bảo mật xác minh lỗ hổng bảo mật hệ thống kỹ thuật mã hóa d liệu giá trị mã cứng giống username password Các ti u chí để chọn công cụ kiểm thử bảo mật tốt nhất: o Nó dễ dàng triển khai, cấu hình sử dụng o Nó quét hệ thống cách dễ dàng o Nó phân loại lỗ hổng dựa tr n mức độ nghi m trọng cần sửa ch a o Có khả tự động xác minh lỗ hổng o Có thể xác minh lại nh ng khai thác mà tìm thấy trước o Nó tạo báo cáo ghi chi tiết lỗ hổng 2.5 Các p ƣơn p áp k ểm t bảo mật 2.5.1 Phương pháp kiểm tra hộp trắng 1 Nội dung phương pháp Phương pháp kiểm tra hộp trắng lỗi bảo mật tr n ứng dụng web trình kiểm tra trực tiếp mã nguồn ứng dụng web để tìm lỗi bảo mật Quá trình quan sát kiểm tra mã nguồn thực thủ công thực công cụ Quá trình thực công cụ tức trình mà công cụ thực quét toàn mã nguồn ứng dụng dựa tr n tập nhận biết hàm, dẫn có khả gây lỗi ngôn ng lập trình phát triển ứng dụng web ểm t đƣờn d ễn t ến c ƣơn trìn a, Đây khái niệm đến việc thiết kế trường hợp kiểm thử tr n lệnh chương trình thực lần Kỹ thuật không quan tâm đến ảnh hưởng l n đường định (decisions path) Việc xây dựng tập hợp kiểm thử thực theo nh ng bước sau đây: 1) Dùng tài liệu thiết kế hay source code để vẽ đồ thị mô tả flow chart chương trình hay hàm 2) Xác định đồ thị V(G) 3) Từ đồ thị xác định tập đường độc lập tuyến tính lẫn 4) Xây dựng nh ng trường hợp kiểm thử dựa tr n tập đường xác định bước Mỗi trường hợp chạy so sánh với kết mong đợi Nếu tất trường hợp kiểm định cho kết mong muốn khẳng định tất dòng lệnh thủ tục average kiểm thử lần ểm t cấu trúc đ ều k ển b, ểm t b ểu t ức đ ều k ện Kiểm thử biểu thức điều kiện phương pháp kiểm thử tr n nh ng điều kiện logic hàm hay module Một điều kiện đơn giản biến boolean biểu thức quan hệ: - X hay Not X điều kiện logic đơn giản - Biểu thức quan hệ thường có dạng : E1 E2 10 Vòng lặp nh ng tảng cho nhiều thuật toán cài đặt phần mềm Tuy nhiên, lúc ý đến việc xây dựng trường hợp để kiểm thử Kiểm thử vòng lặp tập trung vào tính chất cấu trúc vòng lặp Có cấu trúc vòng lặp sau: vòng lặp đơn giản, vòng lặp móc nối, vòng lặp tạo thành tổ, vòng lặp không cầu trúc (1) Vòn lặp đơn Tập hợp trường hợp kiểm thử cho vòng lặp đơn, với n maximum số lần lặp Bỏ tính toàn vẹn vòng lặp Chỉ cần lần duyệt xuy n qua vòng lặp Hai lần duyệt xuy n qua vòng lặp m lần duyệt xuy n qua vòng lặp n-1, n, n+1 lần duyệt xuy n qua vòng lặp (2) Vòn lặp tạo tổ Nếu mở rộng phương pháp kiểm thử cho vòng lặp đơn số lượng trường hợp kiểm thử tăng nhiều Sau cách giảm sồ lượng trường hợp kiểm thử: Bắt đầu vòng lặp Thiết lập tất vòng lặp khác giá trị minimum Kiểm soát vòng lặp trong gi vòng lặp b n lặp lại với giá trị minimum thông số ảnh hưởng (thông số biến lặp) Th m môt số trường hợp phạm vi biến lặp số giá trị đặc biệt Thực hi n bước tr n tiến dần Thực tiếp tất vòng lặp kiểm thử hết (3) Vòn lặp móc n 11 Đối với kiểu kiểm thử cách với vòng lặp đơn tr n biền lặp độc lập với Tuy nhi n vòng lặp móc nối biến lặp vòng lặp thứ sử dụng biến khởi tạo cho vòng lặp vòng lặp không độc lặp n a Phương pháp dùng cho vòng lặp tạo tổ sử dụng (4) Vòn lặp k n có cấu trúc Khi gặp cấu trúc lặp n n thiết kế lại Việc kiểm thử phức tạp 2.5.1 Một số công cụ ti u biểu Một số công cụ giúp kiểm thử bảo mật website áp dụng phương pháp kiểm thử hộp trắng sau: a, AppCodeScan Là công cụ hỗ trợ việc quét mã nguồn AppCodeScan Blueinfy Solutions Pvt Ltd phát triển Việc thực quét mã nguồn công cụ đơn giản Chỉ cần lựa chọn thư mục có chứa mã nguồn ứng dụng Web cần scan thực lựa chọn rule (lựa chọn kiểu cần áp dụng cho trình scan) b, Công cụ RATS (Rough Auditing Tool for Security) Công cụ RATS nh ng công cụ thực rà soát mã nguồn số ứng dụng viết ngôn ng C, C++, Perl, PHP, Python Ruby Secure Software Inc phát triển Công cụ dựa tr n tập hàm mà có nguy gây lỗi bảo mật dụng thực scan với tốc độ cao Sau thực chạy công cụ công cụ đưa danh sách hàm vị trí mã nguồn, giúp người kiểm tra nhanh chóng tập trung soát lại hàm mà RATS đưa ra, kiểm tra liệu sử dụng hàm an toàn hay chưa 2.5.2 Phương pháp kiểm thử hộp đen 2.5.2.1 Nội dung phương pháp Phương pháp kiểm tra hộp đen lỗi bảo mật tr n ứng dụng web đề cập đến việc kiểm tra ứng dụng từ b n ngoài, tức quan sát d liệu đệ trình đến ứng dụng d liệu từ ứng dụng xuất mà không cần hiểu đến hoạt động b n Quá trình đệ trình d liệu từ b n đến ứng dụng thực thủ công sử dụng công cụ tự động gửi đến ứng dụng 2.5.2.2 kiểm thử hộp đen a) Phân đoạn tương đương 12 Phân đoạn tương đương phương pháp chia d liệu vào thành đoạn, đoạn đại diện cho số d liệu Và việc kiểm thử thực tr n đại diện Mục đích phương pháp giảm số lượng test cách chọn tập d liệu đại diện b) Phương pháp phân tích giá trị bi n Phương pháp phân tích giá trị bi n trường hợp ri ng phương pháp phân đoạn tương đương Với ý tưởng sau: Kiểm tra điều kiện bi n đoạn có tác dụng kiểm tra giá trị tùy ý lớp tr n Chọn giá trị bi n đầu vào để kiểm tra đoạn thay kiểm tra nh ng giá trị tùy ý Chiến lược phương pháp Chọn giá trị tùy ý cho đoạn Chọn giá trị xác bi n tr n bi n đoạn Chọn giá trị b n b n tr n bi n c) Phương pháp đồ thị nguy n nhân - kết (Cause - Effect Graphing) Phương pháp đồ thị nguy n nhân - kết sử dụng đồ thị có hướng mà ánh xạ nguy n nhân sang kết Bộ nguy n nhân xem đầu vào kết xem đầu Thông thường, đồ thị mô tả nh ng nút nguy n nhân b n trái nh ng nút kết b n phải Có thể có nh ng nút trung gian đứng gi a để kết hợp nút sử dụng phép toán logic AND OR Thay kiểm thử vi n phải cố gắng xác định trường hợp kiểm thử cách thủ công họ sử dụng kỹ thuật tr n để xác định trường hợp kiểm thử bao phủ 100% chức Điểm bắt đầu để xây dựng đồ thị nguy n nhân – kết dựa vào tài liệu đặc tả hệ thống Từng đầu vào đầu đồ thị nguy n nhân kết tương ứng với biểu thức điều kiện mà nhận hai giá trị true false 2.5.2.3 Ưu điểm nhược điểm phương pháp kiểm thử hộp đen a, Ưu điểm phương pháp - Người kiểm thử thực từ quan điểm người dùng giúp đỡ việc sáng tỏ ch nh lệch thông số kỹ thuật 13 - Kiểm thử theo phương pháp hộp đen “mối ràng buộc” với code, nhận thức người kiểm thử đơn giản: source code có nhiều lỗi Sử dụng nguy n tắc, "Hỏi bạn nhận" nhân vi n kiểm thử tìm nhiều bug nơi mà nhân vi n phát triển không tìm thấy - Việc kiểm thử thực quan độc lập với đơn vị phát triển chương trình, cho phép nhìn khách quan tránh phát triển thi n vị - Hệ thống thật với toàn y u cầu kiểm thử xác - Thiết kế kịch kiểm thử nhanh, mà y u cầu chức xác định b, Nhược điểm phương pháp kiểm thử hộp đen - D liệu đầu vào y u cầu khối lượng mẫu lớn - Khi y u cầu rõ ràng thông số không rõ ràng việc thiết kế kịch kiểm thử khó khó viết kịch kiểm thử cần xác định tất yếu tố đầu vào, thiếu thời gian cho việc tập hợp - Khả để thân người thực lạc lối kiểm thử cao - Chỉ có số nhỏ đầu vào kiểm tra nhiều đường dẫn chương trình để lại chưa kiểm tra 2.5.2.4 Một số công cụ kiểm tra thủ công hộp đen ti u biểu a, Wa3f công cụ đánh giá lỗi bảo mật tự động miễn phí Thực kiểm tra tất lỗi bảo mật phổ biến danh sách 10 lỗi bảo mật OWASP giới thiệu năm 2013 b, WebScarab framework viết Java phục vụ cho việc phân tích nh ng ứng dụng web với hai giao thức hỗ trợ HTTP HTTPS WebScarab có khả ghi lại thay đổi tham số ứng dụng trước trình nh ng y u cầu, phản hồi gi a trình duyệt ứng dụng web c, BurpSuite framework viết Java có chức tương tự webScarab intercepting proxy, spider, fuzzer, … BurpSuite có hai phi n bản, phi n miễn phí phi n thương mại Phi n thương mại có th m phần tự động quét lỗi ứng dụng web cho phép người sử dụng tìm kiếm lưu lại trạng thái trình kiểm tra ứng dụng web 14 2.5.3 Phương pháp kiểm thử mờ (Fuzzed testing) Fuzzing kỹ thuật phát lỗi phần mềm cách tự động bán tự động sử dụng phương pháp lặp lại thao tác sinh d liệu sau chuyển cho hệ thống xử lý Nó cung cấp d liệu đầu vào cho chương trình (là d liệu không hợp lệ, d liệu không mong đợi: giá trị vượt bi n, giá trị đặc biệt có ảnh hưởng tới phần xử lý, hiển thị chương trình), sau theo dõi ghi lại lỗi, kết trả ứng dụng trình xử lý chương trình Fuzzing không đòi hỏi quyền truy cập vào mã nguồn, có khả tìm thấy lỗi cách nhanh chóng tránh việc phải xem mã nguồn Các chương trình framework dùng để tạo kỹ thuật fuzzing thực fuzzing gọi Fuzzer Tùy theo môi trường ứng dụng cần kiểm tra mà người ta có phương án khác để xây dựng Fuzzer 2.5.3.1 Thuật toán Fuzzing Fuzzing thuật toán kiểm thử “ti u cực” hiểu trái ngược với kiểm tra chức năng, kiểm tra khả hệ thống Trong kiểm thử ti u cực, thay gửi d liệu hợp lý (được xử lý mã nguồn), hệ thống kiểm thử nhận đầu vào chuỗi đầu vào không hợp lệ bán hợp lệ thông qua giao diện tương tác Chương trình framework tạo kiểm thử fuzz (fuzz test) thực thi kiểm thử gọi fuzzer Fuzzer phân loại dựa tr n ti u chí khác biệt nhau: Vector ti m (injection) vector công Một quy trình fuzzing đơn giản bao gồm chuỗi thông điệp gửi tới SUT (hệ thống kiểm tra) Các kết thay đổi thông điệp gửi tới phân tích, số trường hợp bị bỏ qua Kết trả điển hình kiểm thử fuzz bao gồm: Đáp trả hợp lệ (Valid response), đáp trả lỗi (Error response), đáp trả bất thường (Anomalous response), sụp đổ hay thất bại (Crash or other failure) Quá trình fuzzing không việc gửi nhận thông điệp Kiểm thử đầu ti n tạo gửi tới SUT Việc giám sát mục ti u cần thực li n tục Tất thất bại ghi lại để đánh giá lần sau Một phần quan trọng trình fuzzing giám sát mã lệnh, xử lý đầu vào không hợp lệ 2.5.3.2 Phân loại kỹ thuật fuzzing Dựa tr n phương pháp sinh d liệu cách thực phương pháp fuzzing phân chia phương pháp fuzzing thành loại sau: - Sử dụng testcase sinh trước (Pregenerated Test Cases - Sinh d liệu ngẫu nhi n (Random 15 - Kiểm tra thủ công cách thay đổi giao thức (Manual Protocol Mutation Testing - Thay đổi giao thức tự động (Mutation Brute Force Testing) - Tự động sinh d liệu cho giao thức (Automatic Protocol Generation Testing) 2.5.3.3 Ưu điểm nhược điểm kiểm thử Fuzzing a, Ƣu đ ểm: Kiểm thử fuzzing giúp tìm thấy nh ng lỗi nghi m trọng bảo mật khiếm khuyết Kết sử dụng kiểm thử Fuzzing hiệu sử dụng phương pháp kiểm thử khác Kiểm thử fuzzing cải thiện vấn đề an ninh kiểm tra phần mềm Lỗi tìm thấy fuzzing nghi m trọng hầu hết nh ng lỗi mà tin tặc hay sử dụng Trong có crashes, rò rỉ nhớ, unhandled exception, vv Nh ng lỗi không tìm thấy kiểm thử bị hạn chế thời gian nguồn lực kiểm thử fuzzing tìm b, N ƣợc đ ểm: Chỉ ri ng kiểm thử Fuzzing xử lý hết mối đe dọa an ninh tổng thể lỗi Kiểm thử Fuzzing hiệu với lỗi mà không gây treo chương trình, chẳng hạn số loại virus, computer Worm, Trojan, vv Chỉ hiệu tình cụ thể Fuzzing không cung cấp nhiều kiến thức hoạt động nội phần mềm Với chương trình có đầu vào phức tạp đòi hỏi phải tốn thời gian để tạo fuzzer đủ thông minh 2.5.3.4 Các giai đoạn kiểm thử Fuzzing Các bước thực kiểm thử fuzzing bao gồm step sau: Bước 1: Xác định mục ti u (Identify target) Bước 2: Xác định đầu vào (Identify the Inputs) Bước 3: Tạo d liệu Fuzzed hay gọi Tạo trường hợp thử nghiệm (Generate Fuzzed Data ) a Injectionvector attack vector b Kỹ thuật testcase Bước 4: Thực test sử dụng d liệu fuzz (Excute Fuzzed Data) 16 Bước 5: Giám sát d liệu fuzz (Monitor for exception Fuzzed Data) Bước 6: Xác định khả khai thác (Determine exploitability) 2.5.3.5 Fuzzing ứng dụng web Kỹ thuật fuzzing ứng dụng nhiều việc kiểm thử phần mềm, hệ thống, hay chuẩn giao thức Tuy nhi n phạm vi luận văn sâu vào phân tích phương pháp fuzzing đặc thù cho ứng dụng website Một ứng dụng web thao tác với người dùng qua trình duyệt sử dụng giao thức HTTP HTTPS Một hệ thống website chứa điểm đầu vào hệ thống bao gồm: - Các form nhập d liệu - Các giá trị tr n URL website - Các trường HTTP Headers (bao gồm cookies) Việc kiểm thử hệ thống tập trung chủ yếu vào điểm đầu vào hệ thống cụ thể việc gửi d liệu qua Headers, phương thức GET , POST Fuzzer phải thực việc thu thập toàn điểm đầu vào hệ thống trước thực fuzzing Các t ức t u t ập lỗ bảo mật Một công cụ kiểm tra lỗi bảo mật sử dụng phương pháp kiểm tra fuzzing tổ chức thành phần: Phần 1: Tập hợp tất định dạng URL mà gây lỗi cho ứng dụng cụ thể Ví dụ: lỗi bảo mật cho ứng dụng Joomla phát nằm URL: “index php?option=com_content&view=article” URL lưu sở d liệu chương trình với tham số đệ trình gây lỗi Phần 2: Tập hợp tất đặc điểm nhận diện tương ứng với URL gây lỗi trình fuzzing Các điểm điểm nhận diện lưu với URL gây lỗi sở d liệu N uyên tắc t ực ện: Dựa vào phân tích lỗ hổng tr n mà nhà phát triển thiết kế d liệu fuzzing phù hợp nhằm phát tối đa lỗ hổng bảo mật website Sau công cụ sử dụng phương pháp fuzzing để kiểm tra lỗi bảo mật không thực việc quét cấu trúc thư mục tập tin ứng dụng web, mà tập hợp tất lỗi công bố ứng dụng web cụ thể thực đệ trình đến ứng dụng web xem thử ứng dụng có bị mắc lỗi bảo mật hay không 2.3.5.6 ột s c n cụ t b ểu 17 a, Nikto Là nh ng công cụ thực fuzzer để tìm lỗi bảo mật Nikto cho phép người sử dụng tùy biến viết thành phần nhúng kết với Nikto để thực thi Hơn n a, Nikto hỗ trợ nhiều định dạng nh ng chương trình quét lỗi bảo mật khác như: Nmap, Nessus b,AppScan Một công cụ thương mại tập hợp lớn lỗi bảo mật cho ứng dụng web riêng biệt c, Acunetix Web Vulnerability Scanner (AWV) Công cụ kiểm tra tất lỗ hổng web, bao gồm SQL Injection, Cross Site Scripting nhiều lỗ hổng khác Acunetix sử dụng kỹ thuật phân tích động với hướng tiếp cận dựa tr n đoán, sử dụng thuật toán Fuzzing 2.6 Đán p ƣơn p áp c n cụ k ểm t bảo mật webs te Với ưu điểm nhược điểm trình bày tr n phương pháp kiểm thử: Hộp trắng, hộp đen Fuzzing việc đánh giá lựa chọn áp dụng phương pháp vào trường hợp kiểm thử định cần thiết Phương pháp kiểm thử hộp trắng cho phép kiểm thử đến mức chi tiết mã lệnh, từ tìm kiếm lỗi mã lệnh dẫn đến việc sửa lỗi dễ dàng không nhiều thời gian, chi phí sửa lỗi Nhưng nhược điểm đòi hỏi người kiểm thử phải có kiến thức lập trình, thời gian để kiểm thử chương trình có lượng mã lệnh lớn Mặt khác tất lỗi, lỗ hổng bảo mật website tìm qua phương pháp Phương pháp kiểm thử hộp đen thích hợp kiểm tra phân đoạn lớn mã lệnh, chức lớn Người kiểm thử không cần hiểu biết mã lệnh viết chương trình mà dựa hiểu biết y u cầu chương trình, kinh nghiệm kỹ để đưa đầu vào thực kiểm thử Phương pháp kiểm thử mờ (Fuzzing) tập trung vào việc đưa giá trị đầu vào không hợp lệ để tìm lỗi website Phương pháp ứng dụng việc thiết kế công cụ để kiểm tra lỗi bảo mật Web nhiều Để kiểm thử bảo mật website hiệu quả, nhanh xác việc lựa chọn công cụ hỗ trợ kiểm thử đóng vai trò vô quan trọng Với công cụ tương ứng với phương pháp kiểm thử tr n thì: 18 Các công cụ áp dụng phương pháp hộp trắng giúp cho người kiểm thử phân tích lỗi tiềm ẩn, rủi ro code từ giúp lập trình vi n dễ dàng tìm sửa lỗi Nhưng việc tìm lỗi phương pháp kiểm thử hộp trắng chưa đầy đủ Để có website hoàn chỉnh đến tay người dùng việc coding phải tích hợp với hệ thống sở d liệu, sở hạ tầng, máy chủ thiết lập an toàn khác cho website Do cần thực thêm phương pháp kiểm thử hộp đen thủ công thông qua công cụ Với việc kiểm thử bảo mật sử dụng công cụ kiểm thử giúp cho trình kiểm thử nhanh, xác từ tiết kiệm thời gian công sức người Nhưng áp dụng toàn kỹ thuật kiểm thử hộp đen tức đẩy giá trị hợp lệ, không hợp lệ vào thực việc kiểm thử bảo mật thời gian (vì thực tế giá trị hợp lệ kiểm tra theo chức năng) Do ưu ti n lựa chọn công cụ phát triển dự theo phương pháp kiểm thử hộp đen giá trị đầu vào không hợp lệ (phương pháp Fuzzing) để tìm lỗi liên quan đến bảo mật website Trong công cụ giới thiệu tr n áp dụng phương pháp kiểm thử Fuzzing Acunetix Web Vulnerability (AWV) kiểm tra tất lỗ hổng web, bao gồm SQL Injection, Cross Site Scripting nhiều lỗ hổng khác Acunetix sử dụng kỹ thuật phân tích động với hướng tiếp cận dựa tr n đoán, sử dụng thuật toán Fuzzing Ban đầu Module Crawler phân tích toàn trang web cách làm theo tất li n kết tr n trang web Sau đó, AWV vạch cấu trúc trang web hiển thị thông tin chi tiết tập tin Sau trình thu thập thông tin, AWV tự động hiển thị loạt lỗ hổng bị công tr n trang tìm thấy Khi lỗ hổng tìm thấy, Acunetix AWV báo cáo lỗ hổng Mặt khác Acunetix đánh giá có giao diện trực quan, dễ sử dụng thân thiện với người dùng Giao diện trạng thái đồ họa Scan cho người dùng thấy chi tiết quét dạng nút Ngoài ra, với Acunetix hỗ trợ tổng hợp kết kiểm thử đầy đủ chi tiết bao gồm việc phân tích phán đoán lỗi, đề xuất sửa lỗi bảo mật Do công cụ h u ích cho chuy n gia bảo mật, kỹ sư kiểm thử đơn vị tổ chức phát triển, sử dụng website việc tìm lỗi li n quan đến bảo mật website Tr n sở phân tích số kỹ thuật số thuật toán sử dụng công cụ phân tích, dò quét lỗ hổng cho website, việc so sánh ưu, nhược điểm công cụ Bản thân em đề xuất chọn sử dụng công cụ Acunetix Web Vulnerability Scanner để thử nghiệm dò quét đánh giá mức độ an toàn bảo mật website thực tế 19 ết luận c ƣơn Trong chương giới thiệu tổng quan kiểm thử phần mềm, sâu trình bày kiểm thử bảo mật cho website, loại kiểm thử bảo mật, quy trình kiểm thử bảo mật phương pháp kiểm thử bảo mật cho website tìm hiểu công cụ kiểm thử bảo mật cho website, từ đánh giá lựa chọn công cụ Tr n sở lý thuyết chương 1, chương 2, chương giới thiệu cụ thể công cụ Acunetix Web Vulnerability sử dụng cho kiểm thử bảo mật website CHƢƠNG – S DỤNG CÔNG CỤ “ACUNETIX WEB VULNERABILITY” Đ KI TH B T WEBSITE 3.1 G t ệu c n cụ “Acunetix Web Vulnerability” Web Vulnerability Scanner (Acunetix AWV) công cụ hỗ trợ kiểm thử bảo mật ứng dụng Web cách thử d liệu đồ sộ từ tìm lỗ hổng bảo mật như: SQL Injection, Cross-Site Scripting (XSS), sách xác thực…và lỗi bảo mật khác, đồng thời quét lỗi bảo mật Webserver Apache, IIS Acunetix Web Vulnerability Scanner sản phẩm hàng đầu lĩnh vực rà soát lỗ hổng bảo mật Website, giúp quan, doanh nghiệp đánh giá tình trạng bảo mật website, rà soát lỗ hổng bảo mật tồn tr n website Giúp quan, doanh nghiệp kịp thời đưa biện pháp khắc phục tránh rủi ro xảy Acunetix AWV đánh giá nh ng sản phẩm tốt nhất, phù hợp với nhu cầu đánh giá bảo mật cho quan, doanh nghiệp 3.2 Acunetix Web Vulnerability làm v ệc n ƣ t ế nào? Acunetix AWV (Web Vulnerability Scanner) chương trình tự động kiểm tra ứng dụng Web để tìm kiếm lỗ hổng bảo mật SQL Injection, hay Cross-Site Scripting,… tìm kiếm nh ng sách mật đăng nhập phương thức xác thực vào Web Site Acunetix AWV công cụ quét lỗi cho ứng dụng Web dựa tr n sở d liệu rộng lớn cập nhật thường xuy n, với thuật toán Heuristic đáp ứng chế họat động phức tạp môi trường Web Acunetix AWV tự động kiểm tra lổ hỗng thông dụng mối nhạy cảm khác nh ng website truy cập trình duyệt, hay nh ng ứng dụng xây dụng tr n kỹ 20 thuật ti n tiến AJAX để thực điều Acunetix AWV dựa tr n nhiều phương pháp công cụ tích hợp để: • Crawling (lấy về) toàn website gồm tất li n kết tr n site tập tin robots txt sau hiển thị tòan cấu trúc cách chi tiết • Sau tiến trình cwarling khám phá tình trạng ứng dụng web, Acunetix AWV tự động phát động đợt công lập trình sẳn dựa tr n lổ hổng, giống web site bị hacker công thực sự, phân tích trang nh ng vị trí nhập liệu với kết hợp khác d liệu đầu vào làm cho website hiển thị nh ng thông tin nhạy cảm • Sau tìm lổ hổng, Acunetix AWV thông báo tr n “Alerts Node”, alert gồm thông tin lỗi mối nguy hiểm gặp phải “dĩ nhi n” kèm theo khuyến nghị cách thức khắc phục • Sau tiến trình kiểm tra hoàn tất, lưu lại thành tập tin để phân tích sau này, với công cụ báo cáo chuy n nghiệp giúp cho web master dễ dàng tổng hợp kết kiểm tra khác tr n ứng dụng Web Sau quét, Acunetix AWV liệt k cấu trúc site, phi n webserver sử dụng, URL không tồn tại, lỗi phát mức độ Security site quét, nhìn hình bạn thấy nh ng liệt k cụ thể Mức độ bảo mật website AWV đánh giá từ low, medium, high Nếu website bạn liệt k mức low, nhanh chóng fix lỗi mà AWV liệt k 3.3 N ữn tín năn cũn n ƣ ƣu đ ểm c ín c n cụ Acunet x Web Vulnerability • Tự động phân tích Javascript cho phép kiểm tra ứng dụng AJAX Web • Phân tích chuy n sâu lỗi SQL Injection Cross Site Scripting • Visual Macro Recorder cho phép dễ dàng thử nghiệm web form khu vực bảo vệ mật • Hỗ trợ chuẩn báo cáo rộng rãi, bao gồm chuẩn VISA PCI • Bộ quét đa luồng tốc độ cao thu thập d liệu từ hàng ngàn trang cách dễ dàng • Tự động kiểm tra form upload tệp tin • Acunetix thu thập thông tin phân tích trang web bao gồm nội dung flash, SOAP AJAX 21 • Công nghệ AcuSensor thông minh cho phép quét xác nhiều lỗ hổng web 3.5 T ực n ệm để k ểm t bảo mật webs te 3.4.1 Download Link download 14 trial: https://www.acunetix.com/vulnerability-scanner/download/ Hoặc scan online link: https://www.acunetix.com/vulnerability-scanner/online-scanner/ 3.4.2 Yêu cầu cấu hình cài đặt tool Acunetix - Hệ điều hành: MS Windows Windows 2008 R2 thấp - CPU: 32 bit 64 bits processor - System memory: GB RAM - Storage: 200MB ổ cứng 3.4.3 Sử dụng Acunetix Web Vulnerability Sau download phần mềm cài đặt, ta update phi n cần Cửa sổ tool Explorer (b n trái) cung cấp cho ta công cụ WebScanner gồm Tool (Site Scrawler, Target Finder, Subdomain, Authentication, v v ), Web Service, Configuration, General cần nhấp chuột vào công cụ để AWV thực nhiệm vụ Cửa sổ b n phải tr n lần n a liệt k lại công cụ Dưới phần phần thao tác nhanh đến dịch vụ NewScan, Sample Scan, Reporter, v v Sau config chương trình hoàn tất, ta tiến hành quét, AWV cung cấp cho bạn phi n Webserver detect được, ứng dụng Web chạy, cổng mở, cấu trúc site, mức độ Secure, URL lợi dụng, ngôn ng , kiểu kết nối thông tin cách khai thác, quan trọng lỗi có Thực kiểm thử với link mà Acunetix cung cấp: http://testphp.vulnweb.com Bắt đầu quét đơn giản việc khởi động Scan wizard việc chọn nút “New Scan” toolbar Wizard hướng dẫn thông qua số tùy chọn, Ở ta sử dụng để tùy chỉnh quét nhập URL website muốn thực scan Nhập URL website muốn scan, là: http://testphp.vulnweb.com vào Website URL Chọn nút “Next” 22 Hiển thị hình “Options” để thiết lập thông số muốn thực scan Tiếp theo cần select scanning Profile Một Scanning profile nhóm kiểm thử hợp lý để thực nhóm kiểm thử cụ thể Chọn nút “Next” Hiển thị hình “Target”: Hiển thị thông tin URL dự định Scan Chọn nút “Next” Hiển thị hình “Login” website y u cầu phải login bước bạn phải ghi lại bước bắt buộc cho việc login website Chọn nút “Next” Hiển thị hình “Finish” với thông tin lần scan Chọn nút “Finish” Hiển thị hình Scan bắt đầu scan hình sau Trong trình Scan đưa thông báo lỗi cụ thể chức năng, theo loại phân loại lỗi 3.4.4 Kết thực nghiệm Kết thu sau thực kiểm thử bảo mật cho website đề xuất bảng sau: Web 1(http://testphp.vulnweb.com): Có 89 lỗ hổng mức cao như: SQL Injection, Cross site scripting, , 53 lỗi mức trung bình Directory Listing, bị công gây ảnh hưởng nghi m trọng Kết luận: Không an toàn Web (http://cafef.vn): Chỉ có 59 cảnh báo khả bị phá vỡ link Kết luận: Khá an toàn cần xem xét cảnh báo 3.5 Đán kết t ực n ệm Với kết thực nghiệm tr n ta thấy với trang web 1(http://testphp.vulnweb.com) trang web đề xuất nhà cung cấp công cụ Tại trang web nhà cung cấp cố tình tạo lỗ hổng nghi m trọng để từ người thử nghiệm thấy lỗ hổng mà công cụ quét phát Do trang web đánh giá có nhiều lỗ hổng nguy hiểm không an toàn 23 Trang web (http://cafef.vn) trang báo chức doanh nghiệp n n kiểm thử bảo mật Do thực kiểm thử công cụ ta không tìm thấy lỗi, lỗi hổng nghi m trọng mà có cảnh báo Với kết thực nghiệm kiểm thử bảo mật trang web tr n ta thấy công cụ Acunetix phản ánh xác trạng bảo mật website trang web Do công cụ đáng tin cậy cho phép kiểm thử sử dụng để kiểm thử bảo mật cho website ết luận c ƣơn Chương giới thiệu tổng quan, tính giới thiệu cách sử dụng công cụ Acunetix cho việc thực kiểm thử bảo mật website Kết việc kiểm thử thu kết danh sách lỗi, lỗ hổng bảo mật website Từ đánh giá mức độ bảo mật website 24 ẾT LU N N ữn đón óp luận văn Luận văn thực nghi n cứu tổng quan bảo mật website, kiểm thử bảo mật website đặc biệt sâu nghi n cứu phương pháp kiểm thử cho website công cụ ứng dụng cho phương pháp tương ứng từ so sánh, phân tích đánh giá phương pháp công cụ tương ứng lựa chọn phương pháp, công cụ tối ưu sử dụng cho việc thực nghiệm Cụ thể kết đạt sau: - Luận văn trình bày tổng quan vấn đề bảo mật website, kiểm thử bảo mật website Đồng thời trình bày phương pháp kiểm thử website công cụ tương ứng Thực so sánh phân tích ưu nhược điểm khả áp dụng thực tế phương pháp công cụ từ lựa chọn công cụ áp dụng vào công việc kiểm thử bảo mật website thực tế - Tiếp theo luận văn demo việc sử dụng công cụ Acunetix AWV cho việc kiểm thử bảo mật website Toàn kết đạt phần áp dụng thực nghiệm trình cố gắng thân việc vận dụng lý thuyết, tìm tòi, nghi n cứu, học hỏi từ đồng nghiệp, bạn bè vài dự án thực tế Kết nghi n cứu có ích cho việc kiểm thử bảo mật website Từ giúp tìm lỗi, lỗ hổng bảo mật website để kịp thời đưa phương án khắc phục sớm đảm bảo website an toàn không bị công tin tặc Hƣớn p át tr ển Luận văn sử dụng nghi n cứu phương pháp, công cụ kiểm thử ứng dụng cho kiểm thử bảo mật website Tuy nhiên việc sử dụng công cụ có sẵn (bản thương mại) hạn chế phần chi phí cho đơn vị áp dụng Đối với nh ng đơn vị mà chưa cho phép kinh phí khó áp dụng Vì hướng nghi n cứu xây dựng đựng hệ thống/công cụ áp dụng phương pháp kiểm thử tr n để đưa triển khai đơn vị mà tốn th m chi phí mua quyền công cụ ... phương pháp kiểm thử bảo mật website giới thiệu chương kiểm thử bảo mật website CHƯƠNG – KIỂM THỬ BẢO MẬT WEBSITE 2.1 G th ệu kiểm thử phần mềm Kiểm thử phần mềm (kiểm tra, thử nghiệm) kiểm tra... tư vấn bảo mật 2.2.3 Mục đích kiểm thử bảo mật Kiểm thử bảo mật cho website nhằm mục đích tìm lỗi bảo mật website sở để xác định lỗ hổng bảo mật 2.3 Các loạ kiểm thử bảo mật 2.3.1 Kiểm thử yêu... thử bảo mật website qua đánh giá kết - Tìm hiểu tổng quan bảo mật - Nghi n cứu loại kiểm thử bảo mật, quy trình kiểm thử bảo mật - Nghi n cứu phương pháp công cụ tương ứng kiểm thử bảo mật website