Đồ án tốt nghiệp nghiên cứu một số vấn đề về bảo mật ứng dụng web

97 669 1
  • Loading ...
    Loading ...
    Loading ...

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Tài liệu liên quan

Thông tin tài liệu

Ngày đăng: 17/06/2014, 15:46

LỜI CẢM ƠN Sau hơn 3 tháng nỗ lực thực hiện đồ án tốt nghiệp, ngoài sự cố gắng hết mình của bản thân, tôi đã nhận được sự giúp đỡ chỉ bảo tận tình của thầy cô, bạn bè. Cá nhân tôi xin được bày tỏ lời chân thành cảm ơn đến thầy giáo hướng dẫn: ThS– bộ môn An ninh mạng, khoa CNTT-, người đã trực tiếp tận tình giúp đỡ tôi trong suốt quá trình thực hiện đồ án. Đồng thời cũng cho phép tôi được cảm ơn sự giúp đỡ, tạo điều kiện của khoa CNTT. Mặc dù tôi đã cố gắng hoàn thành đồ án trong khả năng cho phép nhưng không tránh khỏi thiếu sót. Tôi rất mong nhận được sự chỉ bảo đóng góp ý kiến tận tình của các thầy cô giáo và các bạn. Người viết đồ án 1 MỤC LỤC MỞ ĐẦU Trong thời đại bùng nổ Internet hiện nay, việc khai thác, tìm kiếm và quảng cáo thông tin trên trang Web đã trở thành một nhu cầu không thể thiếu và đóng một vai trò rất quan trọng đối với sự thành công trong công việc của các doanh nghiệp, các tổ chức xã hội cũng như của từng cá nhân. Bởi lý do quan trọng này nên số lượng các cá nhân và tổ chức truy cập vào trang Web tăng lên một cách đáng kể. Trong số này, hàng ngày, hàng 2 tuần có cả hàng trăm cuộc thăm viếng các trang Web với mục đích xấu. Số lượng các cuộc tấn công nhằm vào lỗ hổng trên các ứng dụng Web đã gây nhiều tổn thất cả về mặt kinh tế và xã hội. Vì vậy việc nghiên cứu các vấn đề về bảo mật ứng dụng Webmột vấn đề rất quan trọng trong sự phát triển của Internet hiện nay. Mục đích của đồ án: Nghiên cứu các phương pháp tấn công ứng dụng web, từ đó đưa ra các giải pháp bảo mật cho ứng dụng. Nội dung đồ án được chia thành 5 chương chính: Chương I : Giới thiệu ứng dụng Web. Chương II : Giới thiệu lược các kĩ thuật tấn công ứng dụng web. Chương III : Một số kĩ thuật tấn công. Chương IV : Tổng kết các quá trình tấn công và các biện pháp phòng chống. Chương V : Chương trình minh họa. CHƯƠNG I GIỚI THIỆU ỨNG DỤNG WEB I. Ứng dụng Web (Web Application) Web là môi trường có khả năng thực thi chương trình cao, cho phép tạo vô số tùy biến trên nó, triển khai trực tiếp một lượng lớn các ứng dụng tới 3 hàng triệu người dùng trên thế giới. 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. Website ngày nay khác xa với kiểu đồ họa và văn bản tĩnh của thê kỷ 19 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 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ó 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, Goole Maps). Quan trọng nhất là các 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à các 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 các 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. Tất cả đều là các ví dụ phổ biến, gần gũi và sinh động của Ứng dụng Web. 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 trên trình duyệt Web. 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. 4 Dưới góc độ kỹ thuật, 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). Trình duyệt Web chính là chìa khóa, nó dịch và chạy tất cả các Script, lệnh…khi hiển thị trang Web và nội dung được yêu cầu. II. Hoạt động Hình bên dưới minh họa chi tiết mô hình ứng dụng Web ba tầng. Tầng đầu tiên thông thương là trình duyệt Web hoặc giao diện người dùng. Tầng thứ hai là công nghệ kỹ thuật tạo nội dung động như Java servlets (JSP) hay Active Server Pages (ASP). Còn tầng thứ ba là 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 Quá trình hoạt động bắt đầu với yêu cầu được tạo ra từ người dùng trên trình duyệt, gửi qua Internet tới trình chủ Web ứng dụng (Web application Server). Web ứng dụng truy cập máy chủ chứa cơ sở dữ liệu 5 để thực hiện nhiệm vụ được yêu cầu: cập nhật, truy vấn thông tin đang nằm trong cơ sở dữ liệu. Sau đó ứng dụng Web gửi thông tin lại cho người dùng qua trình duyệt. Hình 2 III. Các vấn đề về bảo mật Web Mặc dù không thể phủ nhận những cải tiến nâng cao đáng kể hiện nay, như vấn đề 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ừ các đoạn mã không phù hợp. Nhiều điểm yếu nghiêm trọng hay các lỗ hổng cho phép hacker xâm nhập thẳng và truy cập vào cơ sở dữ liệu tách lấy dữ liệu nhạy cảm. Nhiều cơ sở dữ liệu chứa thông tin giá trị (như chi tiết cá nhân, thông tin tài chính) khiến chúng trở thành đích nhắm thường xuyên của hầu hết hacker. 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. 6 • Website và các ứng dụng Web liên quan luôn phải sẵ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í nhân viên, nhà cung cấp và nhiều người liên quan khác. • Tường lửa, SLL không thể bảo vệ ứng dụng Web trước mọi hoạt động hacking, đơn giản vì truy cập vào Website phải để ở chế độ public để bất kỳ ai cũng có thể ghé thăm Website được. Tất cả hệ thống cơ sở dữ liệu hiện đại (như Microsoft SQL Server, Oracle, MySQL) đều có thể truy cập qua một số cổng cụ thể (như cổng 80, 433). Nếu muốn, một người nào đó có thể kết nội trực tiếp tới cơ sở dữ liệu một cách hiện quả khi vượt qua cơ chế bảo mật của hệ điều hành. Các cổng này để mở nhằm cho phép liên lạc với hoạt động giao thông mạng hợp pháp, và do đó cũng hình thành nên lỗ hổng lớn nguy hiểm. • Các ứng dụng Web thường truy cập dữ liệu cuối như cơ sở dữ liệu khách hàng, điểu khiển dữ liệu có giá trị và do đó rất khó để có thể tuyệt đối an toàn. • Hầu hết ứng dụng Web đều là tự tạo, do đó ít có được các kiểm tra trình độ hơn so với các phần mềm cùng loại. Do đó các ứng dụng tùy biến thường dễ bị tấn công hơn. Có thể nói ứng dụng Webmột cổng vào (gateway) của cơ sở dữ liệu, nhất là các ứng dụng tùy biến. Chúng không được phát triển với mức bảo mật tốt nhất vì không phải qua các kiểm tra bảo mật thông thường. 7 CHƯƠNG II GIỚI THIỆU LƯỢC VỀ CÁC KỸ THUẬT TẤN CÔNG ỨNG DỤNG WEB I. CÁC KHÁI NIỆM THUẬT NGỮ LIÊN QUAN I.1 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ị cơ sở 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à 8 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, sẽ sử dụng “hacker” thay cho “kẻ tấn công”. I.2 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ố tham số có thể được dùng trong cả header yêu cầu và header trả lời, một số khác thì chỉ đượ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: http://localhost/lienket.asp User-Agent: Mozilla/4.0 {compatible: MSIE 5.5; Windows NT 5.0} Accept-Encoding: gzip, deflate 9 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ỉ máy chủ.  Referer: Cho biết địa chỉ của trang web tham chiếu tới. o Header của HTTP request sẽ kết thúc bằng một dòng trống. • Header trả lời: HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Thu, 13 Jul 2000 05:46:53 GMT Content-Length: 2291 Content-Type: text/html Set-cookie: ASPSESSIONIDQQGGGNCC=LKLDFFKCINFLDMFHCBCBMFLJ; Path=/ Cache-control: private <HTML> <BODY> ……… o Dòng đầu là dòng trạng thái để cho biết phiên bản HTTP được dùng (HTTP/1.1), mã trạng thái (200) và trạng thái (OK). 10 [...]... quyết vấn đề này, ứng dụng Web đưa ra một khái niệm phiên làm việc (Session) Còn SessionID là một chuỗi để chứng thực phiên làm việc Một số trình chủ sẽ cung cấp một SessionID cho người dùng khi họ xem trang web trên trình chủ Để duy trì phiên làm việc thì sessionID thường được lưu vào:  Biến trên URL  Biến ẩn Form  Cookie I.4 Cookie Cookie là những phần dữ liệu nhỏ có cấu trúc được chia sẻ giữa website... mật khẩu Newpass là mật khẩu mới cho username Tuy nhiên, bằng cách thay đổi tham số như sau: http://www.nganhang.com/example?user=admin&newpass=111111 Hacker đã có thể thay đổi mật khẩu của admin bằng một mật khẩu mới bất kì, trong ví dụ này là ‘111111’ I.1.2 Một số biện pháp khắc phục Để chống lại kiểu thay đổi nội dung chuỗi URL, ứng dụng có thể áp dụng biện pháp sau: • Ứng dụng sử dụng cơ chế bảng... tham số truyền của một ứng dụng nhưng mọi thông tin đều được lưu trữ vào nó trước khi chuyển đi nên trong phần này sẽ đề cập đến việc thay đổi một HTTP Header I.4.1 Khái niệm Thông thường chỉ có trình duyệt và trình chủ là trao đổi HTTP Header, còn hầu hết các ứng dụng web thì không Tuy nhiên, hacker có thể tự viết một chương trình để điều khiển HTTP header (như xem nội dung, tạo mới) hay sử dụng các... những vấn đề bảo mật quan trọng đối với các nhà phát triển web và cả những người sử dụng web Bất kì một website nào cho phép người sử dụng đăng thông tin mà không có sự kiểm tra chặt chẽ các đoạn mã nguy hiểm thì đều có thể tiềm ẩn các lỗi XSS 25 1 XSS là gì ? Cross-Site Scripting hay còn được gọi tắt là XSS (thay vì gọi tắt là CSS để tránh nhầm lẫn với CSS-Cascading Style Sheet của HTML) là một kĩ thuật... trọng ở cookie Cookie là mẫu thông tin mà ứng dụng lưu trên đĩa cứng của người sử dụng Nhưng chỉ ứng dụng thiết lập ra cookie thì mới có thể đọc nó Do đó chỉ khi người dùng đang trong phiên làm việc của ứng dụng thì hacker mới có cơ hội đánh cắp cookie Công việc đầu tiên của hacker là tìm trang đích để dụ người dùng đăng nhập sau khi đã tìm ra lỗ hổng trên ứng dụng đó Các bước thực hiện XSS truyền thống:... biến ẩn thành một chuỗi đơn Sử dụng thuật toán mã hóa MD5 hoặc một kiểu hash một chiều khác để tổng hợp chuỗi đó và lưu nó vào một hidden field gọi là “Chuỗi mẫu” Khi giá trị trong form được gửi đi, các thao tác như trên được thực hiện lại với cùng một khóa mà ta định trước Sau đó đem so sánh với “Chuỗi mẫu”, nếu chũng không khớp nhau thì chứng tỏ giá trị trong biểu mẫu đã bị thay đổi • Dùng một sessionID... vào để đánh lừa ứng dụng vì với những ứng dụng sử dụng chương trình CGI như C++ thì C++ cho rằng \0 là dấu kết thúc chuỗi Ví dụ: Hacker thêm chuỗi sau: Ô nhập: … \0alert(document.cookie) Nếu ứng dụng sử dụng chương trình C++ để kiểm tra tính đúng đắn của chuỗi thì chuỗi trên hợp lệ do C++ sẽ nhận biết “\0” là kết thúc chuỗi nên không kiểm tra đoạn sau…  Thao tác trên tham số truyền... thuật tấn công ứng dụng Web đã được phân loại dựa trên mức độ gây tác hại đối với ứng dụng II.1 Kiểm soát truy cập web (Web access control) Thâm nhập hệ thống qua cửa sau (Back door) Trong quá trình thiết kế ứng dụng, những người phát triển ứng dụng có thể cài một “cửa sau” (back door) để sau này co thể thâm nhập vào hệ thống một cách dễ dàng II.2 Chiếm hữu phiên làm viêc  Ấn định phiêm làm việc (Session... dụng cơ chế bảng băm (hash table) Sau khi người dùng chứng thực thành công với một username, ứng dụng sẽ sinh ra một khóa tương ứng Khóa này sẽ lưu trên server cùng với biến 18 username trong đối tượng bảng băm Mỗi khi nguời dùng kết nối đến ứng dụng, khóa và username này sẽ được gửi đi và được so sánh với khóa username trong bảng băm Nếu tương ứng với bản ghi trong dữ liệu thì hợp lệ Còn nếu không... thông tin ( cookie, tên, mật khẩu…) về máy chủ của hacker  Bước 4: hacker tạo một chương trình cgi hoặc một trang Web để ghi nhận những thông tin đã đánh cắp vào một tập tin  Bước 5: Sau khi nhận thông tin cần thiết, hacker có thể sử dụng để thâm nhập vào tài khoản của người dùng 28 Ví dụ 1: Các thẻ HTML đều có thể là công cụ cho các cuộc tấn công bởi kĩ thuật XSS, Chỉ cần với một đoạn mã HTML gửi trong . công nhằm vào lỗ hổng trên các ứng dụng Web đã gây nhiều tổn thất cả về mặt kinh tế và xã hội. Vì vậy việc nghiên cứu các vấn đề về bảo mật ứng dụng Web là một vấn đề rất quan trọng trong sự phát. của đồ án: Nghiên cứu các phương pháp tấn công ứng dụng web, từ đó đưa ra các giải pháp bảo mật cho ứng dụng. Nội dung đồ án được chia thành 5 chương chính: Chương I : Giới thiệu ứng dụng Web. Chương. qua trình duyệt. Hình 2 III. Các vấn đề về bảo mật Web Mặc dù không thể phủ nhận những cải tiến nâng cao đáng kể hiện nay, như vấn đề bảo mật trong ứng dụng Web vẫn không ngừng tăng lên. Nguyên
- Xem thêm -

Xem thêm: Đồ án tốt nghiệp nghiên cứu một số vấn đề về bảo mật ứng dụng web, Đồ án tốt nghiệp nghiên cứu một số vấn đề về bảo mật ứng dụng web, Đồ án tốt nghiệp nghiên cứu một số vấn đề về bảo mật ứng dụng web

Từ khóa liên quan