Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 93 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
93
Dung lượng
2,52 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG PHẦN MỀM QUÉT LỖ HỎNG CHO WEBSITE Giảng viên hướng dẩn: TS ĐÀM QUANG HỒNG HẢI Sinh viên thực hiện: NGUYỄN XUÂN PHÚ 07520275 TRẦN THỊ THU NHÂN 07520257 Lớp: MMT02 Khóa: 2007 - 2012 TP. Hồ Chí Minh, tháng 2 năm 2012 MỞ ĐẦU Ngày nay, khi Internet được phổ biến rộng rãi, các tổ chức, cá nhân đều có nhu cầu giới thiệu, quảng bá thông tin của doanh nghiệp mình và thực hiện các phiên giao dịch trực tuyến. Vấn đề này làm nảy sinh ra các cuộc tấn công Web dựa trên các lỗi phát sinh trong quá trình vận hành trang Web. Cùng với sự phát triển không ngừng của Internet và các dịch vụ trên Internet, số lượng các vụ tấn công trên Internet cũng tăng theo. Vì vậy, vấn đề bảo đảm và an toàn dữ liệu cho các máy tính được kết nối vào mạng Internet và đảm bảo an toàn dữ liệu cho chính bản thân server đang chạy trang Web là điều cần thiết. Với những công cụ tự động tìm lỗ hổng tuy giúp rất nhiều cho những nhà lập trình Web nhưng vẫn không thể ngăn chặn toàn bộ vì công nghệ Web đang phát triển nhanh chóng (chủ yếu là quan tâm đến yếu tố thẩm mĩ, tốc độ…) nên dẫn đến nhiều khuyết điểm mới phát sinh. Sự tấn công không nằm trong khuôn khổ các kỹ thuật đã phát hiện, mà linh động và tăng lên tùy vào các lỗi của trang Web. Khóa luận được thực hịên với mục đích tìm hiểu, phân tích các lỗ hổng bảo mật trong các ứng dụng web(cùng với chương trình minh họa) để qua đó đề xuất các phương án phòng chống và sửa chữa. Luận văn gồm: Chương 1- TỔNG QUAN: nội dung phần này là giới thiệu ứng dụng web,các khái niệm liên quan đến kỹ thuật tấn công vào Website. GVHD: TS Đàm Quang Hồng Hải SVTH:Nguyễn Xuân Phú &Trần Thị Thu Nhân Chương 2- CƠ SỞ LÝ THUYẾT: nội dung phần này trình bày sơ lược các kỹ thuật tấn công website thường gặp, mô tả chi tiết một số kỹ thuật dùng trong tấn công và đưa ra biện pháp phòng chống cho từng kỹ thuật. Chương 3 –GIẢI PHÁP KỸ THUẬT XÂY DỰNG PHẦN MỀM WEB CHECK: nội dung phần này trình bày công cụ tạo ra phần mềm, cấu trúc cơ sở dữ liệu, và phương pháp xây dựng chương trình Chương 4 – CHƯƠNG TRÌNH WEB CHECK: nội dung phần này sẻ mô tả và hướng dẩn cách sử dụng chương trình. Chương 5 – TỔNG KẾT: nội dung phần này sẻ đánh giá kết quả đạt được và đưa ra hướng phát triển. GVHD: TS Đàm Quang Hồng Hải SVTH:Nguyễn Xuân Phú &Trần Thị Thu Nhân LỜI CẢM ƠN Sau 4 tháng nổ lực thực hiên, luận văn “Xây dựng phần mềm quét lổ hỏng cho website” đã phần nào hoàn thành. Ngoài sự cố gắng hết mình của bản thân, chúng em đã nhận được sự khích lệ rất nhiều từ phía nhà trường, thầy cô, gia đình và bạn bè. Trước hết chúng em xin cảm ơn ba mẹ đã luôn động viên và tạo mọi điều kiện tốt để chúng con học tập và hoàn thành luận văn tốt nghiệp này. Chúng em xin cảm ơn thầy cô trường Đại Học Công Nghệ Thông Tin đã truyền đạt những kiến thức quý báu cho chúng em trong suốt quá trình học tập. Đặc biệt, chúng em xin bày tỏ lòng biết ơn chân thành, sâu sắc đến thầy Đàm Quang Hồng Hải, người đã tận tình hướng dẩn và giúp đỡ chúng em trong suốt quá trình làm khóa luận tốt nghiệp. Xin cảm ơn tất cả bạn bè đã và đang động viên, giúp đỡ chúng tôi trong quá trình học tập và hoàn thành tốt khóa luận tốt nghiệp này GVHD: TS Đàm Quang Hồng Hải SVTH:Nguyễn Xuân Phú &Trần Thị Thu Nhân NHẬN XÉT (Của giảng viên hướng dẩn) Tp HCM Ngày….Tháng….Năm Ký tên GVHD: TS Đàm Quang Hồng Hải SVTH:Nguyễn Xuân Phú &Trần Thị Thu Nhân NHẬN XÉT (Của giảng viên phản biện) Tp HCM Ngày….Tháng….Năm Ký tên MỤC LỤC GVHD: TS Đàm Quang Hồng Hải SVTH:Nguyễn Xuân Phú &Trần Thị Thu Nhân TỔNG QUAN 1 CƠ SỞ LÝ THUYẾT 14 GIẢI PHÁP KỸ THUẬT XÂY DỰNG PHẦN MỀM WEB CHECK 60 CHƯƠNG TRÌNH WEB CHECK 68 KẾT LUẬN 82 DANH MỤC HÌNH ẢNH GVHD: TS Đàm Quang Hồng Hải SVTH:Nguyễn Xuân Phú &Trần Thị Thu Nhân GVHD: TS Đàm Quang Hồng Hải SVTH:Nguyễn Xuân Phú &Trần Thị Thu Nhân 1 TỔNG QUAN 1.1. Nền tảng và công nghệ phát triển website 1.1.1. Nền tảng phát triển website Ban đầu, các website chỉ bao gồm các trang web tĩnh dưới dạng các file HTML (HyperText Markup Language), tất cả những gì cần hiển thị trên trang web thì người thiết kế phải tạo sẵn trên trang đó. Các trang web tĩnh có đuôi là .htm hoặc .html. Chẳng hạn muốn tạo một trang web có hiển thị chữ “Hello” với màu chữ đỏ người ta viết file index.html với nội dung như sau: <html> <head> <title>index</title> </head> <body> <p><font color="red">Hello</font></p> </body> </html> Trang web sau đó sẽ được lưu trên Web Server. Khi người dùng muốn xem trang web này họ sẽ dùng trình duyệt gửi một yêu cầu đến server bằng cách gõ vào địa chỉ URL ví dụ :http://localhost/index.html. Lúc này Web Server nhận được yêu cầu sẽ tìm trong kho dữ liệu của nó trang web index.html tương ứng rồi gửi về cho client, sau đó trang web này sẽ được hiển thị ra bởi trình duyệt.Đó là cách hoạt động của web tĩnh. Hình sau đây sẽ cho thấy cách mà một trang web tĩnh hoạt động như thế nào: GVHD: TS Đàm Quang Hồng Hải SVTH:Nguyễn Xuân Phú &Trần Thị Thu Nhân 2 Hình 1.1: Cách hoạt động của trang HTML tĩnh Trang web tĩnh tuy rất tiện lợi nhưng không thể đáp ứng được mọi nhu cầu của ứng dụng web, đặc biệt là những yêu cầu tương tác giữa client và web server. Có nhiều tình huống mà nội dung trang web không phải lúc nào cũng có thể soạn thảo và lưu trữ sẵn được mà nó cần được sinh ra một cách tự động tùy thuộc vào ngữ cảnh; hoặc có những xử lý phức tạp hơn việc server chỉ đơn giản trả về trang html khi nhận được yêu cầu từ người dùngnhư : thu thập thông tin mà người dùng gửi lên qua URL (uniform resource location) hay form, truy cập dữ liệu trong database … Lấy ví dụ nếu chúng ta muốn xây dựng một trang web Login.htm yêu cầu người sử dụng nhập tên username, sau khi submit web server sẽ gửi về người dùng trang web trang Result.html có nội dung : Welcome username! Nếu với mỗi username khác nhau mà người dùng nhập vào, trang này có nội dung khác nhau.Nghĩa là các trang web tĩnh không có khả năng tương tác với người dùng khác nhau. Trong thực tế có rất nhiều trường hợp đòi hỏi sự tương tác mà web tĩnh không thể giải quyết được (chat, forums, web mail, trang tin tức, giỏ hàng, thông tin thời tiết từng ngày, tỷ giá ngoại tệ hàng ngày). Để giải quyết vấn đề này người ta sử dụng các ngôn ngữ lập trình web để hỗ trợ sự tương tác giữa client và server. Chúng là những file có chứa các mã lập trình, có thể tạo ra các trang web động, cho phép trả về cho client trang web có nội dung có thể thay đổi một cách linh động ứng với những ngữ cảnh cụ thể, thu thập và phản hồi với thông tin GVHD: TS Đàm Quang Hồng Hải SVTH:Nguyễn Xuân Phú &Trần Thị Thu Nhân [...]... xuất cho Client 1.1.1 Lỗ hỏng CGI Script: Các lỗ hổng bảo mật trong CGI script không phải do bản thân CGI gây ra mà do đặc điểm kỹ thuật của HTTP và lỗi của một loạt các chương trình hệ thống CGI chỉ đơn giản là cho phép truy cập vào những lỗ hổng Ví dụ : có thể khai thác bằng cách sử dụng FTP hoặc telnet truy cập vào các tập tin không cho phép CGI chỉ đơn giản là cung cấp cơ hội để khai thác lỗ hỏng. .. Thông thường, những ứng dụng này là: dịch vụ máy chủ Mail SMTP/POP3/IMAP, phần mềm DNS, FTP hoặc SSH; Telnet … o Máy chủ Web (web server): là phần mềm máy chủ để chạy các ứng dụng web, xử lý các yêu cầu, truyền các hình ảnh và các trang HTML tới khách duyệt site Các máy chủ web được sử dụng rộng rãi là Apache, Microsoft IIS, các phần mềm quản lý proxy SQUID, OOPS, Oracle Application Server Web Cache…Các... liên kết đến Script đó.CGi Script sẽ xử lý dữ liệu nhập và format kết quả xuất cho Server có thể sử dụng được.Server nhận kết quả và gởi chúng cho Browser của user.Browser sẽ hiển thị kết qủa này cho user Dữ liệu xuất từ một CGI Script bắt đầu bằng một header chứa một chỉ dẫn (directive) cho Server Thông thường có 3 chỉ dẫn cho Server là :Content-type,location và Status Header giống với một chỉ dẫn trong... trái phép vào môi trường thông tin : môi trường thông tin gồm 4 thành phần: o Hệ điều hành: Các hệ dòng UNIX (Linux, FreeBSD, SunOS, HP-UX …) hoặc các hệ dòng Windows (Windows 2003 Server, Windows 2000 Server, Windows NT, Windows XP…) Hệ điều hành có thể có nhiều phần mềm máy chủ cài đặt, có thể nó không liên quan trực tiếp đến website nhưng cũng cần phải quan tâm đến nó khi đăng kí các đối tượng để... thức HTTP, trình chủ lúc này có thể cho thực thi một chương trìnhđược xây dựng từ nhiều ngôn ngữ như Perl, C/C++…hoặc trình chủ yêu cầu bộ diển dịch thực thi các trang ASP, JSP…theo yêu cầu của trình khách Tùy theo các tác vụ của chương trình được cài đặt mà nó xử lý, tính toán, kết nối đến cơ sở dữ liệu, lưu các thông tin do trình khách gửi đến… và từ đó trả về cho trình khách 1 luồng dữ liệu có định... cookie như symmetric (dùng 1 khóa duy nhất cho cả mã hóa và giải mã), hay asymmetric (mã hóa dùng 2 khóa riêng biệt, một khóa dùng chung cho mã hóa và một khóa riêng để giải mã) 1.5.4 Kỹ thuật tấn công trong HTTP Header: URL, biến ẩn form, cookie đều là những thành phần lưu trữ thông tinmà người dùng thông thường có thể xem và thay đổi.Tuy nhiên những thành phần đó đều được chuyển đi thông qua HTTP... nữa, POST bảo mật tốt hơn GET vì dữ liệu được gửi ngầm, không xuất hiện trên URL 1.3.3 HTTP Header HTTP header là phần đầu (header) của thông tin mà trình khách và trình chủ gửi cho nhau Những thông tin trình khách gửi cho trình chủ được gọi là HTTP requests (yêu cầu) còn trình chủ gửi cho trình khách là HTTP responses (trả lời) Thông thường, một HTTP header gồm nhiều dòng, mỗi dòng chứa tên tham số... deflate SVTH:Nguyễn Xuân Phú &Trần Thị Thu Nhân 8 o Dòng đầu là dòng yêu cầu cho biết phương thức yêu cầu (GET hoặc POST), địa chỉ yêu cầu (/tintuc/homnay.asp) và phiên bản HTTP (HTTP/1.1) o Tiếp theo là các tham số Chẳng hạn như: Accept-Language: cho biết ngôn ngữ dùng trong trang web Host: Cho biết địa chỉ của máy chủ Referer: Cho biết địa chỉ của trang web tham chiếu tới o Header của HTTP request... ,các file bị lỗi trên server… Các phương thức khai thác bao gồm : khai thác theo một kịch bản , khai thác các điểm yếu trong môi trường máy chủ, khai thác các điểm yêu của các phần mền cài trên máy chủ Điểm yếu chính của CGI script là không lọc dữ liệu đầu vào Theo đặc tả kỹ thuật HTTP 1.0, Dữ liệu được gửi tới một CGI cript cần phải được mã hóa để có thể làm việc trên bất kỳ phần cứng hoặc phần mền nào... là thành phần lưu trữ thông tin bảo mật nhất nên Cookie thường được dùng để lưu trữ trạng thái cho giao thức HTTP hơn là biến ẩn của form và biến URL Nó còn được dùng để lưu trữ những thông tin của người dùng khi sử dụng ứng dụng và những dữ liệu khác của session.Tất cả các loại cookie như persistent hay non-persistent, secure hay insecure đều có thể bị thay đổi bởi người dùng và được gửi về cho trình . THUẬT XÂY DỰNG PHẦN MỀM WEB CHECK: nội dung phần này trình bày công cụ tạo ra phần mềm, cấu trúc cơ sở dữ liệu, và phương pháp xây dựng chương trình Chương 4 – CHƯƠNG TRÌNH WEB CHECK: nội dung phần. HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG PHẦN MỀM QUÉT LỖ HỎNG CHO WEBSITE Giảng viên hướng dẩn: TS ĐÀM QUANG HỒNG HẢI Sinh viên thực hiện: NGUYỄN. &Trần Thị Thu Nhân LỜI CẢM ƠN Sau 4 tháng nổ lực thực hiên, luận văn Xây dựng phần mềm quét lổ hỏng cho website đã phần nào hoàn thành. Ngoài sự cố gắng hết mình của bản thân, chúng em đã nhận