Đồ án Nghiên cứu các điểm yếu an ninh ứng dụng Web

Với xu thế phát triển nhanh chóng của ngành thương mại điện tử hiện nay, rất nhiều doanh nghiệp hiện đang sử dụng ứng dụng web để cung cấp dịch vụ thương mại trực tuyến, kết nối khách hàng, đối tác và nhân viên một cách hiệu quả nhất. Tuy nhiên, ứng dụng web cũng đem đến những rủi ro đáng kể mới đến an toàn của hệ thống và dữ liệu. Đa số ứng dụng web có thể bị những lỗi mà các phương cách phòng chống mạng thông thường không bảo vệ được. Lỗi và lỗ hổng trong mã nguồn của ứng dụng web có thể gây ra những hậu quả nghiêm trọng như lộ dữ liệu nhạy cảm, gây tổn thương đến toàn hệ thống hạ tầng công nghệ thông tin. Sự cố bảo mật trong ứng dụng web có thể ảnh hưởng đến danh tiếng của công ty, mất mát về mặt tài chính, ảnh hưởng đến uy tín với khách hàng và các vấn đề liên quan đến ràng buộc pháp lý. Khi một tổ chức triển khai trực tuyến một ứng dụng web, điều này đồng nghĩa với việc cho phép bất kỳ ai có kết nối Internet truy cập vào ứng dụng qua giao thức HTTP. Những cuộc tấn công nằm trong những truy cập HTTP này có khả năng vượt qua tường lửa, hệ thống lọc tầng mạng, các lớp bảo vệ hệ thống, và cả hệ thống phát hiện xâm nhập. Những thiết bị trên không thể phát hiện được những cuộc tấn công này vì các mã tấn công đều nằm trong các gói giao thức HTTP hợp lệ. Ngay cả những trang Web có mức độ bảo mật cao sử dụng SSL cũng đều cho phép tất cả các dữ liệu đi qua mà không hề kiểm tra tính hợp lệ của những dữ liệu này. Điều này có nghĩa là bảo mật ứng dụng web là một yếu tố quan trọng nằm trong hệ thống phòng thủ ngọai vi, cùng với tường lửa và các thiết bị bảo mật khác. Vì vậy việc thực hiện nghiên cứu các điểm yếu an ninh ứng dụng web là đề tài rất câp thiết và có ý nghĩa thực tiễn. Đề tài được thực hiện với mục đích phân tích các điểm yếu an ninh trong các ứng dụng web, đồng thời sử dụng công cụ dò quét, đánh giá điểm yếu an ninh – Appscan, để đánh giá an ninh toàn diện cho các ứng dụng web nhằm phát hiện các điểm yếu và đề xuất các phương án khắc phục để giảm thiểu rủi ro do bị tấn công. Các điểm yếu được dựa trên 10 điểm yếu nghiêm trọng nhất được chọn lọc bởi tổ chức OWASP. Bố cục của đồ án tốt nghiệp gồm 4 chương cùng với phần mở đầu và kết luận. • Chương I : Tổng quan về ứng dụng web Chương này trình bày về cơ sở lý thuyết của ứng dụng web, bao gồm việc phân tích kiến trúc, hoạt động của một ứng dụng web trong thực tế, đồng thời làm rõ các khái niệm liên quan về ứng dụng web • Chương II: Các điểm yếu an ninh ứng dụng web thường gặp và giải pháp khắc phục Phân tích 10 loại điểm yếu có mức độ rủi ro cao nhất được đưa ra bởi tổ chức OWASP (Open Web Application Security Project)- đây là tổ chức uy tín thế giới chuyên nghiên cứu về các vấn đề an toàn cho các ứng dụng web. Sau đó đề xuất giải pháp tổng thể để bảo vệ ứng dụng web. • Chương III: Một số tấn công vào các điểm yếu quan trọng và giải pháp bảo vệ Chương này giành để phân tích một số tấn công vào 3 điểm yếu chiếm tỷ lệ cao nhất hiện nay đối với các ứng dụng web của Việt Nam và thế giới đó là: Điểm yếu cho phép chèn những mã html hoặc các scripts nguy hại – XSS(Cross-Site Scripting), lỗi Injection và lỗi từ chối dịch vụ. Sử dụng một vài tấn công và các kỹ thuật phòng chống riêng, đặc thù cho các loại điểm yếu này. • Chương IV: Sử dụng bộ công cụ quét điểm yếu Appscan để quét điểm yếu an ninh ứng dụng web Trên cơ sở lý thuyết phân tích các điểm yếu và một vài kỹ thuật tấn công, ở chương này đưa vào một công cụ được dùng trong việc quét các điểm yếu nhằm phát hiện, đánh giá, thống kê và đưa ra giải pháp khắc phục các điểm yếu của các ứng dụng web. Giúp cho các nhà quản trị ứng dụng web có một được một giải pháp tối ưu về an toàn ngay từ khi ứng dụng web được thiết kế.

docx60 trang | Chia sẻ: tuandn | Lượt xem: 4048 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Đồ án Nghiên cứu các điểm yếu an ninh ứng dụng Web, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Nghiên cứu các điểm yếu an ninh ứng dụng web LỜI CẢM ƠN Sau gần 3 tháng nỗ lực thực hiện, đồ án “Nghiên cứu các điểm yếu an ninh trên ứng dụng web” đã phần nào hoàn thành. Ngoài sự cố gắng hết mình của bản thân, em đã nhận được sự động viên, khích lệ rất nhiều từ phía nhà trường, Thầy, Cô, gia đình và bạn bè. Em xin cám ơn Thầy, Cô trường Học viện Kỹ Thuật Mật Mã đã truyền đạt những kiến thức quý báu cho em trong suốt quá trình học tập. Đặc biệt, em xin bày tỏ lòng chân thành sâu sắc đến PGS,TS. Lê Mỹ Tú, TS. Trần Đức Sự, những người đã tận tình hướng dẫn và giúp đỡ em trong quá trình làm đồ án tốt nghiệp. Xin cám ơn tất cả bạn bè đã và đang động viên, giúp đỡ em trong quá trình học tập và hoàn thành tốt đồ án tốt nghiệp này. MỤC LỤC MỞ ĐẦU        6 CHƯƠNG I        8 TỔNG QUAN VỀ ỨNG DỤNG WEB        8 1.1 KIẾN TRÚC VÀ HOẠT ĐỘNG CỦA ỨNG DỤNG WEB        8 1.1.1 Khái niệm        8 1.1.2 Kiến trúc ứng dụng web        11 1.1.3 Mô tả hoạt động        12 1.2 CÁC KHÁI NIỆM LIÊN QUAN        13 1.2.1 Giao thức http        13 1.2.2 Phiên kết nối Session        16 1.2.3 Cookie        17 1.2.4 Proxy        19 1.2.5 Hacker        20 CHƯƠNG II        21 CÁC ĐIỂM YẾU AN NINH ỨNG DỤNG WEB THƯỜNG GẶP VÀ GIẢI PHÁP KHẮC PHỤC        21 2.1 CÁC ĐIỂM YẾU THƯỜNG GẶP        21 2.1.1 Dữ liệu đầu vào không được kiểm tra        21 2.1.2 Lỗi kiểm soát truy cập nguồn tài nguyên        23 2.1.3 Lỗi liên quan đến quá trình quản lý xác thực và phiên truy cập.        24 2.1.4 Lỗi Cross Site Scripting (XSS)        25 2.1.5 Lỗi tràn bộ đệm        27 2.1.6 Lỗi Injection        27 2.1.7 Quy trình quản lý báo lỗi        29 2.1.8 Lưu trữ thiếu an toàn        30 2.1.9 Từ chối dịch vụ        31 2.1.10 Quản lý cấu hình thiếu an toàn        32 2.2 GIẢI PHÁP TOÀN DIỆN BẢO VỆ ỨNG DỤNG WEB        34 2.2.1 Giải pháp về con người và quy trình thủ tục        34 2.2.2 Giải pháp về công nghệ bảo vệ ứng dụng web        34 2.2.3 Giải pháp bảo vệ cho ứng dụng web-hosting        36 CHƯƠNG III        38 MỘT SỐ TẤN CÔNG VÀO CÁC ĐIỂM YẾU QUAN TRỌNG VÀ GIẢI PHÁP BẢO VỆ        38 3.1. LỖI CROSS SITE SCRIPTING (XSS)        38 3.1.1 Mô tả việc khai thác        38 3.1.2 Phương pháp tấn công XSS truyền thống        40 3.1.3 Tấn công bằng XSS Flash        40 3.1.4 Tấn công chiếm phiên làm việc        41 3.1.4.1 Tổng quan về SessionID        41 3.1.4.2 Ấn định phiên làm việc        41 3.1.4.3  Đánh cắp phiên làm việc        42 3.1.4.4 Tấn công Session ID trên tham số URL        43 3.1.5 Phòng chống        44 3.2 LỖI INJECTION        44 3.2.1. Khái niệm SQL Injection        44 3.2.2. Giới thiệu mô hình cơ sở dữ liệu        45 3.2.3 Kỹ thuật tấn công cơ bản        45 3.2.3.1 Sử dụng ký tự đặc biệt        45 3.2.3.2. Tấn công dưa vào câu lệnh SELECT        47 3.2.3.3 Tấn công dựa vào câu lệnh HAVING        48 3.2.3.4. Tấn công dựa vào câu lệnh kết hợp UNION        49 3.2.3.5. Tấn công dưa vào lệnh INSERT        52 3.2.4. Kỹ thuật tấn công nâng cao        52 3.2.4.1. Chuỗi kí tự không có dấu nháy đơn.        52 3.2.4.2 Tấn công 2 tầng        53 3.2.4.3. Tránh sự kiểm soát.        55 3.2.4.4. Dùng Extended Stored Procedure        55 3.2.5. Cách phòng chống        56 3.2.5.1. Kiểm tra dữ liệu        57 3.2.5.2 Khoá chặt SQL Server (SQL Server Lockdown)        59 3.3 LỖI TỪ CHỐI DỊCH VỤ        60 3.3.1 Khái niệm        60 3.3.2 Các cách thức tấn công DoS        61 3.3.2.1. Thông qua kết nối        61 3.3.2.2. Lợi dụng nguồn tài nguyên của chính nạn nhân để tấn công        61 3.3.2.3 Sử dụng băng thông        62 3.3.2.4.Sử dụng các nguồn tài nguyên khác        62 3.3.3 Các cách phòng chống        64 CHƯƠNG IV        65 SỬ DỤNG BỘ CÔNG CỤ APPSCAN ĐỂ QUÉT ĐIỂM YẾU AN NINH ỨNG DỤNG WEB        65 4.1 GIỚI THIỆU CÔNG CỤ        65 4.2 YÊU CẦU HỆ THỐNG KHI CÀI ĐẶT APPSCAN        66 4.2.1 Yêu cầu về phần cứng        66 4.2.2. Yêu cầu về phần mềm        66 4.3 ĐÁNH GIÁ ĐIỂM YẾU AN NINH ỨNG DỤNG WEB BẰNG APPSCAN        67 4.3.1 Khởi tạo một phiên quét        67 4.3.2 Cấu hình tùy chọn chính sách quét        68 4.3.3 Tạo báo cáo sau khi quét        69 KẾT LUẬN        73 GIẢI THÍCH THUẬT NGỮ        74 DANH MỤC HÌNH VẼ        76 PHỤ LỤC        77 TÀI LIỆU THAM KHẢO        82 MỞ ĐẦU Với xu thế phát triển nhanh chóng của ngành thương mại điện tử hiện nay, rất nhiều doanh nghiệp hiện đang sử dụng ứng dụng web để cung cấp dịch vụ thương mại trực tuyến, kết nối khách hàng, đối tác và nhân viên một cách hiệu quả nhất. Tuy nhiên, ứng dụng web cũng đem đến những rủi ro đáng kể mới đến an toàn của hệ thống và dữ liệu. Đa số ứng dụng web có thể bị những lỗi mà các phương cách phòng chống mạng thông thường không bảo vệ được. Lỗi và lỗ hổng trong mã nguồn của ứng dụng web có thể gây ra những hậu quả nghiêm trọng như lộ dữ liệu nhạy cảm, gây tổn thương đến toàn hệ thống hạ tầng công nghệ thông tin. Sự cố bảo mật trong ứng dụng web có thể ảnh hưởng đến danh tiếng của công ty, mất mát về mặt tài chính, ảnh hưởng đến uy tín với khách hàng và các vấn đề liên quan đến ràng buộc pháp lý. Khi một tổ chức triển khai trực tuyến một ứng dụng web, điều này đồng nghĩa với việc cho phép bất kỳ ai có kết nối Internet truy cập vào ứng dụng qua giao thức HTTP. Những cuộc tấn công nằm trong những truy cập HTTP này có khả năng vượt qua tường lửa, hệ thống lọc tầng mạng, các lớp bảo vệ hệ thống, và cả hệ thống phát hiện xâm nhập. Những thiết bị trên không thể phát hiện được những cuộc tấn công này vì các mã tấn công đều nằm trong các gói giao thức HTTP hợp lệ. Ngay cả những trang Web có mức độ bảo mật cao sử dụng SSL cũng đều cho phép tất cả các dữ liệu đi qua mà không hề kiểm tra tính hợp lệ của những dữ liệu này. Điều này có nghĩa là bảo mật ứng dụng web là một yếu tố quan trọng nằm trong hệ thống phòng thủ ngọai vi, cùng với tường lửa và các thiết bị bảo mật khác. Vì vậy việc thực hiện nghiên cứu các điểm yếu an ninh ứng dụng web là đề tài rất câp thiết và có ý nghĩa thực tiễn. Đề tài được thực hiện với mục đích phân tích các điểm yếu an ninh trong các ứng dụng web, đồng thời sử dụng công cụ dò quét, đánh giá điểm yếu an ninh – Appscan, để đánh giá an ninh toàn diện cho các ứng dụng web nhằm phát hiện các điểm yếu và đề xuất các phương án khắc phục để giảm thiểu rủi ro do bị tấn công. Các điểm yếu được dựa trên 10 điểm yếu nghiêm trọng nhất được chọn lọc bởi tổ chức OWASP. Bố cục của đồ án tốt nghiệp gồm 4 chương cùng với phần mở đầu và kết luận.  Chương I : Tổng quan về ứng dụng web Chương này trình bày về cơ sở lý thuyết của ứng dụng web, bao gồm việc phân tích kiến trúc, hoạt động của một ứng dụng web trong thực tế, đồng thời làm rõ các khái niệm liên quan về ứng dụng web Chương II:  Các điểm yếu an ninh ứng dụng web thường gặp và giải pháp khắc phục Phân tích 10 loại  điểm yếu có mức độ rủi ro cao nhất được đưa ra bởi  tổ chức OWASP (Open Web Application Security Project)- đây là tổ chức uy tín thế giới chuyên nghiên cứu về các vấn đề an toàn cho các ứng dụng web. Sau đó đề xuất giải pháp tổng thể để bảo vệ ứng dụng web. Chương III:  Một số tấn công vào các điểm yếu quan trọng và giải pháp bảo vệ Chương này giành để phân tích một số tấn công vào 3 điểm yếu chiếm tỷ lệ cao nhất hiện nay đối với các ứng dụng web của Việt Nam và thế giới đó là: Điểm yếu cho phép chèn những mã html hoặc các scripts nguy hại – XSS(Cross-Site Scripting), lỗi Injection và lỗi từ chối dịch vụ. Sử dụng một vài tấn công và các kỹ thuật phòng chống riêng, đặc thù cho các  loại điểm yếu này. Chương IV: Sử dụng bộ công cụ quét điểm yếu Appscan để quét điểm yếu an ninh ứng dụng web Trên cơ sở lý thuyết phân tích các điểm yếu và một vài kỹ thuật tấn công, ở chương này đưa vào một công cụ được dùng trong việc quét  các điểm yếu nhằm phát hiện, đánh giá, thống kê và đưa ra giải pháp khắc phục các điểm yếu của các ứng dụng web. Giúp cho các nhà quản trị ứng dụng web có một được một giải pháp tối ưu về an toàn ngay từ khi ứng dụng web được thiết kế. CHƯƠNG I TỔNG QUAN VỀ ỨNG DỤNG WEB 1.1 KIẾN TRÚC VÀ HOẠT ĐỘNG CỦA ỨNG DỤNG WEB 1.1.1 Khái niệm Dưới góc độ kỹ thuật, Web được định nghĩa là môi trường có khả năng thực thi chương trình cao, cho phép tạo các tùy biến trên triển khai trực tiếp của một lượng lớn các ứng dụng tới đa người dùng. Hai thành phần quan trọng nhất của website hiện là trình duyệt Web linh hoạt và các ứng dụng Web. Web browser (trình duyệt web) là các ứng dụng phần mềm cho phép người dùng truy vấn dữ liệu và tương tác với nội dung nằm trên trang Web bên trong website. Ứ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. Ứng dụng web được chia thành hai loại chính: ứng dụng web Public và ứng dụng web Private. Ứng dụng web Public: là website dùng để quảng bá thông tin, cung cấp và trao đổi thông tin với với bên ngoài như các website thương mại điện tử, các website của các công ty chứng khoán, các ngân hàng,… Ứng dụng web Private: là các website cung cấp và trao đổi thông tin trong một tổ chức, doanh nghiệp và các đối tác chiến lược,… Các website này thường dùng để cung cấp thông tin cho các văn phòng, chi nhánh, các nhân viên đi công tác hoặc làm việc tại nhà và đôi khi là cho các đối tác chiến lược kết nối qua môi trường internet. Web Server (máy chủ web) là máy chủ có dung lượng lớn, tốc độ cao, được dùng để chứa những website đã được thiết kế cùng với những thông tin liên quan khác (các mã Script, các chương trình, và các file Multimedia), Web Server có khả năng gửi đến máy khách những trang Web thông qua môi trường Internet (hoặc Intranet) qua giao thức HTTP - giao thức được thiết kế để gửi các file đến trình duyệt Web và các giao thức khác. Các trang Web hiện nay cho phép người dùng lấy xuống nội dung động cá nhân hóa theo thiết lập và tham chiếu riêng. Hơn nữa chúng cũng có thể chạy các script trên máy khách, có thể “thay đổi” trình duyệt Internet thành giao diện cho các ứng dụng như thư điện tử, phần mềm ánh xạ tương tác (Yahoo Mail, Google Maps). Quan trọng nhất là website ngày nay cho phép đóng gói, xử lý, lưu trữ và truyền tải dữ liệu khách hàng nhạy cảm (như thông tin cá nhân, mã số thẻ tín dụng, thông tin bảo mật xã hội …) có thể dùng ngay hoặc dùng định kỳ về sau. Và, điều này được thực hiện qua các ứng dụng Web. Đó có thể là thành phần webmail (thư điện tử), trang đăng nhập, chương trình hỗ trợ và mẫu yêu cầu sản phẩm hay hoạt động mua bán, hệ thống quản lý nội dung, phát triển website hiện đại, cung cấp cho các doanh nghiệp phương tiện cần thiết để liên lạc với khách hàng tương lai và khách hàng hiện tại. Dưới góc độ chức năng, ứng dụng Web là các chương trình máy tính cho phép người dùng website đăng nhập, truy vấn vào/ra dữ liệu qua mạng Internet trên trình duyệt Web yêu thích của họ. Dữ liệu sẽ được gửi tới người dùng trong trình duyệt theo kiểu thông tin động (trong một định dạng cụ thể, như với HTML thì dùng CSS) từ ứng dụng Web qua một Web Server. Các ứng dụng Web truy vấn máy chủ chứa nội dung (chủ yếu trên cơ sở dữ liệu lưu trữ nội dung) và tạo tài liệu Web động để phục vụ yêu cầu của máy khách (chính là người dùng website). Tài liệu được tạo trong kiểu định dạng tiêu chuẩn hỗ trợ trên tất cả mọi trình duyệt (như HTML, XHTML). JavaScript là một dạng script client-side cho phép yếu tố động có ở trên từng trang (như thay đổi ảnh mỗi lần người dùng di chuột tới). Nó dịch và chạy tất cả script, lệnh… khi hiển thị trang web và nội dung được yêu cầu. Wikipedia, bộ bách khoa toàn thư trực tuyến lớn nhất thế giới hiện nay định nghĩa Web browser là “máy khách chung cho mọi ứng dụng web”. Một cải tiến đáng kể khác trong quá trình xây dựng và duy trì các ứng dụng Web là chúng có thể hoạt dộng mà không cần quan tâm đến hệ điều hành hay trình duyệt chạy trên các máy client. Ứng dụng Web được triển khai ở bất cứ nơi nào có Internet, và hầu hết không đòi hỏi yêu cầu cài đặt cho người dùng cuối. Một số ví dụ về Web application: CMS (Content Management System) Hệ quản trị nội dung, cũng được gọi là hệ thống quản lý nội dung là phần mềm để tổ chức và tạo môi trường cộng tác thuận lợi nhằm mục đích xây dựng một hệ thống tài liệu và các loại nội dung khác một cách thống nhất. Web mail (Web-based Emails) là một giao diện web, được thiết kế cho phép truy cập email trên máy chủ từ bất cứ đâu trên thế giới thông qua web (sử dụng trình duyệt). Giao thức IMAP đã giúp WebMail thực hiện việc này. Web mail cho phép chúng ta thực hiện nhiều chức năng như: soạn thư, gửi thư, lịch làm việc… Shopping Carts là một loại ứng dụng web dùng cho việc mua sắm trực tuyến, Các shopping cart không yêu cầu phần mềm giao dịch an toàn. Chúng thực tế là một phần của site ảo để bán hàng trực tuyến, Các shopping cart sử dụng các cookie để xác định danh sách các sản phẩm mà khách hàng đã chọn mua. Có hai cách mà một công ty có thể thiết lập cookie. Cách thứ nhất là sao lưu từng giao dịch shopping cart vào một cookie ở máy tính của khách hàng. Cách thứ hai là gắn một ID khách hàng và lưu ID này ở trong một cookie  Portal  hay cổng thông tin điện tử được hiểu như là một trang web xuất phát mà từ đó người sử dụng có thể dễ dàng truy xuất các trang web và các dịch vụ thông tin khác trên mạng máy tính. Lợi ích lớn nhất mà portal đem lại là tính tiện lợi, dễ sử dụng, Thay vì phải nhớ vô số các địa chỉ khác nhau cho các mục đích sử dụng khác nhau, thì với một web portal như Yahoo, người dùng chỉ cần nhớ yahoo.com. Hiện nay ở Việt nam, các cơ quan nhà nước, các công ty  vẫn sử dụng loại ứng dụng web này. Một vài Portal tiêu biểu như: Portal của Mobifone:  Hay Portal của chính phủ: Và còn nhiều ứng dụng web khác nữa. 1.1.2 Kiến trúc ứng dụng web Hình bên dưới minh họa chi tiết mô hình ứng dụng Web ba lớp. Lớp đầu tiên Presentation layer là trình duyệt Web hoặc giao diện người dùng. Lớp thứ hai Business logic layer là công nghệ kỹ thuật tạo nội dung động như Java servlets (JSP) hay Active Server Pages (ASP). Còn lớp thứ ba là Data access layer-cơ sở dữ liệu chứa nội dung (như tin tức) và dữ liệu người dùng (như username, password, mã số bảo mật xã hội, chi tiết thẻ tín dụng). Hình 1 Kiến trúc 3 lớp của web application Lớp trình bày (Prensentation layer) Gồm các thành phần giao diện đồ họa người dùng (GUI) chuẩn giúp 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. Nó phải hoạt động cùng với lớp business logic để xử lý việc truyền dữ liệu cho người dùng xem và sử dụng. Lớp này có thể nói chuyện trực tiếp với lớp dữ liệu Data layer. Lớp ứng dụng (Bussiness logic layer) 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 , được triển khai trên các trình chủ như Apache, IIS… Lớp dữ liệu (Data access layer) 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. Lớp này là optional (ứng dụng đơn giản không có tier này), chỉ hoạt động với dữ liệu và truy cập đến dữ liệu. Ví dụ về lớp này: Microsoft SQL Server Oracle Database Server MySQL Server OpenLDAP 1.1.3 Mô tả hoạt động Đầ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. Hình 2 Kiến trúc n lớp của web application 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ì. 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ể  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. 1.2 CÁC KHÁI NIỆM LIÊN QUAN 1.2.1 Giao thức http HTTP (HyperText Transfer Protocol) - Giao thức truyền tải siêu văn bản là một trong năm giao thức chuẩn về mạng internet hỗ trợ truyền thông giữa Web browsers và web server với hai hoạt động cơ bản là gửi yêu cầu (request) và trả lời (respone), các tài nguyên được gọi “Uniform Resource Identifier” và bao gồm từ các trang văn bản tĩnh đến các nội dung video động. HTTP Request                 GET / HTTP/1.0 Header1: value1        Host: www.example.com  Header2: value2        Connection: Keep-Alive Header3: value3        Accept-Language: en-us                                         Blank Line         MIME-conforming-message Định dạng của một request từ client thường có 4 trường đó là: HTTP_method,  identifier,  HTTP_version,  Body HTTP_Method: Chỉ ra phương thức nào được thực hiện trên địa chỉ URL (GET, HEAD,POST…) Identifier: Định danh địa chỉ của tài nguyên yêu cầu URL HTTP_version: là phiên bản hiện tại HTTP vd HTTP/1.1 Body là phần nội dung Mỗi request bắt đầu với một Request-Line. Dòng này chỉ ra phương thức mà client yêu cầu, tài nguyên, và phiên bản của HTTP mà client có thể hỗ trợ. Request-Line có thể có tiếp sau một hay nhiều header và một message body Một HTTP request bắt đầu với một Request-Line và có thể bao gồm các header và message body. Phần header có thể mô tả quá trình truyền dữ liệu, xác định các yêu cầu hay phần message body kèm theo. Ví dụ đây là một http request  tới  khi sử dụng công cụ http analyzer Hình 3 Request header. HTTP 1.0 được định nghĩa ban đầu bằng 3 phương thức sau: GET được dùng để yêu cầu, hay lấy tài nguyên từ web server đích POST được dùng để yêu cầu web server đích chấp nhận dữ liệu trong request. HEAD được dùng tương tự như GET ngoại trừ tài nguyên dữ liệu không được truyền; chỉ meta-data được trả về cho client Sau đó HTTP 1.1 được thêm vào một số phương thức mới: PUT được dùng để yêu cầu web server đích tiến hành request trong danh sách tài nguyên (URl) DELETE được dùng để xóa (trên web server) tài nguyên được yêu cầu cụ thể. OPTIONS được dùng để yêu cầu remote loopback của requets vào web server đích TRACE được dùng để yêu cầu remote loopback của request vào web server đích CONNECT được dùng chặt chẽ với Proxy server để tạo các kênh riêng (tunnel) kết nối trực tiếp đến web server đích. HTTP Respone HTTP Response khá giống với HTTP Request. Dấu hiệu khác biệt duy nhất là response bắt đầu với một dòng trạng thái status so với Request-Line. Status-Line, cũng giống như Request-Line, chứa ba mục ngăn cách bởi các khoảng trống. Một HTTP response bắt đầu với một Status-Line và có thể chứa các header và một message body. Header có thể mô tả quá trình truyền dữ liệu, xác định response, hoặc phần body kèm theo. Dòng bắt đầu với phiên bản cao nhất của HTTP mà server hỗ trợ.                 HTTP/1/1 200 OK Header1: value1        Date: Sat, 22 Oct 2005 19:28:06 Header2: value2        Server: Apache/1.3.19 (Unix)                                 Blank Line Nội dung response nằm ở đâu, giống như file nội dung  hay nội dung HTML. HTTP Status-Line bắt đầu với chỉ báo HTTP, mã trạng thái, và một đoạn text mô tả response. Hai mục còn lại trong Status-Line là Status-Code và Reason-Phrase. Status-Code là một bộ ba kí tự chỉ báo kết quả của request. Status-Code phổ biến nhất là 200. Giá trị này thông báo yêu cầu của client thành công. Các dạng status-code