Đề tài Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet

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 thông tin của mình trên xa lộthông tin cũng nhưthực hiện các phiên giao

dịch trực tuyến. Vấn đềnảy sinh là khi phạm vi ứng dụng của các ứng dụng Web ngày

càng mởrộng thì khảnăng xuất hiện lỗi và bịtấn công càng cao, trởthành đối tượng

cho nhiều người tấn công với các mục đích khác nhau. Đôi khi, cũng chỉ đơn giản là để

thửtài hoặc đùa bỡn với người khác.

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 cấp sốnhân. Trong khi các phương tiện

thông tin đại chúng ngày càng nhắc nhiều đến những khảnăng truy nhập thông tin của

Internet, thì các tài liệu chuyên môn bắt đầu đềcập nhiều đến 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.

pdf169 trang | Chia sẻ: luyenbuizn | Lượt xem: 967 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Đề tài Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG MÁY TÍNH DE LUẬN VĂN TỐT NGHIỆP ĐỀ TÀI: NGHIÊN CỨU MỘT SỐ VẤN ĐỀ VỀ BẢO MẬT ỨNG DỤNG WEB TRÊN INTERNET GVHD: Th.S. MAI VĂN CƯỜNG SVTH : NGUYỄN DUY THĂNG - 9912074 NGUYỄN MINH THU - 9912156 KHÓA HỌC: 1999-2003 Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Lời cảm ơn Sau gần 6 tháng nỗ lực thực hiện, luận văn nghiên cứu “Các kĩ thuật tấn công và bảo mật ứng dụng Web trên Internet” đã 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 con 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 Khoa Học Tự Nhiên đã 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 chân thành sâu sắc đến thầy Mai Văn Cường, người đã tận tình hướng dẫn và giúp đỡ chúng em trong quá trình làm luận vă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 luận văn tốt nghiệp này. Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Lời nhận xét …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet MỤC LỤC GIỚI THIỆU……………………………………………………………………………… Tổ chức của luận văn……………………………………………………………………... PHẦN THỨ NHẤT: CƠ SỞ LÍ THUYẾT………………………………………………. Chương 1: Giới thệu Ứng dụng Web…………………………………………………….. I. KHÁI NIỆM ỨNG DỤNG WEB………………………………..…………………… II. MÔ TẢ HOẠT ĐỘNG CỦA MỘT ỨNG DỤNG WEB………..…………………... Chương 2: Các khái niệm, thuật ngữ liên quan ………………………………………….. I. HACKER……………………………………………………………………………… II. HTTP HEADER……………………………………………………………………... III. SESSION…………………………….……………………………………………… IV. COOKIE…………………………………………………………………………….. V. PROXY………………………………………………………………………………. Chương 3: Giới thiệu sơ lược về các kĩ thuật tấn công Ứng dụng Web………………….. I. KIỂM SOÁT TRUY CẬP WEB……………………………………………………… I.1. Thâm nhập hệ thống qua cửa sau………………………………………………….. II. CHIẾM HỮU PHIÊN LÀM VIỆC…………………………………………………... II.1. Ấn định phiên làm việc…………………………………………………………… II.2. Đánh cắp phiên làm việc…………………………………………………………. III. LỢI DỤNG CÁC THIẾU SÓT TRONG VIỆC KIỂM TRA DỮ LIỆU NHẬP HỢP LỆ……….……………………………………………………………………………....... III.1. Kiểm tra tính đúng đắn của dữ liệu bằng ngôn ngữ phía trình duyệt………….... III.2. Tràn bộ đệm……………..………………………………………………………. III.3. Mã hóa URL…………………………………………………………………….. III.4. Kí tự Meta……………………………………………………………………….. III.5. Vượt qua đường dẫn…………………………………………………………….. III.6. Chèn mã lệnh thực thi trên trình duyệt nạn nhân……………………………….. III.7. Thêm câu lệnh hệ thống………………….……………………………………... 7 9 11 12 13 16 18 19 19 21 22 25 26 27 27 27 27 27 27 28 28 28 28 29 29 29 Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet III.8. Chèn câu truy vấn SQL…………………….…………………………………… III.9. Ngôn ngữ phía máy chủ………………................................................................ III.10. Kí tự rỗng….…………………………………………………………………... III.11. Thao tác trên tham số truyền…………………………………………………... IV. ĐỂ LỘ THÔNG TIN………………………………………………………………. V. TỪ CHỐI DỊCH VỤ………………….…………………………………………….. PHẦN THỨ HAI: CÁC KĨ THUẬT TẤN CÔNG VÀ BẢO MẬT ỨNG DỤNG WEB.. Chương 4: Thao tác trên tham số truyền………………………………………………… I. THAO TÁC TRÊN URL…………………………………………………………….. I.1. Khái niệm…………………………………………………………………………. I.2. Một số biện pháp khắc phục………………………………………………………. II. THAO TÁC TRÊN BIẾN ẨN FORM………………………………………………. II.1. Khái niệm………………………………………………………………………… II.2. Một số biện pháp khắc phục……………………………………………………... III. THAO TÁC TRÊN COOKIE……………………………………………………… III.1. Khái niệm ………………………………………………………………………. III.2. Một số biện pháp khắc phục…………………………………………………….. IV. THAO TÁC TRONG HTTP HEADER……………………………………………. IV.1. Khái niệm……………………………………………………………………….. IV.2. Một số biện pháp khắc phục…………………………………………………….. Chương 5: Chèn mã lệnh thực thi trên trình duyệt nạn nhân (Cross Side Scripting)……. I. KĨ THUẬT TẤN CÔNG CROSS-SITE SCRIPTING (XSS)………………………... II. PHƯƠNG PHÁP TẤN CÔNG XSS TRUYỀN THỐNG…………………………... III. MỘT SỐ WEBSITE TÌM THẤY LỖ HỔNG XSS………………………………... IV. TẤN CÔNG XSS BẰNG FLASH…………………………………………………. V. CÁCH PHÒNG CHỐNG…………………………………………………………… Chương 6: Chèn câu truy vấn SQL (SQL Injection)……………………………………. I. KHÁI NIỆM SQL INJECTION……………………………………………………... II. GIỚI THIỆU MÔ HÌNH CƠ SỞ DỮ LIỆU………………………………………... 30 30 30 30 31 31 33 34 35 35 36 36 36 38 39 39 40 41 41 42 43 44 46 50 51 54 56 57 57 Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet III. CÁC CÁCH TẤN CÔNG…………………………………………………………. III.1. Kĩ thuật tấn công SQL Injection………………………………………………... III.2. Tấn công dưa vào câu lệnh SELECT…………………………………………… III.3. Tấn công dưa vào câu lệnh HAVING…………………………………………... III.4. Tấn công dưa vào câu lệnh kết hợp UNION…………………………………… III.5. Tấn công dưa vào lệnh INSERT………………………………………………... III.6. Tấn công dưa vào STORED PROCEDURE…………………………………… III.7. Nâng cao………………………………………………………………………... III.7.1. Chuỗi kí tự không có dấu nháy đơn…………………………………………. III.7.2. Tấn công 2 tầng……………………………………………………………… III.7.3. Tránh sự kiểm soát…………………………………………………………... III.7.4. Dùng Extended Stored Procedure…………………………………………… III.7.4.1. Dùng Extended Stored Procedure có sẵn trong hệ thống SQL Server…... III.7.4.2. Dùng Extended Stored Procedure tự tạo…………………………………. III.7.4.3. Nhập tập tin văn bản vào bảng…………………………………………… IV. CÁCH PHÒNG CHỐNG………………………………………………………… IV.1. Kiểm tra dữ liệu……………………………………………………………….. IV.2. Khoá chặt SQL Server (SQL Server Lockdown)……………………………... Chương 7: Chiếm hữu phiên làm việc (Session Management)………………………… I. TỔNG QUAN VỀ SESSION ID…………………………………………………….. II. ẤN ĐỊNH PHIÊN LÀM VIỆC……………………………………………………... II.1. Tấn công Session ID trên tham số URL………………………………………… II.2. Tấn công Session ID trong biến ẩn form………………………………………... II.3. Tấn công Session ID trong cookie………………………………………………. II.4. Cách phòng chống………………………………………………………………. III. ĐÁNH CẮP PHIÊN LÀM VIỆC………………………………………………….. III.1. Tấn công kiểu dự đoán phiên làm việc (Prediction sessionID)………………… III.2. Tấn công kiểu vét cạn phiên làm việc (Brute force ID)………………………... III.3. Tấn công kiểu dùng đoạn mã để đánh cấp phiên làm việc……………………... 58 58 60 62 62 69 70 70 70 71 74 75 75 76 77 77 78 81 83 84 85 88 89 89 91 92 93 93 94 Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet III.4. Cách phòng chống………………………………………………………………. III.5. Sự khác biệt giữa đánh cắp phiên làm việc (session hijacking) và ấn định phiên làm việc (session fixation)……………………………………………………………... Chương 8: Tràn bộ đệm (Buffer Overflow)…………………………………………….. I. KHÁI NIỆM…………………………………………………………………………. II. SƠ ĐỒ TỔ CHỨC CỦA BỘ NHỚ…………………………………………………. II.1. Stack……………………………………………………………………………... II.2. Push và Pop……………………………………………………………………… II.3. Cách làm việc của hàm………………………………………………………….. II.4. Shell code………………………………………………………………………... III. MỘT SỐ CÁCH GÂY TRÀN BỘ ĐỆM QUA ỨNG DỤNG WEB………………. IV. CÁC CÁCH PHÒNG CHỐNG……………………………………………………. Chương 9: Từ chối dịch vụ (DoS)………………………………………………………. I. KHÁI NIỆM………………………………………………………………………….. II. NHỮNG KHẢ NĂNG BỊ TẤN CÔNG BẰNG DOS………………………………. III. CÁC KĨ THUẬT TẤN CÔNG…………………………………………………….. III.1. Khái niệm về Tcp bắt tay ba chiều……………………………………………… III.2. Lợi dụng TCP thực hiện phương pháp SYN flood truyền thống……………….. III.3. Tấn công vào băng thông……………………………………………………….. III.3.1. Kiểu tấn công thứ 1………………………………………………………….. III.3.2. Kiểu tấn công thứ 2………………………………………………………….. III.4. Kiểu tấn công vào tài nguyên hệ thống…………………………………………. IV. BIỆN PHÁP PHÒNG CHỐNG……………………………………………………. Chương 10: Một số kĩ thuật tấn công khác……………………………………………... I. MÃ HÓA URL (URL Encoding) …………………………………………………… I.1. Khái niệm………………………………………………………………………… I.2. Một số biện pháp phòng chống…………………………………………………... II. KIỂU TẤN CÔNG VƯỢT ĐƯỜNG DẪN………………………………………… II.1. Khái niệm……………………………………………………………………….. 94 94 97 98 99 100 101 102 104 106 106 108 109 109 110 110 112 113 113 113 117 117 119 120 120 121 121 121 Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet II.2. Một số biện pháp phòng chống………………………………………………….. III. TẤN CÔNG DỰA VÀO KÍ TỰ RỖNG…………………………………………... III.1. Khái niệm……………………………………………………………………….. III.2. Một số biện pháp phòng chống…………………………………………………. IV. NGÔN NGỮ PHÍA TRÌNH CHỦ…………………………………………………. IV.1. Khái niệm……………………………………………………………………….. IV.2. Cách tấn công…………………………………………………………………… IV.3. Biện pháp phòng chống………………………………………………………… Chương 11: Tổng kết quá trình tấn công của Hacker…………………………………... I. THU THẬP THÔNG TIN Ở MỨC HẠ TẦNG CỦA MỤC TIÊU………………… II. KHẢO SÁT ỨNG DỤNG WEB…………………………………………………… III. TẤN CÔNG……………………………………………………………………….. Chương 12: Tổng kết các biện pháp phòng chống……………………………………... I. VỚI NHỮNG NHÀ QUẢN TRỊ MẠNG…………………………………………… II. VỚI NHỮNG NHÀ THIẾT KẾ ỨNG DỤNG WEB………………………………. III. VỚI NGƯỜI SỬ DỤNG ỨNG DỤNG WEB……………………………………... PHẦN THỨ BA: CHƯƠNG TRÌNH WEB CHECKER……………………………….. Chương 13: Chương trình Web Checker……………………………………………….. I. ĐẶC TẢ CHƯƠNG TRÌNH WEB CHECKER…………………………………….. I.1. Tổng quan………………………………………………………………………... I.2. Yêu cầu…………………………………………………………………………... I.2.1. Yêu cầu chức năng……………………………………………………………. I.2.1. Yêu cầu phi chức năng………………………………………………………... II. KIẾN TRÚC CHƯƠNG TRÌNH WEB CHECKER……………………………….. II.1. Kiến trúc chương trình Web Checker…………………………………………... II.2. Giao tiếp giữa chương trình với trình chủ Web…………………………………. III. CÀI ĐẶT…………………………………………………………………………... III.1. Ngôn ngữ cài đặt……………………………………………………………….. III.2. Phương pháp cài đặt……………………………………………………………. 122 123 123 123 123 123 125 125 127 128 131 132 134 135 137 139 140 141 142 142 142 142 143 143 143 144 145 145 145 Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet III.2.1. Sử dụng mô hình giao diện dạng Dialog……………………………………. III.2.2. Sử dụng ActiveX Control (Microsoft Web Browser)………………………. III.2.3. Sử dụng giao diện lập trình Window Socket 2……………………………… III.2.4. Một số lớp và hàm chính được cài đặt trong chương trình…………………. III.3. Mô tả chương trình và cách sử dụng…………………………………………… III.3.1. Màn hình chương trình……………………………………………………… III.3.2. Cách sử dụng………………………………………………………………... IV. ĐÁNH GIÁ CHƯƠNG TRÌNH…………………………………………………… IV.1. Những vấn đề đạt được……………………………………………………….. IV.2. Những vấn đề hạn chế………………………………………………………… KẾT LUẬN……………………………………………………………………………... I. NHỮNG VẤN ĐỀ ĐẠT ĐƯỢC……………………………………………………. II. HƯỚNG PHÁT TRIỂN……………………………………………………………. PHỤ LỤC……………………………………………………………………………….. 145 145 146 146 151 151 152 153 153 153 155 156 157 158 Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet -Trang 7- GIỚI THIỆ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 thông tin của mình trên xa lộ thông tin cũng như thực hiện các phiên giao dịch trực tuyến. Vấn đề nảy sinh là khi phạm vi ứng dụng của các ứng dụng Web ngày càng mở rộng thì khả năng xuất hiện lỗi và bị tấn công càng cao, trở thành đối tượng cho nhiều người tấn công với các mục đích khác nhau. Đôi khi, cũng chỉ đơn giản là để thử tài hoặc đùa bỡn với người khác. 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 cấp số nhân. Trong khi các phương tiện thông tin đại chúng ngày càng nhắc nhiều đến những khả năng truy nhập thông tin của Internet, thì các tài liệu chuyên môn bắt đầu đề cập nhiều đến 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. Theo số liệu của CERT (Computer Emegency Response Team - "Đội cấp cứu máy tính"), số lượng các vụ tấn công trên Internet được thông báo cho tổ chức này là ít hơn 200 vào năm 1989, khoảng 400 vào năm 1991, 1400 vào năm 1993, và 2241 vào năm 1994, và năm 2001 là 5315 vụ. Những vụ tấn công này nhằm vào tất cả các máy tính có mặt trên Internet, các máy tính của tất cả các công ty lớn như AT&T, IBM, các trường đại học, các cơ quan nhà nước, các tổ chức quân sự, nhà băng... Một số vụ tấn công có quy mô khổng lồ (có tới 100.000 máy tính bị tấn công). Hơn nữa, những con số này chỉ là phần nổi của tảng băng. Một phần rất lớn các vụ tấn công không được thông báo, vì nhiều lý do, trong đó Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet -Trang 8- có thể kể đến nỗi lo bị mất uy tín, hoặc đơn giản những người quản trị hệ thống không hay biết những cuộc tấn công đang nhằm vào hệ thống của họ. Điển hình là cuộc tấn công vào phần mềm thương mại của IBM tháng 3/2001, hai hacker đã tìm thấy lỗ hổng trên ứng dụng mà bất cứ ai với một trình duyệt Web cũng có thể lấy tài khoản của người dùng, thậm chí cả người quản trị. Không chỉ số lượng các cuộc tấn công tăng lên nhanh chóng, mà các phương pháp tấn công ngày càng tinh vi và có tổ chức. Mặt khác, việc quản trị các hệ thống mạng đòi hỏi nhà quản trị hệ thống có kiến thức và kinh nghiệm về hệ thống mạng chắc chắn, do đó sự yếu kém trong quản lý sẽ tạo nhiều điều kiện cho các hacker khai thác. Cũng theo CERT, những cuộc tấn công thời kỳ 1988-1989 chủ yếu là đoán tên người sử dụng-mật khẩu (UserID/password) hoặc sử dụng một số lỗi của các chương trình và hệ điều hành (security hole) làm vô hiệu hệ thống bảo vệ, tuy nhiên các cuộc tấn công vào thời gian gần đây còn bao gồm cả các thao tác như giả mạo địa chỉ IP, theo dõi thông tin truyền qua mạng, chiếm các phiên làm việc từ xa (telnet hoặc rlogin), cài trojan hay worm để kiểm soát hay điều khiển máy tính…vì thế, nhu cầu bảo vệ thông tin trên Internet là cần thiết nhằm mục đích bảo vệ dữ liệu, bảo vệ thông tin người dùng và bảo vệ hệ thống. Khi nói đến vấn đề bảo mật, hầu hết các chuyên gia bảo mật đều chú trọng đến sự an toàn của hệ thống mạng và hệ điều hành. Để bảo vệ cho hệ thống, phương pháp thường được chọn là sử dụng firewall. Tuy nhiên, theo tuyên bố của CSI/FBI : 78% nơi bị hại có sử dụng firewall và 59% thì bị tấn công thông qua Internet, cụ thể hơn là theo báo cáo của CSI/FBI Computer Crime và Security Survey thì tổng số thiệt hại do những ứng dụng Web bị tấn công từ năm 1997 đến năm 2000 là 626 triệu đôla Mỹ. Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet -Trang 9- 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 chú trọng đến yếu tố thẩm mĩ, yếu tố 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ổ vài kĩ thuật đã phát hiện, mà linh động và tăng lên tùy vào những sai sót của nhà quản trị hệ thống cũng như của những người lập trình ứng dụng. Luận vă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 sửa chữa. Song song đó, luận văn còn thực hiện một chương trình “Tự động phát hiện lỗ hổng trên ứng dụng Web” giúp ích cho những nhà lập trình Web ít kinh nghiệm tránh những sai sót trong quá trình tạo các ứng dụng. Tổ chức của luận văn Luận văn gồm 13 chương chia thành 3 phần: Phần thứ nhất: CƠ SỞ LÍ THUYẾT Phần này gồm có 3 chương: + Chương 1 : Giới thiệu về ứng dụng Web + Chương 2 : Một số khái niệm, thuật ngữ liên quan. + Chương 3: Sơ lược các kĩ thuật tấn công ứng dụng Web Phần thứ hai:CÁC KĨ THUẬT TẤN CÔNG VÀ BIỆN PHÁP PHÒNG CHỐNG Phần này gồm có 9 chương từ chương 4 đến chương 12 trong đó 7 chương đầu bàn luận về các kĩ thuật tấn công, cuối mỗi chương là biện pháp phòng chống cho từng kĩ thuật. Chương 11 nói về quá trình tấn công của hacker và đến chương 12 là nội dung các biện pháp phòng chống chung nhất. Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Nghiên cứu một số vấn đề về bảo mật ứng dụng Web trên Internet -Trang 10- Phần thứ ba : CHƯƠNG TRÌNH “WEB CHECKER” Là gồm chương cuối trình bày, giải thích về chương trình Kết thúc luận văn là phần kết luận, tóm lược lại những vấn đề đã trình bày và một số hướng phát triển trong tương lai và danh mục các tài liệu tham khảo. Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Phần I: Cơ sở lý thuyết -Trang 11- PHẦN THỨ NHẤT CƠ SỞ LÍ THUYẾT Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Chương 1: Giới thiệu Ứng dụng Web -Trang 12- Chương 1 GIỚI THIỆU ỨNG DỤNG WEB Nội dung: I. Khái niệm về ứng dụng Web II. Mô tả cách hoạt động của một ứng dụng Web Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Chương 1: Giới thiệu Ứng dụng Web -Trang 13- CHƯƠNG 1: GIỚI THIỆU ỨNG DỤNG WEB DE Luận văn được thực hiện nhằm tìm hiểu về các kĩ thuật tấn công trang Web và đề ra cách phòng chống. Do đó, trong chương đầu tiên luận văn sẽ giới thiệu sơ lược một số khái niệm cơ bản và đây chính là nền tảng để xây dựng nội dung cho những phần sau. I. KHÁI NIỆM ỨNG DỤNG WEB Ứng dụng Web là một ứng dụng chủ/khách sử dụng giao thức HTTP để tương tác với người dùng hay hệ thống khác. Trình khách dành cho người sử dụng thường là một trình duyệt Web như Internet Explorer hay Netscape Navigator. Cũng có thể là một chương trình đóng vai trò đại lý người dùng hoạt động như một trình duyệt tự động. Người dùng gửi và nhận các thông tin từ trình chủ thông qua việc tác động vào các trang Web. Các chương trình có thể là các trang trao đổi mua bán, các diễn đàn, gửi nhận e-mail… Tốc độ phát triển các kỹ thuật xây dựng ứng dụng Web cũng phát triển rất nhanh. Trước đây những ứng dụng Web thường được xây dựng bằng CGI (Common Gateway Interface) được chạy trên các trình chủ Web và có thể kết nối vào các cơ sở dữ liệu đơn giản trên cùng máy chủ. Ngày nay ứng dụng Web thường được viết bằng Java (hay các ngôn ngữ tương tự) và chạy trên máy chủ phân tán, kết nối đến nhiều nguồn dữ liệu. Một ứng dụng web thường có kiến trúc gồm: Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Chương 1: Giới thiệu Ứng dụng Web -Trang 14- Hình 1.I-1. Kiến trúc một ứng dụng Web • Lớp trình bày: Lớp này có nhiệm vụ hiển thị dữ liệu cho người dùng, ngoài ra còn có thể có thêm các ứng dụng tạo bố cục cho trang web. • Lớp ứng dụng: là nơi xử lý của ứng dụng Web. Nó sẽ xử lý thông tin người dùng yêu cầu, đưa ra quyết định, gửi kết quả đến “lớp trình bày”. Lớp này thường được cài đặt bằng các kỹ thuật lập trình như CGI, Java, .NET , PHP hay ColdFusion, được triển khai trên các trình chủ như IBM WebSphere, WebLogic, Apache, IIS… • Lớp dữ liệu: thường là các hệ quản trị dữ liệu (DBMS) chịu trách nhiệm quản lý các file dữ liệu và quyền sử dụng. Mô hình hóa hoạt động của một ứng dụng Web: Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Chương 1: Giới thiệu Ứng dụng Web -Trang 15- Hình 1.I-2. Mô hình hoạt động của một ứng dụng Web Trong đó: • Trình khách ( hay còn gọi là trình duyệt): Internet Explorer, Netscap Navigator • Trình chủ: Apache, IIS, …. • Hệ quản trị cơ sở dữ liệu: SQL Server, MySQL, DB2, Access…. Bên cạnh đó, một giải pháp dùng để bảo vệ một hệ thống mạng thường được sử dụng là bức tường lửa, nó có vai trò như là lớp rào chắn bên ngoài một hệ thống mạng, vì chức năng chính của firewall là kiểm soát luồng thông tin giữa các máy tính. Có thể xem firewall như một bộ lọc thông tin, nó xác định và cho phép một máy tính này có được truy xuất đến một máy tính khác hay không, hay một mạng này có được truy xuất đến mạng kia hay không. Người ta thường dùng firewall vào mục đích: • Cho phép hoặc cấm những dịch vụ truy xuất ra ngoài. Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Chương 1: Giới thiệu Ứng dụng Web -Trang 16- • Cho phép hoặc cấm những dịch vụ từ bên ngoài truy nhập vào trong. • Kiểm soát địa chỉ truy nhập, cấm địa chỉ truy nhập. Firewall hoạt động dựa trên gói IP do đó kiểm soát việc truy nhập của máy người sử dụng II.MÔ TẢ HOẠT ĐỘNG CỦA MỘTỨNG DỤNG WEB Đầu tiên trình duyệt sẽ gửi một yêu cầu (request) đến trình chủ Web thông qua các lệnh cơ bản GET, POST… của giao 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 dạng theo giao thức HTTP, nó gồm 2 phần: • Header mô tả các thông tin về gói dữ liệu và các thuộc tính, trạng thái trao đổi giữa trình duyệt và WebServer. • Body là phần nội dung dữ liệu mà Server gửi về Client, nó có thể là một file HTML, một hình ảnh, một đoạn phim hay một văn bản bất kì. Theo mô hình ở hình 1.I-2, với firewall, luồng thông tin giữa trình chủ và trình khách là luồng thông tin hợp lệ. Vì thế, nếu hacker tìm thấy vài lỗ hổng trong ứng dụng Web thì firewall không còn hữu dụng trong việc ngăn chặn hacker này. Do đó, các kĩ thuật tấn công vào một hệ thống mạng ngày nay đang dần tập trung vào những sơ suất (hay lỗ hổng) trong quá trình tạo ứng dụng của những nhà phát triển Web hơn là tấn công trực tiếp vào hệ thống mạng, hệ điều hành. Tuy nhiên, hacker cũng có thể Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Chương 1: Giới thiệu Ứng dụng Web -Trang 17- lợi dụng các lỗ hổng Web để mở rộng sự tấn công của mình vào các hệ thống không liên quan khác. Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Chương 2: Các khái niệm, thuật ngữ liên quan -Trang 18- Chương 2 CÁC KHÁI NIỆM, THUẬT NGỮ LIÊN QUAN Nội dung: I. Hacker II. HTTP Header III. Phiên làm việc (Session) IV. Cookie V. Proxy Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Chương 2: Các khái niệm, thuật ngữ liên quan -Trang 19- CHƯƠNG 2: CÁC KHÁI NIỆM, THUẬT NGỮ LIÊN QUAN DE I. HACKER Hacker là một thuật ngữ dùng để chuyên chỉ những kẻ phá hoại các hệ thống mạng… Hacker thường là những chuyên gia về máy tính. Hacker không tạo ra các kẽ hở cho hệ thống, nhưng hacker lại là những người am hiểu về hệ điều hành, hệ quản trị dữ liệu, các ngôn ngữ lập trình…Họ sử dụng kiến thức của mình trong việc tìm tòi và khai thác các lỗ hổng của hệ thống mạng. Một số hacker chỉ dừng lại việc phát hiện và thông báo lỗi tìm được cho những nhà bảo mật hay người phát triển chương trình, họ được xem như là WhiteHat (Hacker nón trắng). Một số hacker dựa vào những lỗ hổng thực hiện việc khai thác trái phép nhằm mục đích phá hoại hay mưu lợi riêng, những người này bị xem như là BlackHat (Hacker nón đen). Vì tính chất phổ biến của thuật ngữ hacker, nên trong phần trình bày, luận văn sẽ sử dụng “hacker” thay cho “kẻ tấn công”. II.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ố và giá trị. Một số Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT Chương 2: Các khái niệm, thuật ngữ liên quan -Trang 20- tham số có thể được dùng trong cả header yêu cầu và header trả lời, còn số khác thì chỉ đuợc dùng riêng trong từng loại. Ví dụ : • Header yêu cầu: GET /tintuc/homnay.asp HTTP/1.1 Accept: */* Accept-Language: en-us Connection: Keep-Alive Host: localhost Referer: User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) Accept-Encoding: gzip, deflate o Dòng đầu là dòng yêu cầu cho biết phương thức yêu cầu (GE

Các file đính kèm theo tài liệu này:

  • pdfbao_mat_ung_dung_web_tren_internet_6634.pdf
Tài liệu liên quan