Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 55 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
55
Dung lượng
1,19 MB
Nội dung
Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân Đồ Án Ứng dụng web và vấn đề bảo mật SV :Nguyễn Văn Đại 1 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân LỜI MỞ ĐẦU Trong thời đại ngày này nay internet đã rất trở nên quen thuộc và là một công cụ hữu ích để một đất nước giới thiệu hình ảnh hay đơn giản chỉ là một trang web cá nhân của một ai đó giới thiệu về mình. Tất cả đã kéo theo sự phát triển không ngừng của các ứng dụng web. Và dần dần khái niệm ứng dụng web đã trở nên phổ biến .Khi mà trên internet ,ứng dụng web đã trở lên phổ biến ,ứng dụng một cách rộng rãi thì các cuộc tấn công ứng dụng web cũng phát triển hết sức phức tạp. Điều này đã đặt ra vấn đề cấp thiết cần làm như thế nào để bào đảm an toàn thông tin cho ứng dụng web, thông tin của người sử dụng. Các khái niệm chuyên môn về ứng dụng web và tấn công ứng dụng web cũng dần trở nên phổ biến hơn trong các tài liệu chuyên ngành . Các công cụ hỗ trợ người lập trình web, người quản trị mạng cũng xuất hiện giúp tìm kiếm lỗ hổng của ứng dụng web nhưng nó không theo kịp sự phát triển nhanh đến mức chóng mặt theo xu hướng nhanh hơn đẹp hơn của các ứng dụng web, và tất nhiên nó không thể ngăn chặn hoàn toàn các cuộc tấn công ứng dụng web, khi mà các cuộc tấn công ngày càng đa dạng khai thác triệt để những lỗi của ứng dụng web, của người quản trị, hay người lập trình ứng dụng web. Thống kê cho thấy 75% cuộc tấn công internet là tấn công ứng dụng web,nó gây ra những thiệt hại vô cùng to lớn, vì vậy việc tìm hiểu về tấn công ứng dụng web là rất cần thiết nhằm có cách phòng chống tấn công và bảo mật ứng dụng web hiệu quả trở thành một yêu cầu cấp thiết Do đây là một xu thế tất yếu của thời, nên việc tìm hiểu và nghiên cứu về ứng dụng web sẽ giúp ích rất nhiều cho các nhà lập trình web mới, hay các quản trị viên mới còn ít kinh nghiệm trong việc quản trị hệ thống mạng của mình, phòng tránh , hay khắc phục những lỗi của ứng dụng web. Đồ án này được thực hiện nhằm mục đích giới thiệu rõ hơn về ứng dụng web nhằm tránh những nhầm lẫn và đồng thời tìm hiểu về những tấn công ứng dụng web phổ dụng nhằm có cách phòng chống ,bảo mật cho ứng dụng web hợp lý SV :Nguyễn Văn Đại 2 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân Lời cảm ơn Em xin cảm ơn khoa công nghệ thông tin trường cao đẳng Công Thương đã tạo điều kiện thuận lợi để em hoàn thành đồ án này Cảm ơn Thầy Huỳnh Nguyễn Thành Luân và các thầy trong khoa công nghệ thông tin đã tận tình hướng dẫn cung cấp tài liệu và giúp đỡ em làm đồ án này. Mục Lục SV :Nguyễn Văn Đại 3 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân LỜI MỞ ĐẦU 2 Lời cảm ơn 3 Đồ án của tôi những phần sau Giới thiệu về Đồ án Chương 1: Giới thiệu tổng quan về ứng dụng web Chương 2:Giới thiệu về những thuật ngữ và khái niệm liên quan Chương 3: Giới thiệu Sơ lược về một số cách tấn công ứng dụng web cơ bản Chương chương 4: Giới thiệu về cách sử dụng một số công cụ phổ dụng Kết luận và hướng phát triển của đồ án SV :Nguyễn Văn Đại 4 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ ỨNG DỤNG WEB 1.1 khái niệm về ứng dụng web(website widget hay web application) Mang tính kỹ thuật nhiều hơn có thể giải thích 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). Trình duyệt Web chính là chìa khóa. 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 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. Để hiểu hết được ý nghĩa của khái niệm này chúng ta cùng đi sâu vào tìm hiểu tiếp mô hình cấu trúc chức năng và nhiệm vụ của ứng dụng web. SV :Nguyễn Văn Đại 5 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân 1.2 Cấu trúc,chức năng,giao diện&nguyên tắc hoạt động cơ bản của ứng dụng web 1.2.1 Cấu trúc cơ bản của một ứng dụng web Mô hình của một ứng dụng web đơn giản chính là mô hình MVC (Model - View - Controller). Tầng Model: chứa các code connect tới database,truy vấn và thêm xóa sửa dữ liệu. Tầng View: chứa các code tạo giao diện tương tác với người dùng, dữ liệu được vẽ ra nhu thế nào Tầng Controller: chứa các code điều khiển dòng dữ liệu (flow control), gắn kết tầng Mode và tầng View lại với nhau. Ứng dụng được chia thành các layer như thế sẽ tăng tính reuse và dễ dàng mở rộng. Chẳng hạn nếu chúng ta muốn ứng dụng có thể truy xuất trên di dộng, chúng ta chỉ cần tạo một tầng view mới riêng cho di động, tầng model và controller không thay dổi. Hay nếu chúng ta muốn thay đổi database, việc đó cũng dễ dàng hơn, chỉ cần ta tạo tầng model mới, phần view và controller không bị ảnh hưởng. Mô hình thể hiện quan hệ của ba lớp trong ứng dụng web: Hình 1. mô hình 3 tầng của một ứng dụng web SV :Nguyễn Văn Đại 6 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân Còn đây là mô hình của một dịch vụ ứng dụng web: Hình 2. Mô hình dịch vụ ứng dụng web đơn giản Tầng Presentation: được dùng để giao tiếp với người dùng, nhiệm vụ chính là hiển thị dữ liệu và nhận dữ liệu từ người dùng. - Tầng Business Logic: nhiệm vụ chính là cung cấp các chức năng của phần mềm. - Tầng Data: lưu trữ dữ liệu, cho phép lớp Business Logic có thể tìm kiếm, trích xuất, cập nhật… dữ liệu. 1.2.2 Giao diện của một ứng dụng web Giao diện web đặt ra rất ít giới hạn khả năng người dùng. Thông qua Java, JavaScript, DHTML, Flash và những công nghệ khác, những phương pháp chỉ ứng dụng mới có như vẽ trên màn hình, chơi nhạc, và dùng được bàn phím và chuột tất cả đều có thể thực hiện được Những kỹ thuật thông thường như kéo thả cũng được hỗ trợ bởi những công nghệ trên. Những nhà phát triển web thường dùng ngôn ngữ kịch bản phía người dùng để thêm hiệu quả các tính năng, đặc biệt là tạo ra một cảm giác giao tiếp trực quan mà không cần phải tải trang lại (điều mà nhiều người dùng cảm thấy ngắt quãng). Vừa rồi, những công nghệ đã được phát triển để phối hợp ngôn ngữ kịch bản phía người dùng với công nghệ phía máy chủ như PHP. Ajax, một kỹ thuật phát triển web sử dụng kết SV :Nguyễn Văn Đại 7 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân hợp nhiều công nghệ khác nhau, là một ví dụ về công nghệ hiện đang tạo ra ngày càng nhiều trải nghiệm tương tác hơn. 1.2.3 Chức năng cơ bản của các ứng dụng web Ứng dụng web phổ biến nhờ vào sự có mặt vào bất cứ nơi đâu của một chương trình. Khả năng cập nhật và bảo trì ứng dụng Web mà không phải phân phối và cài đặt phần mềm trên hàng ngàn máy tính là lý do chính cho sự phổ biến của nó. Ứng dụng web được dùng để hiện thực Webmail, bán hàng trực tuyến, đấu giá trực tuyến, wiki, diễn đàn thảo luận, Weblog, MMORPG, Hệ quản trị quan hệ khách hàng và nhiều chức năng khác Web cũng là kênh bán hàng thông minh cho hàng nghìn tổ chức, doanh nghiệp, lớn có, nhỏ có. Với hơn một tỷ người dùng Internet ngày nay (nguồn: Computer Industry Almanac 2006), thương mại điện tử Mỹ sử dụng khoảng 102 tỷ đô la trong năm 2006 cho giao dịch (nguồn: comScore Networks 2007). Tất cả dữ liệu như vậy cần phải được đóng gói, lưu trữ, xử lý và truyền vận theo một cách nào đó, có thể sử dụng ngay hoặc vào một ngày nào đó sau này. Các ứng dụng Web, trong lĩnh vực đăng ký, đệ trình, truy vấn, đăng nhập, bán hàng và hệ thống quản lý nội dung chính là các website widget cho phép thực hiện tất cả công việc mong muốn. Web chính là là yếu tố cơ bản giúp doanh nghiệp tăng cường hình ảnh trực tuyến của mình trên thế giới mạng, tạo ra và duy trì nhiều mối quan hệ đem lại lợi nhuận lâu dài với khách hàng tiềm năng và khách hàng hiện tại. Không nghi ngờ gì là các ứng dụng Web đã trở thành thứ hiện hữu ở khắp mọi nơi trên thế giới. Nhưng do tính kỹ thuật cao và yếu tố tổng hợp phức tạp tự nhiên nên chúng không được nhiều người biết đến chính xác, thậm chí bị hiểu nhầm trầm trọng trong cuộc sống bận rộn hằng ngày. Website ngày nay khác xa so với kiểu đồ họa và văn bản tĩnh của thế kỷ mười chín hay thời kỳ trước đó. Các trang Web hiện đại cho phép người dùng lấy xuống nội SV :Nguyễn Văn Đại 8 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân 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 hiện đại 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. 1.2.4 Nguyên tắc hoạt động cơ bản của một ứng dụng web Trong dạng tính toán chủ-khách trước đây, mỗi ứng dụng có chương trình khách riêng của nó sẽ phục vụ như giao diện người dùng và phải được cài đặt riêng rẽ trên mỗi máy tính cá nhân của người dùng. Sự nâng cấp phần máy chủ của ứng dụng sẽ cần nâng cấp tất cả máy khách đã được cài trên mỗi máy trạm người dùng, thêm vào đó là chi phí hỗ trợ và giảm năng suất. Ứng dụng web linh hoạt tạo ra một loạt các tài liệu Web ở định dạng chuẩn được hỗ trợ bởi những trình duyệt phổ biến như HTML/XHTML. Ngôn ngữ kịch bản phía người dùng ở dạng ngôn ngữ chuẩn như JavaScript thường được thêm vào để có thêm những yếu tố động trong giao diện người dùng. Nói chung, mỗi trang Web đơn lẻ được gửi tới người dùng như một tài liệu ổn định, nhưng thứ tự các trang có thể cung cấp cảm giác trực quan, khi những gì người dùng nhập vào sẽ được trả về thông qua thành phần mẫu Web được nhúng vào trong đánh dấu trang. Trong quá trình giao dịch đó, trình duyệt Web sẽ thông dịch và hiển thị trang, và hoạt động như một người dùng chung cho bất kỳ ứng dụng Web nào Theo mô hinh MVC (Model - View - Controller). SV :Nguyễn Văn Đại 9 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân Hình 3. Mô tả hoạt động của một ứng dụng web Các bước hoạt động của một ứng dụng web đơn giản Bước 1 : Browser tạo một HTTP Request gửi tới ứng dụng web bước 2: Controller chính của Struts là class ActionServlet sẽ bắt request này, phân tích URL của nó, và dựa vào file struts-config.xml để gửi request này tới Action class tương ứng Bước 3: Action class là một class của Struts Framework. Ứng dụng của chúng tathường extends từ class này và viết code để sử lý những business tương ứng. Chẳng hạn ta sẽ có một LoginAction để xử lý việc user login, logout. Bước 4: Action class có thể truy xuất, cập nhật database nếu cần thiết. Bước 5: Khi Action class thực hiện việc xử lý business xong, nó sẽ gửi yêu cầu forward/redirect, cùng với dữ liệu (nếu có) về controller. SV :Nguyễn Văn Đại 10 [...]... gửi về cho browser, để browser hiển thị ra màn hình 1.2.5 Vấn đề bảo mật ứng dụng web Khi mà ứng dụng web phát triển rất nhanh về mọi mặt, khả năng ứng dụng một cách rộng rãi thì vấn đề bảo mật cho ứng dụng web cũng được chú trọng hơn Mặc dù không thể phủ nhận những cải tiến nâng cao đáng kể hiện nay, nhưng vấn đề về bảo mật trong ứng dụng Web vẫn không ngừng tăng lên Nguyên nhân có thể xuất phát từ... Web Server và nơi chứa cơ sở dữ liệu không có lỗ hổng nào Một cuộc nghiên cứu gần đây chỉ ra rằng 75% các cuộc tấn công mạng được thực hiện ở mức ứng dụng Web. Website và các ứng dụng Web liên quan luôn phải sẵn SV :Nguyễn Văn Đại 12 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân sàng 24/7 để cung cấp dịch vụ theo yêu cầu khách hàng, yêu cầu từ phía nhân viên, nhà cung cấp và. .. cách tấn công tương ứng vào lỗ hổng này gây ra rất nhiều tổn thất Vì vậy việc nghiên cứu về các kĩ thuật tấn công và những tool cơ bản hiện nay là một nhu cầu tất yếu trong việc nghiên cứu bảo mật ứng dụng web SV :Nguyễn Văn Đại 14 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân CHƯƠNG 2: GIỚI THIỆU VỀ CÁC THUẬT NGỮ VÀ KHÁI NIỆM LIÊN QUAN 2.1 Các khái niệm và thuật ngữ thường... (DoS)) SV :Nguyễn Văn Đại 26 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân Một khối lượng lớn yêu cầu được gửi cho ứng dụng trong một khoảng thời gian nhất định khiến hệ thống không đáp ứng kịp yêu cầu dẫn đến hệ thống bị phá vỡ B, Các cách triển khai tấn công ứng dụng web Phần trước trong đồ án đã trình bày sơ lược về các cách tấn công ứng dụng web cơ bản Phần này sẽ nói cụ... client và quyết định đáp ứng hay không đáp ứng, nếu yêu cầu được đáp ứng, proxy server sẽ kết nối với server thật thay cho client và tiếp tục chuyển tiếp những yêu cầu từ client đến server, cũng như trả lờicủa server đến client Vì vậy proxy server giống cầu nối trung gian giữa server và client CHƯƠNG 3:CÁC KĨ THUẬT TẤN CÔNG ỨNG WEB CƠ BẢN SV :Nguyễn Văn Đại 23 Đồ án :Ứng dụng web và vấn đề bảo mật A... mới có tên Java Netscape Navigator đã hỗ trợ ngôn ngữ mới này, và một con đường mới cho các trang Web động được mở ra, kỷ nguyên của applet bắt đầu SV :Nguyễn Văn Đại 16 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân Applet cho phép các nhà phát triển viết các ứng dụng nhỏ nhúng vào trang Web Khi người dùng sử dụng một trình duyệt hỗ trợ Java, họ có thể chạy các applet trong... 11 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân Hình 3 Mô hình hoạt động của một ứng dụng web Trong khung hoạt động mô tả ở trên, bạn có thể thấy thật dễ dàng cho một hacker truy cập nhanh chóng thông tin nằm trên cơ sở dữ liệu chỉ với một chút sáng tạo Nếu may mắn hơn chúng có thể gặp lỗ hổng xuất phát từ sự cẩu thả hay lỗi người dùng trên các ứng dụng Web Như đã nói, website... niệm chung về ứ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 Trang Web là tĩnh; người dùng gửi yêu cầu một tài nguyên nào đó, và server sẽ trả về tài nguyên đó Các trang Web không có gì hơn là một văn bản được định dạng và phân tán Đối với các trình duyệt, thì các trang Web tĩnh không... ASP và PHP:Cùng với Java, Sun đồng thời đưa ra một công nghệ mới gọi là servlet Các đoạn mã Java sẽ không chạy phía client như với applet; chúng sẽ được chạy trên một ứng dụng phía server Servlet cũng đồng thời phục vụ các CGI SV :Nguyễn Văn Đại 17 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân script Servlet là một bước tiến lớn, nó đưa ra một thư viện hàm API trên Java và. .. kĩ thuật và công nghệ cao cao Các công cụ(tool) hỗ trợ ra đời ngày càng nhiều , hỗ trợ rất nhiều cho người quản trị mạng , tìm ra những lỗ hổng để có bản vá lỗi kịp thời nhưng đồng thời nó cũng là một con dao hai lưỡi SV :Nguyễn Văn Đại 13 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân Hacker có thể dùng những tool này để phát hiện những lỗ hổng của một ứng dụng web và từ đó . Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân Đồ Án Ứng dụng web và vấn đề bảo mật SV :Nguyễn Văn Đại 1 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy. tấn công mạng được thực hiện ở mức ứng dụng Web. Website và các ứng dụng Web liên quan luôn phải sẵn SV :Nguyễn Văn Đại 12 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân sàng. trong ứng dụng web: Hình 1. mô hình 3 tầng của một ứng dụng web SV :Nguyễn Văn Đại 6 Đồ án :Ứng dụng web và vấn đề bảo mật GVHD:Thầy Huỳnh Nguyễn Thành Luân Còn đây là mô hình của một dịch vụ ứng