chương 1 trình bày về tính cấp thiết, mục tiêu, bố cục của đề tài và tìm hiểu chung những vấn đề về bảo mật anh ninh trên nền Web, đưa ra một vài nguyên nhân gây ra mất an toàn an ninh trên các ứng dụng Web và các lỗ hổng thường thấy nhiều nhất hiện nay. Tính cấp thiết của đề tài Với sƣ̣ phát triển rất nhanh của các ƣ́ng dụng trên nền Web, việc bảo mật an ninh an toàn cho các trang Web là một lĩnh vực đặc biệt quan vì nó đƣ ợc truy cập mọi lúc mọi nơi và bất kỳ ai. 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ì vậy nhiều ứng dụng Web vẫn tồn tại với các nguy cơ an ninh/an toàn/bảo mật (security vularability) và gây ra nhiều thiệt hại khi bị tấn công. Tuy nhiên việc tì m kiếm và phát hiện ra các nguy cơ an ninh thủ công khá khó khăn trong khi đó có nhiều nguy cơ an ninh có thể phát hiện đƣợc bằng các công cụ tƣ̣ động.
Bên cạnh đó, các loại nguy cơ an ninh không ít, và cũng có rất nhiều công cụ tự động phát hiện nguy cơ bảo mật nên ngƣời phát triển phần mềm khi muốn kiểm tra mức độ an ninh an toàn của trang web của mình cũng gặp phải nhiều khó khăn. Chính vì vậy đề tài này nghiên cƣ́u m ột số kiểu tấn công đang ph ổ biến và các công cụ tƣ̣ động phát hiện nguy cơ 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. Ứng dụng “Trƣờng Nhà” là một trang Web quản lý trƣờng học phổ thông và hiện đang đƣợc xây dựng bởi một đội phát triển phần mềm. Chính vì vậy, đề tài sẽ đi thử nghiệm vào ứng dụng này để đƣa ra lỗ hổng và một vài khuyến cáo cho đội phát triển phần mềm và từ đó kiểm tra đƣợc tính đúng đắn của kết quả cũng nhƣ các khuyến cáo của luận văn đƣa ra.
Qua việc nghiên cứu và thử nghiệm này, đề tài đƣa ra các nguy cơ bảo mật và công cụ để phát hiện/kiểm tra cho phần mềm Trƣờng Nhà. Từ đó để tài cũng tổng quát hóa và đƣa ra các khuyến cáo cho các nhóm phát triển phần mềm nói chung và đặc biệt khi sử dụng các công nghệ tƣơng tự nhƣ của Trƣờng Nhà (sử dụng khung ứng dụng Django) về các nguy cơ bảo mật và các công cụ kiểm tra để các đơn vị phát triển phần mềm có thể tham khảo, áp dụng vào các ƣ́ng dụng Web. Đề tài hy vọng sẽ giúp ngƣời phát triển phần mềm có thêm hiểu biết về an ninh an toàn cũng nhƣ các công cụ nên sử dụng để tăng cƣờng anh ninh, bảo mật cho hệ thống Web của mình. Mục tiêu đề tài Mục tiêu của đề tài là trình bày đƣợc tổng quan và cập nhật về các nguy cơ bảo mật, các cách thức tấn công và các cách phát hi ện lỗ hổng bả o mật trên các hệ thống z 12 Web và đi sâu vào một vài loại xâu trên nền Web nổi tiếng và nguy hiểm hiện nay.
Từ đó luận văn khảo sát một số công cụ phần mềm nhằm phát hiện các nguy cơ bảo mật để giúp ngƣời lập trình có thể ngăn chặn sự tấn công của chúng, giảm thiểu khả năng các ứng dụng web bị ảnh hƣởng bởi những lỗ hổng đó. Cuối cùng luận văn đi sâu vào phá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 trên các công cụ đó. Bố cục luận văn Luận văn bao gồm các chƣơng sau: Chƣơng 1: Tổng quan an toàn bảo mật trên nền Web: Chƣơng này giới thiệu về vấn đề bảo mật, vai trò quan trọng của bảo mật trên nền web và các nguy cơ gây ra bởi việc thiếu an toàn bảo mật cho ƣ́ng dụng web. Chƣơng 2: Tấn công an toàn thông tin trong ứng dụng Web: Chƣơng này mô tả về một vài kỹ thuật tấn công an toàn Web phổ biến (DoS/DDoS, XSS, SQL injection), ví dụ và cách thức tấn công của chúng.
Chƣơng 3: Giới thiệu một vài công cụ tìm kiếm lỗ hổng bảo mật: Chƣơng này giới thiệu một vài công cụ hỗ trợ trong việc tìm kiếm lỗ hổng trên nền Web. Bên cạnh đó, chƣơng này cũng 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 hiện ra, đƣa ra đƣợc nhận xét về các công cụ. Chƣơng 4: Thực nghiệm và phân tích kết quả: Thực nghiệm chạy một số công cụ ở chƣơng 3 vào việc tìm các lỗ hổng cho ứng dụng Web là http://truongnha.com và phân tích cách thức phƣơng pháp chạy để tìm ra lỗi. Chƣơng 4 cũng đƣa ra đƣợc một vài khuyến cáo cho các nhà phát triển phần mềm.
Chƣơng 5: Kết luận và hƣớng phát triển: Chƣơng này đi trình bày nhƣ̃ng kết quả đạt đƣợc của luận văn và hƣớng phát triển trong tƣơng lai. Tổng quan về vấn đề bảo mật trên nền Web Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin và đặc biệt là sự ra đời hàng loạt của các trang Web đã mang l ại cho con ngƣời rất nhiều tiện ích cho các doanh nghiệp. Các hoạt động giao dịch trực tuyến nhƣ thƣơng mại điện tử hay thanh toán trực tuyến ngày càng phổ biến và đƣợc thƣ̣c hiện thông qua các ƣ́ng dụng Web. Ở bất kỳ đâu, khi một máy tính có nối mạng internet, con ngƣời có thể thực hiện các giao dịch của mình một cách thuận tiện và nhanh chóng.
Mọi thông tin của ngƣời dùng sẽ đƣợc lƣu trên Web. Nếu nhƣ thông tin đó b ị sửa đổi với ý đồ xấu, câu truy vấn cơ sở dữ liệu có thể bị thay đổi cấu trúc, từ đó kết quả trả về sẽ khác với ý muốn của 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 các trang Web động cho phép xây dựng câu truy vấn z 13 động từ đầu vào do ngƣời sử dụng cung cấp, chúng tiềm ẩn một nguy cơ mất an toàn cao nếu nhƣ không có một cơ chế kiểm tra dữ liệu đầu vào một cách chặt chẽ. Tóm lại, các ứng dụng Web luôn luôn tiềm ần và có nguy cơ bị tấn công bởi các kẻ tấn công với ý đồ xấu, vậy nên vấn đề bảo mật trên nền Web luôn là cấp thiết.
Một số nguyên nhân phổ biến cho ƣ́ng dụng Web mất tí nh an toàn Khi một ƣ́ng dụng Web mất đi tí nh an toàn , điều đó tƣơng đƣơng với việc trang web đó sẽ có khả năng tấn công và gây thiệt hại bởi nhƣ̃ng ý đồ xấu của kẻ tấn công. Để khắc phục cho các lỗ hổng đó, việc trƣớc tiên cần làm là tì m ra nguyên nhân. Dƣới đây là một vài nguyên nhân có thể gây ra 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 đi việc áp dụng các giải pháp cho bảo mật.
Thống kê các loại tấn công Vấn đề an toàn bảo mật cho một ứng dụng Web là một vấn đề hết sức quan trọng, bởi nó ảnh hƣởng tới chất lƣợng an ninh của cả một hệ thống cơ quan. Với tình trạng hiện tại khi hàng loạt các kẻ tấn công lợi dụng sơ hở của phần mềm để tấn công vào hệ thống nhằm phá hủy, ăn cắp dữ liệu thì việc làm này lại càng cấp bách và cần thiết. Theo thống kê Web Hacking Incident Database năm tƣ̀ 1999 tới 2011, chúng ta có thể nhìn thấy tỷ lệ các phƣơng thức tấn công web theo dạng XSS, DoS và SQL injection luôn đƣ́ng đầu trong so sánh nhƣ sau [12]: z 14 Hình 1.1: Thống kê các loại tấn công Nhìn biểu đồ Hình 1.1 chúng ta thấy rằng rất nhiều loại tấn công tồn tại nhƣng trong đó có tấn công liên trang (XSS), tấn công từ chối dịch vụ (Denial of Service) và SQL Injection là chủ yếu. Tiếp theo chúng ta sẽ đi nghiên cứu chi tiết về 3 loại tấn công này trong chƣơng 2 và một vài lỗ hổng ít đƣợc chú ý hơn, chúng sẽ đƣợc miêu tả tại chƣơng 4 khi thực thi các công cụ trên ứng dụng “Trƣờng Nhà”.
z 15 CHƢƠNG 2 MỘT SỐ NGUY CƠ AN NINH THƢỜNG GẶP Chương này mô tả về một vài kỹ thuật tấn công an toàn Web phổ biến như: DoS/DDoS, XSS, SQL injection, đưa ra ví dụ và cách thức tấn công của chúng. Tấn công DoS 2. Giới thiệu về DoS Một trong những cách thức tấn công trang web có từ lâu nhƣng đến giờ vẫn tồn tại và gây ra nhiều thiệt hại cho các tổ chức mạng mà các kẻ tấn công thƣờng sử dụng rất nhiều hiện nay là dạng tấn công từ chối dịch vụ (DoS). DoS là một phƣơng pháp tấn công làm tê liệt hoàn toàn máy chủ, khiến ngƣời dùng không thể truy cập đƣợc.
Gần đây có rất nhiều trang web hay các tổ chức bị nhiễm dạng tấn công DoS, ví dụ nhƣ trang web của Bkav đã bị tê liệt trong suốt mấy ngày vì bị tin tặc tấn công từ chối dịch vụ DDoS. Gây ra những thiệt hại không nhỏ. Cuộc chiến chống lại những cuộc tấn công từ chối dịch vụ DDoS đƣợc coi là vô cùng khó khăn. Dos là một dạng tấn công nguy hiểm, mặc dù nó không truy cập vào dữ liệu của hệ thống nhƣng nó có thể làm cho hệ thống không có khả năng sử dụng, hoặc làm cho hệ thống rơi vào tình trạng chậm đáng kể, kẻ tấn công dùng mọi cách làm quá tải tài nguyên của hệ thống.
Mục đích và các dạng tấn 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 và làm hệ thống mạng bị quá tải, khi đó hệ thống mạng sẽ không có khả năng đáp ứng nhữ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 giữa hai máy, và ngăn chặn quá trình truy cập vào dịch vụ. Cố gắng ngăn chặn các dịch vụ không cho ngƣời khác có khả năng truy cập vào.